• 締切済み

postfixでメール送信できません

postfixでメール送信ができなくて困っています。 送信方法はmailコマンドです。 iptablesを切って実行すると送信できるので、iptablesの設定が原因だと想定しています。 解決できるようどうかお力添えをお願いします。 メールサーバの構築は以下のサイトを参考にしました。 http://morizyun.github.io/blog/postfix-centos-sakura-vps-aws/ ■環境 CentOS6.6 ■/etc/sysconfig/iptables (1)# mail以下を追加しました。 (2)IPアドレスはマスクをかけています。 # Generated by iptables-save v1.4.7 on Mon Mar 16 16:02:28 2015 # xxx.xxx.xxx.xxx/32 : localhost # yyy.yyy.yyy.yy/28 : company # zzz.zzz.zzz.zzz/32 : firewall *filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :LOGGING - [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -s zzz.zzz.zzz.zzz/32 -d xxx.xxx.xxx.xxx/32 -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -s yyy.yyy.yyy.yy/28 -d xxx.xxx.xxx.xxx/32 -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -s zzz.zzz.zzz.zzz/32 -d xxx.xxx.xxx.xxx/32 -p icmp -m icmp --icmp-type 0 -j ACCEPT -A INPUT -s yyy.yyy.yyy.yy/28 -d xxx.xxx.xxx.xxx/32 -p icmp -m icmp --icmp-type 0 -j ACCEPT -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -s zzz.zzz.zzz.zzz/32 -d xxx.xxx.xxx.xxx/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 53022 -j ACCEPT -A INPUT -s yyy.yyy.yyy.yy/28 -d xxx.xxx.xxx.xxx/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 53022 -j ACCEPT -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -d xxx.xxx.xxx.xxx/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 443 -j ACCEPT -A INPUT -p udp -m state --state NEW,RELATED,ESTABLISHED -m udp --sport 53 -j ACCEPT -A INPUT -s 210.188.224.14/32 -p udp -m udp --sport 123 -j ACCEPT -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -d xxx.xxx.xxx.xxx/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --sport 80 -j ACCEPT # http -A INPUT -p tcp --dport 80 -j ACCEPT # mail -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -m limit --limit 1/s -j LOG --log-prefix "[iptables INPUT] : " -A INPUT -j LOGGING -A OUTPUT -o lo -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d zzz.zzz.zzz.zzz/32 -p icmp -m icmp --icmp-type 0 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d yyy.yyy.yyy.yy/28 -p icmp -m icmp --icmp-type 0 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d zzz.zzz.zzz.zzz/32 -p icmp -m icmp --icmp-type 8 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d yyy.yyy.yyy.yy/28 -p icmp -m icmp --icmp-type 8 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d zzz.zzz.zzz.zzz/32 -p tcp -m tcp --sport 53022 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d yyy.yyy.yyy.yy/28 -p tcp -m tcp --sport 53022 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -p tcp -m tcp --sport 443 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -p udp -m udp --dport 53 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -d 210.188.224.14/32 -p udp -m udp --dport 123 -j ACCEPT -A OUTPUT -s xxx.xxx.xxx.xxx/32 -p tcp -m tcp --dport 80 -j ACCEPT # http -A OUTPUT -p tcp --sport 80 -j ACCEPT # mail -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT -A OUTPUT -m limit --limit 1/s -j LOG --log-prefix "[iptables OUTPUT] : " -A OUTPUT -j LOGGING #-A LOGGING -m limit --limit 3/hour -j LOG --log-prefix "DROP:" -A LOGGING -j DROP COMMIT

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.2

> mailコマンドはiptablesを設定しているサーバーで実行しました。 > iptablesを設定したサーバーから外へメールを送れない状況です。 なるほど、(そのサーバーから見ると)メール送信だね。 「だからメールの送信が出来ないと質問に書いてるだろぼけ」と思うなかれ。「メールが送れません」というQAをやる時にはまずそこの認識を全員で合わせるのがベストな初動だ。 で、そのサーバーからインターネットへのメール送信(私はこれをアウトバウンドメールと呼んでいる)が出来ない理由だけど、試してないので漏れがあるかも知れないし、余計な(=誤った)指摘があるかも知れない。思いついたのは以下の2つ。 ・OUTPUTの ESTABLISHEDに対するルールがない -A OUTPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT この行でTCPがハンドシェイクする前の、つまりそのサーバーからインターネットの25番に対するTCP接続要求は通るけどお互いがSYN/ACKを送信した後のOUTPUTパケットがドロップされているのではないだろうか。 ただ、私はOUTPUTに--state ESTABLISHEDなんてやった事ないのでそれができるかどうか分からない。TCPだからいけるような気はするんだけどね。ぜひ試してみていただきたい。 ・INPUTにこちらのポートは不定(任意)、あちらのポートが25であるパケットに対するルールがない そのサーバーがインターネットに対してSMTPクライアントになる場合、INPUTに--sport 25であるパケットの許可が必要だ。 なんだけど、ひょっとしたらこれは間違いかも。がちがちにルール盛り込んだサーバー作った事あるけどそこでもこんなルール書いたことないし。 ~~~~ ここから蛇足 ~~~~ iptablesのルール全般についてなんだけど、正直意味(意図)が不明なルールが多いのが気になる。UDPにstateがあるとか、ポート番号110番と587番の扱いとか、 -A INPUT -d xxx.xxx.xxx.xxx/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --sport 80 -j ACCEPT の後でDROPなどの他のターゲットをはさむことなく -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT がきているとか。RELATEDとESTABLISHEDは基本許すなら上はNEWだけにすべきだしWebサーバーからのパケットは基本許すなら上はそもそもstateを指定する意味が分からない。逆に言うとNEWとRELATEDとESTABLISHED以外のパケットはこのルールにヒットしないがそれをどういう意図で行っているかが分からない。ステートにはNEWとRELATEDとESTABLISHED以外に何があってなぜそれをヒットさせたくないか説明できるだろうか。 (iptablesの)ルールを書く前にExcelか何かで行いたい設定をまとめてみるといいんじゃないかな。 それと、近くのiptablesに詳しい技術者に一度ルールを見てもらって指南してもらうといいと思う。

kaishaingotanda
質問者

お礼

返事が遅くなりまして申し訳ありません。 いろいろとご教示いただきありがとうございました。 結果的には以下が原因でした。 >・OUTPUTの ESTABLISHEDに対するルールがない 今回質問させていただいた背景として、以下のようなことがありました。 ・質問者のiptablesの知識は単純なポートの開閉ができる程度 ・設定は前任者から引き継いだが、詳細までは引継ぎできていない ・とりいそぎメール送信をできるようにしたかった 近くにiptablesに詳しい技術者がいなかったので、こちらで質問させていただいた次第です。 回答いただいたことにより、それぞれの意図を理解しないとダメだということが分かりました。 今回の件を参考に勉強していこうと思います。

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

おかしいのは -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -s zzz.zzz.zzz.zzz/32 -d xxx.xxx.xxx.xxx/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 53022 -j ACCEPT -A INPUT -s yyy.yyy.yyy.yy/28 -d xxx.xxx.xxx.xxx/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 53022 -j ACCEPT -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -d xxx.xxx.xxx.xxx/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 443 -j ACCEPT -A INPUT -p udp -m state --state NEW,RELATED,ESTABLISHED -m udp --sport 53 -j ACCEPT -A INPUT -s 210.188.224.14/32 -p udp -m udp --sport 123 -j ACCEPT -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -d xxx.xxx.xxx.xxx/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --sport 80 -j ACCEPT この辺のどこかなんだけど、これらの設定の意図はなんだべ? 一行一行目的(何を許可するルールなのか)を説明してくれないか。 --dport 53022が含まれる行については説明不要というかこんな設定内容をインターネットにさらしたら駄目じゃろ。 出来ないならそれはいいのでこの下についてだけ補足説明をいただきたい。 後、mailコマンドを入力したコンピューターとこのiptablesを設定しているサーバーは同じなのかな? ←本当に必要な補足情報はこちら。こちらの情報がないとどこが悪いのか確実には判断できない。つまり、そのiptablesを設定したサーバーから外へメールを送るのが出来ないのか、外からそのiptablesを設定したサーバーへメールを受け取る事ができないのかをはっきりさせた方がいい。一応前者だと受け取っているのだがそれで問題ないだろうか。

kaishaingotanda
質問者

補足

mailコマンドはiptablesを設定しているサーバーで実行しました。 iptablesを設定したサーバーから外へメールを送れない状況です。

関連するQ&A

  • サーバーでポート587番が開放できない

    現在O社のVPSでメールサーバーを構築し、ポート587番を開放したくてiptablesの編集を行いましたが、開放されません。 O社のサポートに問い合わせをしても3日返事ももらえなくて困ってます。 有識者の方のアドバイスをいただきたくて投稿いたしました。 ● VPSのOSはCentos6.2です。 ● SELinuxは無効になっています。 ------------------------------------------------------- # iptables -n -L で確認すると次の用に出力されます。 --------------------------------------------------- Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:587 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:110 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:143 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:465 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination ------------------------------------------------------------------------------- ● cat /etc/sysconfig/iptables で確認すると以下のとおりです。 *** CKFILTER 省略 **** -A INPUT -i lo -j ACCEPT -A INPUT -s xxx.xxx.xxx.0/24 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -f -j LOG --log-prefix "FRAGMENT DROP:" --log-level 7 -A INPUT -f -j DROP -A INPUT ! -s xxx.xxx.xxx.0/24 -p tcp -m multiport --dports 135,137,138,139,445 -j DROP -A INPUT ! -s xxx.xxx.xxx.0/24 -p udp -m multiport --dports 135,137,138,139,445 -j DROP -A INPUT -p icmp -m icmp --icmp-type 8 -j PINGOFDEATH -A INPUT -d 255.255.255.255/32 -j DROP -A INPUT -d 224.0.0.1/32 -j DROP -A INPUT -p tcp -m tcp --dport 113 -j REJECT --reject-with tcp-reset -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --sport 20 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 4000:4029 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m tcp --dport 587 -j ACCEPT -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT -A INPUT -m limit --limit 1/sec -j LOG --log-prefix "INPUT DROP:" --log-level 7 -A INPUT -j DROP -A FORWARD -m limit --limit 1/sec -j LOG --log-prefix "FORWARD DROP:" --log-level 7 -A FORWARD -j DROP -A OUTPUT ! -d xxx.xxx.xxx.0/24 -p tcp -m multiport --sports 135,137,138,139,445 -j DROP -A OUTPUT ! -d xxx.xxx.xxx.0/24 -p udp -m multiport --sports 135,137,138,139,445 -j DROP -A CKFILTER -j DROP -A PINGOFDEATH -m limit --limit 1/sec --limit-burst 4 -j ACCEPT -A PINGOFDEATH -j LOG --log-prefix "PINGDEATH DROP:" --log-level 7 -A PINGOFDEATH -j DROP COMMIT # Completed on Tue Apr 15 15:44:15 2014 ● iptablesの編集は次のスクリプト(http://centos.server-manual.com/centos6_iptables.html を参考にさせてもらっています。) -------------------------------------- なぜかポート587番は開放されません。 ● telnetで確認すると # telnet localhost 587 Trying 127.0.0.1... telnet: connect to address 127.0.0.1: Connection refused となります。 ネットでも検索しましたがヒットしませんでした。

  • さくらVPSのVPNサーバーの設定について

    お世話になります。 現在さくらVPSサーバー内にL2TPにてVPNサーバーを構築しているのですが、行き詰まっている点があります。 サーバー内にはWebサイトがあり、VPNサーバーとして使う一方、同時にブラウザでアクセスした際にサイトを表示させたいのですが、iptabelsの設定が上手くいかない状況です。 これらを両立させることは可能でしょうか。 【VPNは接続できるがサイトが表示されない】 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT # L2TP/IPsec -A FORWARD -i ppp+ -j ACCEPT -A FORWARD -o ppp+ -j ACCEPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p esp -j ACCEPT -A INPUT -p udp -m udp --dport 1701 -j ACCEPT -A INPUT -p udp -m udp --dport 500 -j ACCEPT -A INPUT -p udp -m udp --dport 4500 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT *nat -A POSTROUTING -s 192.168.1.128/25 -j MASQUERADE COMMIT 【サイトは表示されるがVPNが接続できない】 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # SSH, HTTP, FTP1, FTP2, MySQL -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 61203 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited # L2TP/IPsec -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A FORWARD -i ppp+ -j ACCEPT -A FORWARD -o ppp+ -j ACCEPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p esp -j ACCEPT -A INPUT -p udp -m udp --dport 1701 -j ACCEPT -A INPUT -p udp -m udp --dport 500 -j ACCEPT -A INPUT -p udp -m udp --dport 4500 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT *nat -A POSTROUTING -s 192.168.1.128/25 -j MASQUERADE COMMIT 【VPNが接続でき】且つ【サイトも表示させる】方法はあるのでしょうか。 またはそもそもVPNサーバーのみしか単独で動作しないのでしょうか? どうぞよろしくお願い致します。

  • scpコマンドでサーバー間のファイルコピー

    AサーバーのファイルをBサーバーに転送する方法について教えてください。 ウェブで情報を調べて実行してみましたがうまくいきません。 Aサーバーの/home/me/appをBサーバーの/home/me/testにコピー BサーバーのSSHのポート番号は●●●●に変更してある。 下記のコマンドを実行 scp -r -P ●●●● /home/me/app user@xxx.xxx.xxx.xxx :/home/me/test 応答メッセージ -------------------------------------------------------------------------- ssh: connect to host xxx.xxx.xxx.xxx port ●●●●: Connection timed out lost connection -------------------------------------------------------------------------- サーバーBのiptables -------------------------------------------------------------------------- *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport ●●●● -j ACCEPT -A INPUT -s (転送元サーバーのIPアドレス) -p tcp --dport ●●●● -j ACCEPT→追加した行 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT -A INPUT -p tcp -m tcp --sport 20 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --sport 21 -j ACCEPT COMMIT -------------------------------------------------------------------------- サーバーAのiptablesも同じ記載方法です。 サーバーBのiptablesの設定はこれで良いか教えてください。 サーバーAのiptablesに変更が必要であれば記載方法を教えてください。 接続はSSHというのは解ったのですが、ファイルの転送自体は何で行われるのでしょうか?FTPなどでしょうか? ご回答宜しくお願い致します。

  • 【 Fedora Core3 】 /etc/sysconfig/iptables

    DNSサーバ兼Webサーバに使おうと思っています。 SSHは使います。 (現在試験稼動中です。) セキュリティを強化するために是非ともご指摘・ご指南頂ければ幸いです。 よろしくお願いします。<(_ _)> /etc/sysconfig/iptables -- *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A INPUT -p udp -m udp --sport 53 -j ACCEPT -A FORWARD -j RH-Firewall-1-INPUT -A OUTPUT -pudp -m udp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp-type any -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 244.0.0.251 -p 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,ESTABLISH -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT --

  • iptablesの設定がうまく反映されません

    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

  • iptablesの設定について

    IISとApachのテストサイトを構築しています。 LINUXマシンにNICを2枚差し、 インターネット側:FW-OUT(eth0) プライベート側:FW-IN(eth1) WEBサイトの仮想アドレスとして、 V_WEB(eth0:1) V_WIN2K(eth0:2) MAINTマシンからPINGは172.32.0.0は通るのですが、 当該マシンから両WEBページが閲覧できません。 記述は、 http://www.atmarkit.co.jp/flinux/rensai/security03/security03a.html を参考に変更しました。 何か手がかりがあればお願いします。 #!/bin/sh # # Define IP Address FW_OUT='172.32.0.100' FW_IN='192.168.0.1' V_WEB='172.32.0.10' V_WIN2K='172.32.0.20' R_WEB='192.168.0.10' R_WIN2K='192.168.0.20' MAINT='172.32.0.150' ANY='0.0.0.0' # # Flush chains /sbin/iptables -F # /sbin/iptables -P INPUT DROP /sbin/iptables -P FORWARD DROP /sbin/iptables -P OUTPUT DROP # /sbin/iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT /sbin/iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT # /sbin/iptables -A OUTPUT -p icmp -s $FW_OUT --icmp-type 0 -d $MAINT -j ACCEPT /sbin/iptables -A INPUT -p icmp -s $MAINT --icmp-type 8 -d $FW_OUT -j ACCEPT # /sbin/iptables -A OUTPUT -p icmp -s $V_WEB --icmp-type 0 -d $MAINT -j ACCEPT /sbin/iptables -A INPUT -p icmp -s $MAINT --icmp-type 8 -d $V_WEB -j ACCEPT /sbin/iptables -A OUTPUT -p icmp -s $V_WIN2K --icmp-type 0 -d $MAINT -j ACCEPT /sbin/iptables -A INPUT -p icmp -s $MAINT --icmp-type 8 -d $V_WIN2K -j ACCEPT # /sbin/iptables -A INPUT -p icmp -s $MAINT --icmp-type 0 -d $V_WEB -j ACCEPT /sbin/iptables -A OUTPUT -p icmp -s $V_WEB --icmp-type 8 -d $MAINT -j ACCEPT /sbin/iptables -A INPUT -p icmp -s $MAINT --icmp-type 0 -d $V_WIN2K -j ACCEPT /sbin/iptables -A OUTPUT -p icmp -s $V_WIN2K --icmp-type 8 -d $MAINT -j ACCEPT # /sbin/iptables -A INPUT -p TCP -s $MAINT --dport 22 -d $FW_OUT -i eth0 -j ACCEPT /sbin/iptables -A OUTPUT -p TCP ! --syn --sport 22 -s $FW_OUT -d $MAINT -o eth0 -j ACCEPT # /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 80 -d $R_WEB -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 80 -s $R_WEB -d $ANY -j ACCEPT # /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 443 -d $R_WEB -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 443 -s $R_WEB -d $ANY -j ACCEPT # /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 80 -d $R_WIN2K -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 80 -s $R_WIN2K -d $ANY -j ACCEPT # /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 135 -d $R_WIN2K -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 135 -s $R_WIN2K -d $ANY -j ACCEPT /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 137 -d $R_WIN2K -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 137 -s $R_WIN2K -d $ANY -j ACCEPT /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 138 -d $R_WIN2K -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 138 -s $R_WIN2K -d $ANY -j ACCEPT /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 139 -d $R_WIN2K -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 139 -s $R_WIN2K -d $ANY -j ACCEPT /sbin/iptables -A FORWARD -p TCP -s $ANY --dport 445 -d $R_WIN2K -j ACCEPT /sbin/iptables -A FORWARD -p TCP ! --syn -m state --state ESTABLISHED --sport 445 -s $R_WIN2K -d $ANY -j ACCEPT # # Flush Nat Rules # /sbin/iptables -t nat -F # # Nat Rules # /sbin/iptables -t nat -A POSTROUTING -s $R_WEB -o eth0 -p TCP -j SNAT --to $V_WEB /sbin/iptables -t nat -A POSTROUTING -s $R_WIN2K -o eth0 -p TCP -j SNAT --to $V_WIN2K # # End Of Rules [root@firewall FW]#

  • さくらのVPSでポート8080が開けられません

    さくらのVPSでポート8080が開けられません。 ポート22,25,80,443は既に開放されている、さくらVPSサーバーに、 新たにポート8080を開放しようとしたところ、うまく開放できませんでした。。 (開放確認は、ポートチェックツール:http://www.cman.jp/network/support/port.html でチェックしました) どなたか解決方法をご教授頂けないでしょうか・・・。 以下、入力したコマンドになります。 -------------------------------------------------- # iptables -I INPUT 8 -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT # service iptables save # service iptables restart # iptables -L -v Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 126 9970 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- any any anywhere anywhere 2 114 ACCEPT all -- lo any anywhere anywhere 2 152 ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:ssh 4 240 ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:smtp 0 0 ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:http 1 60 ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:https 1 60 ACCEPT tcp -- any any anywhere anywhere state NEW tcp dpt:webcache 40 4154 REJECT all -- any any anywhere anywhere reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- any any anywhere anywhere reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 124 packets, 30393 bytes) pkts bytes target prot opt in out source destination # iptables -L -v -n Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 160 12751 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 2 114 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 2 152 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 300 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 1 60 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443 1 60 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8080 42 4440 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited -------------------------------------------------- # vi /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [7:1336] -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 -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT -------------------------------------------------- 以上、よろしくお願い致します。

  • iptablesにて

    OS:RHEL AS3 iptablesにて以下の方法を教えて下さい。 (1)80ポートはINPUTのみ通過 (2)42ポートはINPUT、OUTPUTを通過 (3)123ポートはINPUT、OUTPUTを通過 (4)上記全てはeth0のみ設定 (5)eth1は全て通過 (6)全て特定のIPからのみ通過 見づらいとは思いますが、下記のような設定を行ってもだめでした。 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] :RH-Firewall-2-OUTPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A OUTPUT -j RH-Firewall-2-OUTPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -i eth1 -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 80 -s IP/32 -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 42 -s IP(2)/32 -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp --dport 123 -s IP(3)/32 -j ACCEPT -A RH-Firewall-2-OUTPUT -m tcp -p tcp --dport 42 -s IP(2)/32 -j ACCEPT -A RH-Firewall-2-OUTPUT -m tcp -p tcp --dport 123 -s IP(3)/32 -j ACCEPT 非常に困っております。宜しくお願い致します。

  • VMWareのCentOS6.4でのFFFTP

    Windows8.1で、VMWare上にCentOS6.4をインストールしてFTPサーバーとしてFFFTPを動かしたいのですが、現在、TeraTermでのSSH2の接続、pingでのWindowsホスト<->CentOSホスト間の通信などは皆うまくいっています。また、CentOSのIPアドレスにアクセスして、/var/www/htmlのWebページにもアクセスできます。 しかし、何故か、FFFTPで接続しようとすると、 接続しました。(TCP/IPv4) SSH-2.0-OpenSSH_5.3 と出てきてしばらく経つと 受信はタイムアウトで失敗しました。 接続できません。 となります。 FTPサーバーは、下記の記事の通り、profptdをインストールして、xinetd経由で起動する方法を使っています。 http://blog.trippyboy.com/2013/centos/centos6-4-xinetd%E7%B5%8C%E7%94%B1%E3%81%A7proftpd%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%95%E3%81%9B%E3%82%8B%E3%82%88%E3%81%86%E3%81%AByum%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%B9/ 後、iptables(ファイアーウォール)の設定は、下記のように記述しています。 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] # -A INPUT -i lo -j ACCEPT # -A INPUT -p icmp --icmp-type any -j ACCEPT # -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # -A INPUT -p tcp -m state --state NEW ! --syn -j DROP # -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT COMMIT iptables及び、FFFTPの設定方法などで、接続がうまくいかない理由とか分かるようであれば、情報をいただきたいのです。(centOSは今回使うのが初めてで、まだ全然詳しくありません。) よろしくお願いします。

  • iptablesでポートフォアワードがうまくいかない。

    お世話になります。下記の通りiptablesでフィルターとNATの定義をしました。 しかし、内部からネットへの接続は可能ですが、外部からWebサーバーにあるHPが見れない指摘を受け、その原因を調べています。 不備な点、ご指導賜りたく存じます。 eth0:1.2.3.4 ---------- | Linux | ----------- eth1:192.168.0.101   | websever:192.168.0.100 cla:192.168.0.102~ modprobe iptable_nat modprobe ip_conntrack_ftp modprobe ip_nat_ftp iptables -F iptables -t nat -F iptables -t mangle -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptables -A OUTPUT -o lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j ACCEPT iptables -A OUTPUT -o eth1 -d 192.168.0.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -d 1.2.3.4 -j ACCEPT iptables -A OUTPUT -p tcp --dport 80 -s 1.2.3.4 -j ACCEPT iptables -A INPUT -p tcp --dport 53 -d 1.2.3.4 -j ACCEPT iptables -A OUTPUT -p tcp --dport 53 -s 1.2.3.4 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 -i eth0 --dport 80 -j DNAT --to 192.168.0.100:80 iptables -A FORWARD -i eth1 -o eth0 -s 192.168.0.0/24 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4 iptables -t nat -A POSTROUTING -s 192.168.0.102/32 -o eth0 -j MASQUERADE