CentOS 6.x IPTABLES 방화벽 설정



현재 리눅스 서버에서 필요한 포트만 열어두고 사용하지 않는 포트는 차단하여 봅시다.


먼저 서비스 중인 LISTEN 포트가 무엇이 있는지 체크가 필요합니다.


# netstat -ant | grep LISTEN

tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN

tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN

tcp        0      0 127.0.0.1:953               0.0.0.0:*                   LISTEN

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN

tcp        0      0 :::80                       :::*                        LISTEN

tcp        0      0 ::1:25                      :::*                        LISTEN

tcp        0      0 :::443                      :::*                        LISTEN


21 : FTP

22 : SSH

25 : SMTP

53, 953 : DNS

80 : HTTP

443 : HTTPS

3306 : MYSQL


이 정도로 서비스 중입니다. 서버 마다 상황이 다르겠지만 위 포트를 예로 들어 진행하겠습니다.


위의 포트만 열어주고 나머지는 차단해보도록 합시다.


# vi /etc/sysconfig/iptables 로 편집


-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -p icmp -j DROP

-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT

-A INPUT -p udp -m udp --dport 53 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

-A INPUT -p tcp -m tcp -j DROP


localhost 인 127.0.0.1 아이피는 규칙에 넣지 않아도 됩니다. 넣어도 적용이 되지 않습니다.


제일 마지막 줄이 모든 포트를 차단하는 규칙입니다.


위 쪽에서 서비스 포트를 미리 정의 하여야 합니다.


깜빡하고 안 적어 준 다음 service iptables restart 를 하면 안되겠죠?


22번 포트가 열려 있다면 ssh 로 접속해서 수정이 가능하겠지만 22번 포트가 누락되었다면 콘솔로 접속하는 방법 밖에 없습니다.


이점 유의 하시기 바랍니다.



그리고 아래는 iptables 명령어로 규칙을 추가하는 방법입니다.


iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT

iptables -A INPUT -p icmp -j DROP

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -A INPUT -p tcp --dport 53 -j ACCEPT

iptables -A INPUT -p udp --dport 53 -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -j ACCEPT

iptables -A INPUT -p tcp --dport 0:65535 -j DROP

service iptables save


가급적 콘솔에서 작업하세요~



멀티포트로 설정하는 방법은 아래와 같습니다.


iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT

iptables -A INPUT -p tcp --dport 8000:8080 -j ACCEPT


위와 같이 추가할 수 있습니다.


블로그 이미지

영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

,