System/OS
2003.04.23 10:33
[linux] ipfwadm를 이용한 패킷필터링(구버전)
조회 수 13338 댓글 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
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
» | System/OS | [linux] ipfwadm를 이용한 패킷필터링(구버전) | hooni | 2003.04.23 | 13338 |
47 | System/OS | [linux] ipchains 사용예(패킷 필터링) | hooni | 2003.04.23 | 14505 |
46 | System/OS | [linux] ipchains 옵션 | hooni | 2003.04.23 | 13967 |
45 | System/OS | [linux] Xwindow/Xmanager 사용 | hooni | 2003.04.23 | 13800 |
44 | System/OS | [linux] 최소한의 커널 설정(커널설치 전체과정) | hooni | 2003.04.23 | 17770 |
43 | System/OS | [linux] 네트워크 커널 설정.. | hooni | 2003.04.23 | 16793 |
42 | System/OS | [linux] 커널 컴파일, 설정 | hooni | 2003.04.23 | 18185 |
41 | System/OS | [linux] 네트웍 트래픽 모니터링(MRTG) | hooni | 2003.04.23 | 43853 |
40 | System/OS | [linux] DHCP(Dynamic Host Configuration Protocol) 서버 | hooni | 2003.04.23 | 13323 |
39 | System/OS | [linux] Masquerade 가상 ip분할기법 | hooni | 2003.04.23 | 48363 |
38 | System/OS | [linux] DNS(Domain Name System) 설치, 설정 | hooni | 2003.04.23 | 12748 |
37 | System/OS | [linux] sendmail 설정/사용 | hooni | 2003.04.23 | 14883 |