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。