iptablesとUFWのファイアウォールルール
iptablesと、よりシンプルなUFWインターフェースを使って、通信を許可・拒否・記録するファイアウォールルールを作成します。
「iptablesとUFWのファイアウォールルール」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
Linuxファイアウォールの概要
Linuxはnetfilterカーネルフレームワークを通じてネットワークトラフィックをフィルタリングします。iptablesは従来のユーザー空間ツールで、nftablesはその最新の代替です。UFW(Uncomplicated Firewall)はiptables用の簡略化されたフロントエンドで、UbuntuやDebianのサーバーに適しています。
iptablesのチェーン
iptablesはチェーンを使ってパケットを処理します。
- INPUT — ローカルマシン宛てのパケット
- OUTPUT — ローカルマシンから送信されるパケット
- FORWARD — マシンを経由してルーティングされるパケット
各チェーンのルールは上から下へ評価され、最初に一致したルールが適用されます。
iptablesのデフォルトポリシー
どのルールにも一致しない場合は、デフォルトポリシーが適用されます。安全なデフォルト設定は次のとおりです。
# Default deny all, allow established connections
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPTiptablesの一般的なルール
基本的な許可ルール:
# Allow SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Allow HTTP/HTTPS
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
# Allow from specific IP
iptables -A INPUT -s 10.0.0.5 -j ACCEPT
# List rules
iptables -L -n -v --line-numbersiptablesルールの保存と永続化
iptablesのルールはデフォルトでは永続化されず、再起動するとリセットされます。
# Debian/Ubuntu:
aptitude install iptables-persistent
netfilter-persistent save
# RHEL/CentOS:
service iptables saveUFWの基本
UFWを使うとUbuntuでのファイアウォール管理が簡単になります。一般的な手順は次のとおりです。
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
ufw status verboseUFWアプリケーションプロファイル
UFWは名前付きプロファイルに対応しており、アプリケーションに必要なポートを開けます。
ufw app list
ufw allow "Nginx Full" # opens 80 and 443
ufw allow "OpenSSH"
ufw app info "Nginx Full"UFWのレート制限
UFWでは接続にレート制限を設定し、ブルートフォース攻撃を防止できます。
# Allow SSH but rate-limit (max 6 connections per 30 seconds per IP)
ufw limit ssh
# This triggers after 6 connection attempts in 30 secondsファイアウォールイベントのログ記録
ブロックされたトラフィックを監査するため、ログ記録を有効にします。
ufw logging on
ufw logging medium
# Logs appear in /var/log/ufw.log
tail -f /var/log/ufw.log | grep BLOCKnftables: 最新の代替手段
nftablesは最新のLinuxディストリビューションでiptablesに置き換わるものです。よりすっきりした構文を使用し、複雑なルールセットをより高い性能で処理できます。
nft list ruleset
nft add rule inet filter input tcp dport 22 accept
nft add rule inet filter input dropステートフルとステートレスのファイアウォール
ステートフルファイアウォールは接続状態(NEW、ESTABLISHED、RELATED)を追跡し、送信した接続への応答を自動的に許可します。ステートレスルールは各パケットを個別に照合するため、両方向に対するルールを明示的に設定する必要があります。Linuxのnetfilterはconntrackモジュールによってステートフルに動作します。
確認問題: ファイアウォールルール
明示的に許可されていないすべての着信接続をブロックするデフォルトポリシーを設定するUFWコマンドはどれですか?
レッスンのまとめ
iptables(および最新のnftables)は、INPUT、OUTPUT、FORWARDチェーンを通じてLinuxのパケットフィルタリングを制御します。UFWを使うと、名前付きプロファイル、レート制限、ログ記録によって管理を簡単にできます。デフォルトポリシーはdeny incomingにしてください。確立済みの接続とループバックは必ず許可します。再起動後もルールが維持されるように永続化してください。
よくある質問
「iptablesとUFWのファイアウォールルール」レッスンは無料ですか?
はい。「iptablesとUFWのファイアウォールルール」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「iptablesとUFWのファイアウォールルール」で何を学びますか?
iptablesと、よりシンプルなUFWインターフェースを使って、通信を許可・拒否・記録するファイアウォールルールを作成します。 ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「iptablesとUFWのファイアウォールルール」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ファイルの権限と所有権
- ユーザーとグループの管理
- SSHの堅牢化と鍵ベース認証
- iptablesとUFWのファイアウォールルール