|
楼主 |
发表于 2003-12-19 09:46:59
|
显示全部楼层
我在网上找了一个IPTABLES的设置,可以实现内网的所有用户收发EMAIL的功能,但不控制部分用户上网。哪位大哥能不能帮忙解决一下?谢谢!
内容如下:
EXT_IF="eth0"
INT_IF="eth1"
EXT_IP="10.10.10.7" #公网IP
INT_IP="192.168.0.1" #内接口IP
SERVER_IP="192.168.0.2" #内部服务器IP
# ftp-data ftp smtp http pop3
FWD_TCP_PORT="20 21 25 80 110"
FWD_UDP_PORT="20 21 25 80 110"
# load any special modules
modprobe ip_nat_ftp
modprobe ip_conntrack_ftp
modprobe ip_nat_irc
modprobe ip_conntrack_irc
# turn on ip forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward
# setting up ip spoofing protection
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
# delete any existing chains
iptables -F -t filter
iptables -X -t filter
iptables -Z -t filter
iptables -F -t nat
iptables -X -t nat
iptables -Z -t nat
# setting up default policies
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
#---------------------- filter ---------------------
# allow ping from internet
iptables -A INPUT -i $EXT_IF -p icmp -j ACCEPT
# enable local traffic
#------------------------------------------------------------------------
# iptables -A INPUT ! -i $EXT_IF -m state --state NEW -j ACCEPT
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# iptables -A FORWARD ! -i $EXT_IF -m state --state NEW -j ACCEPT
# iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
#------------------------------------------------------------------------
iptables -N allowed
iptables -A allowed ! -i $EXT_IF -m state --state NEW -j ACCEPT
iptables -A allowed -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j allowed
iptables -A FORWARD -j allowed
#---------------------- nat ---------------------
# port forwarding
for PORT in $FWD_TCP_PORT; do
iptables -A FORWARD -i $EXT_IF -o $INT_IF -d $SERVER_IP \
-p tcp --dport $PORT -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -d $EXT_IP \
-p tcp --dport $PORT -j DNAT --to-destination $SERVER_IP
iptables -t nat -A POSTROUTING -d $SERVER_IP \
-p tcp --dport $PORT -j SNAT --to-source $INT_IP
done
for PORT in $FWD_UDP_PORT; do
iptables -A FORWARD -i $EXT_IF -o $INT_IF -d $SERVER_IP \
-p udp --dport $PORT -m state --state NEW -j ACCEPT
iptables -t nat -A PREROUTING -d $EXT_IP \
-p udp --dport $PORT -j DNAT --to-destination $SERVER_IP
iptables -t nat -A POSTROUTING -d $SERVER_IP \
-p udp --dport $PORT -j SNAT --to-source $INT_IP
done
# Transparent Proxy
iptables -t nat -A PREROUTING -i $INT_IF -p tcp --dport 80 -j REDIRECT --to-
port 3128
# SNAT or MASQUERADE
#------------------------------------------------------------------------
# iptables -t nat -A POSTROUTING -o $EXT_IF -j SNAT --to-source $EXT_IP
#------------------------------------------------------------------------
iptables -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE
# THE END
支持透明代理
在内部服务器提供INTERNET服务
客户端只要设一下网关及DNS就可以了。 |
|