eth0對外連adsl(我的是giga的,所以ip固定,是203.204.129.24,然後有用twbbs的轉址)
eth1對內
然後web server是192.168.2.29
mail server是192.168.2.37
我的iptables的設定是:
- 代碼: 選擇全部
#!/bin/bash
# The interface that connect Internet
EXTIF="ppp0"
#the inside interface. if you don't have this one
# and you must let this be black ex> INIF=""
INIF="eth1"
INNET="192.168.2.0/24" # This is for NAT's network
#clean all rules
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -Z -t nat
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
#Setup trusted net
/sbin/iptables -A INPUT -i lo -j ACCEPT
if [ "$INIF" != "" ]; then
/sbin/iptables -A INPUT -i $INIF -j ACCEPT
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -s $INNET -o $EXTIF -j MASQUERADE
fi
# ICMP
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
AICMP="0 3 3/4 4 11 12 14 16 18"
for tyicmp in $AICMP
do
/sbin/iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT
done
#DNAT
/sbin/iptables -t nat -A PREROUTING -p TCP -i ppp0 -d 203.204.129.24 --dport 80 -j DNAT --to-destination 192.168.2.29:80
/sbin/iptables -t nat -A PREROUTING -p TCP -i ppp0 -d 203.204.129.24 --dport 25 -j DNAT --to 192.168.2.37:25
LAN的連外沒有問題
mail server無論是收發信都正常
但是web的部份就有問題了
從外面連進來web是正常的
但是我從內部的機器輸入203.204.129.24或是palmpilote.twbbs.org或192.168.2.1都會出現拒絕的對話框
(如果是直接輸入192.168.2.29是正常的)
請問這問題是出在那裡?該怎麼改?
我個人是推測從lan過去的request並沒有被轉到192.168.2.29,而是被誤認為要直接連線到192.168.2.1,所以就失敗了,但是我知道該怎麼改比較好
試了一整個晚上還是搞不定,所以想請大家幫個忙
謝謝