ファイアウォールとnftablesの管理方法を、基本から応用まで解説します。
ファイアウォールの管理と設定 nftables これは、システム管理者、DevOps担当者、サーバー所有者にとって不可欠な内容です。このガイドでは、基本的なことから高度なシナリオまで、技術用語と運用用語を網羅的に解説するとともに、実践的な例や設定ファイルも紹介します。.
nftablesの基本概念
nftables ルールセットを設計するには、いくつかの構成要素を理解しておく必要があります。
- 家族: プロトコルファミリー (例: インターネット IPv4とIPv6の同時接続には、ip、ip6、arp、bridgeを使用します。.
- テーブル: ルールコンテナ (例: inetフィルター).
- 鎖フック、タイプ(入力、転送、出力)、および優先度を含むルールの連鎖。.
- ルール条件とアクション(承認、破棄、拒否、カウンター、ログ記録)。.
- 設定/マップ: IPアドレス、ポート番号、または値を格納して、素早く照合するためのコレクション。.
- コネトラック接続状態(確立済み、関連済み、新規、無効)を追跡します。.
なぜnftablesなのか?
選択の主な理由 nftables それらには以下が含まれます。
- IPv4とIPv6の同時サポート 家族を使う インターネット.
- パフォーマンスの向上 そして可能性 アトミック置換 ルールセットを安全に読み込むため。.
- サポート タイムアウト付きセット そして 地図 高度なNAT向け。.
- 新しいディストリビューションでは、互換性レイヤーを介してiptablesとの互換性が確保されています。.
クイックスタート:ルールのインストール、確認、保存
ルールセットの確認、読み込み、保存を行うための基本的なコマンド:
nft --version
nft list ruleset
nft -f /etc/nftables.conf
nft list ruleset > /etc/nftables.conf
systemctl enable --now nftables実例:基本的なルールセット(Linuxサーバー向け)
ファミリーを使用した/etc/nftables.confファイルの推奨例 インターネット IPv4とIPv6の両方をカバーするために:
table inet filter {
set allowed_ssh {
type ipv4_addr; flags timeout;
}
chain input {
type filter hook input priority 0;
policy drop;
# loopback
iif "lo" accept
# established/related
ct state established,related accept
# ICMP/ICMPv6
ip protocol icmp accept
ip6 nexthdr ipv6-icmp accept
# Allow SSH with rate limit & whitelist
tcp dport 22 ct state new limit rate 3/minute accept
ip saddr @allowed_ssh accept
# HTTP/HTTPS
tcp dport { 80, 443 } ct state new accept
# DNS
udp dport 53 accept
tcp dport 53 accept
# log and drop others
counter log prefix "nft-drop: " flags all drop
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}説明: この基本的なルールセットでは、ループバック、既存の接続、SSH(レート制限付き)、HTTP/HTTPS、およびDNSを許可し、それ以外のトラフィックはログに記録して破棄します。. 許可されたsshを設定する タイムアウト付きのIPアドレスのホワイトリスト登録に適しています。.
セットと一時ブロックの管理
ホワイトリストまたはブラックリストを作成するためのセットを作成および管理することは非常に便利です。例:
nft add element inet filter allowed_ssh { 203.0.113.5 timeout 1h }
nft list set inet filter allowed_ssh攻撃者を一時的にブロックするには、フラグを設定します。 タイムアウト 特定の期間に有効なIPアドレスを作成して追加します。.
NAT、ポートフォワーディング、マスカレード
プライベートIPアドレスの背後で複数のサービスを公開するVPSのNATの例:
table ip nat {
chain prerouting {
type nat hook prerouting priority 0;
tcp dport 2222 dnat to 10.0.0.10:22
tcp dport 8443 dnat to 10.0.0.20:443
}
chain postrouting {
type nat hook postrouting priority 100;
oif "eth0" masquerade
}
}注記: 複数のアドレスを持つクラウドアーキテクチャでは、送信元アドレスのマッピングにマスカレードまたは送信元NATを使用してください。IPv6の場合は、適切なDNATまたはCIDRマッピングを使用してください。.
DDoS攻撃とSYN攻撃への対策
nftablesには、攻撃の影響を軽減するために使用できるレート制限機能とフローテーブル機能が備わっています。.
# allow limited number of new SYNs per second
tcp flags syn ct state new limit rate 10/second burst 20 accept
# synproxy can be used in extreme cases (kernel feature)
# nftables can match and direct traffic to synproxy or other mitigations大規模攻撃の場合、ファイアウォールサーバーと(nftables) ネットワークDDoS対策レイヤー 最善のアプローチは、悪意のあるトラフィックがサーバーに到達する前にフィルタリングすることです。.
ログ記録および監視ルール
監視に役立つツールとコマンド:
- 各ルールのカウンターを表示します。 nftリストルールセット.
- プレフィックスとレート制限によるログ記録を有効にする:
nft add rule inet filter input tcp dport 22 counter log prefix "ssh-drop: " limit rate 10/minute dropその他のツール: journalctl -f -u nftables, tcpdump, tshark, 、 そして nftモニター.
実用的なセキュリティのヒント
実践的で重要なアドバイスをいくつかご紹介します。
- 常にバックアップを取っておくこと: デプロイ前に出力 nftリストルールセット 保存。.
- アトミックロードを使用する: nft -f /etc/nftables.conf ファイルをアトミックに読み込みます。.
- SSHロックアウトを防止する: ご自身のIPアドレスに対して一時的な許可ルールを設定するか、外部コンソールを使用してください。.
- 自動元に戻すスクリプト: 機密性の高い変更を行う場合は、確認が取れない場合は自動的にロールバックするように設定してください。.
さまざまなアプリケーションのための実用的なヒント
WordPressおよびウェブサイト管理者向け
必要最低限のポート(80/443/22)のみを開放してください。ログインフォームとXML-RPCにはレート制限を設定し、ブルートフォース攻撃を防ぐためにペナルティIPアドレスのセットを作成してください。CDNおよびWAFとの併用を推奨します。.
プログラマーとDevOps向け
家族から インターネット IPv4/IPv6同時展開にはIPv4/IPv6サポートを使用してください。ルールはVCSに保存し、CI/CDを使用して自動展開を行います。変更のテストにはファイルアップロードと高速ロールバックを使用してください。.
トレーダー向け(取引用VPS)
レイテンシを最小限に抑えるため、ブローカーまたは取引所サーバーに近い場所を選択してください。送受信トラフィックを必要なIPアドレスに制限し、ホワイトリストを使用してアップデート中にポートが閉じられるのを防いでください。.
ゲーマー向け(ゲーミングVPS)
ゲームに必要なUDPポートを開放し、UDPのconntrackタイムアウトを最適化してください。NATが必要な場合は、パフォーマンス向上のためフローテーブルを使用し、ping値の低い場所を選択してください。.
AIおよびGPUクラウド向け
管理ポート(SSH、Kubernetes API)へのアクセスは、特定のIPアドレスからのみ許可します。分散環境では、ノード間のルールを定義し、conntrackのパフォーマンスを確認してください。セキュリティと高いスループットを確保するため、プライベートネットワークとBGP/プライベートVLANの使用を推奨します。.
導入とメンテナンスのための実践的なヒント
メンテナンス作業に関する実践的なヒントをいくつかご紹介します。
- 変更を加える前に、必ずルールセットをバックアップしてください。.
- の使用 アトミック置換 と nft -f /etc/nftables.conf.
- 機密性の高い変更を行う前に、管理IPアドレスに対して一時的なアクセス許可ルールを設定してください。.
- 確認メールが届かない場合に自動的にロールバックするように、cronまたはsystemd-timerを設定してください。.
ツールとデバッグ
デバッグと監視のための主要ツール:
- nftリストルールセット
- nftモニター / nftモニタートレース
- ss -tunlp ポートを表示するには
- conntrack -L conntrack-toolsパッケージより
- tcpdump または tshark パケットキャプチャの場合
結論と実践的な提言
nftablesは、ファイアウォール管理を最新かつ高速で柔軟なものにする強力なツールです。 インターネットセット、レート制限、およびconntrackを使用すると、Webサーバー、VPSトレーディング、ゲーム、およびGPUクラウドに適した効果的な保護レイヤーを作成できます。.
サーバー構成に加え、世界85ヶ所以上の拠点で提供されているCDN、アンチDDoS、BGPなどのネットワークサービスとの組み合わせにより、セキュリティと可用性がより信頼性の高いレベルに引き上げられます。.









