プレイボックス/サーバー/急流ボックスとして使用する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.conf
LANサブネットが何であるかを知っている場合は、そのサブネットからのトラフィックを選択的にブロックできます。あなたの例を使用して:
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から簡単に入手できます。ポートとパッケージ。