FC2ブログ

我流館

すきなことをすきなようにかくぶろぐ

ファイアウォール〜iptables〜を設定する(debian)

firewallが動いていなかった

iptablesをインストールして
vineで使っていた設定ファイルを置いて
chkconfig
でiptablesを設定して
完成

と、思っていたら1月以上も立ってから
動いていなかったことに気がついてしまった。

debian Wikiiptables
を、参考にした

iptablesの現在の動作状況を確認
root@debian:~# iptables -L

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        
root@debian:~#

全ポート開きっぱなしということですね   だめじゃん

iptablesのルールを作る
iptables-persistent
使わなくてもいけるのかも知れない、楽をしたいならという事かも

iptablesのページから
In this file enter some basic rules:
----------------------------------iptables.basic.rules---------------------------------------------
*filter

# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allows all outbound traffic
# You could modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

# Allows SSH connections
# The --dport number is the same as in /etc/ssh/sshd_config
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

# Now you should read up on iptables rules and consider whether ssh access
# for everyone is really desired. Most likely you will only allow access from certain IPs.

# Allow ping
#  note that blocking other types of icmp packets is considered a bad idea by some
#  remove -m icmp --icmp-type 8 from this line to allow all kinds of icmp:
https://security.stackexchange.com/questions/22711
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# log iptables denied calls (access via 'dmesg' command)
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

# Reject all other inbound - default deny unless explicitly allowed policy:
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT
------------------------------------iptables.basic.rules--------------------------------------------
をコピーして
/etc/iptalbes/iptables.basic.rulesとして保存
/etcにiptables.test.ruls
で保存しろと書いてあるが汚くなるからいやなので上記の場所に保存。

内容は
port80,443(standerd web browser port)SSH port 22
とこっちから出すものはすべて許可 同じポートからのリターンは許可
それ意外はすべて拒否

という設定で書かれていると思われるので修正せずそのままやってみる
このルールでactivateする
root@debian:/etc/iptables# iptables-restore < iptables.test.rules

iptables -Lで動作状況を確認
root@debian:/etc/iptables# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere           
REJECT     all  --  anywhere             loopback/8           reject-with icmp-port-unreachable
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:22
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
LOG        all  --  anywhere             anywhere             limit: avg 5/min burst 5 LOG level debug prefix "iptables denied: "
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination        
ACCEPT     all  --  anywhere             anywhere           

この状態ならテストは通ったという事なので
このルールをiptables.up.rulesという名前で/etc/iptablesに保存
 
root@debian:/etc/iptables#  iptables-save > /etc/iptables/iptables.up.rules

Debianは
ネットワーク接続前に上記のファイルを実行するスクリプトを
作る必要があるので

/etc/network/if-pre-up.d/にiptables_startという名でファイルを作る

root@debian:/etc/iptables# vi /etc/network/if-pre-up.d/iptables_start
中身
-------------------iptables_start  ここから--------------------
#!/bin/sh
/sbin/iptables-restore < /etc/iptables/iptables.up.rules
exit 0
-------------------iptables_start  ここまで--------------------

iptables_startに実行権限を与える
root@debian:/etc/network/if-pre-up.d# chmod +x iptables_start

スクリプトのテスト
root@debian:/etc/network/if-pre-up.d/iptables_start
なのだが、停止用のスクリプトも必要な感じ

これからはファイアウォールの修正は
/etc/iptables/iptables.up.rules
を修正する形で

iptables-persistent
は使わなかった、
いじってはみたけれども起動に失敗するばかりだったので
頑張る気持ちにならなかった。

取り敢えず、今日はここまで

スポンサーサイト




[タグ未指定]
[ 2015/02/20 05:06 ] linux | TB(0) | CM(0)
プロフィール

sealyoh

Author:sealyoh
いらっしゃいませ

カレンダー
01 | 2015/02 | 03
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
FC2掲示板