이메일을 적으시면 보안관련 소식을 받을수 있습니다.
이메일:







작성자:컴센스
편집자:엔시스(sis@sis.pe.kr)





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

 

 

****************************************************************************************************

본 포스팅의 저작권은 보안인닷컴과 작성자에 있으며 상업적 이용을 배제하며 콘텐츠 이용시에는 반드시 출처와 링크를 이용해 주시기 바랍니다. 무단도용은 저작권법에 저촉을 받습니다..

****************************************************************************************************

Posted by 비회원

댓글을 달아 주세요

  1. Favicon of https://boanin.tistory.com BlogIcon 보안인닷컴 2009.04.03 09:25 신고  댓글주소  수정/삭제  댓글쓰기

    예제 위주로 하여 바로 적용하기 쉽겠네요...나머진 조금 응용을 해야 겠습니다.

  2. 박동석 2009.04.03 10:19  댓글주소  수정/삭제  댓글쓰기

    차후 설치 및 테스트 해 보겠습니다. 모를땐 질 문 드릴께요 감사합니다. ^.^

  3. Favicon of https://eva1717.tistory.com BlogIcon eva1717 2009.04.04 09:10 신고  댓글주소  수정/삭제  댓글쓰기

    snort와 iptables를 묶어서 IPS를 구축한다고 하는데..^^
    팀 블로그 필진 분들이 올려주신 포스팅을 다 묶어서 조합만 잘 한다면..
    기술문서 그 이상의 문서가 나올 듯 싶네요..
    좋은 글 잘 보았습니다. 수고하셨어요^_^

  4. 보안지망생 2011.07.28 15:12  댓글주소  수정/삭제  댓글쓰기

    요즘 iptables 에 대해서 공부하는 중인데 유용한 정보 활용하겠습니다.

  5. 기능생17 2012.08.14 20:41  댓글주소  수정/삭제  댓글쓰기

    감사해요 ㅜㅜ 찾는데 힘들엇는데 ㅋ