为公司代理服务器写的脚本,还没有测试,等测试OK后再修改!!!
看到的朋友先不要照抄噢.
nat.sh
#!/bin/bash
# 说明:
# a. 这个程式主要用来进行简易 NAT 的功能的!使用的模组为 iptables 。
# b. 执行的方式为:
# 将档案放在 /usr/local/nat 底下,档名为 nat.sh (范例)
# chmod 744 /usr/local/nat/nat.sh
# /usr/local/nat/nat.sh
# c. 或者是直接在开机时启动,可以使用:
# vi /etc/rc.d/rc.local
# 写入最後一行为: /usr/local/nat/nat.sh
# d. Made by VBird 2002/08/14
###########################################################################
# 0. 请输入你的叁数值:
EXIF='ppp0' # 这个是对外的介面,如果是 cable ,则可能为 eth0!
INIF='eth0'
EXNET='172.16.3.0/24' # 这个是对内的网域!这里我只设定一个网域而已!
export EXIF INIF EXNET
#开启TCP Flooding 的DOS攻击抵挡机制
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
#取消ping广播的回应
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#开启逆向路径过滤,以符合IP封包与网路介面的设定
for i in /proc/sys/net/ipv4/conf/*/rp_filter;
do
echo "1" > $i
done
# record some problems packets.
for i in /proc/sys/net/ipv4/conf/*/log_martians;
do
echo "1" > $i
done
# 取消重新宣告路径的功能。
for i in /proc/sys/net/ipv4/conf/*/accept_redirects; do
echo "0" > $i
done
# 取消传送重新宣告路径的功能。
for i in /proc/sys/net/ipv4/conf/*/send_redirects; do
echo "0" > $i
done
# 1. 宣告变数、消除规则及开放lo:
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# /sbin/iptables -A INPUT -i $INIF -j ACCEPT
/sbin/iptables -A INPUT -i $EXIF -s 192.168.1.0/24 -j DROP
/sbin/iptables -A INPUT -i $EXIF -s 10.0.0.0/8 -j DROP
/sbin/iptables -A INPUT -i $EXIF -s $EXNET -j DROP
/sbin/iptables -A INPUT -i $EXIF -s 127.0.0.0/8 -j DROP
#限制QQ
/sbin/iptables -A FORWARD -p udp -i $INIF --dport 8000 -j DROP
#对於不管来自哪里的ip碎片都进行控制,允许每秒通过100个碎片
/sbin/iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
#ICMP包通过控制,防止ICMP黑客攻击
/sbin/iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
#允许某些类型的ICMP包进入
AICWP="0 3 3/4 4 11 12 14 16 18"
for tyicmp in $AICWP
do
/sbin/iptables -A INPUT -i $EXIF -p icmp --icmp-type $tyicmp -j ACCEPT
done
# /sbin/iptables -A INPUT -p TCP -i $EXIF --dport 22 -j ACCEPT #SSH
# /sbin/iptables -A INPUT -p TCP -i $EXIF --dport 25 -j ACCEPT #SMTP
# /sbin/iptables -A INPUT -p UDP -i $EXIF --dport 53 -j ACCEPT #DNS
# /sbin/iptables -A INPUT -p TCP -i $EXIF --dport 53 -j ACCEPT #DNS
# /sbin/iptables -A INPUT -p TCP -i $EXIF --dport 80 -j ACCEPT #WWW
# /sbin/iptables -A INPUT -p TCP -i $EXIF --dport 110 -j ACCEPT #POP3
# /sbin/iptables -A INPUT -p TCP -i $EXIF --dport 113 -j ACCEPT #AUTH
# /sbin/iptables -A FORWARD -p tcp --dport 4444 -j DROP
# /sbin/iptables -A FORWARD -p udp --dport 4444 -j DROP
# /sbin/iptables -A FORWARD -p tcp --dport 445 -j DROP
# /sbin/iptables -A FORWARD -p udp --dport 445 -j DROP
# /sbin/iptables -A FORWARD -p tcp --dport 69 -j DROP
# /sbin/iptables -A FORWARD -p udp --dport 69 -j DROP
# /sbin/iptables -A FORWARD -p tcp --dport 139 -j DROP
# /sbin/iptables -A FORWARD -p udp --dport 139 -j DROP
# /sbin/iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
# /sbin/iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
# /sbin/iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
#开始针对後端主机的防火墙议定
# 2. 载入模组啦!
modprobe ip_tables
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -Z -t nat
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
# 3. 启动 IP 伪装:
echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -s $EXNET -o $EXIF -j MASQUERADE
/sbin/iptables -t nat -A PREROUTING -i $INIF -p TCP -s $EXNET --dport 80 -j REDIRECT --to-ports 3128
/sbin/iptables -A INPUT -p TCP -i $INIF --dport 3128:3130 -j ACCEPT
阅读(1728) | 评论(0) | 转发(0) |