問題は、現在3つの仮想テストマシンがあることです。顧客1、アイピ192.168.1.10
、クライアント2、IP 192.168.2.20
、ルーターIPをゲートウェイ192.168.1.1
として使用して、Client1とClient2を接続します。192.168.2.1
存在するルーター、hash:ip,port
たとえば、次のように設定しました。
ipset add myset 192.168.2.20,tcp:80
ipset add myset 192.168.2.20,tcp:443
存在するクライアント2ポート80でリッスンするようにnginx設定がありますが、望ましくありません。顧客1接続可能クライアント2ポート80のTCPを介して、ルータールールを追加します。iptables -A FORWARD -m set --match-set myset dst -j DROP
存在する顧客1私は実行し、wget 192.168.2.20/index.html
私のiptablesルールのためにルーター、顧客1に接続できないはずです。クライアント2しかし、Grabがindex.html
機能せず、ファイルが正常に検索されました。
hash:ip,port
問題は、設定されたタイプのipsetでのみ発生します。タイプを選択しhash:ip
てプロトコル/ポート部分をipsetからiptablesに移動すると、すべてがうまく機能します。ただし、いつでもブロックリストを交換するには、ipsetを正しく使用する必要があります。
私は何が間違っていましたか? 3つの仮想マシンはすべてUbuntu 17.04で実行され、最小インストール、GUIはありません。
答え1
ありがとうこれコメント、トラブルシューティング:
代わりに(2つ)を
iptables -A FORWARD -m set --match-set myset dst -j DROP
使用する必要がありました。
iptables -A FORWARD -m set --match-set myset dst,dst -j DROP
目的地一つの代わりに)