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を使用して設定を保存し、必要なサービスだけを公開します。

関連記事:

お気軽にご相談ください

お見積りへ お問い合わせへ