CentOSのiptables設定方法(3) | サーバーエンジニアのスキルアップ日記

サーバーエンジニアのスキルアップ日記

サーバエンジニアがレンタルサーバーを使って試行錯誤しながら各種サービスを動作させ、スキルアップする日々を語ります。

下記サイトと参考にしています。
http://wiki.centos.org/HowTos/Network/IPTables

3. Writing a Simple Rule Set

デフォルトのルールをクリアし、基本的なシンプルなルールを作
成します。

注)SSHでリモート接続している状態で以下の設定作業を行う場合は、自分自身の接続が締め出されてしまう可能性があるので注意が必要です。

現状のルールを消去する前に、インプットパケットを許可するデフォルトポリシーと追加してから行うようにします。


(設定例)
# iptables -P INPUT ACCEPT
# iptables -F
# iptables -A INPUT -i lo -j ACCEPT
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# iptables -P INPUT DROP
# iptables -P FORWARD DROP
# iptables -P OUTPUT ACCEPT
# iptables -L -v

Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- lo any anywhere anywhere
0 0 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT tcp -- any any anywhere anywhere tcp dpt:ssh
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination


●上記設定例の各コマンドの説明

①iptables -P INPUT ACCEPT

リモート接続している場合、現状のルールを消去すると自分自身が締め出されてしまう可能性があるので、インプットパケットを許可するデフォルトポリシーを設定します。

②iptables -F

現状のルールを消去して、きれいな状態から設定を追加します。

③iptables -A INPUT -i lo -j ACCEPT

"-i(interface)"スイッチで"lo(localhost)"を指定しています。ローカルホスト向けのインプットパケットを許可します。

これは、多くのアプリでローカルホストアダプターと接続できる事を想定していて、使用されているためです。

④iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

"-m"スイッチで"state"モジュールを指定しています。"state"モジュールは、パケットのステートを調べて判断します。

ESTABLISHEDとRELATEDのステートは、すでに接続が確立しているパケットと関連するパケットなので許可します。

⑤iptables -A INPUT -p tcp --dport 22 -j ACCEPT

ssh(ポート番号がデフォルトの22の場合)接続を許可します。

⑥iptables -P INPUT DROP

インプットパケットのデフォルトポリシーをDROPにします。明示的に許可する設定がないパケットはデフォルトポリシーによってDROPされます。

⑦iptables -P FORWARD DROP

ルーターとして使用しない場合は、パケットを転送する必要がないのでデフォルトポリシーをDROPにします。

⑧iptables -P OUTPUT ACCEPT

自マシンから出て行くパケットは、基本的には信頼できるのでデフォルトポリシーを許可にします。

⑨iptables -L -v

ルールのリストを表示し、正しく設定されているか確認します。


正しく設定されていたら、設定を保存します。これによってマシンをリブートしても保存したルールが自動でロードされます。

# service iptables save


このコマンドを実行すると設定内容が/etc/sysconfig/iptablesに保存されます。

はじめてのCentOS6 Linuxサーバ構築編 (TECHNICAL MASTER)/デージーネット

¥3,150
Amazon.co.jp