동일한 호스트의 프로세스 간 통신을 필터링하기 위해 PF 방화벽 규칙을 작성하는 방법은 무엇입니까?
이 페이지를 읽으면서 man
규칙이 적용되려면 패킷이 특정 인터페이스를 물리적으로 통과해야 하며 로컬 인터페이스에서 다른 로컬 인터페이스로 전송된 패킷은 호스트의 TCP/IP 스택에 의해 처리되고 필터링되지 않는다는 것을 이해합니다.
그러나 로컬 인터페이스에서 다른 로컬 인터페이스로의 모든 트래픽을 필터링하기 위해 PF 방화벽 규칙을 어떻게 작성할 수 있습니까? 예:
DROP <local-src-ip>:<local-src-port> -> <local-target-ip>:<local-target-port>
답변1
PF 방화벽 규칙을 작성하는 방법 [...]
방법론에 대해 질문하고 계시나요? 아니면 그러한 규칙의 예를 들어주실 수 있나요? 어쨌든, 이 작업을 직접 수행하는 것은 어렵지 않을 것이라고 말하고 싶습니다.
user
Pf에는 (및)과 같은 필터링 기준 개념이 있으므로 group
원하는 전략을 시행할 수 있어야 합니다.
man pf.conf
:"...
user
사용자— 이 규칙은 지정된 사용자가 소유한 소켓 패킷에만 적용됩니다. 방화벽에서 시작된 나가는 연결의 경우 연결을 연 사용자입니다. 방화벽 자체로 들어오는 연결의 경우 이는 대상 포트에서 수신 대기하는 사용자입니다.
…”
루프백 인터페이스에서 모든 트래픽을 기록하는 것부터 시작하십시오. 이러한 유형의 통신에는 루프백이 사용되기 때문입니다. 일부 튜토리얼에서는 set skip on lo0
이를 당연한 것으로 지시하지만 분명히 반대 규칙이 필요하므로 이를 폐기합니다. - 키워드를 사용하여 규칙 집합을 호스트에 속한 주소로 제한할 수도 있지만 (self)
이것이 반드시 필요한 것은 아닙니다.
Pf는 다양한 포트 앤 버전 간에 크게 다를 수 있다는 점을 명심하세요. 예를 들어 MacOS와 함께 제공되는 기능은 오래되었으며 매뉴얼 페이지에 명시된 내용과 달리 일부 기능은 올바르게 작동하지 않습니다.