ipsetを使用して特定のプロトコルをブロックする方法は?

ipsetを使用して特定のプロトコルをブロックする方法は?

問題は、現在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目的地一つの代わりに)

おすすめ記事