30

Linux PC を備えたホーム ネットワークがあり、そのすべてで iptables が実行されています。LAN を Linux ゲートウェイ/ファイアウォールの背後に配置する方が簡単だと思うので、ルーターと LAN の間に PC (fedora を使用、GUI なし) を配置し、iptables を構成しました。ここでは問題ありません。INPUT は dns と http (およびいくつかのローカルのもの) のみを許可し、転送は正常に機能します。LAN はインターネットに接続します。

しかし、私の質問は次のとおりです。FORWARD は外部からのすべてを許可しますか、それとも INPUT で構成したポートのみを許可しますか? FORWARD と INPUT は一緒に機能しますか、それとも別々ですか?

これは私のiptablesです:

*nat
:PREROUTING ACCEPT [16:1336]
:INPUT ACCEPT [14:840]
:OUTPUT ACCEPT [30:2116]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o p1p1 -j MASQUERADE
COMMIT
# Completed on Tue Oct 16 09:55:31 2012
# Generated by iptables-save v1.4.14 on Tue Oct 16 09:55:31 2012
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [91:9888]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p UDP --dport 53 -j ACCEPT
-A INPUT -p TCP --dport 53 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i p1p1 -p tcp -m multiport --dports 20,21 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i p3p1 -p tcp -m multiport --dports 20,21 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i p1p1 -p tcp -m tcp --dport 5000:5100 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i p3p1 -p tcp -m tcp --dport 5000:5100 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i p1p1 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.2.0/24 -i p3p1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -s 192.168.1.0/24 -i p1p1 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -i p1p1 -p tcp -m multiport --dports 20,21,443 -j DROP
-A INPUT -i p1p1 -p tcp --dport 5000:5100 -j DROP
-A INPUT -i p1p1 -p icmp -m icmp --icmp-type 8 -j DROP
-A FORWARD -s 192.168.2.0/24 -j ACCEPT
-A FORWARD -d 192.168.2.0/24 -j ACCEPT
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A OUTPUT -j LOG --log-prefix "denied out: "

COMMIT

p1p1 (.1.x) は外部 NIC、p3p1 (.2.x) は内部です。

4

2 に答える 2

72

INPUT、FORWARD、および OUTPUT は別です。パケットは 3 つのチェーンの 1 つだけにヒットします。

宛先がこのサーバーに対するものである場合 INPUT チェーンにヒットします。ソースがこのサーバーからのものである場合は、OUTPUT にヒットします。ソースと宛先が両方とも他のマシンである場合 (サーバー経由でルーティングされいる場合)、FORWARD チェーンにヒットします。

于 2012-10-18T00:02:03.333 に答える