4.iptablesの設定

Vine Linuxにはipchainsとiptablesの両方がデフォルトで入っている。
iptablesを使いたいので、ipchainsを削除するとこから。
ちなみに、Vine Linuxではipchainsが優先的に動作する設定となっているようだ。
まず、ipchainsがモジュールとしてロードされているかどうかを調べる。

 [root@hogehoge]# lsmod

ipchainsの言葉が見られるようであれば、ロードされているので削除する。

 [root@hogehoge]# rmmod ipchains
 [root@hogehoge]# chkconfig ipchains off

これでipchainsが無効になるので、セキュリティポリシーに従って
iptablesを設定し、パケットフィルタリングを行う。
まず、パケットのINPUT、OUTPUT、FORWARDについてポリシーを決める。
ここでは、サーバをルータとして用いていないので、
INPUTとOUTPUTを取り敢えず許可し、FORWARDを拒否するように設定する。

 [root@hogehoge]# iptables -P INPUT ACCEPT
 [root@hogehoge]# iptables -P FORWARD DROP
 [root@hogehoge]# iptables -P OUTPUT ACCEPT

ここで、パケットのINPUTポリシーを許可したのは一時的で、
このままだと、非常に危険である。
サービスによってINPUTポリシーを変えるため設定を行うが、
設定がおかしくならないように最初に全てのポリシーを削除する。

 [root@hogehoge]# iptables -F

まず初めに、icpm、tcp、udpを許可する。

 [root@hogehoge]# iptables -A INPUT -p icmp -j ACCEPT
 [root@hogehoge]# iptables -A INPUT -p tcp -j ACCEPT
 [root@hogehoge]# iptables -A INPUT -p udp -j ACCEPT

次に、自分自身からのINPUTを許可します。

 [root@hogehoge]# iptables -A INPUT -i lo -j ACCEPT

ここまで設定を行えば、実行するサービスのポート毎に許可、拒否を設定する。
Webサーバ(80番ポート)を許可する設定は以下のように設定すると良い。

 [root@hogehoge]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
 [root@hogehoge]# iptables -A INPUT -p tcp --sport 80 -j ACCEPT

iptablesの詳しい設定方法はGoogleで調べると分かるので省略。
実際に設定する場合にはコマンドが長いので、シェルスクリプトを書くと楽かも。
許可するポートによるパケットの設定が終われば、
以下の実行して、設定していないポートによるINPUTを拒否する。

 [root@hogehoge]# iptables -P INPUT DROP

これで、パケットフィルタリングが行われるのだが、
保存しておかないと、再起動する際に初期化されてしまう。
そこで、以下のように実行し、今までの設定を保存する。
通常、/etc/sysconfig/iptables に保存すると良いでしょう。

 [root@hogehoge]# iptables-save > /etc/sysconfig/iptables

保存し、iptablesを再起動した後、
正常に設定した動作がなされているか確認します。

 [root@hogehoge]# /etc/rc.d/init.d/iptables restart
 [root@hogehoge]# iptables -L

これでiptablesによるファイアーウォールの設定は終わり。
どのポートが開いているか確認するには nmap等を用いるといいでしょう。
目次へ



トップへ