次の iptables ルールがあります。
*nat
-A POSTROUTING -o wlan0 -j MASQUERADE
COMMIT
*filter
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i wlan1 -p tcp -m state --state NEW --dport 22 -j ACCEPT
-A INPUT -j DROP
COMMIT
wlan0はパブリックネットワークに接続されています。
wlan1はプライベートネットワークに接続されています。
プライベートネットワークでルーターにSSHを許可します。
目的は、wlan1に接続されているネットワークからのトラフィックがルーターで発生しているように見えるようにすることです。つまり、MASQUERADEです。
パブリックインターフェイスで接続を確立できるようにしたくありません。最後のINPUTルールは、ルータ自体に着信するすべての接続を削除することです。
ただし、INPUTチェーンの削除ルールは、wlan1に接続されているネットワークにバインドする必要があるトラフィックを削除するようです。
INPUTチェーンから削除ルールを削除すると機能しているように見えますが、そうするとルーターへの接続が許可されます。
修正する:
同じ明白なネットワーク構成はCentosでうまく機能しますが、Raspbianでは転送がなく、INPUT削除ルールが計算され続けます。
注:このテスト環境のすべてのチェーンのポリシーは「承認」に設定されているため、この場合、回答で「転送」ルールを受け入れる必要はありません。
ベストアンサー1
wlan1
システムがトラフィックをルーティングするには、転送を有効にする必要がありますwlan0
。これを行うための最初のステップは、転送マスタースイッチを有効にすることです。
sysctl net.ipv4.ip_forward=1
(耐久性を維持するにはに追加してくださいnet.ipv4.ip_forward=1
。/etc/sysctl.conf
)
その後、転送可能なトラフィックに何が起こるかを示すiptables FORWARDルールが必要です。
iptables -A FORWARD -i wlan1 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -j DROP