手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 nftables によるパケットフィルタリング

Ubuntu 26.04 サーバー管理ガイドに戻る

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 route

FRR を使う場合の注意

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 サーバー管理ガイドに戻る

Ubuntu 26.04 nftables によるパケットフィルタリング

コメントを残す

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

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る