1、 iptables的设置:
在代理服务器中我们的外部的网址是192.168.5.3,内部是以10.0.0.1为内部的网卡
#!/bin/bash
######### add SNAT M ######
modprobe ip_conntrack
modprobe ip_tables
modprobe iptable_nat
modprobe iptable_filter
modprobe ipt_limit
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
###### enable forward #######
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "104800" >/proc/sys/net/ipv4/ip_conntrack_max
echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle
echo "16384" >/proc/sys/fs/file-max
########### clear all chains rules #########
iptables -F
iptables -X
iptables -F -t mangle
iptables -t mangle -X
iptables -F -t nat
iptables -t nat -X
########### defaulet policy ############
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
########### open lo ###################
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
iptables -A OUTPUT -o eth0 -j ACCEPT
iptables -A INPUT -p icmp -i eth1 -j ACCEPT
iptables -A OUTPUT -p icmp -o eth1 -j ACCEPT
iptables -A INPUT -i eth1 -p udp -j ACCEPT
############# open icmp: ping ###############
iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -o eth+ -p icmp --icmp-type 0 -j ACCEPT
################### open ssh #####################
iptables -A INPUT -i eth0 -s 10.0.0.0/24 -d 10.0.0.1 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth0 -d 10.0.0.0/24 -s 10.0.0.1 -p tcp --sport 22 -j ACCEPT
iptables -A INPUT -i eth1 -s 192.168.0.0/16 -d 192.168.5.3 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -o eth1 -d 192.168.0.0/16 -s 192.168.5.3 -p tcp --sport 22 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp -s 192.168.5.3 --sport 1024:65535 -d any/0 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp ! --syn -s any/0 -d 192.168.5.3 --dport 1024:65535 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp ! --syn -s 0/0 -j ACCEPT
##################### NAT FORWARD #########################
iptables -t nat -A PREROUTING -s 10.0.0.0/24 -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
#iptables -t nat -A PREROUTING -s 10.0.1.0/24 -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth1 -j SNAT --to-source 192.168.5.3
#iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o eth1 -j SNAT --to-source 192.168.5.3
iptables -A INPUT -i eth0 -s 10.0.0.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT
#iptables -A INPUT -i eth0 -s 10.0.1.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -d 10.0.0.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT
#iptables -A OUTPUT -o eth0 -d 10.0.1.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -p udp -s 10.0.0.0/24 --dport 8000 -j ACCEPT
#iptables -A FORWARD -p udp -s 10.0.1.0/24 --dport 8000 -j ACCEPT
iptables -A FORWARD -p tcp -s 10.0.0.0/24 -d 0/0 --dport 1024:65535 -j ACCEPT #unused
#iptables -A FORWARD -p tcp -s 10.0.1.0/24 -d 0/0 --dport 1024:65535 -j ACCEPT
iptables -A FORWARD -p tcp -s 10.0.0.0/24 -d 0/0 --dport 443 -j ACCEPT #wangyin
#iptables -A FORWARD -p tcp -s 10.0.1.0/24 -d 0/0 --dport 443 -j ACCEPT
iptables -A FORWARD -p tcp -s 10.0.0.0/24 -d 0/0 --dport 137:139 -j ACCEPT #samba
#iptables -A FORWARD -p tcp -s 10.0.1.0/24 -d 0/0 --dport 137:139 -j ACCEPT
iptables -A FORWARD -p tcp -s 10.0.0.0/24 -d 0/0 --dport 20:23 -j ACCEPT
#iptables -A FORWARD -p tcp -s 10.0.1.0/24 -d 0/0 --dport 20:23 -j ACCEPT
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
echo end
#######################
iptables -A FORWARD -p icmp -s 10.0.0.0/24 -d 0/0 -j ACCEPT
iptables -A FORWARD -p udp -s 10.0.0.0/24 --dport 53 -j ACCEPT
#iptables -A FORWARD -p icmp -s 10.0.1.0/24 -d 0/0 -j ACCEPT
#iptables -A FORWARD -p udp -s 10.0.1.0/24 --dport 53 -j ACCEPT
# open dns 1st => udp
iptables -A OUTPUT -o eth1 -p udp -s 192.168.5.3 --sport 1024:65535 -d any/0 --dport 53 -j ACCEPT
iptables -A INPUT -i eth1 -p udp -s any/0 --sport 53 -d 192.168.5.3 --dport 1024:65535 -j ACCEPT
# open dns 2st => tcp
iptables -A OUTPUT -o eth1 -p tcp -s 192.168.5.3 --sport 1024:65535 -d any/0 --dport 53 -j ACCEPT
iptables -A INPUT -i eth1 -p tcp ! --syn -s any/0 --sport 53 -d 192.168.5.3 --dport 1024:65535 -j ACCEPT
#with other DNS server
iptables -A OUTPUT -o eth1 -p udp -s 192.168.5.3 --sport 53 -d 0/0 --dport 53 -j ACCEPT
iptables -A INPUT -i eth1 -p udp -s 0/0 --sport 53 -d 192.168.5.3 --dport 53 -j ACCEPT
iptables -A OUTPUT -o eth1 -p tcp -s 192.168.5.3 --sport 53 -d 0/0 --dport 53 -j ACCEPT