System/OS
2003.04.23 10:33
[linux] ipfwadm를 이용한 패킷필터링(구버전)
Views 13107 Comment 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
No. | Category | Subject | Author | Date | Views |
---|---|---|---|---|---|
1173 | Develop |
'2014 모바일 개발 트렌드' 발표자료입니다.
![]() |
hooni | 2014.10.02 | 1140 |
1172 | System/OS | Apache CORS 설정 1 | hooni | 2020.09.04 | 2919 |
1171 | Develop | Aspect Oriented Programming in Objective-C | hooni | 2015.05.18 | 952 |
1170 | System/OS | asx미디어 정보 기록.. | hooni | 2003.04.23 | 20609 |
1169 | System/OS |
CentOS 6.5 USB 설치
6 ![]() |
hooni | 2013.12.18 | 37811 |
1168 | System/OS | CentOS 에서 Cacti 설치하기 | hooni | 2015.01.02 | 1943 |
1167 | System/OS |
Configure Postfix to Use Gmail SMTP on Ubuntu 18.04
![]() |
hooni | 2020.02.07 | 1509 |
1166 | Develop |
DDay Memo 1.9.4 소스코드
![]() |
hooni | 2015.10.03 | 0 |
1165 | Etc | EBS [수학영역] 미적분과 통계 기본 - 정규분포의 의미와 특징은? | hooni | 2015.04.20 | 1106 |
1164 | System/OS |
Enable Safari Hidden Debug Menu in Mac OS X
![]() |
hooni | 2017.02.07 | 1740 |
1163 | System/OS |
Enable the Develop Menu in Safari
![]() |
hooni | 2017.02.07 | 1342 |
1162 | Develop |
GCM 사용하기 2 (단말에 GCM 구현하기)
![]() |
hooni | 2013.07.06 | 23416 |