ここでは玄箱自身のファイアウォールの設定を書いていきます。ですが、ここでの設定を失敗してしまうとTelnetやSSHですらブロックされて受け付けてくれなくなり、完全自閉モードになってしまいます。そうなってしまうとHDDの初期化からやり直すハメになりますので注意しましょう。むしろ、ネットワークと玄箱の間にルーターを置いてルーターのファイアウォールを設定するほうが操作上安全かもしれませんが・・・。
また、ファイアウォールプログラムであるiptablesはカーネル側で制御しているようですので、玄箱Squeeze化キットでセットアップしただけではまだ使用出来ません。カーネルの再構築をおこなってネットワークフィルター関連のモジュールを作成する必要があります。※再構築の際、ネットワーク関連項目を「モジュールを作成する<M>」にチェックを入れるのです。カーネル組み込み<*>にしてしまうと玄箱が不安定になってフリーズしてしまいます。
コマンドによる操作
# iptables -L ←設定の閲覧
# iptables -F ←設定の初期化
コマンド入力でファイアウォールの設定を追加していく
# iptables -P FORWARD ACCEPT ←FORWARDの全てを許可
# iptables -P OUTPUT ACCEPT ←OUTPUTの全てを許可
# iptables -A INPUT -s 127.0.0.1 -j ACCEPT ←ループバックアドレスは全て許可
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT ←接続済みは全て許可
ここからは各アプリケーションごとの設定になりますので必要のない項目は無視して下さい
■wwwを許可
# iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT
■postfixを許可
# iptables -A INPUT -p tcp -i eth0 --dport 25 -j ACCEPT
■ftpを許可
# iptables -A INPUT -p tcp -i eth0 --dport 20:21 -j ACCEPT
■ftp:PASVを許可
# iptables -A INPUT -p tcp -i eth0 --dport 50000:50029 -j ACCEPT
■LAN内のpop3を許可
# iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 110 -j ACCEPT
■LAN内のtelnetを許可
# iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 23 -j ACCEPT
■LAN内のsshを許可
# iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 22 -j ACCEPT
■LAN内のSamba接続許可
# iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 445 -j ACCEPT
■LAN内のSamba接続許可
# iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 137 -j ACCEPT
■LAN内のSamba接続許可
# iptables -A INPUT -p udp -i eth0 -s 192.168.0.0/24 --dport 138 -j ACCEPT
■LAN内のSamba接続許可
# iptables -A INPUT -p udp -i eth0 -s 192.168.0.0/24 --dport 139 -j ACCEPT
■LAN内のCUPS接続許可
# iptables -A INPUT -p udp -i eth0 -s 192.168.0.0/24 --dport 631 -j ACCEPT
最後の仕上げのコマンドを入力します。このコマンドで上記で許可している設定以外のポートへのアクセスははじかれますので注意してください。 必ずtelnet(port#23)かssh(port#22)は許可して下さい。玄箱はネットワーク経由のみでの操作しかありませんので、許可しておかないと玄箱を制御する手段がなくなってしまいます(コンソール接続しているなら別ですが)。
# iptables -P INPUT DROP ←INPUTの全てを破棄
ファイアウォール設定の削除方法
下記コマンドで現在設定されているルールを確認する。ルールには暗示的に、表示されている順に上から1番、2番と番号が振られている。
# iptables -L
例えば下記コマンドだとINPUTで表示された2番目のルールが削除される。
# iptables -D INPUT 2
面倒だが下記の方法でもルールを直接削除できる
# iptables -D [ルールを追加したときとまったく同じ文章]
※再起動すると上記の設定は消えてしまうため、以下のコマンドで設定を保存します。
activeという名前で設定を/var/lib/iptables/に保存する
# mkdir /var/lib/iptables/ (あらかじめ/var/lib/iptables/のディレクトリを作成)
# /etc/init.d/iptables save active
再起動後、iptablesの設定をリストアするには下記のコマンドを入力します
# iptables-restore /var/lib/iptables/active
上記の方法だけでも設定のリストアが出来ますが、再起動のたびにコマンドを打たなければならないので以下のシェルスクリプトを作成して起動時に自動で実行さます。
# vi /etc/init.d/iptables_restore ←ファイル名は何でもかまいません
#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin
iptables-restore /var/lib/iptables/active(保存したiptablesのルール)
シェルスクリプトに実行権を付ける
# chmod a+x /etc/init.d/iptables_restore
起動時に作成したシェルスクリプトを実行するように設定
# update-rc.d iptables_restore defaults
![]() | Linux逆引き大全360の極意 サーバセキュリティ編 (360 Tips to Use Linux Better!) 田鍬 享 東 いずみ ![]() ![]() ![]() ![]() ![]() by G-Tools |