VPNを介した接続のみを許可し、すべてのipv6トラフィックをブロックするようにnftablesを設定します。

VPNを介した接続のみを許可し、すべてのipv6トラフィックをブロックするようにnftablesを設定します。

VPNを介したトラフィックのみを許可し(そしてipv6漏洩を防ぐためにすべてのipv6トラフィックをブロックする)、私のArchlinuxディストリビューションでnftablesファイアウォールを設定しようとしています。

私はしばらくそれを使用してきましたが、最終的にWebを閲覧するための設定を得ました。今までnftableについて私が知っているところによると、そうすることはできませんでした。ルールセットは非常に短く、次のようになります。

table inet filter {
    chain input {
            type filter hook input priority 0; policy drop;
            jump base_checks
            ip saddr VPN_IP_ADRESS udp sport openvpn accept
    }

    chain forward {
            type filter hook forward priority 0; policy drop;
    }

    chain output {
            type filter hook output priority 0; policy drop;
            ip daddr VPN_IP_ADRESS udp dport openvpn accept
            oifname "tun0" accept
    }

    chain base_checks {
            ct state { related, established} accept
            ct state invalid drop
    }
}

試行錯誤を経て道を探そうと努力し、その中には他にも多くのルールもありますが、それがすべてです。まず、VPNサーバーに接続してからWebを閲覧するだけです。アウトアウトチェーンから最後のルールを削除すると、Webを閲覧できなくなります。

私はこれについて完全に初めてで、何も知らず、学習しようとしています。残念ながら、nftablesのドキュメントはそれほど広範囲ではなく、今は少し停滞しています。

これまで私が理解しているように、この設定はVPNへの接続を許可する必要がありますが、他の着信トラフィックは許可しないでください。ただし、問題なくWebを閲覧できます。

なぜ動作するのか、そしてより完全な設定のためにnftables設定をどのように進めるべきかを知っている人はいますか?

答え1

state related着信トラフィックを使用して許可できますestablished。 HTTP トラフィックは要求を送信するクライアントによって開始され、応答はestablished出力チェーンの規則に従って一致します。ルートがVPNを通過すると仮定すると、ルールは初期トラフィックを許可しますoif "tun0" accept

関連情報