web-dev-qa-db-ja.com

特定の例外を除いて、すべてのネットワークトラフィックからデバイスをブロックする

Tomatoを実行するルーターを持っているので、iptablesにアクセスできます。ネットワーク上に192.168.1.100のIPアドレスを持つデバイスがあります。非常に特殊な場合を除いて、インターネットにデータを送信したくありません。

具体的には、送信データをインターネットに送信したくありません例外安全なSMTP(TCPポート587または465)の場合、それでも1つのSMTPサーバーにのみ送信します。着信トラフィックも懸念事項ですが、発信をブロックすることがより重要です。引き続きLANトラフィックを許可する必要があるため、発信元と宛先が192.168.1.0/24のパケットで問題ありません。

iptablesについてよく知らないので、これを行う方法がわかりません。または、iptablesが最善のアプローチであるかどうかもわかりません。そのドロップパケットの前にルールを設定しましたが、特定の要件を満たすすべてのパケットをブロックするルールを設定したことはありませんしかしパケット。

私がこれをやろうとどのように提案しますか?

3
user3466413

ESTABLISHED、RELATEDトラフィックを許可するルールがない場合、トラフィックはまったく通過しない可能性があります。

iptables -I INPUT 1 -m conntrack -j ACCEPT  --ctstate RELATED,ESTABLISHED
iptables -A OUTPUT -m tcp -p tcp -m multiport --dports 587,465 -d <ipaddress of smtp> -j ACCEPT
iptables -A OUTPUT -s 192.168.1.100 -j DROP
iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.1.0/24 -m tcp -p tcp -m multiport --dports 587,465 -j ACCEPT 
iptables -A FORWARD -s 192.168.1.100 !-d 192.168.1.0/24,<ipaddress of smtp> -j DROP

他のすべてのトラフィックを許可、許可、および拒否します。

しかし、あなたが持っている他のルールを知らなければ、私はそれらをどこに置くべきかをあなたに言うことができません。

ルールの順序は重要です

ルールは順番に処理され、既存のルールセットの最後に私のルールを追加すると、正しく機能しない可能性があります。

3
cybernard

必要なのは、次のようなルールでホストからのアウトバウンドトラフィックをドロップすることです。

iptables -A FORWARD -s 192.168.1.100 -p tcp --dports 80 -j ACCEPT 
iptables -A FORWARD -s 192.168.1.100 -j DROP

最初のルールは、デバイスが任意のホストにHTTPプロトコルを使用することを許可し、2番目のルールは、ホームネットワーク外の他のトラフィックを禁止します。

壮大なホストへのすべてのトラフィックを許可する必要がある場合は、代わりに次のようなものを使用する必要があります。

iptables -A FORWARD -s 192.168.1.100 -d 8.8.8.8 -j ACCEPT 
iptables -A FORWARD -s 192.168.1.100 -j DROP

デバイスは任意のプロトコルでIP8.8.8.8に接続できますが、それ以外のすべてのプロトコルは拒否されます。

他の例を探すことができます ここ

1
Valentin