FreeBSDでWANではポートを開きますが、LANでは開かない方法は何ですか?

FreeBSDでWANではポートを開きますが、LANでは開かない方法は何ですか?

プレイボックス/サーバー/急流ボックスとして使用するFreeBSDシステムがあります。私のLANの一部です。意味は次のとおりです(OpenBSD Webサイトの例では変更されています)。

[ 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が分離されており、2つの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から簡単に入手できます。ポートとパッケージ

関連情報