玄箱HGメモ/Debian/iptables導入
緑文字が入力コマンド。
firewallとしてiptablesを導入します。
大韓民国や中華人民共和国等の危険なテロリスト国家(朝鮮民主主義人民共和国は国家として認めてないけど)からサーバーを守るためkrfilterも導入しましょう。
iptableの導入はカーネルコンパイルが必要です。
玄箱HGメモ/Debian/カーネルコンパイルを参考にiptablesを有効にしてカーネルコンパイルをします。
KAGUYA:~# iptables -nL[ENTER]
iptables未設定時設定表示画面(例)
Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
当然ですが、何も設定されていません。
以下の内容で設定してみます。
対象 | 公開項目 |
LAN | telnet/SSH, Samba, SWAT, WebMin? |
WAN | FTP(client), WWW, HTTPS |
少なくともメンテナンス用にtelnet/SSHは必須です。
FTPはaptitudeで使用しているみたいなので追加しました。
と考えていましたが、基本的にルータが全て遮っているのでkrfilterだけ適用します。
管理者権限(管理者アカウント参照)で作業する必要があります。
iptablesを設定するためのシェルスクリプトを作成します。
スクリプトの名前は何でも問題ありません。
ここではsetiptables.shという名前で作成します。
KAGUYA:~# vi setiptables.sh[ENTER]
iptablesスクリプト例
IPTABLES='/sbin/iptables' $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT $IPTABLES -F $IPTABLES -X wget http://www.hakusan.tsg.ne.jp/tjkawa/lib/krfilter/ALL2.sh.txt $IPTABLES -N KRFILTER $IPTABLES -N KRFILTERED sh ALL2.sh.txt $IPTABLES -A KRFILTER -j RETURN $IPTABLES -A KRFILTERED -j LOG --log-prefix "DROP[KRFILTER]:" $IPTABLES -A KRFILTERED -j DROP $IPTABLES -A INPUT -p tcp -m state --state NEW -j KRFILTER $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT
KAGUYA:~# sh setiptables.sh[ENTER]
iptables設定スクリプトに問題があれば、ここでtelnet/SSHが切断されます。
起動時に有効にする手順がまだなので、電源ボタンを押して再起動することで復旧します。
設定を見直しましょう。
KAGUYA:~# iptables -nL[ENTER]
iptables設定表示画面(例)
Chain INPUT (policy ACCEPT) target prot opt source destination KRFILTER tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain KRFILTER (1 references) target prot opt source destination KRFILTERED all -- 58.2.0.0/16 0.0.0.0/0 KRFILTERED all -- 58.8.0.0/14 0.0.0.0/0 KRFILTERED all -- 58.14.0.0/15 0.0.0.0/0
: (省略)
KRFILTERED all -- 222.240.0.0/13 0.0.0.0/0 KRFILTERED all -- 222.248.0.0/14 0.0.0.0/0 RETURN all -- 0.0.0.0/0 0.0.0.0/0 Chain KRFILTERED (2725 references) target prot opt source destination LOG all -- 0.0.0.0/0 0.0.0.0/0 LOG flags 0 level 4 prefix `DROP[KRFILTER]:' DROP all -- 0.0.0.0/0 0.0.0.0/0
後は少なくともtelnet/SSHが接続できることだけは確認しておきましょう。
設定の保存前に、少なくともtelnet/SSHが接続できることだけは確認しておきましょう。
本来は起動時に自動的に設定するべきですが、万が一、何も繋がらなくなると困るので、当面、手動で設定するようにします。
一応、未確認ですが、設定方法のメモだけ書いておきます。
KAGUYA:~# ln -s ./setiptables.sh /etc/rcS.d/S99iptables.sh[ENTER]
-j LOGで指定したログは/var/log/kern.logに出力されます。
コメントはありません。 コメント/玄箱HGメモ/Debian/iptables導入?
Online: 1