iptables 및 iptables-services 패키지를 기반으로 진행
* Rocky Linux는 기본적으로 firewalld를 사용하지만, iptables를 사용할 수 있도록 설정
1. iptables 설치 및 설정 준비
Rocky Linux에서 iptables를 사용하려면 iptables-services를 설치해야 함
firewalld 비활성화 및 iptables 활성화
# firewalld 비활성화 ( iptables 사용을 위해 )
$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld
# iptables-services 설치
$ sudo dnf install iptables-services -y
2. iptables 규칙 작성
규칙을 설정한 뒤 저장함
( 공식 사이트 : https://linux.die.net/man/8/iptables )
iptables 설정 추가
예제 규칙 (필요에 따라 수정하여 사용)
# 기본 정책 설정
$ sudo iptables -P INPUT DROP
$ sudo iptables -P FORWARD DROP
$ sudo iptables -P OUTPUT ACCEPT
# SSH 허용
$ sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# HTTP 및 HTTPS 허용
$ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
$ sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 로컬호스트 허용
$ sudo iptables -A INPUT -i lo -j ACCEPT
# 응답 패킷 허용
$ sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
* iptables 옵션
iptables는 상당히 많은 옵션등이 제공
–append, -A : 새로운 규칙을 추가
–policy, -P : 기본정책을 변경
–delete, -D : 규칙을 삭제
–insert, -I : 새로운 규칙을 삽입(기존 규칙은 내려감)
–replace -R : 새로운 규칙으로 교체
–jump, -j : 규칙에 맞는 패킷을 어떻게 처리할 것인가를 명시
–in-interface, -i : 입력 인테페이스–state : 연결 상태와의 매칭
–match, -m : 특정 모듈과의 매치
3. iptables 설정 저장
iptables-services를 사용하면 설정을 저장하고 재부팅 시 불러올 수 있음
# 현재 iptables 설정
$ sudo service iptables save
이 명령을 실행하면 설정이 /etc/sysconfig/iptables에 저장됨
4. iptables 자동 적용 설정
부팅 시 iptables를 자동으로 적용하도록 설정함
# iptables 서비스 활성화
$ sudo systemctl enable iptables
$ sudo systemctl start iptables
5. 부팅 후 확인
시스템을 재부팅한 후 설정이 제대로 적용되었는지 확인
# iptables 규칙 확인
$ sudo iptables -L -v -n
6. iptables 규칙 수정
추후 iptables 규칙을 수정할 경우 다음과 같이 진행
1. 규칙 수정
예를 들어 새로운 포트를 허용하려면:
$ sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
2. 변경사항 저장
$ sudo service iptables save
3. 서비스 재시작
$ sudo systemctl restart iptables