10/05/14 21:08:49 c090gNNJ
---ここから
#!/bin/sh
#各チェインを初期化する
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
#各チェインのポリシーを設定する
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP
971:ジャイアン ◆J1N3P2v8mu/2
10/05/14 21:12:56 c090gNNJ
#OUTPUTチェインにルールを追加する
#既存の接続とそれに関連する接続を通す
/sbin/iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#DNSサーバーへの新規接続を通す
/sbin/iptables -A OUTPUT -p udp -d 10.0.2.3 -m udp --dport 53 -m conntrack --ctstate NEW -j ACCEPT
#WWWサーバーへの新規接続を通す
/sbin/iptables -A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW -j ACCEPT
#NTPサーバーへの新規接続を通す
/sbin/iptables -A OUTPUT -p udp -m udp --sport 123 --dport 123 -m conntrack --ctstate NEW -j ACCEPT
#DHCPサーバーへの新規接続を通す
/sbin/iptables -A OUTPUT -p udp -d 10.0.2.2 -m udp --sport 68 --dport 67 -m conntrack --ctstate NEW -j ACCEPT
#メールサーバーへの新規接続を通す
/sbin/iptables -A OUTPUT -p tcp -m multiport --dports 25,110 -m conntrack --ctstate NEW -j ACCEPT
#自分自身への新規接続(loopback)を通す
/sbin/iptables -A OUTPUT -o lo -s 127.0.0.0/255.0.0.0 -d 127.0.0.0/255.0.0.0 -m conntrack --ctstate NEW -j ACCEPT
#pingを通す
/sbin/iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
972:ジャイアン ◆J1N3P2v8mu/2
10/05/14 21:14:20 c090gNNJ
#INPUTチェインにルールを追加する
#既存の接続とそれに関連する接続を通す
/sbin/iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
#自分自身からの新規接続(loopback)を通す
/sbin/iptables -A INPUT -i lo -s 127.0.0.0/255.0.0.0 -d 127.0.0.0/255.0.0.0 -m conntrack --ctstate NEW -j ACCEPT
#LAN内部からのpingを通す
/sbin/iptables -A INPUT -p icmp -s 10.0.2.0/255.255.255.0 -m icmp --icmp-type 8 -m conntrack --ctstate NEW -j ACCEPT
---ここまで
973:login:Penguin
10/05/15 12:11:57 GGpTElO6
>970
頻繁に使うIPアドレスはわかりやすい名前の変数に入れておくと、後々メンテするときにパッと見てどんなルールなのか理解しやすいかもしれない。
SELF=`ifconfig eth0 | grep "inetアドレス" | awk '{print $1}' | sed 's/.*://'`
DNS='192.168.0.1'
BCAST='255.255.255.255'
ANY='0.0.0.0/0'
こんな風に書いておけば$SELFとか$ANYで参照すればいいし。
|#各チェインを初期化する
直後にDROPしているからACCEPTしている3行は必要ないと思う。
あとは以下を最後に入れておくとdmesgでDROPしたログが取れて便利かもしれない。
iptables -N LOGGING
iptables -A LOGGING -j LOG --log-level warning --log-prefix "DROP:" -m limit
iptables -A LOGGING -j DROP
iptables -A INPUT -j LOGGING
iptables -A OUTPUT -j LOGGING
974:ジャイアン ◆J1N3P2v8mu/2
10/05/15 21:24:32 1+V3dTpu
$がついてるのは変数というものか。
確かにそうしている例が多かったな。
シェルスクリプトについては、まだ知らないことがたくさんあるから、
今回は単純にコマンドを並べただけにした。
知識が増えるにつれて、少しづつ改良できるようになるといいな。
チェインの初期化についても、のび太の言う通りだが、
こんな風にしている奴が多かったから、俺も真似してみた。
-Fオプションはルールを消すだけでポリシーはそのままだから
なんとかかんとかって言ってた奴がいたが、やっぱり要らないよな。
ログの取り方はドキュメントに少し書いてあった。
同じ内容であふれないように「-m limit」で頻度を調整するみたいだな。
-jオプションで指定するターゲットもたくさんあって訳が分からんのだが、
LOGターゲットについては後で余裕があったら調べてみようかな。
975:ジャイアン ◆J1N3P2v8mu/2
10/05/17 21:56:00 s3cgTh1e
>>970-972のスクリプトでファイヤーヲールを設定できるわけだが、
PCを再起動するとその設定は失われてしまうので
起動する度にスクリプトを実行しないといけないらしい。
976:login:Penguin
10/05/18 10:26:57 cIfMJtXp
>975
URLリンク(forums.ubuntulinux.jp)
ちょっと古いけど参考になりそうな記事。
もしかするとufwに挑戦しないといけないのかもしれない。
977:login:Penguin
10/05/18 10:46:30 rcU8yBdM
もう2年か。DVD再生できなかったとか言ってた頃よりずいぶんスキルアップしたなwwww
978:ジャイアン ◆J1N3P2v8mu/2
10/05/18 21:13:58 e42ouVj1
URLリンク(manpages.ubuntu.com)
/etc/network/if-pre-up.dにスクリプトを置いておくと
ネットワークインターフェイスが起動するときに
それを自動で実行すると書いてある。
これにはrun-partsというのを使っているそうだが、
URLリンク(manpages.ubuntu.com)
ファイル名に制約があるらしい。
大文字、小文字、数字、アンダースコア、ハイフン
だけにしろというようなことが書いてある。
979:ジャイアン ◆J1N3P2v8mu/2
10/05/18 21:52:34 e42ouVj1
network-managerを使ってると都合が悪いというようなことが
ドキュメントにも書いてあったんだが、
>>976の奴の場合は、他に原因があったみたいだな。
ドキュメントの記述が古いのだろうか。
いずれにせよ、俺はnetwork-managerをインストールしてないから関係なさそうだな。
980:野比 のび太
10/05/18 22:19:29 vVeBSaym
g