이를 수행하는 가장 좋은 방법은 테이블을 정의하고 호스트를 차단하는 규칙을 작성하는 것입니다 pf.conf
.
table <badhosts> persist
block on fxp0 from <badhosts> to any
그런 다음 IP 주소를 동적으로 추가 / 삭제하십시오.
$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T delete 1.2.3.4
다른 'table'명령에는 flush
(모두 제거) replace
및 show
. 자세한 내용 man pfctl
을 참조하십시오 .
보다 영구적 인 목록을 원하면 하나 이상의 파일로 보관할 수 있습니다. 에서 pf.conf
:
table <badhosts> persist file "/etc/badguys1" file "/etc/badguys2"
block on fxp0 from <badhosts> to any
IP 주소 대신 호스트 이름을 추가 할 수도 있습니다. man pf.conf
및 의 "테이블"섹션을 참조하십시오 man pfctl
.
참고 : 위의 예는 인터넷 연결 인터페이스가이라고 가정하고 fxp0
설정에 따라 변경하십시오. 또한 규칙 pf.conf
은 순차적으로 평가 되고 마지막으로 적용되는 규칙과 일치 block
하는지 pass
규칙 으로 평가 됩니다. 이 규칙 집합으로
table <badhosts> persist
block on fxp0 from <badhosts> to any
pass inet tcp from 192.168.0.0/24 to any port 80
1.2.3.4 및 192.168.0.10을 badhosts
테이블에 추가 한 후
$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T add 192.168.0.10
1.2.3.4 및 192.168.0.10의 모든 트래픽은 차단되지만 규칙과 일치하고 규칙을 무시 하기 때문에 두 번째 호스트 가 다른 시스템의 포트 80에 연결할 수 있습니다 .pass
block