System/OS
2003.04.23 10:33
[linux] ipfwadm를 이용한 패킷필터링(구버전)
조회 수 13399 댓글 0
1. 기존 정책을 부인으로 하는 예
ipfwadm -F -p deny
# 전달, 입력, 출력에 대하여 규칙을 비운다.
ipfwadm -F -f
ipfwadm -I -f
ipfwadm -O -f
# 전자우편을 여러분의 서버로 전달
ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 - D 192.1.2.10 25
# 외부 전자우편 서버로의 접속요청을 전달
ipfwadm -F -a accept -b -P tcp -S 196.1.2.10 25 -D 0.0.0.0/0 1024:65535
# 웹 접속 요청을 여러분의 웹 서버로 전달
/sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0 /0 1024:65535 -D 196.1.2.11 80
# 외부 웹 서버에 대한 요청을 전달
/sbin/ipfwadm -F -a accept -b -P tcp -S 196.1.2. * 80 -D 0.0.0.0/0 1024:65535
# DNS 패킷을 전달
/sbin/ipfwadm -F -a accept -b -P udp -S 0.0.0.0 /0 53 -D 196.1.2.0/24
# 현재의 분석 규칙을 비운다
ipfwadm -A -f
# 회계 분석(Accounting)
/sbin/ipfwadm -A -f
/sbin/ipfwadm -A out -i -S 196.1.2.0/24 -D 0.0.0.0/0
/sbin/ipfwadm -A out -i -S 0.0.0.0/0 -D 196.1.2.0/24
/sbin/ipfwadm -A in -i -S 196.1.2.0/24 -D 0.0.0.0/0
/sbin/ipfwadm -A in -i -S 0.0.0.0/0 -D 196.1.2.0/24
2. 기본정책을 허가(accept)로 하는 예
/sbin/ipfwadm -F -f
/sbin/ipfwadm -F -p accept
# .. 이번에는 '들어오는' 패킷에 대하여
/sbin/ipfwadm -I -f
/sbin/ipfwadm -I -p accept
# 우선 PPP 인터페이스를 봉쇄한다.
# 개인적으로는 '-a reject -y' 대신 '-a deny'를 사용하고 싶지만 그
# 렇게하면 인터페이스 접속 자체가 불가능하게 된다.
# -o 는 거부된 데이터그램을 기록해두도록 한다.설정 실수에 대한 어떤 공
# 격이 있었는가를 알 수 있으나 디스크 공간을 필요로 한다.
/sbin/ipfwadm -I -a reject -y -o -P tcp -S 0/0 -D 172.16.174.30/sbin/ipfwadm -I -p accept
# 위조된 패킷은 그 즉시 버린다:
# 멀티캐스트/애니캐스트/브로드캐스트 주소로부터 어떠한 것도 와서는 안된다.
/sbin/ipfwadm -F -a deny -o -S 224.0/3 -D 172.16.37.0/24
# 루프백 네트워크의 패킷은 회선 상을 돌아다니면 안된다.
/sbin/ipfwadm -F -a deny -o -S 127.0/8 -D 172.16.37.0/24
# 외부로부터 오는 SMTP, DNS 접속은 받아들이지만 오로지 메일/네임 서버에게만 전달한다.
/sbin/ipfwadm -F -a accept -P tcp -S 0/0 -D 172.16.37. 19 25 53
# DNS는 TCP 뿐 아니라 UDP도 사용한다. 따라서 네임 서버에 대해서는 UDP도 허용해야 한다.
/sbin/ipfwadm -F -a accept -P udp -S 0/0 -D 172.16.37. 19 53
# 하지만 NFS 또는 Larry McVoy의 NSF 확장 기능 등 위험한 포트로부터
# 나오는 답변은 전달하지 못하게 한다. squid를 실행하고 있다면 그 포트 또한 추가하기 바란다.
/sbin/ipfwadm -F -a deny -o -P udp -S 0/0 53 -D 172.16.37.0/24 2049 2050
# 그 외의 포트에 대해서는 괜찮다.
/sbin/ipfwadm -F -a accept -P udp -S 0/0 53 -D 172.16.37.0/24 53 1024:65535
# identd에 대한 접속 요청은 거절(reject)
# 우리는 여기서 'reject'를 사용함으로써 접속하는 호스트에게 즉시 접속
# 해도 소용없다는 반응을 보내준다. 그렇지 않으면 ident가 타임아웃 걸리
# 는 동안 지연이 생긴다.
/sbin/ipfwadm -F -a reject -o -P tcp -S 0/0 -D 172.16.37.0/24 113
# 192.168.64 그리고 192.168.65 네트워크는 우리가 믿는 친구들이므로
# 몇 가지 일반적인 서비스를 허가한다.
/sbin/ipfwadm -F -a accept -P tcp -S 192.168.64.0/23 -D 172.16.37.0/24 20:23
# 내부에서 발생하는 일에 대해서는 허가하고 통과시킨다.
/sbin/ipfwadm -F -a accept -P tcp -S 172.16.37.0/24 -D 0/0
# 다른 대부분의 TCP 접속 요청은 거부하고 기록해둔다.
# (만약 ftp가 제대로 작동하지 않는다면 1:1023 을 추가하라)
/sbin/ipfwadm -F -a deny -o -y -P tcp -S 0/0 -D 172.16.37.0/24
# UDP도 마찬가지이다.
/sbin/ipfwadm -F -a deny -o -P udp -S 0/0 -D 172.16.37.0/24
-
[linux] Oracle8.1.6, Mysql+PHP+Zend Optimizer+APACHE+Tomcat(jsp,servlet)+IMAP+gd
-
[linux] apache, php, jsp 환경설정하기..
-
[linux] 랜카드 2개 설정 & iptables 로 사설 ip..
-
[linux] 간단한 NAT 설정 script
-
[linux] iptables 명령어 매뉴얼(options)
-
[linux] 패킷의 소스 주소 바꾸기
-
[linux] 패킷 스니퍼링
-
[windows] 배치(bat)파일 제작 방법
-
[windows] 여러가지 활용 팁
-
[windows] 도스 사용 팁
-
[windows] 98/ME 속도 빠르게 튜닝(부팅,메모리,레지스터)
-
[linux] ipfwadm를 이용한 패킷필터링(구버전)