最近、GUFW にいくつかのルールを追加して、自分の (個人の) VPN 接続のみが外部に出られるようにしました。xxxx は私の IP、yyyy は私が接続する VPN の IP です。
宛先 - アクション - 送信元
yyyy 許可 アウト xxxx
どこでも拒否 xxxx
これまでのところ、すべて正常に動作しています。VPN 接続以外は何も通過できず、すべてがトンネルを通過します。インターネット、すべてが動作しています。
ホーム ネットワーク上のホスト (tttt) をスキャンして識別したいので、 nmap を使用して Syn スキャンを実行します。
sudo nmap tttt -sS -v
ただし、次のように表示されるため、ファイアウォールがプローブをブロックしているようです。
send_ip_packet_sd の sendto: sendto(5, packet, 44, 0, tttt, 16) => 操作は許可されていません
そこで私はこのルールを追加しました:
xx0.0/16 許可 アウト xxxx
不思議なことに、/24 ネットマスクを使用しても同じエラーが発生します。ファイアウォールを無効にすると問題は解決しますが、実際の解決策を探しています。
何が問題なのか何か手がかりはありますか? ありがとうございます。
解決済み: iptables のルールの順序は非常に重要です。gufw はそれを簡略化したものなので、ルールの順序を変更する必要がありました。まず、インターフェイスがサブネットと通信することを許可し、次にインターフェイスが世界全体と通信することを拒否します。これでサブネットに対して ping やスキャンなどを実行できますが、VPN を使用していない場合はインターネットの残りの部分はブロックされます。ping、スキャン... 外に出ることはできません。
答え1
私の編集で述べたように、ルールの順序は非常に重要です。
gufw の場合でも、それを考慮する必要があります。したがって、私が意図したことを実行するには、次の操作を実行します。
まず、インターフェイスがサブネット (xx0.0/16) と通信することを許可し、次に残りの世界との通信を拒否します。
どのルールが最初に考慮されるのかわからなかったので、順序を逆にしました。