Top過去ログ目次掲示板

作成日:2007年08月02日 作成:おやじ
掲示板で過去に質問された内容です。

No.7096 iptablesの設定について


No.7096 投稿時間:2007年08月02日(Thu) 02:44 投稿者名:たけ URL:
タイトル:iptablesの設定について

初歩的な質問ですみません。
CentOS4.5でゲートウエイサーバーを構築中です。
色々なホームページから情報を抽出し、iptablesを設定したのですが、何せiptablesについては超初心者なので、色々重複したり、肝心な所が足りなかったりしていると思います。「ここは余計だ」「ここが足りない」「ここはもっとこうした方が良い」などと、色々ご指摘いただけませんでしょうか?

eth0がWAN側で、eth1、eth2がLANにつながっています。
以下に/etc/sysconfig/iptablesの全設定を示します。

*nat
:PREROUTING ACCEPT
:POSTROUTING ACCEPT
:OUTPUT ACCEPT
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT

*filter
:INPUT DROP
:FORWARD DROP
:OUTPUT ACCEPT
:CHKMS -
:RH-Firewall-1-INPUT -
:SYNFLOOD -
-A INPUT -j RH-Firewall-1-INPUT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -j SYNFLOOD
-A INPUT -s 192.168.0.0/255.255.255.0 -i ppp0 -j DROP
-A INPUT -s 192.168.1.0/255.255.255.0 -i ppp0 -j DROP
-A INPUT -s 192.168.2.0/255.255.255.0 -i ppp0 -j DROP
-A INPUT -s 192.168.3.0/255.255.255.0 -i ppp0 -j DROP
-A INPUT -p tcp -m tcp --dport 113 -j REJECT --reject-with tcp-reset
-A INPUT -p icmp -j DROP
-A INPUT -s 10.0.0.0/255.0.0.0 -i ppp+ -j DROP
-A INPUT -s 172.16.0.0/255.240.0.0 -i ppp+ -j DROP
-A INPUT -s 192.168.0.0/255.255.0.0 -i ppp+ -j DROP
-A INPUT -s 127.0.0.0/255.0.0.0 -i ppp+ -j DROP
-A INPUT -d 10.0.0.0/255.0.0.0 -i ppp+ -j DROP
-A INPUT -d 172.16.0.0/255.240.0.0 -i ppp+ -j DROP
-A INPUT -d 192.168.0.0/255.255.0.0 -i ppp+ -j DROP
-A INPUT -s 10.0.0.0/255.0.0.0 -i ppp0 -j DROP
-A INPUT -s 172.16.0.0/255.240.0.0 -i ppp0 -j DROP
-A INPUT -s 192.168.0.0/255.255.0.0 -i ppp0 -j DROP
-A INPUT -s 127.0.0.0/255.0.0.0 -i ppp0 -j DROP
-A FORWARD -j RH-Firewall-1-INPUT
-A FORWARD -s 192.168.0.0/255.255.255.0 -i eth0 -j DROP
-A FORWARD -s 192.168.1.0/255.255.255.0 -i eth0 -j DROP
-A FORWARD -s 192.168.2.0/255.255.255.0 -i eth0 -j DROP
-A FORWARD -s 192.168.3.0/255.255.255.0 -i eth0 -j DROP
-A FORWARD -o eth0 -p tcp -m tcp --sport 31337 --dport 31337 -j DROP
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -j CHKMS
-A FORWARD -p icmp -j DROP
-A FORWARD -d 10.0.0.0/255.0.0.0 -i ppp+ -j DROP
-A FORWARD -d 172.16.0.0/255.240.0.0 -i ppp+ -j DROP
-A FORWARD -d 192.168.0.0/255.255.0.0 -i ppp+ -j DROP
-A FORWARD -s 10.0.0.0/255.0.0.0 -i ppp+ -j DROP
-A FORWARD -s 172.16.0.0/255.240.0.0 -i ppp+ -j DROP
-A FORWARD -s 192.168.0.0/255.255.0.0 -i ppp+ -j DROP
-A FORWARD -s 127.0.0.0/255.0.0.0 -i ppp+ -j DROP
-A FORWARD -s 10.0.0.0/255.0.0.0 -i ppp0 -j DROP
-A FORWARD -s 172.16.0.0/255.240.0.0 -i ppp0 -j DROP
-A FORWARD -s 192.168.0.0/255.255.0.0 -i ppp0 -j DROP
-A FORWARD -s 127.0.0.0/255.0.0.0 -i ppp0 -j DROP
-A OUTPUT -o eth0 -p tcp -m tcp --sport 31337 --dport 31337 -j DROP
-A OUTPUT -j CHKMS
-A CHKMS -p tcp -m tcp --dport 42 -j DROP
-A CHKMS -p tcp -m tcp --dport 135 -j DROP
-A CHKMS -p udp -m udp --dport 135 -j DROP
-A CHKMS -p tcp -m tcp --dport 137:138 -j DROP
-A CHKMS -p udp -m udp --dport 137:138 -j DROP
-A CHKMS -p tcp -m tcp --dport 139 -j DROP
-A CHKMS -p tcp -m tcp --dport 445 -j DROP
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -i eth1 -j ACCEPT
-A RH-Firewall-1-INPUT -i eth2 -j ACCEPT
-A RH-Firewall-1-INPUT -p ipv6-crypt -j ACCEPT
-A RH-Firewall-1-INPUT -p ipv6-auth -j ACCEPT
-A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
-A SYNFLOOD -m limit --limit 10/sec --limit-burst 20 -j RETURN
-A SYNFLOOD -m limit --limit 2/sec --limit-burst 10 -j LOG --log-prefix "SYNFLOOD: " --log-level 1
-A SYNFLOOD -j DROP
COMMIT

以上です。長くなりましたが、どうかよろしくお願いします。


No.7097 投稿時間:2007年08月02日(Thu) 23:28 投稿者名:瀬戸っぷ URL:
タイトル:Re: iptablesの設定について

> 初歩的な質問ですみません。

マルチポストするのはいかがなものかと思いますが…

とりあえず…

> -A INPUT -s 192.168.0.0/255.255.255.0 -i ppp0 -j DROP
> -A INPUT -s 192.168.1.0/255.255.255.0 -i ppp0 -j DROP
> -A INPUT -s 192.168.2.0/255.255.255.0 -i ppp0 -j DROP
> -A INPUT -s 192.168.3.0/255.255.255.0 -i ppp0 -j DROP

> -A FORWARD -s 192.168.0.0/255.255.255.0 -i eth0 -j DROP
> -A FORWARD -s 192.168.1.0/255.255.255.0 -i eth0 -j DROP
> -A FORWARD -s 192.168.2.0/255.255.255.0 -i eth0 -j DROP
> -A FORWARD -s 192.168.3.0/255.255.255.0 -i eth0 -j DROP
はそれぞれ1つにまとまりませんかね?
ネットマスク工夫するだけかと思いますが。


No.7101 投稿時間:2007年08月04日(Sat) 03:11 投稿者名:たけ URL:
タイトル:Re^2: iptablesの設定について

お返事ありがとうございます。マルチポストすみません。
そこの所は私も気になっています。後述している
-A INPUT -s 192.168.0.0/255.255.0.0 -i ppp0 -j DROP
-A FORWARD -s 192.168.0.0/255.255.0.0 -i ppp0 -j DROP
でカバーできているのではないかと考えたのですが、何せ自信がなくて・・・。ppp0とppp+の使い方にも悩んでいます。


No.7098 投稿時間:2007年08月03日(Fri) 06:58 投稿者名:おやじ URL:
タイトル:iptablesの設定のつまみ食いは失敗します。

> 色々なホームページから情報を抽出し、iptablesを設定したのですが、何せiptablesについては超初心者なので、色々重複したり、肝心な所が足りなかったりしていると思います。「ここは余計だ」「ここが足りない」「ここはもっとこうした方が良い」などと、色々ご指摘いただけませんでしょうか?

これが失敗の元ではないでしょうか?
フィルタリングはネットワーク構成とポリシーがあって、初めてどういう設定をするかが決まります。
まず、この前提となる条件が一切書かれていないので、下記がいいのか悪いのかを判断する材料がありません。
また、いろいろなホームページを見るのは良いですが、それぞれ前提が異なるので単純にマージしてもまともには機能しません。
ご存知と思いますが、単純な話として記述する順番が影響しますし、ある設定が他の設定の前提になっている等、いろいろな設定が影響するので、不空の設定内容は参考になってもそれをマージするにはそれなりの知識がないとできません。
やりたいことがほぼ一致してしていて、しかもシンプルなサイトの情報をパクッテ、確認できたところで、少しずつ追加していったらどうですか?おやじならそうします。
いっぺんにやったって、それぞれの設定の意味がわかっていないなら何が正しくてないが誤っているのかが判断できませんから・・・。

とは言ってもチョット見ただけですが、前提条件はwan側がpppoeで動いていて、eth1/2をnatしたい。というところでしょうか?
あと、フィルタはいろいろ書かれていますが、つまるところ現状では外部から内部へのアクセスはないようなので、もっとも単純な設定で対応できるのではないでしょうか? 極端な話、INPUT/FORWARDがDROPなので、その下のINPUT/FORWARDの「-j DROP」は全くの盲腸に見えます。
下記を見てシンプルにやってからいろいろ追加するとよいと思います。

http://www.atmarkit.co.jp/flinux/rensai/iptables02/iptables02a.html

ただ、業務用でかなりのクライアントが存在しそうなので、チャントしたルータ(最低YAMAHA SRT100、RTX1100ぐらい?)を使ったほうがよいのでは?


No.7100 投稿時間:2007年08月04日(Sat) 01:59 投稿者名:たけ URL:
タイトル:Re: iptablesの設定のつまみ食いは失敗します。

たしかに、iptablesを全部掲載するのはまずかったかもしれません。どうもすみませんでした。またお返事どうもありがとうございました。
おやじ様の言うとおり、eth0がppp0で、eht1,eth2をnatし、将来的にはeth1,eth2につながっているパソコンを使って、webサーバーやメールサーバーを立ち上げようと思っています。
INPUT,FORWARDが基本的にDROPなので、その他のINPUT,FORWARDの-j DROPは必要ないということでしょうか?SYN攻撃やスプーフィングもINPUT,FORWARDのDROPのみで防ぎきれますか?


No.7102 投稿時間:2007年08月04日(Sat) 09:34 投稿者名:おやじ URL:
タイトル:通信の仕組みをしっかり理解してからでないとつらいです。

> たしかに、iptablesを全部掲載するのはまずかったかもしれません。どうもすみませんでした。またお返事どうもありがとうございました。

おやじは、掲載するのはまずいとは一言も言ってないですよ???
下記にもありますが、eth0とppp0、ppp0とppp+のように矛盾した設定があり違う出所の設定をマージしたのが歴然なので、つまみ食いは理解できていないならやめたほうがよいですといっただけです。この状態(ピンポイントでの質問ではなく、全般にわたる話なので)なら、逆に隠蔽されたら何もわからないので、コメントしようがないです。

> おやじ様の言うとおり、eth0がppp0で、eht1,eth2をnatし、将来的にはeth1,eth2につながっているパソコンを使って、webサーバーやメールサーバーを立ち上げようと思っています。

「eth0がppp0」という表現がわかりません。iptablesで扱うのはインタフェース名であり、どちらかのはずですが?
因みに、ppp+ とはppp0やppp1等、複数あるpppxの総称(俗にいうワイルドカード)です。
!ppp0 なら、ppp0以外という意味です。

> INPUT,FORWARDが基本的にDROPなので、その他のINPUT,FORWARDの-j DROPは必要ないということでしょうか?SYN攻撃やスプーフィングもINPUT,FORWARDのDROPのみで防ぎきれますか?

全般はそのとおりです。マッチしなかったらDROPですから、記述しなければならないのはパケットをACCEPTするものです。だからといってSYN Flood対策が不要かといえば、これはそれ以前の話(パケットを通過させる以前のSYNだけ投げてセッションをたくさん張る攻撃)なので、対策は必要です。IPスプーフィングは明示的にeth1/2だけACCEPT設定するはずなので、不要と思います。今のインターネット環境ではソースがプライベートアドレスなパケットは通さないようにしているケースが多いですが、未規制の場合もあること、また設定ミスもあるかもしれないので、pppから/へのプライベートアドレスは遮断しておいたほうがよいかもです。

前回紹介したところや通信の仕組みをしっかり理解してからでないと、いろいろな設定はできないので、当面はよく似た構成をパクって自分なりにそれぞれの設定がどういう役割を持っているかを勉強したほうがいいのでは?
後は、ルータを使うかです。


No.7104 投稿時間:2007年08月04日(Sat) 10:53 投稿者名:たけ URL:
タイトル:Re: 通信の仕組みをしっかり理解してからでないとつらいです。

どうもすみませんでした。いろいろと勉強不足のようです。もっと基礎的な勉強をしてから出直します。いろいろとありがとうございました。



掲示板▲頁先頭