iptables設定用スクリプト

#!/bin/bash

# iptablesのチェインの初期化
iptables -F

# デフォルトルールの設定
# すべての受信を拒否
# --policyはチェーン内でどのルールにもマッチしなかった場合に適応される
iptables --policy INPUT DROP
iptables --policy FORWARD DROP

# すべての送信を許可
iptables --policy OUTPUT ACCEPT

# 自分自身に対するすべてのアクセスを許可(lo = ループバックインターフェース)
# --append は指定したチェインにルールを追加する
# --in-    はパケットを受信するLANインターフェースを(eth0やloなどで)指定する
# --out-   はパケットを受信するLANインターフェースを(eth0やloなどで)指定する
iptables --append INPUT  --in- lo --jump ACCEPT

# 全ホスト(ブロードキャストアドレス、マルチキャストアドレス)宛パケットはログを記録せずに破棄
# ※不要ログ記録防止
iptables --append INPUT --destination 255.255.255.255 -jump DROP
iptables --append INPUT --destination 224.0.0.1 -jump DROP

########################################################################
######### ----ここから各種サービス(必要なサービスのみ追加)---- #########

# 外部からのTCP22番ポート(SSH)へのアクセスを許可
# --dportはポート番号を指定する(--protocolにtcpとudpのプロトコルを指定した場合に拡張されるオプション)
iptables --append INPUT --protocol tcp --dport 22 --jump ACCEPT

# 外部からのTCP80番ポート(HTTP)へのアクセスを許可
iptables --append INPUT --protocol tcp --dport 80 --jump ACCEPT

# 外部からのTCP443番ポート(HTTPS)へのアクセスを許可
iptables --append INPUT --protocol tcp --dport 443 --jump ACCEPT

######### ----ここまで各種サービス(必要なサービスのみ追加)---- #########
########################################################################

# セッションを確立した後のパケット疎通(アクセス)は許可
# -mは外部モジュールのロード{書式:-m <module-name>}
# --stateオプションにはパケットの接続状態を指定する。つまり下記の場合は接続状態が「ESTABLISHED(確立),RELATED」の時にアクセスを許可する
iptables --append INPUT  -m state --state ESTABLISHED,RELATED --jump ACCEPT

# 設定内容の保存
/etc/rc.d/init.d/iptables save

# ファイアウォール起動
/etc/rc.d/init.d/iptables restart