【VPS】Ubuntuを24.04にアップグレードしたらiptablesはレガシーになってました。

VPSを構築したときはファイアウォールをiptablesで設定したのですが、

VPSにファイアーウォールを設定する | 自分、ぼっちですが何か?

iptableの設定を保存する | 自分、ぼっちですが何か?

どうやら24.04へアップグレードした時点でiptablesはレガシーとなってしまって、

デフォルトでnftablesを使用するように変わったらしい。

で、アップグレードした時点で勝手に切り替わってしまい、

ファイアウォールの設定が適用されていませんでした。

という事で設定作業開始。

過去のiptablesの設定内容は、以下の場所に残っているらしい。

$ sudo cat /etc/iptables/rules.v4

で、この設定をnfttablesAIに読み込ませてnfttableの設定に書き換えて貰いました。

$ sudo vi /etc/nftables.conf

テキストファイルを編集。

!/usr/sbin/nft -f

flush ruleset

table inet filter {
chain input {
type filter hook input priority 0;
policy drop;

    ct state established,related accept
    ip protocol tcp tcp flags & (fin|syn|rst|psh|ack|urg) == 0 drop
    ct state new ip protocol tcp tcp flags & (fin|syn|rst|ack) != syn drop
    ip protocol tcp tcp flags & (fin|syn|rst|psh|ack|urg) == (fin|syn|rst|psh|ack|urg) drop
    iif "lo" accept
    ip protocol icmp accept

    # 許可するポート(tcp/udp)
    tcp dport 80 accept
    tcp dport 443 accept
    tcp dport 20 accept
    tcp dport 21 accept
    tcp dport 3306 accept
  :
}

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

chain output {
    type filter hook output priority 0;
    policy accept;
}

}

ファイルを保存したら、以下のコマンドで適用。

$ sudo nft -f /etc/nftables.conf

このときエラーがあれば、エラー内容が出力されます。

エラーがなければ再起動しても適用されるようにします。

$ sudo systemctl enable nftables
$ sudo systemctl start nftables

そして、適用されている設定内容を確認。

$ sudo nft list ruleset

設定内容と一致してたらOK。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.