
2つのネットワークカードを含むLinuxボックス(Turnkey Core 14.2)があります。
eth0
パブリックIP、WAN(私たちが呼ぶ名前123.123.123.123
)です。
eth1
それは私のネットワーク、LANです。
SSH
WANを介してブロックしたいですiptables
。
私はコマンドを使用します
sudo iptables -A INPUT -p tcp -s 123.123.123.123 --dport 22 -j DROP
あの時書を書いたら
sudo iptables -L
私は答えを得た
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- 123.123.123.123 anywhere tcp dpt:ssh
PuTTY
問題は、123.123.123.123への接続に使用するとブロックされないことです。
私が間違っていることを知っていますか?
答え1
-s
宛先アドレス(オプション)ではなく送信元アドレス(オプション)に基づいてトラフィックを一致させるため、ルールは-d
他のホストからのトラフィックを破棄しません。
アドレスの代わりにインターフェイスを入力して-i
オプションを一致させることもできます。たとえば、すべての着信ポートトラフィックを破棄します。番号22~のためイーサネット0:
iptables -A INPUT -i eth0 -p tcp --dport 22 -j DROP
答え2
@sebasthが答えたように、パブリックIPに接続するトラフィックをブロックしたいので、次の123.123.123.123
アーキテクチャになります。
source `INTERNET`
destination `123.123.123.123`
したがって、-s
(ソース)を-d
(ターゲット)に変更できます。
回線に関しては、(追加)の代わりに(挿入)をiptables
使用して追加することをお勧めします。なぜなら、何らかの理由ですべての着信トラフィックを許可する古いルールがある場合は、そのルールが回線の末尾に追加され、最初のルールが見つかります。-I
-A
port 22
-A
iptables
iptables -I INPUT -p tcp -d 123.123.123.123/32 --dport 22 -j DROP
~からman iptables
-A, --append chain ルール仕様は、選択したチェーンの末尾に 1 つ以上のルールを追加します。送信元名および宛先名が複数のアドレスで解決されると、可能な各アドレスの組み合わせのルールが追加されます。
-I, --insert chain [rulenum] ルール仕様は、選択したチェーンに 1 つ以上のルールを与えられたルール番号として挿入します。したがって、ルール番号が1の場合、チェーンの先頭に1つ以上のルールが挿入されます。ルール番号が指定されていない場合でも、これはデフォルトです。