뭔지는 모르겠지만 뭔가 잘못하고 있는 것 같습니다... 제 목표는 일부 트래픽, 정확히 말하면 www 트래픽을 제한할 수 있는 것입니다. 내 게스트 운영 체제 중 하나는 웹 프록시라는 것을 실행하며 최종 사용자는 웹 사이트를 통해 모든 웹 페이지를 탐색할 수 있습니다. 관심 있는 사람은 여기를 참조하십시오.
다음은 내 /etc/ipfw.rules
파일과 ipfw show
및 다음입니다 ipfw pipe show
.
플러시 파이프 플러싱 파이프 1 구성 bw 1Mbit/s 마스크 src 포트 www 파이프 2는 대역폭 1Mbit/s 마스크 src 포트 www를 구성합니다. 모든 IP에서 모든 IP로 허용하려면 lo0을 통해 100을 추가하세요. 127.0.0.0/8에 200 거부 IP 추가 모든 항목에 300 거부 127.0.0.0/8 IP 추가 임의의 dst 포트 www uid 데몬에 8381 파이프 1 tcp 추가 모든 src 포트 www uid 데몬에 8382 파이프 2 tcp 추가 모든 TCP에서 모든 대상 포트로의 smtp를 허용하려면 8025를 추가하세요. 모든 대상 포트에서 pop3 tcp를 허용하려면 8110을 추가하세요. 모든 imap에서 모든 대상 포트로 TCP를 허용하려면 8143을 추가하세요. 모든 dst 포트 imap에서 TCP를 허용하려면 8993을 추가하세요. 모든 대상 포트에서 TCP를 허용하려면 8995를 추가하세요. pop3 any에서 any로 65000 패스를 모두 추가하세요. su-3.2# ipfw 디스플레이 00100 85839853 23452504269 lo0을 통해 모든 IP에서 모든 IP로의 액세스를 허용합니다. 00200 0 0 127.0.0.0/8에 대한 모든 IP 거부 00300 0 0 127.0.0.0/8의 IP를 거부합니다. 08025 8835622 3440233341 모든 대상 포트에서 TCP 허용 25 08110 748762 44303607 모든 대상 포트 110에서 TCP 허용 08143 443916 26822178 모든 대상 포트 143에서 TCP 허용 08381 139901701 10870804903 임의의 dst 포트에서 임의의 dst 포트로의 파이프 1 80 uid 데몬 08382 181159216 209004032651 파이프 2 tcp를 통해 80에서 모든 uid 데몬으로 08993 2621221 332143828 모든 대상 포트에서 TCP 허용 993 08995 880748 87973919 모든 대상 포트 995에서 TCP 허용 65000 323132905 187469722830 모든 것에서 모든 것까지 IP 허용 65535 0 0 누구에게서든지 IP를 거부합니다. su-3.2# ipfw 파이프라인 표시 00001: 1.000Mbit/s 0ms 50sl. 대기열 1개(버킷 1개) 드롭테일 마스크: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000 BKT 보호 ___소스 IP/포트____ ____대상. IP/포트____Tot_pkt/BytePkt/ByteDrp 0 TCP 64.237.55.83/49910 66.218.161.133/80 139909114 10871439505 0 0 50 00002: 1.000Mbit/s 0ms 50sl. 대기열 1개(버킷 1개) 드롭테일 마스크: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000 BKT 보호 ___소스 IP/포트____ ____대상. IP/포트____Tot_pkt/BytePkt/ByteDrp 0 TCP 66.218.161.133/80 64.237.55.83/49910 181159216 209004032651 0 0 21025730 Su-3.2#
mrtg
제가 아는 한 , ipfw
저는 이 문제를 해결하는 데 필요한 추가 정보를 기꺼이 제공할 수 있지만 우선 다음 사항을 준수해야 합니다.
su-3.2# uname -a FreeBSD x.xxx.xxx 7.3-릴리스 FreeBSD 7.3-릴리스 #13: 2010년 3월 23일 화요일 20:47:52 UTC [이메일 보호됨]:/usr/obj/usr/src/sys/GENERIC amd64 Su-3.2#
답변1
먼저, net.inet.ip.fw.one_pass
설정되어 있는지 확인하세요.
둘째, 파이프라인 구성에서 해당 마스크 매개변수를 사용할 필요는 없다고 생각합니다. 예를 들어 사용자가 NAT 뒤에서 통신하는 경우 등 패킷이 포트 80에서 왔는지 항상 확신할 수는 없습니다.
셋째, 규칙 200과 300 없이 시도하겠습니다. 내부적으로 파이프를 어떻게 처리하는지 잘 모르겠지만 트래픽 조절 섹션에는 ipfw(8)
다음 팁이 나열되어 있습니다.
체크리스트 다음은 규칙을 설계할 때 고려해야 할 몇 가지 중요한 사항입니다.
+o Remember that you filter both packets going in and out. Most connec-
시스템에는 데이터 패킷의 양방향 전송이 필요합니다.
+o Remember to test very carefully. It is a good idea to be near the
이 작업을 수행할 때 콘솔을 사용하세요. 콘솔에 액세스할 수 없는 경우 /usr/share/examples/ipfw/change_rules.sh에 있는 것과 같은 자동 복구 스크립트를 사용하십시오.
+o **Do not forget the loopback interface.**
넷째, 모든 규칙을 거부하도록 기본 규칙(=마지막 규칙 65000)을 변경하겠습니다. 이것은 좋은 방화벽 설계입니다. 이것이 없으면 다른 모든 허용 규칙은 낭비일 뿐입니다. ;)