[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:28523] iptables 特定のサイトに接続できない



 こんにちは。島田です。

 症状は、Windows 2000 からはたいがいのホストに接続できるのですが、一部、
特定のサイトに接続できません。たとえば、以下のサイトです。

    http://ron5092.tripod.com/
    http://www.toei.co.jp/
    http://homepage2.nifty.com/
    http://www.tv-asahi.co.jp/

 Linux マシンから lynx や telnet hoge 80 で接続すると、上記サイトにも接
続できます。
 Windows 2000 の IE で接続しようとすると、「ページ http://hoge/ を開い
ています...」と出たきり、永遠そのままで、タイムアウトにもサイトが見つか
らないとも出ません(もっと粘って観察していれば出るのかも)。

 プロバイダのサポートに連絡したら、プロバイダ側では上記サイトには正常に
ルーティングされていて、ページを表示できることは確認できているとのことで
した。

 Google で検索してみて似たような症例、

    http://search.luky.org/linux-users.8/msg01492.html
    http://search.luky.org/linux-users.8/msg01494.html

が見つかり、IP: TCP Explicit Congestion Notification support を N にして
カーネルを再コンパイルしましたが、症状は変化ありませんでした。

 もっとも、上記症例は、NAT BOX と LAN 内マシンとで表示できないページが
私の例と逆なのですが。

 解決策はありますでしょうか。

 よろしくお願いいたします。

 以下の環境で使っています。

    Debian: Woody
    Kernel: 2.4.5 + Hedrick さんの IDE パッチ
            (2.4.4 + Hedrick さんの IDE パッチでも同じ)
    iptables 1.2.2-1
    ppp 2.4.1-1
    pppoe 3.0-1

 フレッツ ADSL で次のように接続しています。


    ISP ----- Linux ----------------- Windows 2000
         DHCP     192.168.1.1     192.168.1.2
         Global
         Address
         (ppp0)   (eth0)

 IP マスカレードの設定は以下のとおりです。

IFACE=ppp0

  # Delete every chain.
  iptables -F

  # Setting policy.
  iptables -P FORWARD ACCEPT
  iptables -P INPUT   DROP
  iptables -P OUTPUT  ACCEPT

  # Accept lo, eth0 interfaces.
  iptables -A INPUT -i lo   -j ACCEPT
  iptables -A INPUT -i eth0 -j ACCEPT

  # Drop illegular packets.
  iptables -A INPUT -i $IFACE -s 192.168.1.0/24 -j DROP

  # Accept ICMP's.
    # ping
  iptables -A INPUT -i $IFACE -p ICMP --icmp-type echo-reply -j ACCEPT
    # All of TCP/UDP traffic.
  iptables -A INPUT -i $IFACE -p ICMP --icmp-type destination-unreachable -j ACC
EPT
    # ping
  iptables -A INPUT -i $IFACE -p ICMP --icmp-type echo-request -j ACCEPT
    # traceroute
  iptables -A INPUT -i $IFACE -p ICMP --icmp-type time-exceeded -j ACCEPT

  # Accept not SYN packets.
  iptables -A INPUT -i $IFACE -p TCP ! --syn -j ACCEPT

  # Logging denied packets from $IFACE.
  iptables -A INPUT -i $IFACE -j LOG
  iptables -A INPUT -i $IFACE -j DROP


  # In the NAT table (-t nat), Append a rule (-A) after routing
  # (POSTROUTING) for all packets going out $IFACE (-o $IFACE) which
  # says to MASQUERADE the connection (-j MASQUERADE).
  iptables -t nat -A POSTROUTING -o $IFACE -j MASQUERADE

  # NAT code can't handle Windows 98 multicasting packets.
  iptables -t mangle -I PREROUTING -j DROP -d 224.0.0.0/8

  # Disallow NEW and INVALID incoming or forwarded packets from $IFACE.
  iptables -A INPUT -i $IFACE -m state --state NEW,INVALID -j DROP
  iptables -A FORWARD -i $IFACE -m state --state NEW,INVALID -j DROP

  # Turn on IP forwarding
  echo 1 > /proc/sys/net/ipv4/ip_forward


----------------------------------------------------------------------
Mail: shimaden@xxxxxxxxx
Home Page: http://www.din.or.jp/~shimaden/
島田博幸
Hiroyuki Shimada
----------------------------------------------------------------------