iptablesでFTPのパッシブモード通信許可

このQ&Aのポイント
  • FWサーバーとWebサーバーを構成し、iptablesでアクセスの振り分けを行っています。
  • FTPのForward設定で問題が発生しているため、解決方法を質問しています。
  • ip_conntrack_ftpを組み込むことで、FTPのパッシブモード通信を制御できるという情報を得ています。
回答を見る
  • ベストアンサー

iptablesでFTPのパッシブモード通信許可

こんにちは。 iptablesの学習でテスト用のFWサーバーと2台のWebサーバーをつくりました。 いまはForwardでアクセスごとに転送先を振り分ける実験をしています。 FTPのForward設定でわからないことがあるので質問させてください。 やりたいこと: ip_conntrack_ftpを組み込めばiptablesにいちいちパッシブ通信の使用ポートすべてを指定しなくても、モジュールが自動で制御してくれるという情報をネットで見かけ、それをやってみようと考えています。ところがどうがんばってもFTPのパッシブモードがつながりません。FTP以外のサービス、たとえばDNS, NTP, HTTP等のForwardは問題なく行えています。 環境: FWサーバー → CentOS6 iptablesで外部からのアクセスをブロックしたり、振り分けたり。 WEBサーバー → CentOS6 apacheとvsftpdでWebサーバーを構成。iptables無効です。 ルーター → 業務用ですがファイアウォール等はすべて無効になっています。 111.222.333.0はグローバルIPアドレスです。 192.168.1.0はローカルIPアドレスです。                              -eth0(WEB_SERVER1)                              | 192.168.1.2(→111.222.333.2) (ONU)-(ROUTER)-eth0(FW_SERVER)eth1----|        111.222.333.1(eth0)          |        111.222.333.2(eth0:1)         -eth0(WEB_SERVER2)        111.222.333.3(eth0:2)          192.168.1.3(→111.222.333.3)        192.168.1.1(eth1) FWサーバーのiptable設定: net.ipv4.ip_forward = 1 ip_conntrack_ftpモジュール有効 ip_nat_ftpモジュール有効 iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP . .(一部省略) . # HTTP iptables -A FORWARD -p tcp -i eth0 -o eth1 -m multiport --dport 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -p tcp -i eth1 -o eth0 -m multiport --sport 80,443 -m state --state ESTABLISHED,RELATED -j ACCEPT # FTP(ここをどうしたらいいのかわからない) iptables -A FORWARD -p tcp --dport 21 -j ACCEPT iptables -A FORWARD -p tcp --sport 21 -j ACCEPT # Webserver1 iptables -t nat -A PREROUTING -i eth0 -d 111.222.333.2 -j DNAT --to-destination 192.168.1.2 iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.2 -j SNAT --to-source 111.222.333.2 # Webserver2 iptables -t nat -A PREROUTING -i eth0 -d 111.222.333.3 -j DNAT --to-destination 192.168.1.3 iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.3 -j SNAT --to-source 111.222.333.3 上記設定でFTPのForward部分をmultiportにしてポート20を入れたり除いたり、NEWやESTABLISHEDやRELATEDを入れたり消したり、いろいろ試行錯誤していますがFilezillaで下のようなエラーがでます。 PASV レスポンス: 227 Entering Passive Mode (111,222,333,2,92,226). コマンド: LIST エラー: 接続タイムアウト エラー: ディレクトリ一覧表示の取り出しに失敗しました 説明が長くて恐縮ですがよろしくお願いします。 <(_ _)>

  • pouta
  • お礼率72% (61/84)

質問者が選んだベストアンサー

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

うーん。こうしたらどうでしょう。 # HTTP iptables -A FORWARD -p tcp -i eth0 -o eth1 -m multiport --dport 80,443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -p tcp -i eth1 -o eth0 -m multiport --sport 80,443 -m state --state ESTABLISHED,RELATED -j ACCEPT # FTP(ここをどうしたらいいのかわからない) iptables -A FORWARD -p tcp --dport 21 -j ACCEPT iptables -A FORWARD -p tcp --sport 21 -j ACCEPT ↓ iptables -A FORWARD -p tcp -m state --state ESTABLISHED,RELATED -jACCEPT (1) iptables -A FORWARD -i eth0 -o eth1 -p tcp -m state --state NEW -m multiport --dport 21,80,443 -j ACCEPT (2) まずは上の2行(1)(2)でHTTP通信ができる事を確認して欲しい。なぜこれでうまくいくかというと、eth0から入ってきてeth1に出ていく80番への接続要求パケットは(2)で許可されるが、そこからの戻りパケットならびにその後の通信は(1)で許可される(ESTABLISHEDステート)。 その後でFTPの検証をしましょう。まず、FTPコネクションはHTTPと同じく(2)から(1)のコンボで通信できる。さらに、(1)のstateにRELATEDというものを加える(アンドip_conntrack_ftpとip_nat_ftp)事でFTP-DATAコネクションもいける、はず。パッシブFTPでもアクティブFTPでもいける、はず。 セキュリティのためには(2)はもう少し入れた方が良い。 iptables -A FORWARD -i eth0 -o eth1 -p tcp -d 192.168.1.2 -m state --state NEW -m multiport --dport 21,80,443 -j ACCEPT (2)' iptables -A FORWARD -i eth0 -o eth1 -p tcp -d 192.168.1.3 -m state --state NEW -m multiport --dport 21,80,443 -j ACCEPT (2)'' あて先IPアドレスを指定する事で、192.168.1.2と192.168.1.3以外のノードを192.168.1.0のセグメントに接続した場合でも2と3以外の80番とかにはインターネットから到達させないようにするのだ。 ここで指定するのはローカルIPアドレスだ。なぜかというとfilterテーブルのFORWARDチェインに到達したパケットは先にnatテーブルのPREROUTINGチェインにてDNATされているからだ。このようにiptablesはチェインの順番を意識して組み立てないといけない事も多いのでチェインの流れを調べておくと良いだろう。

pouta
質問者

お礼

ご教示いただいた内容でちゃんと動きました。 助かりました。 ありがとうございます。

関連するQ&A

  • 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

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

  • 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の勉強中ですが、アドレスの変換がうまくできず行き詰っています。 下図のように Mannaka をはさんで隔離された実験環境をつくりました。ここでやりたいことは、とにかくどんなアクセスやプロセスでもいいので、Mannaka をはさんで 192.168.10.10 <--> 192.168.20.100 192.168.10.20 <--> 192.168.20.200 というアドレス変換を実現したいということです。実験なのでセキュリティは度外視し、とにかくつながることを優先しています。Server1とServer2ではWebサーバーが動いていて、Apacheのインストールページが表示されます。 (192.168.20.100) Server1――          |          |―(eth1)Mannaka(eth0)―――PCs(192.168.10.X)          | (eth0=192.168.10.10)Mannaka IP Server2――  (eth1=192.168.20.10)Mannaka IP (192.168.20.200)          ---            (eth0:1=192.168.10.100)Server1 IP            (eth0:2=192.168.10.200)Server2 IP iptablesの設定は下記のようにしました。 ---------- ---------- #!/bin/sh service iptables restart echo 1 > /proc/sys/net/ipv4/ip_forward iptables -F iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -A FORWARD -d 192.168.10.10 -s 0.0.0.0 -j ACCEPT iptables -A FORWARD -d 0.0.0.0 -s 192.168.10.10 -j ACCEPT iptables -A FORWARD -d 192.168.10.20 -s 0.0.0.0 -j ACCEPT iptables -A FORWARD -d 0.0.0.0 -s 192.168.10.20 -j ACCEPT iptables -t nat -A PREROUTING -d 192.168.10.10 -j DNAT --to 192.168.20.100 iptables -t nat -A PREROUTING -d 192.168.10.20 -j DNAT --to 192.168.20.200 iptables -t nat -A POSTROUTING -s 192.168.20.100 -j SNAT --to 192.168.10.10 iptables -t nat -A POSTROUTING -s 192.168.20.200 -j SNAT --to 192.168.10.20 ---------- ---------- 意図としては、 192.168.10.10へのアクセスがServer1(実IP192.168.20.100)、 192.168.10.20へのアクセスがServer2(実IP192.168.20.200) へと割り振られ、同じく Server1(実IP192.168.20.100)からのアクセスが192.168.10.10、 Server2(実IP192.168.20.200)からのアクセスが192.168.10.20 へと割り振られる、ということなのですが、スクリプトを実行してもeth0側のPCからeth1側のサーバーにアクセスできません。eth1側からeth0側へのアクセスもできません。192.168.20.0内部でのPing送受信やWebサイト閲覧は自由にできますが、eth0側のPCから192.168.10.10と192.168.10.20にPingを送っても、Mannakaサーバーが応答してしまい意図した動きにはなっていません。Server1とServer2のWebサイトも閲覧できません。 環境は、Mannaka, Server1, Server2 がCentOS6、その他のPCはWindows7です。 これがなぜ意図したとおりに動かないのか、そしてどうすれば動くようになるのかをご教示いただけないでしょうか。 よろしくお願いします。

  • 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の設定 NetBiosについて

    RedHat9 Linux でサーバ兼ルータを構築しています。(DMZも使用しています) (WAN側 ppp0 、DMZ側 eth1、LAN側 eth2) iptables の設定として、 # ポリシーの設定 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT # NetBIOS関連のパケットはログをとり、インターネットに出さない iptables -N net-bios iptables -A net-bios -j LOG --log-prefix "### NetBIOS ###" iptables -A net-bios -j DROP iptables -A INPUT -i ppp0 -p tcp -m multiport --sport 135,137,138,139,445 -j net-bios iptables -A INPUT -i ppp0 -p udp -m multiport --sport 135,137,138,139,445 -j net-bios iptables -A INPUT -i ppp0 -p tcp -m multiport --dport 135,137,138,139,445 -j net-bios iptables -A INPUT -i ppp0 -p udp -m multiport --dport 135,137,138,139,445 -j net-bios iptables -A FORWARD -p tcp -m multiport --sport 135,137,138,139,445 -j net-bios iptables -A FORWARD -p udp -m multiport --sport 135,137,138,139,445 -j net-bios iptables -A FORWARD -p tcp -m multiport --dport 135,137,138,139,445 -j net-bios iptables -A FORWARD -p udp -m multiport --dport 135,137,138,139,445 -j net-bios というのを設定しました。 下記のサイトを参考にしました。 http://www.kkoba.com/linuxrouter/iptables.shtml ところで、NetBIOS関連のパケットはログをとり、インターネットに出さない という設定は必要ですか? これだと異常にたくさんのログが取れてしまいますが。。

  • Linux 複数ISP時でのiptablesの設定

    ローカルとサーバー用にISPを分けて使用したいのですがその際の設定についてお聞かせください。 環境としてましてはISP1とISP2共に動的IP。CentOS6.2にNIC二枚挿しでルータ兼サーバとして使用しています。 インターネット ― (eth1)サーバ兼ルーター(eth0) ― ローカルPC サーバーIP:192.168.0.10 ネットワークアドレス:192.168.0.0/24 ppp0:ISP1(ローカルPC用) ppp1:ISP2(サーバ専用) 上記のようにしたいのですが現在はppp0のみで接続しています。 これにppp1を追加しサーバ専用に使いたいのですが思うようにいきません。 ppp0の設定をコピーしppp1を追加しifconfigにてppp1が稼動している事を確認。ip routeを設定してみるもうまくいかず。iptablesの設定も変えないといけないと思うのですが今一わかりません。 現在のppp0のみの設定は下記になります。これにppp1をサーバ用に追加するにはどうしたらいいか。 WAN='ppp0' LAN='eth0' LOCALNET='192.168.0.0/24' #----------------# # デフォルトルール # #----------------# iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT #---------------------------------# # 自ホストからのアクセスをすべて許可 # #---------------------------------# iptables -A INPUT -i lo -j ACCEPT #---------------------------------------------# # ローカルネットアドレスからのアクセスをすべて許可 # #---------------------------------------------# iptables -A INPUT -i $LAN -j ACCEPT iptables -A FORWARD -i $LAN -j ACCEPT #------------------------------------------------# # ローカルネットワーク内からのインターネット接続を許可 # #------------------------------------------------# iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward #--------------------------------------------------------# # 内部から行ったアクセスに対する外部からの応答アクセスを許可 # #--------------------------------------------------------# iptables -A INPUT -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i $WAN -m state --state ESTABLISHED,RELATED -j ACCEPT ~中略~ #----------------------------------------------------# # Webサーバー(80番ポート)HTTPへのアクセスをすべて許可 # #----------------------------------------------------# iptables -A INPUT -p tcp --dport 80 -j ACCEPT 上の設定の場合ppp1を追加する場合、WAN2を追加しWANを記述するべき箇所をコピーし追記するのか?もしくはeth1としたほうがいいのか? 例1: iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE WAN2='ppp1' iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE iptables -t nat -A POSTROUTING -o $WAN2 -j MASQUERADE 例:2 iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE WAN='eth1' iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE 正確な設定方法がわかりませんのでどこをどうすれば良いのか教えていただけると助かります。よろしくお願いします。

  • iptablesを使用してのDNSゾーン転送の設定。

    今後Linuxをルーターとしてサーバー公開を目指しています。 グローバルIP=10.10.10.10(ルーターインターフェース=eth0) プライベートIP=192.168.0.1(ルーターインターフェースeth1) PrimaryDNS=10.10.10.10:53をプライベートIPに変換=192.168.0.2:53 セカンダリDNS=20.20.20.20 Linuxルータはiptablesのみ動作。 primaryDNSサーバーはwindows2000を使用しています。 iptablesにより、Preroutingを使用して10.10.10.10:53→192.168.0.2:53の変換。 POSTROUTINGにより192.168.0.2→10.10.10.10:53へ変換と設定しています。 # iptables -t nat -A PREROUTING -p tcp -d 10.10.10.10 -dport53 -j DNAT -to-destinalion 192.168.1.20:53 # iptables -t nat -A POSTROUTING -p tcp -s 10.10.10.10 -sport53 -j SNAT -to-source 192.168.1.20:53 # iptables -t nat -A PREROUTING -p udp -d 10.10.10.10 -dport53 -j DNAT -to-destinalion 192.168.1.20:53 # iptables -t nat -A POSTROUTING -p udp -s 10.10.10.10 -sport53 -j SNAT -to-source 192.168.1.20:53 そこで質問なのですが、この際Win2000でゾーン転送のセカンダリDNSの宛先アドレスはどうしたらよろしいのでしょうか? その際、iptablesの記述も教えてください。 一応、 # iptables -A FORWARD -p tcp -dport53 -j ACCEPT # iptables -A FORWARD -p udp -dport53 -j ACCEPT 53ポートのtcp,udpを許可しています。

  • ポートフォワードについて

    よろしくお願いいたします。 Linux上で2枚のLANカードでルーターを構築中です。 環境は、 eth0:インターネットへ(外へ) eth1:ローカルネット(内へ) 接続しています。 設定したiptables(ポートフォワードの部分)は、以下のとおりです。 iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.2:80 iptables -A FORWARD -i eth0 -p tcp --dport http -j ACCEPT iptables -A FORWARD -o eth0 -p tcp --sport http -j ACCEPT 実際外部から内部のwebサーバーにつながるのですが、 ルータ上から、ルータに割り当てられたグローバルIPアドレスで、 内部webサーバのホームページを見ようとすると見れません。 何か他に設定しないといけないのでしょうか?

  • iptablesについて

    Linuxのiptablesについて教えてください、初心者です。 VPSを試しに使ってiptablesを勉強しています。 sshから下記を実行しました iptables -F iptables -X iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables -A INPUT -p icmp -j ACCEPT iptables -A INPUT -p tcp -j ACCEPT iptables -A INPUT -p udp -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --sport 22 -j ACCEPT iptables -P INPUT DROP /etc/init.d/iptables save service iptables restart 結果、(1)では22、(2)では22 80、(3)では22 25 80が開いているように表示されてます ブラウザからサーバーにあるホームページは閲覧できません(設定通りで正しいと思います) (1)(2)(3)の違いはなんなのでしょうか?別モノなのでしょうか? (1)iptables -nL Chain INPUT (policy DROP) target prot opt source destination ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 Chain FORWARD (policy DROP) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination (2)nmap (ホスト名) Starting Nmap 5.51 ( http://nmap.org ) at 2014-05-15 08:04 JST Nmap scan report for ホスト名 (IPアドレス) Host is up (0.000013s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds (3)nmap localhost Starting Nmap 5.51 ( http://nmap.org ) at 2014-05-15 08:01 JST Nmap scan report for localhost (127.0.0.1) Host is up (0.0000070s latency). Other addresses for localhost (not scanned): 127.0.0.1 Not shown: 997 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds