Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5397100
  • 博文数量: 890
  • 博客积分: 12876
  • 博客等级: 上将
  • 技术积分: 10760
  • 用 户 组: 普通用户
  • 注册时间: 2004-10-04 14:18
个人简介

猝然临之而不惊,无故加之而不怒。

文章分类

全部博文(890)

文章存档

2016年(1)

2014年(18)

2013年(41)

2012年(48)

2011年(65)

2010年(84)

2009年(121)

2008年(101)

2007年(129)

2006年(95)

2005年(118)

2004年(69)

分类: LINUX

2007-01-25 16:54:28

为公司代理服务器写的脚本,还没有测试,等测试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

阅读(1700) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~