iptables

iptables関係のパッケージを探す

# apt-cache search iptables

たくさんのパッケージがずらずらと出てくる。無難にiptableを入れる

# aptitude install iptables

iptablesはインストールされたが、どうやらコマンドのみで、起動スクリプトなどはインストールされないらしい。そこでiptablesをコマンドから実行することにする。あちこち調べるとどうやら/etc/network/if-pre-up.d以下のディレクトリにあるシェルスクリプトを自動的に実行するらしい。

# vi /etc/network/if-pre-up.d/iptables.sh

以下のような内容とする。

#!/bin/sh

# Remove All Rule
/sbin/iptables -F INPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F OUTPUT

# Drop All
/sbin/iptables -P INPUT DROP
/sbin/iptables -P FORWARD DROP
/sbin/iptables -P OUTPUT DROP

# Accept Loopback
/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

# Write Accept Port
/sbin/iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --source-port 22 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --destination-port 123 -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --source-port 123 -j ACCEPT

# Write Log
/sbin/iptables -A INPUT -j LOG --log-prefix "IN-Deny! "
/sbin/iptables -A INPUT -j DROP
/sbin/iptables -A OUTPUT -j LOG --log-prefix "OUT-Deny! "
/sbin/iptables -A OUTPUT -j DROP

実行許可を与え、実行してみる

# chmod 755 iptables.sh
# ./iptables.sh

ところが以下のようなエラー

iptables v1.3.6: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)

いろいろ調べてみるとip_tables.oのモジュールが必要らしい。めんどくさいからカーネルからコンパイルすることにする。
続きは明日