iptablesを使用して2つのイーサネットポートを処理するには?
eth0ポートはLAN用(192.168.1.50プライベートIP)です。
eth1ポートはケーブルモデム(80.0.xxx.xxxパブリックIP)を介してインターネットに接続されます。
ifconfig
出力:
eth0 Link encap:Ethernet HWaddr 00:19:99:C1:86:BB
inet addr:192.168.1.50 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:137532 errors:0 dropped:0 overruns:0 frame:0
TX packets:55658 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:99968969 (95.3 MiB) TX bytes:10403525 (9.9 MiB)
Interrupt:50 Memory:fe700000-fe720000
eth1 Link encap:Ethernet HWaddr 00:19:99:C1:61:3B
inet addr:80.0.xxx.xxx Bcast:255.255.255.255 Mask:255.255.252.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:144558 errors:0 dropped:0 overruns:0 frame:0
TX packets:70347 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:34500131 (32.9 MiB) TX bytes:27893843 (26.6 MiB)
Interrupt:177 Memory:fe600000-fe620000
eth1
iptablesを使用してすべての着信パスをブロックし、ポート22のみを許可するにはどうすればよいですか?このように、インターネット側は当社のWebサーバー、FTPサーバーなどにアクセスできません。 SSHアクセスにはポート22のみが許可されます。 pingも機能するはずです。
ローカルネットワーク(eth0
)には70台を超えるクライアントPCがあります。サーバー上のすべてのエントリにアクセスできるはずですが、内部ローカルIP 192.168.1.20および192.168.1.30が192.168.1.50(プライベートIP)サーバーにアクセスできないようにします。 。
iptablesを使ってこれを行うには?
答え1
-i device
-o device
イーサネットデバイスを一致させるために使用できます。例えば、
iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT # must allow machine to talk to itself, else much breakage.
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
またはそのようなもの。-s
/を使用して送信元と宛先の-d
IPアドレスをフィルタリングすることもできます。
-i lan
代わりに&を使用できるようにイーサネットインターフェースの名前を指定することをお勧めします-i wan
。 udev ルールで名前を指定できます。 Debianでは/etc/udev/rules.d/70-persistent-net.rules
。
PS:WANインターフェイスをフィルタリングするときは、DHCPがまだ有効であることを確認してください(使用している場合)。そうしないと、リースが期限切れになると接続が突然切断される可能性があります。これはしばらく後になる可能性があります。
答え2
注意深い! !
SSHのためにポート21を開くことに言及しました。ポート21の標準使用法はftp、ポート22は標準SSHです。非標準のSSHポートを使用することは可能であり、時には必要ですが、忘れた場合(または他のユーザーに知らせることを忘れた場合)、最終的に途方もない面倒になります。
一般的に使用される iptables の例のコレクションはここにあります。
http://www.thegeekstuff.com/2011/06/iptables-rules-examples/
より一般的なIPTablesリファレンス: