iptables相关脚本

运维 系统运维
iptables 是与最新的 2.6.x 版本Linux 内核集成的 IP 信息包过滤系统。一个iptables脚本献给大家。

用了iptables一段时间,把自己的。一个iptables脚本献给大家,供大家参考!

  #!/bin/bash

  #

  # ========================================================

  # 脚本说明:

  # 欢迎使用iptables.rule这个script来建立您的防火墙?

  # 这个script还需要您自己根据您的环境设定后,方可工作

  # 基本规则定义为::[拒绝所有,开放特定]

  #

  # 强烈建议?

  # 不了解Linux防火墙机制iptables的朋友使用这个script

  # 可能会不太了解每个命令的意义,如果这样

  # 欢迎您参考以下几个网页:

  # http://www.study-area.org/linux/servers/linux_nat.htm

  # http://linux.vbird.org/linux_server/0240network-secure-1.php

  # http://linux.vbird.org/linux_server/0250simple_firewall.php

  # 使用说明??

  # 请先将这个脚本权限更改为可执行:?

  # chmod 755 iptables.rule

  # 将此脚本放置在 /usr/local/firewall 下??

  # mkdir -p /usr/local/firewall

  # mv /您的完整的路径/iptables.rule /usr/local/firewall

  # 执行测试:?

  # /usr/local/firewall.rule

  # iptables -L -n (这个动作检查防火墙规则)

  # 将下面一行加入 /etc/rc.d/rc.local 中

  # /usr/local/firewall.rule

  # 取消防火墙?

  # iptables -F

  # iptables -X

  # iptables -t nat -F

  # iptables -t nat -X

  # ========================================================

  # 版权提示:??

  # 此脚本为 GPL 授权,任何人都可以使用?

  # 使用此 scripts 发生任何问题时?

  # 本人不负任何责任

  # VBird

  # ========================================================

  # 历史纪录:?

  # 2002/08/20 VBird ?***?

  # 2003/04/26 VBird ?加入砍站软体的相关执行文件????

  # 2003/08/25 VBird ?修改 INPUT 的 Policy 为 DROP

  # ========================================================

  # 0.0 Please key in your parameters

  # 这个EXTIF后面接的为[对外的网卡"WAN"]???

  # 一般来说,如果是ADSL/FTTH等,就是"ppp0"

  # 如果是固定IP,那么就是"eth0"

  # The interface that connect Internet

  EXTIF="ppp0"

  # 下面的INIF为对内网卡(Lan)?

  # 如果您的Linux没有对内网卡,请留空

  # INIF=""

  # ?

  # the inside interface. if you don't have this one

  # and you must let this be black ex> INIF=""

  INIF="eth1"

  INNET="192.168.1.0/24" # This is for NAT's network

  # 1.0 测试您的Linux内核版本及防火墙模组

  #kver=`uname -r | cut -c 1-3`

  #if [ "$kver" != "2.4" ] && [ "$kver" != "2.5" ]; then

  #echo "Your Linux Kernel Version may not be suported by this script!"

  #echo "This scripts will not be runing"

  #exit

  # fi

  # ipchains=`lsmod | grep ipchains`

  # if [ "$ipchains" != "" ]; then

  #echo "unload ipchains in your system"

  #rmmod ipchains 2> /dev/null

  # fi

  # 2.0 载入模组

 

  1.   PATH=/sbin:/bin:/usr/sbin:/usr/bin  
  2.  
  3.   export PATH EXTIF INIF INNET  
  4.  
  5.   modprobe ip_tables > /dev/null 2>&1  
  6.  
  7.   modprobe iptable_nat > /dev/null 2>&1  
  8.  
  9.   modprobe ip_nat_ftp > /dev/null 2>&1  
  10.  
  11.   modprobe ip_nat_irc > /dev/null 2>&1  
  12.  
  13.   modprobe ip_conntrack > /dev/null 2>&1  
  14.  
  15.   modprobe ip_conntrack_ftp > /dev/null 2>&1  
  16.  
  17.   modprobe ip_conntrack_irc > /dev/null 2>&1  
  18.  

 

  # 3.0 清除所有的防火墙规则

 

  1.   /sbin/iptables -F  
  2.  
  3.   /sbin/iptables -X  
  4.  
  5.   /sbin/iptables -Z  
  6.  
  7.   /sbin/iptables -F -t nat  
  8.  
  9.   /sbin/iptables -X -t nat  
  10.  
  11.   /sbin/iptables -Z -t nat  
  12.  
  13.   /sbin/iptables -P INPUT DROP  
  14.  
  15.   /sbin/iptables -P OUTPUT ACCEPT  
  16.  
  17.   /sbin/iptables -P FORWARD ACCEPT  
  18.  
  19.   /sbin/iptables -t nat -P PREROUTING ACCEPT  
  20.  
  21.   /sbin/iptables -t nat -P POSTROUTING ACCEPT  
  22.  
  23.   /sbin/iptables -t nat -P OUTPUT ACCEPT  
  24.  

 

  # 4.0 ?先允许任何网络,包括lo这个界面

  # 以及刚才指定的内部界面(LAN)

  # 当然,重点是启动您的Linux为NAT服务器功能?

  /sbin/iptables -A INPUT -i lo -j ACCEPT

  if [ "$INIF" != "" ]; then

  /sbin/iptables -A INPUT -i $INIF -j ACCEPT

  echo "1" > /proc/sys/net/ipv4/ip_forward

  /sbin/iptables -t nat -A POSTROUTING -s $INNET -o $EXTIF -j MASQUERADE

  fi

  # 5.0 开始载入任何可以拒绝的网络设定的文件??

  # 下面2个文件可以自行建立

  if [ -f /usr/local/firewall.deny ]; then

  sh /usr/local/firewall.deny

  fi

  if [ -f /usr/local/firewall.allow ]; then

  sh /usr/local/firewall.allow

  fi

  # 6.0 下面这个文件如果存在,则执行!!

  # 请注意::这个文件与防止砍站的软件有关?

  if [ -f /usr/local/firewall/httpd-err/iptables.http ]; then

  sh /usr/local/firewall/httpd-err/iptables.http

  fi

  # 7.0 允许ICMP封包,允许已建立的连接通过?

  /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

  AICMP="0 3 3/4 4 11 12 14 16 18"

  for tyicmp in $AICMP

  do

  /sbin/iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT

  done

  # 8.0 Allow services,请关闭您的服务器没有开放的服务..在行前加"#"..

 

  1.   # /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 22 -j ACCEPT # SSH  
  2.  
  3.   #/sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 25 -j ACCEPT # SMTP  
  4.  
  5.   /sbin/iptables -A INPUT -p UDP -i $EXTIF --dport 53 -j ACCEPT # DNS  
  6.  
  7.   /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 53 -j ACCEPT # DNS  
  8.  
  9.   /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 80 -j ACCEPT # WWW  
  10.  
  11.   /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 21 -j ACCEPT # FTP  
  12.  
  13.   # /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 20000:30000 -j ACCEPT # PASV_PORTS FTP USE  
  14.  
  15.   # /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 110 -j ACCEPT # POP3  
  16.  
  17.   # /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 113 -j ACCEPT # auth  
  18.  
  19.   # /sbin/iptables -A INPUT -p tcp -i eth1 -s 192.168.1.0/24 --dport 137:139  
  20.  

 

通过一个iptables相关脚本,想必大家都认识了iptables,希望对大家有所帮助!

【编辑推荐】

  1. 如何使用 IPTables
  2. 如何用iptables实现NAT
  3. iptables配置工具
  4. iptables与stun
  5. iptables 添加模块HOWTO
  6. netfilter/iptables模块功能介绍
  7. iptables 源码分析
  8. iptables 总结与应用心得
责任编辑:赵鹏 来源: 网络转载
相关推荐

2011-03-14 14:40:08

Iptables命令

2011-03-14 14:40:03

Iptables命令

2011-03-16 15:58:40

Iptables防火墙

2021-07-27 08:16:35

DeepinIptablesservice文件

2010-04-08 09:27:44

Oracle 安装脚本

2013-11-07 15:55:29

PowerShellVDI

2010-02-01 16:32:49

Python脚本

2010-05-24 13:36:11

2011-03-17 17:19:24

iptables

2011-03-18 09:26:13

Iptables规则

2011-03-15 09:59:59

iptables实例

2010-03-25 12:33:14

Python脚本文件

2011-11-15 10:27:01

2011-03-16 11:17:56

IptablesICMP

2011-03-15 16:26:46

iptablesnat

2011-03-17 17:45:45

iptables规则

2011-03-15 14:01:13

2011-03-14 14:40:11

iptables编译

2011-03-15 09:46:31

2011-03-15 13:39:14

iptablesstun
点赞
收藏

51CTO技术栈公众号