当前位置: 技术问答>linux和unix
iptables为什么局域网中的机器访问局域网的web服务器却不行?
来源: 互联网 发布时间:2015-07-26
本文导语: 网络环境:red hat linux 9做网关服务器,ip为aaa.bbb.ccc.ddd,配置了dhcp,iptables启动脚本如下,局域网内www服务器ip为192.168.0.3,有一域名www.XXX.com指向aaa.bbb.ccc.ddd,通过iptables NAT指向192.168.0.3,局域网还有几台客户机,...
网络环境:red hat linux 9做网关服务器,ip为aaa.bbb.ccc.ddd,配置了dhcp,iptables启动脚本如下,局域网内www服务器ip为192.168.0.3,有一域名www.XXX.com指向aaa.bbb.ccc.ddd,通过iptables NAT指向192.168.0.3,局域网还有几台客户机,运行该脚本希望达到局域网内客户机上网正常,www服务器能够被internet访问到,客户机能通过putty登陆ssh,现情况局域网内客户机(包括)上网正常,www服务器也能被外界访问到,但是局域网内的机器通过域名www.XXX.com 却访问不到web服务器,另外客户机通过ssh却被iptables封掉了,脚本如下,各位大虾,请教如何修改??
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
INET_IFACE="eth0"
INET_IP="aaa.bbb.ccc.ddd"
LAN_IFACE="eth1"
LAN_IP="192.168.0.1"
LAN_IP_RANGE="192.168.0.0/24"
IPT="/sbin/iptables"
WWW_IP_RANGE="192.168.0.3"
HTTP="80"
SSH="22"
/sbin/depmod -a
#/sbin/modprobe iptables
#/sbin/modprobe iptables_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
for TABLE in filter nat mangle ; do
$IPT -t $TABLE -F
$IPT -t $TABLE -X
done
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
for DNS in $(grep ^n /etc/resolv.conf|awk '{print $2}');do
$IPT -A INPUT -p udp -s $DNS --sport domain -j ACCEPT
done
$IPT -A INPUT -p tcp --sport $HTTP -j ACCEPT
$IPT -A INPUT -p tcp --sport $SSH -j ACCEPT
$IPT -A INPUT -p udp --sport $SSH -j ACCEPT
$IPT -N LOGDENY
#$IPT -A LOGDENY -j LOG --log-prefix "iptables:"
$IPT -A LOGDENY -j DROP
$IPT -A LOGDENY -j DROP
$IPT -A INPUT -i ! lo -m state --state NEW,INVALID -j LOGDENY
if [ "$INET_IFACE" = ppp0 ] ; then
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
else
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to $INET_IP
fi
$IPT -t nat -A PREROUTING -p tcp -d $INET_IP --dport $HTTP -j DNAT --to $WWW_IP_RANGE:$HTTP
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
INET_IFACE="eth0"
INET_IP="aaa.bbb.ccc.ddd"
LAN_IFACE="eth1"
LAN_IP="192.168.0.1"
LAN_IP_RANGE="192.168.0.0/24"
IPT="/sbin/iptables"
WWW_IP_RANGE="192.168.0.3"
HTTP="80"
SSH="22"
/sbin/depmod -a
#/sbin/modprobe iptables
#/sbin/modprobe iptables_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
for TABLE in filter nat mangle ; do
$IPT -t $TABLE -F
$IPT -t $TABLE -X
done
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
for DNS in $(grep ^n /etc/resolv.conf|awk '{print $2}');do
$IPT -A INPUT -p udp -s $DNS --sport domain -j ACCEPT
done
$IPT -A INPUT -p tcp --sport $HTTP -j ACCEPT
$IPT -A INPUT -p tcp --sport $SSH -j ACCEPT
$IPT -A INPUT -p udp --sport $SSH -j ACCEPT
$IPT -N LOGDENY
#$IPT -A LOGDENY -j LOG --log-prefix "iptables:"
$IPT -A LOGDENY -j DROP
$IPT -A LOGDENY -j DROP
$IPT -A INPUT -i ! lo -m state --state NEW,INVALID -j LOGDENY
if [ "$INET_IFACE" = ppp0 ] ; then
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE
else
$IPT -t nat -A POSTROUTING -o $INET_IFACE -j SNAT --to $INET_IP
fi
$IPT -t nat -A PREROUTING -p tcp -d $INET_IP --dport $HTTP -j DNAT --to $WWW_IP_RANGE:$HTTP
|
我顶一下吧