본문 바로가기

Server Story..../Linux

iptable 관련내용


 /etc/sysconfig/iptables


iptables는 리눅스에서 방화벽으로 사용하고 있는 iptables를 이용하여 acl 처리 할일이 있어서
작업하면서 다음과 같이 정리하였습니다.

0.기본정책을 ACCEPT로 설정

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT


1.현재 자신의 방화벽 규칙을 볼 수 있는 명령

iptables --list
iptables -L


2.21,23,25,80 포트를 차단하는 정책(각각 하나씩 규칙을 만들것)

iptables -A INPUT -p tcp --dport 21 -j DROP
iptables -A INPUT -p tcp --dport 23 -j DROP
iptables -A INPUT -p tcp --dport 25 -j DROP
iptables -A INPUT -p tcp --dport 80 -j DROP

iptables -A INPUT -p tcp -m multiport --destination-port 21,23,25,80 -j DROP


3.첫번째 정책을 삭제

iptables -D INPUT 1


4.세번째 정책의 출발지 IP를 192.68.1.0/24로 수정


iptables -R INPUT 3 -p tcp -s 192.168.1.0/24 --dport 80 -j DROP


5.출발지 IP가 A클래스 사설IP일 경우 차단하는 정책

iptables -A INPUT -s 10.0.0.0/8 -j DROP


6.출발지 IP가 192.168.10.1부터 192.168.10.100, 그리고 192.168.150.0/24이고 목적지 IP는 192.168.10.170이고 목적지 포트는 3306일 경우 차단하는 정책


iptables -A INPUT -p tcp -s 192.168.150.0/24 -d 192.168.10.170 --dport 3306 -j DROP
iptables -A INPUT -p tcp -m iprange --src-range 192.168.10.1-192.168.10.100 -d 192.168.10.170 --dport 3306 -j DROP


7.tcp 패킷이 초당 10개가 올 경우 차단하는 정책(limit match 이용)

iptables -A INPUT -p tcp -m limit --limit 10/s -j DROP


8.하나의 세션에서 10개의 패킷이 매칭된 후 tcp 패킷이 분당 100개가 올 경우 차단하는 정책

iptables -A INPUT -p tcp -m limit --limit 100/m --limit-burst 10 -j DROP


9.옆사람의 윈도우와 리눅스에서 SSH 접속을 차단하도록 설정
  윈도우에서의 연결은 DROP 정책을,리눅스에서의 접속은 REJECT 정책으로 설정

iptables -A INPUT -p tcp -s 172.17.24.140 --dport 22 -j DROP
iptables -A INPUT -p tcp -s 172.17.24.170 --dport 22 -j REJECT --reject-with tcp-reset

  - /etc/syslog.conf 설정에서 마지막 부분을 다음과 같이 수정

   kern.*   /var/log/iptables

  - 차단된 연결에 대한 로그를 /var/log/iptables 파일에 남기고
    로그레벨은 info로 지정하고 로그의 머릿말에 "[SSH Conn]"메세지 삽입

iptables -I INPUT 9 -p tcp -s 172.17.24.140 --dport 22 -j LOG --log-level info
iptables -I INPUT 10 -p tcp -s 172.17.24.140 --dport 22 -j LOG --log-prefix "[SSH Conn]"


10.ICMP 라는 체인 생성
  - icmp 패킷이 들어올 경우 ICMP 체인으로 전달
  - ICMP 체인에 ping에 대해 응답하지 않는 정책 추가

iptables -N ICMP
iptables -A INPUT -p icmp -j ICMP
iptables -A ICMP -p icmp --icmp-type 8 -j DROP

11.기본정책을 DROP으로 설정
 - 본인의 윈도우에서 SSH 연결이 되도록 설정하고 이미 연결된 상태나 연관성이 있는 연결은
   별도의 정책 대신 state 매치를 이용하여 계속 사용할 수 있도록 설정(상태추적설정)

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -s 172.17.24.130 --dport 22 -j ACCEPT


12.TCP FLAG 중 전체를 보고 그 중 SYN과 FIN가 있을 경우 차단하는 정책

iptables -A INPUT -p tcp --tcp-flags ALL SYN,FIN -j DROP

13.TCP FLAG 중 전체를 보고 그 중 PSH와 FIN가 있을 경우 차단하는 정책

iptables -A INPUT -p tcp --tcp-flags ALL PSH,FIN -j DROP

14.TCP FLAG 중 PSH와 SYN을 보고 그 중 둘 다 있을 경우 차단하는 정책

15.SYN 패킷이 아닌데 상태가 NEW일 경우 차단하는 정책

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP
iptables -A INPUT -p tcp ! --tcp-flags ALL SYN -m state --state NEW -j DROP


tcp flags:!FIN,SYN,RST,ACK/SYN state NEW
tcp flags:!SYN,RST,ACK/SYN state NEW
tcp flags:!FIN,SYN,RST,PSH,ACK,URG/SYN state NEW

 

'Server Story.... > Linux' 카테고리의 다른 글

Find 명령어 정리 및 찾은후 삭제 관련 건  (0) 2010.12.17
리눅스 찿기 명령어  (0) 2010.12.15
리눅스 명령어 모음.  (0) 2010.10.18
리눅스 snmp 활성화 하기  (0) 2010.10.11
cp (copy)  (0) 2010.09.29