プロが教える店舗&オフィスのセキュリティ対策術

iptablesを有効にすると、サーバが公開しているウエブページの閲覧がローカル、外部ドメインともにできません。内部名前解決もできなくなってしまいます。メールもローカル、外部ドメインからも送受信できなくなります。 無効にすると、全て問題なく動作します。

iptables無効状態ではHTTP:80、HTTPS:443 SMTP:25/587、POP3:110/995、IMAP:143/993 は外部からポートスキャンで、アクセスできましたとなります。 iptablesを有効にすると、どのポート番号もポートスキャンで、アクセスできませんとなります。設定は下記のとおりです。有効状態で唯一、22番だけポートスキャンで成功します。 何がいけないのでしょうか。よろしくお願いします。
環境:CentOS6.2 、1台のサーバでApache,Bind,Postfix/Dovecot が稼動中です。

[root@hogehoge ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Tue Jun 12 22:39:14 2012
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [24:2320]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -s 192.168.0.0/24 -j ACCEPT
-A INPUT -j LOG --log-prefix "[iptables] " --log-level 6
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 587 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Tue Jun 12 22:39:14 2012

A 回答 (2件)

お書きの定義とお書きの現象はマッチしてますので、定義通り動作をしていると言えます。



-A INPUT -j REJECT --reject-with icmp-host-prohibited
のうしろにいくら
-A INPUT
を書いても、この行でリジェクトされるので効果を出しません。

おそらくは、定義が前から順番に適用されるということをご存じないのかと思います。
    • good
    • 0
この回答へのお礼

ご回答いただき、ありがとうございます。おっしゃるとおりに設定したところ、解決しました。定義が前から評価されることは知りませんでした。 勉強になりました。下記の設定でうまく動作しました。

[root@hogehoge sysconfig]# cat iptables
# Generated by iptables-save v1.4.7 on Tue Jun 12 22:39:14 2012
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [24:2320]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 23522 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 587 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 993 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 995 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A INPUT -j LOG --log-prefix "[iptables] " --log-level 6
COMMIT

お礼日時:2012/06/13 00:10

>有効状態で唯一、22番だけポートスキャンで成功します。



設定の上から順番に評価していきます。
>-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
で22番は許可します。
# ちなみに外部向けなら22番はやめておいた方がいいです。

>iptablesを有効にすると、どのポート番号もポートスキャンで、アクセスできませんとなります。

繰り返しますが…「上から評価」されます。

>-A INPUT -j REJECT --reject-with icmp-host-prohibited

で指定通りにリジェクトされて、INPUTチェーンの残りは評価されません。
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

この行を、一番下に持っていって、うまく動作するようになりました。
>-A INPUT -j REJECT --reject-with icmp-host-prohibited

SSH接続は公開鍵、秘密鍵を作成して、クライアントは秘密鍵がないと接続できないようにしています。だから絶対大丈夫とは言えませんが、外部からSSH接続が不要になったらポートを閉ようと思っています。

ありがとうございました。

お礼日時:2012/06/13 00:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!