iptables - 포트열기와 닫기
iptables 방화벽은 테이블 형식으로 정책을 관리하며,
등록순서에 있어서 먼저 등록한 정책에 대해서 효력이 유효하기 때문에 등록시에는 순서가 매우 중요하다.
모든 입출력 패킷에 대해서 거부하는 설정이 먼저 등록되면 그 이후에 포트를 열어주는 설정을 하여도 효과가 없다.
그러므로 허용하는 정책을 먼저 정의한 다음 거부하는 정책을 설정하여야 한다.
기본 command
# iptables -version => 버전확인
# iptables --help => 도움말
# iptables -L => 목록보기
# iptables -F => iptables의 체인 삭제
기본구조
#iptables -A INPUT -s [발신지] --sport [발신지 포트] -d [목적지] --dport [목적지 포트] -j [정책]
특정 ip PING막기
iptables -A INPUT -s 192.168.0,101 -p icmp -j DROP
ping에 대한 응담 거부하기
# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
예제 -22번 포트열기 & 해제
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# iptables -D INPUT 1 => 필터링번호는 상위설정에서 1번부터 시작
# iptables -D INPUT -p tcp --dport 22 -j ACCEPT
ftp-data 20번 포트열기
# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
네임서버운영을 위한 named udp 53번 포트 열기
# iptables -A INPUT -p udp --dport 53 -j ACCEPT
http 80번 포트 열기
# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
pop3 110번 포트 열기
# iptables -A INPUT -p tcp --dport 110 -j ACCEPT
mysql 3306번 포트 열기
# iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
서비스 이외의 서비스포트 모두 거절하기
# iptables -A INPUT -p tcp --dport 1:65535 -j DROP
위와 같이 설정한 다음 매번 부팅시 마다 똑같은 설정을 사용하기 위해서는 기본으로 제공되는 iptables시작 스크립트를 이용하여 save하면 된다.
부팅시 iptables설정파일은 /etc/sysconfig/iptables 파일이며, 기본적으로 제공되는 파일을 삭제한 다음 위와 같이 필요한 설정을 하고
시작스크립트를 이용하여 save를 하면 자동으로 파일이 생성될 것이다.
# rm /etc/sysconfig/iptables
기본적인 iptables 설정을 마친 후 /etc/rc.d/init.d/iptables 시작스크립트를 이용하여 save하면
/etc/sysconfig/iptables 파일이 생성되며, 재부팅시마다 자동으로 iptables 설정을 적용되게 된다.
# /etc/rc.d/init.d/iptables save
# /etc/rc.d/init.d/iptables start => iptables 시작스크립트를 이용한 iptables 시작하기
# /etc/rc.d/init.d/iptables status => 상태 확인
# /etc/rc.d/init.d/iptables stop => iptables 설정내용을 적용하지 않으려면 stop 옵션을 사용하면 될 것이다.