ファイアウォール:iptables
ルーターのファイアウォール機能により外部からのアクセス制御はしていますが、LAN内からサーバーへのアクセスは大解放なので サーバーにパーソナルファイアウォールを設定します。もしもLAN内からの不正アクセス(自宅ではそんな状況はありえないが)や LAN内の他のPCやサーバが外部から乗っ取られた時の事を考えると恐ろしいほど無防備です。
※玄箱の初期タイプではiptableの設定が出来ましたがHGタイプでカーネルの再構築を行っていないと設定できません。
コマンドによる設定
# 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 ←接続済みのものは全て許可
# 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 ←接続済みのものは全て許可
ここからは各アプリケーションごとの設定になりますので必要のない項目は無視して下さい
# iptables -A INPUT -p tcp -i eth0 --dport 80 -j ACCEPT ←wwwを許可
# iptables -A INPUT -p tcp -i eth0 --dport 25 -j ACCEPT ←postfixを許可
# iptables -A INPUT -p tcp -i eth0 --dport 20:21 -j ACCEPT ←ftpを許可
# iptables -A INPUT -p tcp -i eth0 --dport 50000:50029 -j ACCEPT ←ftp:PASVを許可
# iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 110 -j ACCEPT ←LAN内のpop3を許可
# iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 22 -j ACCEPT ←LAN内のsshを許可
# 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内のSamba接続許可
# iptables -A INPUT -p udp -i eth0 -s 192.168.0.0/24 --dport 631 -j ACCEPT ←LAN内のCUPS接続許可
# iptables -A INPUT -p tcp -i eth0 --dport 25 -j ACCEPT ←postfixを許可
# iptables -A INPUT -p tcp -i eth0 --dport 20:21 -j ACCEPT ←ftpを許可
# iptables -A INPUT -p tcp -i eth0 --dport 50000:50029 -j ACCEPT ←ftp:PASVを許可
# iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 110 -j ACCEPT ←LAN内のpop3を許可
# iptables -A INPUT -p tcp -i eth0 -s 192.168.0.0/24 --dport 22 -j ACCEPT ←LAN内のsshを許可
# 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内のSamba接続許可
# iptables -A INPUT -p udp -i eth0 -s 192.168.0.0/24 --dport 631 -j ACCEPT ←LAN内のCUPS接続許可
最後の仕上げのコマンドを入力します
# iptables -P INPUT DROP ←INPUTの全てを破棄
再起動すると上記の設定は消えてしまうため、以下のコマンドで設定を保存します。
コマンドによる設定
activeという名前で設定を/var/lib/iptables/に保存する
# /etc/init.d/iptables save active (あらかじめ/var/lib/iptables/のディレクトリを作成しておく)
再起動後、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のルール)
#!/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
参考:ファイアウォール設定の削除方法
コマンド:ルールの削除
下記コマンドで現在設定されているルールを確認する。ルールには暗示的に、表示されている順に上から1番、2番と番号が振られている。/p>
# iptables -L
例えば下記コマンドだとINPUTで表示された2番目のルールが削除される。
# iptables -D INPUT 2
面倒だが下記の方法でもルールを直接削除できる
# iptables -D [ルールを追加したときとまったく同じ文章]