Iptables 명령어를 이용한 방화벽 관리
Iptables 명령어는 Cent OS 6이하에서 사용하는 방화벽 설정 관리 명령이다.
방화벽 설정 확인 후 삭제
방화벽 설정 상태를 보려면 -L 옵션을 이용해 목록을 표시할 수 있다.
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp spt:40050
ACCEPT tcp -- anywhere anywhere tcp spt:40050
iptables -L 옵션을 주었을때 출력되는 prot 열은 프로토콜을 의미하며, 프로토콜의 종류로 tcp, udp, icmp, 또는 all가 있다. 이때 방화벽이 입력에 대한 방화벽이라면 INPUT 체인으로 묶어서 관리하고, 외부로 나가는 것과 관련한 방화벽이면 OUTPUT 체인으로 관리한다. 만약 NAT(Network Address Translation)으로 사설 네트워크를 사용하려면 FORWARD 체인을 이용한다. 특정 체인명만 출력 하려면 -L 옵션 뒤에 <체인명>을 전달해 준다.
iptables -L OUTPUT --line-numbers
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- anywhere anywhere tcp spt:9000
2 ACCEPT tcp -- anywhere anywhere tcp spt:9000
만약 ‘IP 주소와 포트번호를 포함한 numeric 형식으로 표시하려면 -n옵션을 추가한다.
iptables -nL
특정 체인에 특정 번호를 삭제하는 명령어 형식은 다음과 같다.
iptables -D <chain name> <rule number>
만약 OUTPUT 체인명의 1번째 RULE을 삭제하려면 다음과 같이 입력해 준다.
iptables -D OUTPUT 1
방화벽 설정 적용
service iptables restart # 재시작
service iptables start # 시작
service iptables stop # 중지
service iptables save # iptables 내용을 실재 /etc/sysconfig/iptables에 저장
firewall 명령어를 이용한 방화벽 설정관리
CentOS 7이상 부터 firewall 명령어를 이용한다.
방화벽 상태 확인
$ firewall-cmd --state
방화벽 설정
새로운 방화벽 설정 규칙을 추가하기 위해 -A(–append) 옵션을 이용한다.
firewall-cmd --zone=public --add-port=9000/tcp # 9000 포트 추가
firewall-cmd --permanent --add-remove=9000/tcp # 9000 포트 삭제
방화벽 적용 관리
CentOS7부터 방화벽 설정 방법이 firewalld로 바뀌었다.
systemctl restart firewalld
systemctl 관련 명령어를 나열해 보면 다음과 같다.
systemctl enable firewalld # 방화벽 사용
systemctl disable firewalld # 방화벽 비사용
systemctl start firewalld # 방화벽 시작
systemctl stop firewalld # 방화벽 중지