Debianでiptablesの設定をしていてふと/etc/init.d/iptables saveしてみると/etc/init.d/iptablesはそんざいしないと言われてしまった。Debianからは削除されてしまったらしい。ということで友人が「stop」「save」で保存「start」「restore」で設定の読み込みをするスクリプトを作ってくれたのを頂いた。快く許可してくださり以下にiptablesの設定方法と共に記載する。まずは設定方法。
<code> $ su # iptables -P INPUT ACCEPT # iptables -P FORWARD DROP # iptables -P OUTPUT ACCEPT # iptables -F# iptables -A INPUT -p icmp -j ACCEPT # iptables -A INPUT -i lo -j ACCEPT </code>
これでいったん全部許可し、「ping」と自分自身からの接続を許可したことになる。
続いてポートごとに許可をしていく。
必要なら個別に追加しいらないものは削除してほしい。
<code> # iptables -A INPUT -p tcp --dport 80 -j ACCEPT //http # iptables -A INPUT -p tcp --dport 443 -j ACCEPT //https # iptables -A INPUT -p tcp --dport 548 -j ACCEPT //netatalk # iptables -A INPUT -p tcp --dport 21 -j ACCEPT //FTP # iptables -A INPUT -p tcp --dport 110 -j ACCEPT //POP # iptables -A INPUT -p tcp --dport 25 -j ACCEPT //SMTP # iptables -A INPUT -p tcp --dport 22 -j ACCEPT //SSH </code>
そして応答とデータを許可しその他をすべて拒否する。
<code> # iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # iptables -P INPUT DROP </code>
これでOK。
しかしこのままでは再起動すると設定が削除されてしまいます。
ここで友人にもらったスクリプトを使います。
<code> # vi /etc/init.d/iptables </code>
とスクリプトを新規作成し、以下のように記述し保存します。
<code> #!/bin/bash start(){ iptables -F iptables-restore /etc/iptables.save return 0 } case "$1" in start) start ;; stop) stop ;; save) stop ;; restore) start ;; restart) stop start ;; esac </code>
注意:これは保存と読込をするだけであって実際にiptablesの起動や終了はしません。
そして、パーミションの変更と登録、そして設定の保存。
<code> # chmod 755 /etc/init.d/iptables # update-rc.d iptables defaults 18 # /etc/init.d/iptables save </code>
これで再起動したときも自動で設定ファイルが読み込まれます。
debian ファイアウォール設定
ファイアウォールの設定がまだだったのでやっておく
iptables
以下rootにsuしてから行う
# iptables -P INPUT ACCEPT
# iptables -P FORWARD DROP
# iptables -P OUTPUT ACCEPT
FORWARD以外まずはACCEPT
# iptabl…