Ubuntu 26.04 でサーバーの通信を制御する場合、nftables は基本になる firewall の仕組みです。SSH、Web、DNS、ルーティングプロトコルなど、許可する通信を明確にしておくと、複数 NIC 構成や FRR 構成でも管理しやすくなります。
この記事では nftables の基本構成、設定ファイル、構文確認、サービス有効化、反映後確認をまとめます。
nftables の考え方
nftables では table、chain、rule を組み合わせて通信を制御します。まずは input、forward、output のどこを制御したいのかを分けて考えます。
- input: サーバー自身に入ってくる通信
- forward: ルータや firewall として中継する通信
- output: サーバー自身から出ていく通信
インストールする
sudo apt update
sudo apt install -y nftables現在のルールを確認する
sudo nft list ruleset
systemctl status nftables --no-pager最小構成例
次は SSH と ICMP を許可し、それ以外の input を落とす最小例です。作業中の SSH を遮断しないよう、接続元や許可ポートを必ず確認してから適用します。
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
ct state established,related accept
iif lo accept
ip protocol icmp accept
ip6 nexthdr ipv6-icmp accept
tcp dport 22 accept
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}設定を確認する
nftables は構文確認してから反映します。いきなり本番適用せず、コンソールや復旧手段を用意しておきます。
sudo nft -c -f /etc/nftables.confサービスを有効化する
sudo systemctl enable --now nftables
systemctl status nftables --no-pager反映後に確認する
sudo nft list ruleset
ss -lntup
ip address
ip routeFRR を使う場合の注意
OSPF を使う場合は IP protocol 89 を許可する必要があります。BGP は TCP 179 を使います。ルーティングプロトコルを使うサーバーでは、通信制御と経路制御をセットで確認します。
ip protocol ospf accept
ip6 nexthdr ospf accept
tcp dport 179 acceptまとめ
nftables は Ubuntu 26.04 のサーバー保護と通信制御の土台です。最初は SSH を閉じ込めないように最小構成で確認し、サービス公開、ルーティング、複数 NIC の設計に合わせてルールを育てていくのが安全です。
Ubuntu 26.04 nftables によるパケットフィルタリング



