|
|
我有4个固定ip,绑定在一块网卡上了,希望在共享上网时,让客户端,任意使用一个ip出去,(实现了)
同时,希望发布sql服务时,能从所有的这4个ip进来(不能使用ip_range?)
我的脚本如下:
#!/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"
inet_ip_range="218.107.130.49-218.107.130.53"
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 -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 -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_range
$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_range -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
$ipt -t nat -A PREROUTING --dst $inet_ip51 -p tcp --dport $pop3 -j DNAT --to-destination $mail_server
$ipt -t nat -A POSTROUTING -p tcp --dst $mail_server --dport $pop3 -j SNAT --to-source $lan_ip
$ipt -t nat -A OUTPUT --dst $inet_ip -p tcp --dport $pop3 -j DNAT --to-destination $mail_server
$ipt -t nat -A PREROUTING --dst $inet_ip51 -p tcp --dport $smtp -j DNAT --to-destination $mail_server
$ipt -t nat -A POSTROUTING -p tcp --dst $mail_server --dport $smtp -j SNAT --to-source $lan_ip
$ipt -t nat -A OUTPUT --dst $inet_ip51 -p tcp --dport $smtp -j DNAT --to-destination $mail_server
echo "done" |
|