nftables を使った OpenVPN の設定

Linux
この記事は約3分で読めます。

はじめに

 未だ nftables に対する理解が追いついていないので、設定に関してはひたすらググって出てきたものを観察して考えて適用していったけどいまいちしっくり来ない感じが。

 そこで ChatGPT に聞いてみたらシンプルでスッキリした設定が出てきたので備忘録としてペタリ。

VPN のパケットを nftables で NAT する

 ChatGPT が教えてくれた設定例は以下の通り。既存の設定と上手いことマージするようにした。
 VPN のネットワークレンジは OpenVPN の設定に合わせることと、「外部インターフェイス」の部分は eth1 とか ens160 だとか IF 名を記述する。

   table ip filter {
       chain input {
           type filter hook input priority 0;
           policy drop;
           
           # ループバックインターフェースを許可
           iif lo accept
           
           # 既に確立された接続を許可
           ct state established,related accept

           # OpenVPN ポートを許可 (例:1194/UDP)
           udp dport 1194 accept

           # 必要に応じて他のポートも許可
       }

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

           # 既に確立された接続を許可
           ct state established,related accept

           # VPN ネットワークからの転送を許可
           ip saddr 10.8.0.0/24 accept
       }
   }

   table ip nat {
       chain postrouting {
           type nat hook postrouting priority 100;
           
           # VPN ネットワークからのトラフィックをNATする
           ip saddr 10.8.0.0/24 oif <外部インターフェース> masquerade
       }
   }

おわりに

 ChatGPT は頼りになるし、例示してくれた設定で上手く動いたが、これが正しい物であるかは経過観察をしていきたい。

著者プロフィール
ぶっち

本格的に PC へ触れ始めてたのは 1990 年位から。
興味は PC 全般。OS は Windows と Linux などを嗜む。
プログラマやネットワークエンジニアを経てフリーに活動している 40 代も後半に入ったおじさんです。

ぶっちをフォローする

コメント

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.