PF를 사용하여 특정 IP로 나가는 연결 차단

PF를 사용하여 특정 IP로 나가는 연결 차단

TCP 요청이 특정 IP 주소로 전송될 때 기본 거부 규칙을 설정하는 방법에 대한 힌트를 줄 수 있습니까? 나는 사용하고있다PF 패킷 필터. 도움이 필요하세요?

답변1

/etc/pf.conf구성에서 가장 기본적인 형태는 다음과 같습니다.

block from any to 192.0.2.2

# which is equivalent to:
block drop from any to 192.0.2.2

기본적으로 이 block작업은 drop패킷을아무 말 않고모든 인터페이스에서, any소스 IP에서 양방향으로. 클라이언트는 자신이 차단되었다는 사실을 모르기 때문에 시간이 초과되어 다시 시도할 수도 있습니다.

block return~이다“친절한 이웃”클라이언트에게 주소에 접근할 수 없음을 알리는 방법대답하다프로토콜별 방식으로 다음을 사용합니다.TCP RST(리셋)또는ICMP에 연결할 수 없음가방. 고객은 이 정보를 사용하여 포기하거나 정상적인 방식으로 다시 시도할 수 있습니다.

block return from any to 192.0.2.2


block이 옵션을 사용하여 기본 동작을 변경할 수 있습니다 set block-policy.


더 복잡한 예이지만 규칙 세트가 커지기 시작하면 관리하고 읽기가 더 쉽습니다.

mybadhosts = "{ 192.0.2.2, 203.0.113.0/24 }"
ext_if = "em0"

block return on $ext_if from any to $mybadhosts                 # example #1
block return on em0 from any to { 192.0.2.2, 203.0.113.0/24 }   # ^expanded form

block drop out on egress from any to $mybadhosts                # example #2

예시 #1변수, 목록 {}, 넷마스크 의 간단한 사용법을 표시 /24하고 인터페이스를 지정합니다 em0. (변수가 정의되어 있음을 참고하세요.$ 기호 없음, 그리고따옴표가 제거되었습니다., 런타임 시 규칙이 확장되는 경우)

예시 #2인터페이스 그룹 out에서 아웃바운드 패킷 삭제 egress( 참조 ifconfig(8))


또한보십시오:

관련 정보