iptables + squid脚本

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

<script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/buttonLite.js#style=-1&uuid=&pophcol=3&lang=zh"></script> <script type=text/javascript charset=utf-8 src="http://static.bshare.cn/b/bshareC0.js"></script>
阅读(1058) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值