iptables

トップ > チップス > iptables
2012-02-13, iptables

iptablesの古いまとめ

アクセス権限の設定

特定のチェーンにルールを追加する形でアクセス権限を設定できます。設定後はセーブを行わないと、再起動時にクリアされます。

# service iptables save

特定のポートへのアクセスを許可する

# iptables -I RH-Firewall-1-INPUT 10 -p tcp -m state --state NEW \\
    --destination-port 8080 -j ACCEPT

※「--destination-port」の代わりに「--dport」も使えそうです。 2012.04.17追記

特定インタフェースへのアクセスを許可する

# iptables -I RH-Firewall-1-INPUT 18 -i eth1 -j ACCEPT

特定IPからのアクセスを拒否する

# iptables -I Rh-Firewall-1-INPUT 1 -s 203.129.254.236 -j DROP

行番号付きでルールをリストする

# iptables -L --line-numbers

ルールの設定方法を調べる

# man iptables

[考察]実際の運用にあたって

ランバーミルでは、「セキュリティポリシー.xls」なるファイルを作って、その中にスクリプト形式でパケットのフィルタリングルールを定義しています。社外秘のためスクリプト全体を公開することはできませんが、大体以下のような雰囲気のものです。

#! /bin/sh

##############
#Flush & Reset
##############
iptables -F
iptables -X
##############
#Deafult Rule
##############
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#########
#loopback
#########
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
(以下設定が続く)

そして、実際に設定を行いたいホストにrootでログインし、以下のような手順でルールを適用します。

# vi iptables-setup.sh (上記スクリプトをペースト)
# chmod 744 iptables-setup.sh
# ./iptables-setup.sh
# service iptables save

各ホストで使うサービスに応じてアドホックに設定を行うよりは、設定漏れを防げるという点に於いて確実かつスピーディかと思われます。

[考察]複数IPの指定

iptablesではネットマスク(xx.xx.xx.xx/nn)によるIP範囲指定は存在しますが、不連続な複数のIPを指定する方法はないようです。よって、複数のIPを指定する場合、以下のようなスクリプトを利用します。

trusthost[0]=192.168.0.10
trusthost[1]=192.168.0.50

for i in $\{trusthost[@]\}; do
  iptables -A INPUT -s $\{i\} -j ACCEPT
done

上記の例では、trusthost配列に格納されたIPからの接続を許可するルールを追加しています。

この記事は役に立ちましたか?