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

[debian-users:30093] port forwarding between port 80



鎌ヶ迫と申します。

iptablesのポートフォワーディング(DNAT)を利用して、
LAN内のhttpdサーバを公開しようとしています。


ADSL        router                              httpd
modem     +--------+          +-----+         +--------+
   -------+ Debian +----------+ HUB +-ー------+ Debian |
     ppp0 +--------+ eth1     +-----+    eth0 +--------+
    a.b.c.d       192.168.1.10        192.168.1.1


この一週間、JFのinux 2.4 Packet Filtering HOWTOやLinux 2.4
NAT HOWTOを参考にして、ルータのppp0に対する80番ポートへの
アクセスをLAN内のサーバへポートフォワーディングさせるために、
iptablesで以下のような設定を行いました。

# flush
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

# ip masquerade
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

# port forwarding
iptables -t nat -A PREROUTING -p tcp --dport 80 -i ppp0 \
         -j DNAT --to-destination 192.168.1.1:80
iptables -A FORWARD -p tcp --dport 80 -i ppp0 -j ACCEPT

# new chain
iptables -N block
iptables -A block -m state --state ESTABLISHED -j ACCEPT
iptables -A block -m state --state RELATED -j ACCEPT
iptables -A block -i ! ppp0 -m state --state NEW -j ACCEPT
iptables -A block -j DROP

# apply chain
iptables -A INPUT -j block
iptables -A FORWARD -j block

# misc
echo 1 > /proc/sys/net/ipv4/ip_forward
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
    echo 1 > $f;
done


両マシン間でpingは通りますし、IP Masqueradeも正常に動作します。
しかし、外部からの80番ポートへのアクセスはしばらく経った後に
タイムアウト表示がされるので、どうやら廃棄されているようです。

$ telnet a.b.c.d 80
Trying a.b.c.d...
telnet: Unable to connect to remote host: Connection timed out


上記設定を22番ポートから25番ポートへ転送するように変更し

(省略)
iptables -t nat -A PREROUTING -p tcp --dport 22 -i ppp0 \
         -j DNAT --to-destination 192.168.1.1:25
iptables -A FORWARD -p tcp --dport 25 -i ppp0 -j ACCEPT
(省略)

外部からアクセスしてみると

$ telnet a.b.c.d 22
Trying a.b.c.d...
Connected to router.localhost.localdomain.
Escape character is '^]'.
220 httpd.localhost.localdomain ESMTP Postfix

のように正しく転送されています。


ルータマシンでは22番ポートを利用するsshと25番のsmtp(postfix)が
動作していますが、80番ポートのapache(httpd)はインストールすら
されておりません。この辺りが関係しているのでしょうか?

それとも単純にiptablesの設定ミスなのでしょうか?


Debianに特化した話題ではないかも知れませんが。
解決のためのポインタだけでも結構ですので
どなたか知恵をお貸し下さいませ。


ii  iptables       1.2.3-2        IP packet filter administration for 2.4.4+ k
ii  kernel-source- 2.4.10-1       Linux kernel source for version 2.4.10

-- 
KAMAGASAKO "SMILEY" Masatoshi :-)
Japan GNOME Users Group
emerald@xxxxxxxxxxx
mkama@xxxxxxxxxxxxxx