|
|

楼主 |
发表于 2005-6-6 13:51:58
|
显示全部楼层
经过几天的试验
发现确实是iptables没有禁止除squid外的连接
只用squid时,能封住
加上iptables就不行了
我的脚本:
#!/bin/bash
echo "Starting Iptables Rules..."
echo "1" > /proc/sys/net/ipv4/ip_forward
inet_iface="eth1"
inet_ip="218.107.130.52"
lan_iface="eth0"
lan_ip="192.168.35.1"
lan_ip_range="192.18.35.0/24"
ipt="/sbin/iptables"
http_server="192.168.35.7"
http="80"
sql_server="192.168.35.201"
sql="1433"
ftp_server="192.168.35.7"
ftp="21"
mail_server="192.168.35.7"
pop3="110"
smtp="25"
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ipt_LOG
$ipt -A INPUT -s $lan_ip -p tcp --dport 80 -j ACCEPT
$ipt -A INPUT -s $lan_ip -p tcp --sport 80 -j ACCEPT
$ipt -A INPUT -j DROP
$ipt -A FORWARD -s $lan_ip -p tcp --dport 80 -j ACCEPT
$ipt -A FORWARD -s $lan_ip -p tcp --sport 80 -j ACCEPT
$ipt -A FORWARD -j DROP
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 -N LOGDENY
#$ipt -A LOGDENY -j LOG --log-prefix "iptables:"
#$ipt -A LOGDENY -j DROP
#$ipt -A INPUT -i ! lo -m state --state NEW,INVALID -j LOGDENY
$ipt -t nat -A POSTROUTING -o $inet_iface -j SNAT --to $inet_ip
$ipt -t nat -A PREROUTING -i $lan_iface -p tcp --dport 80 -j REDIRECT --to-ports 3128
$ipt -t nat -A PREROUTING --dst $inet_ip -p tcp --dport $http -j DNAT --to-destination $http_server
$ipt -t nat -A POSTROUTING -p tcp --dst $http_server --dport $http -j SNAT --to-source $lan_ip
$ipt -t nat -A OUTPUT --dst $inet_ip -p tcp --dport $http -j DNAT --to-destination $http_server
$ipt -t nat -A PREROUTING --dst $inet_ip -p tcp --dport $sql -j DNAT --to-destination $sql_server
$ipt -t nat -A POSTROUTING -p tcp --dst $sql_server --dport $sql -j SNAT --to-source $lan_ip
$ipt -t nat -A PREROUTING --dst $inet_ip -p tcp --dport $ftp -j DNAT --to-destination $ftp_server
$ipt -t nat -A POSTROUTING -p tcp --dst $ftp_server --dport $ftp -j SNAT --to-source $lan_ip
$ipt -t nat -A OUTPUT --dst $inet_ip -p tcp --dport $ftp -j DNAT --to-destination $ftp_server
echo "done" |
|