首页 运维 正文
iptables相关脚本

 2022-10-23    426  

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

  #!/bin/bash

iptables相关脚本

  #

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

  # 脚本说明:

  # 欢迎使用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 载入模组

  PATH=/sbin:/bin:/usr/sbin:/usr/bin 
  •   exportPATHEXTIFINIFINNET
  •   modprobeip_tables>/dev/null2>&1
  •   modprobeiptable_nat>/dev/null2>&1
  •   modprobeip_nat_ftp>/dev/null2>&1
  •   modprobeip_nat_irc>/dev/null2>&1
  •   modprobeip_conntrack>/dev/null2>&1
  •   modprobeip_conntrack_ftp>/dev/null2>&1
  •   modprobeip_conntrack_irc>/dev/null2>&1
  •   # 3.0 清除所有的防火墙规则

      /sbin/iptables-F 
  •   /sbin/iptables-X
  •   /sbin/iptables-Z
  •   /sbin/iptables-F-tnat
  •   /sbin/iptables-X-tnat
  •   /sbin/iptables-Z-tnat
  •   /sbin/iptables-PINPUTDROP
  •   /sbin/iptables-POUTPUTACCEPT
  •   /sbin/iptables-PFORWARDACCEPT
  •   /sbin/iptables-tnat-PPREROUTINGACCEPT
  •   /sbin/iptables-tnat-PPOSTROUTINGACCEPT
  •   /sbin/iptables-tnat-POUTPUTACCEPT
  •   # 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,请关闭您的服务器没有开放的服务..在行前加”#”..

      #/sbin/iptables-AINPUT-pTCP-i$EXTIF--dport22-jACCEPT#SSH 
  •   #/sbin/iptables-AINPUT-pTCP-i$EXTIF--dport25-jACCEPT#SMTP
  •   /sbin/iptables-AINPUT-pUDP-i$EXTIF--dport53-jACCEPT#DNS
  •   /sbin/iptables-AINPUT-pTCP-i$EXTIF--dport53-jACCEPT#DNS
  •   /sbin/iptables-AINPUT-pTCP-i$EXTIF--dport80-jACCEPT#WWW
  •   /sbin/iptables-AINPUT-pTCP-i$EXTIF--dport21-jACCEPT#FTP
  •   #/sbin/iptables-AINPUT-mstate--stateNEW-mtcp-ptcp--dport20000:30000-jACCEPT#PASV_PORTSFTPUSE
  •   #/sbin/iptables-AINPUT-pTCP-i$EXTIF--dport110-jACCEPT#POP3
  •   #/sbin/iptables-AINPUT-pTCP-i$EXTIF--dport113-jACCEPT#auth
  •   #/sbin/iptables-AINPUT-ptcp-ieth1-s192.168.1.0/24--dport137:139
  • 通过一个iptables相关脚本,想必大家都认识了iptables,希望对大家有所帮助!

    原文链接:https://77isp.com/post/8320.html

    =========================================

    https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。