FreeBSD에서 WAN에서는 포트를 열지만 LAN에서는 열지 않는 방법은 무엇입니까?

FreeBSD에서 WAN에서는 포트를 열지만 LAN에서는 열지 않는 방법은 무엇입니까?

플레이박스/서버/토렌트박스로 사용하는 FreeBSD 시스템이 있습니다. 내 LAN의 일부입니다. 의미는 다음과 같습니다(OpenBSD 웹 사이트의 예에서 변경됨).

[ desktop ]    [ laptop ]
    |            |                               
 ---+------+-----+------- [switch] -------- ( DSL modem )
           |
       [ FreeBSD playbox ]

10.0.0.0/24 범위 내의 모든 장치에 고정 IP를 설정했습니다. 따라서 내 DSL 모뎀은 10.0.0.1이고 데스크탑은 10.0.0.2이며 FreeBSD 상자는 10.0.0.3입니다. 또한 DHCP가 활성화되어 있으므로 고정 IP가 없는 모든 컴퓨터(친구가 노트북을 가져옴)에는 DSL 모뎀에 의해 10.0.0.30 - 10.0.0.60 범위의 IP가 할당됩니다.

이더넷 카드(em0)만 있고 LAN이 아닌 WAN에서 포트를 열려고 합니다. 이 방법:

block in all
pass out all keep state
pass in proto tcp from any to any port 22

LAN에서도 포트가 열립니다.

내가 본 모든 예에서는 WAN과 LAN이 분리되어 있고 두 개의 NIC가 있으며 FreeBSD는 중간 계층(방화벽) 역할을 합니다.

그렇다면 WAN에서만 포트를 어떻게 열 수 있습니까?

이 질문에 대한 후속 조치가 있습니다. LAN과 WAN에서 일부 포트를 열고 싶지만 WAN에는 몇 가지 제한 사항을 적용하고 싶습니다. 온라인에서 찾은 예는 다음과 같습니다.

# Setup a table and ruleset that prevents excessive abuse by hosts
# that attempt to brute force the ssh daemon with repeated requests.
# any host that hammers more than 3 connections in 5 seconds gets
# all their packet states killed and dropped into a blackhole table.
table <wan_abuse> persist
block in quick from <wan_abuse>
pass in on $eth proto tcp to any port $wan_servers_tcp flags S/SA keep \
state (max-src-conn 10, max-src-conn-rate 3/5, overload <wan_abuse> flush)

답변1

LAN 액세스 차단: pf.confLAN 서브넷이 무엇인지 알고 있으면 해당 서브넷의 트래픽을 선택적으로 차단할 수 있습니다. 귀하의 예를 사용하여 :

block in all
pass out all keep state

lan_subnet = "10.0.0.0/24"
block in quick proto tcp from $lan_subnet to any port 22
pass in proto tcp from any to any port 22

WAN 속도를 제한하지만 LAN은 제한하지 않음: 예를 들어, 포트 80 및 8080에서 인터넷의 트래픽 속도를 제한하지만 이러한 포트의 LAN 속도는 제한하지 않으려고 한다고 가정해 보겠습니다. 이 코드 조각은 LAN에서의 액세스를 허용하면서 악의적인 WAN 호스트를 추적하고 차단합니다.

table <http_abuse> persist
http_ports = "{ 80 8080 }"

pass in quick proto tcp from $lan_subnet to any port $http_ports
block in quick proto tcp from <http_abuse> to any port $http_ports

pass in proto tcp from any to any port $http_ports \
    flags S/SA keep state \
    (source-track rule, max-src-conn 50, max-src-conn-rate 25/2, \
     overload <http_abuse> flush)

보다 유연한 속도 제한 및 차단을 위해 다음과 같은 도구를 사용할 수 있습니다.sshguard, 에서 쉽게 구할 수 있습니다.포트 및 패키지.

관련 정보