• 締切済み
  • 困ってます

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

noname#29100
noname#29100

共感・応援の気持ちを伝えよう!

みんなの回答

  • 回答No.2
  • xjd
  • ベストアンサー率63% (1021/1612)

最初に、forwardをDROPしていて内側から外側へのforwardのみ許可しています。 外側からLAN上のサーバへのforwardが定義されていないようです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答を頂いてから相当な時間が経過しました。 あれから、いろいろな定義をしましたが、いづれも上手く行かず結局のところ、別個にファイヤーウォール(ルーター)を入れ定義し完成しました。 どうも、ありがとうございました。

  • 回答No.1
  • xjd
  • ベストアンサー率63% (1021/1612)

気になるところはたくさんありますが、とりあえず 外部からのフォーワードができていないようです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

何度となく回答をしていただき真にありがとうございます。 具体的には、INPUT.OUTPUTの他、どのようなチェインを張れば良いのか教えてもらえないでしょうか?

関連するQ&A

  • 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]#

  • iptables ポートフォワーディングについて

    ポートフォワーディングの設定を行いたくて試しにやっているのですが、 うまくいかないので教えていただけないでしょうか。 WinXPクライアント(192.168.1.22) | Linuxルーター(eth0=192.168.1.40, eth1=192.168.2.41)起動しているサーバーはssh,telnet,ftp,http,postgresです。 | LinuxWebサーバー(eth0=192.168.2.81 port=80)起動しているサーバーはssh,telnet,ftp,http,postgres,cvspserverです。 WinXPクライアントからLinuxWebサーバーにアクセスしたいのですが、以下のように設定しても WinXPクライアントのブラウザには「サーバーが見つかりません」と表示されてしまいます。 他に追記すべき設定、お気づき等ございましたら教えてください。よろしくお願いします。 Linuxルーターのiptables設定内容(service iptables stopを行った後、以下を設定しております) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.2.81:80 iptables -A FORWARD -d 192.168.2.81 -p tcp --dport 80 -j ACCEPT ------------------------------------------------------------- 上記設定後iptables -Lとしてみたら以下のように表示されました。 Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination ACCEPT tcp -- anywhere 192.168.2.81 tcp dpt:http Chain OUTPUT (policy ACCEPT) target prot opt source destination さらにservice iptables saveをして cat /etc/sysconfig/iptablesとしてみたところ以下のように表示されました。 # Generated by iptables-save v1.3.5 on Sat Jan 30 11:46:10 2010 *nat :PREROUTING ACCEPT [2:280] :POSTROUTING ACCEPT [2:115] :OUTPUT ACCEPT [2:115] -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.81:80 COMMIT # Completed on Sat Jan 30 11:46:10 2010 # Generated by iptables-save v1.3.5 on Sat Jan 30 11:46:10 2010 *filter :INPUT ACCEPT [148:9894] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [169:16447] -A FORWARD -d 192.168.2.81 -p tcp -m tcp --dport 80 -j ACCEPT COMMIT # Completed on Sat Jan 30 11:46:10 2010 ------------------------------------------------------------- ちなみに以下のように設定してWinXPクライアントからsshで192.168.1.40の10000ポートに接続すると接続できました。 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10000 -j DNAT --to 192.168.2.41:22 ------------------------------------------------------------- 以下のように設定してWinXPクライアントから「telnet 192.168.1.40 10000」コマンドを発行してみるとしていない 時と比べて「接続中: 192.168.1.40...」となっている時間が長いので何かしら影響しているのかなと思います。 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 10000 -j DNAT --to 192.168.2.81:23

  • 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 非常に困っております。宜しくお願い致します。

  • 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

  • DMZのLinuxサーバでメールとFTPができません。

    RedHatLinux9でサーバを構築しました。 DMZにWEBサーバとメールサーバをつなげたのですが、WEBサーバは見えるのですが、メールサーバがつながりません。メールサーバには、sendmail と UWIMAP を使用しています。FTPでもDMZのサーバにログインできません。FFFTPでつなげようとすると、“Listenソケットが取得できません”と表示されます。 何が原因と考えられますか? iptables には、 (WANはppp0、DMZはeth1、LANはeth2、) iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -i eth2 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i eth2 -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i ppp0 -o eth1 -p tcp -d aaa.bbb.cc.ddd/32 --dport 80 -j ACCEPT iptables -A FORWARD -i ppp0 -o eth1 -p tcp -d aaa.bbb.cc.ddd/32 --dport 25 -j ACCEPT iptables -A FORWARD -i eth1 -o ppp0 -p tcp -s aaa.bbb.cc.ddd/32 --dport 25 -j ACCEPT という記述がなされています。 iptables -A FORWARD -i eth2 -j ACCEPT これだけでは、FTPでログインできないんでしたっけ。。 iptables -A FORWARD -i eth2 -j ACCEPT iptables -A FORWARD -i ppp0 -o eth1 -p tcp -d aaa.bbb.cc.ddd/32 --dport 25 -j ACCEPT iptables -A FORWARD -i eth1 -o ppp0 -p tcp -s aaa.bbb.cc.ddd/32 --dport 25 -j ACCEPT メールもこれだけではだめなんでしょうか?

  • iptables について

    いつもお世話になっております。 iptables について質問させてください。 下記の2つのフィルター、1と2のフィルターとしての違いはなんでしょうか? また、state NEW,ESTABLISH を指定することでどのようなメリットがあるのでしょうか? すみませんが、教えてください。 以上、よろしくお願い致します。 1.iptables -I RH-Firewall-1-INPUT 10 -p tcp --dport 80 -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT 2.iptables -I RH-Firewall-1-INPUT 10 -p tcp -m state --state NEW,ESTABLISHED,RELATED --dport 80 -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT

  • iptablesを設定するとメールが送受信できません

    iptablesを設定すると外部からのメールの送受信ができません。 iptablesを止めると送受信ができます。 メールサーバー(OpenSSL+Postfix+Dovecot) OS:CentOS5 iptables内容: #!/bin/bash # set LOCALNET=(IPアドレス) #IPTABLES STOP /etc/rc.d/init.d/iptables stop #Default Rule iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP #LOCAL ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -s $LOCALNET -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # SSH iptables -A INPUT -p tcp --dport 22 -j ACCEPT #HTTP iptables -A INPUT -p tcp --dport 80 -j ACCEPT # SSL iptables -A INPUT -p tcp --dport 443 -j ACCEPT #SMTPS iptables -A INPUT -p tcp --dport 465 -j ACCEPT #POP3S iptables -A INPUT -p tcp --dport 995 -j ACCEPT /etc/rc.d/init.d/iptables save /etc/rc.d/init.d/iptables start DNSは外部のを使っています。 サーバーには外部からSSHでアクセスしています。 iptablesを設定しても当たり前ですがSSHでアクセスができます。 メールはエラーというよりメーラーから出ていきません。 サイトにはアクセスができます。 ポートは空いています。 ただiptablesを設定すると465と995は到達ができません。 http://www.cman.jp/network/support/port.html こちらでチェック iptablesを止めるとすべてがうまくいくのでiptablesが原因だと思っていますが 素人すぎて情けないですがご教授のほど宜しくお願いします。,<(_ _)>

  • iptablesの設定でINPUTが制限されない

    iptablesをさわっています。80番ポートのみあけたいのですが、80番以外も外部からアクセスできてしまいます。 iptables -P FORWARD DROP iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT FILTERNAME=CKFILTER TARGET=CKFILTERED iptables -A $FILTERNAME -s 58.6.0.0/17 -j $TARGET iptables -A $FILTERNAME -s 58.6.128.0/17 -j $TARGET iptables -A $FILTERNAME -s 58.7.0.0/16 -j $TARGET iptables -A $FILTERNAME -s 58.14.0.0/15 -j $TARGET iptables -A $FILTERNAME -s 58.16.0.0/16 -j $TARGET iptables -A $FILTERNAME -s 58.17.0.0/17 -j $TARGET iptables -A CKFILTER -j ACCEPT iptables -A CKFILTERED -j LOG --log-prefix "Reject-TCP " iptables -A CKFILTERED -j DROP iptables -A INPUT -p tcp -m state --state NEW -j CKFILTER iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT どこが間違っているのか見つけられず困っています。

  • iptablesの設定について

    Centos6.3の64ビットを使ってるのですが、iptablesの設定で -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT とまったく同じ記述なのに110ポートは開放できて25ポートは開放できないのですが何が原因なのでしょうか? サービスはカゴヤクラウドのタイプAを使用しています

  • 【 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 --