Firewall/iptablesの設定方法とルール設定はじめにiptablesを利用することによりホストごとにより細かいパケット制御が可能になります。iptablesコマンドはパケット制御のための1つのルールを1行のコマンドとして記述します。Firewallは複数のルールから成るため、普通はiptablesコマンドを複数記述したスクリプトファイルを作成しておき、それを実行することでFirewallを設定します。 設定関連ファイルなどまずコマンドはいかのようです。 $ /sbin/iptables このコマンドを利用してルールなど設定することができます。また複数のルールをたまっているファイルは /etc/sysconfig/iptables の中に保存してあります。 初期化とポリシーの決定まず、すべてのポリシーを初期化します。次のコマンドで初期化できます $ /sbin/iptables -F 初期化したら、基本的なポリシーを決めます。基本的なポリシーとは、パケットの受信と送信についてそれぞれ「すべて許可」か「すべて拒否」かを決めます。お勧めのは「すべて拒否」です。 $ /sbin/iptables -P INPUT DROP $ /sbin/iptables -P OUTPUT DROP このようにiptablesでは「-P」オプションを使ってポリシーを指定します。 ループバックを許可する基本的なポリシーに、新しいルールを追加します。手始めはループバックネットワークの許可です。これは、ローカルホストからのアクセスを許可するものです。 $ /sbin/iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT $ /sbin/iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptablesでは「-A」オプションを指定することで、対象のチェインにルールを追加することができます。つまり上記の例では1行目INPUTチェンにルールを追加し、2行目はOUTPUTチェインにルールを追加しています。 新規のセッション確立を許可特定のアプリケーションのパケット送受信を許可する前に、まず新規にセッション(接続状態)を確立するパケットを許可します。ここではSSHを例として説明します $ /sbin/iptables -A INPUT -p tcp -mstate NEW --dport 22 -j ACCEPT $ /sbin/iptables -A OUTPUT -p tcp -mstate NEW --dport 22 -j ACCEPT 「-p」オプションはプロとコールを指定するためのもので、「tcp」または「udp」を指定します。「-m」オプションはモジュールオプションを指定しますモジュールとはNetfilterでより詳細なパケット制御を行うための部品化されたプログラムです。モジュールはいくつかあるのですが、ここではstateモジュールを使います。stateモジュールには、さらにオプションを指定することができます。「--state」に続けてパケットのステータスを指定します。代表的なステータスは、NEW、RELATED、ESTABLISHEDがあります。NEWは新規に通信を確立するためのパケットを意味します。 例えばこのホスト自信をウェブブラウズを許可するなら以下のルールを追加する必要であります。 $ /sbin/iptables -A OUTPUT -p tcp -mstate --state NEW --dport 80 -j ACCEPT INPUTチェインについては、ほかのコンピュータにサービスを提供しているものだけを記述します。 セッション確立後の応答パケットを許可セッション確立時のアプリケーションを限定したので、あとはセッションを確立後の応答パケット(ESTABLISHED)や、セッションを確立したプロとコールに関連したパケット(RELATED)の通過について許可します。 $ /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT $ /sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 最後にこれまで設定したルールをファイルに保存するために、いかのコマンドを実行します。 $ /etc/init.d/iptables save これで、/etc/sysconfig/iptablesに現在のルールがすべて保存され、次回起動以降、自動的に適用されます。 代表的なウェルノウンポート
|