2026年6月16日
2026年6月16日
iptablesの基本的なルール設定方法
ステップ1: ルールの初期化とプライマリルールの追加
# iptablesをクリアして再設定
sudo iptables -F
# 変更が記録されるようにログを有効にする
sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# ローカルホストからの接続を許可する
sudo iptables -A INPUT -i lo -j ACCEPT
# 未承認の入力パケットを拒否する
sudo iptables -P INPUT DROP
ステップ2: 出力とフロントエンドのルール追加
# ローカルホストからの出力を許可する
sudo iptables -A OUTPUT -o lo -j ACCEPT
# Webサーバーへの接続を許可する(例:80/tcp)
sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
# HTTPSトラfficも許可する
sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
ステップ3: データベースへの接続を許可する
# MySQLデータベースへの接続を許可する(例:3306/tcp)
sudo iptables -A INPUT -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
ステップ4: ルールの確認と保存
# 現在のiptablesルールを表示する
sudo iptables -L -v -n
# 設定を永続化するためにufwを使用する(例)
sudo ufw enable
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 3306/tcp
注意事項
- ルールの順序に注意してください。最初に新規接続が許可され、次に既存の接続が処理されます。
- 接続を拒否するルールは最後に追加します。
- ufwを使用するとiptablesの設定を簡単に管理できます。
まとめ
1. ルールの初期化: iptablesの既存のすべてのルールを削除して再構築します。
2. 基本的な入力ルール: ローカル接続と既存のセッションを許可します。未承認の入力パケットは拒否されます。
3. 出力およびフロントエンドのルール: Webサーバーとデータベースへの接続を許可します。
4. 永続化: ufwを使用して設定を保存し、必要なサービスだけを公開します。
関連記事: