[PowerShell] 超强的iptables防护脚本 →→→→→进入此内容的聊天室

来自 , 2020-09-16, 写在 PowerShell, 查看 109 次.
URL http://www.code666.cn/view/3d489341
  1. vi /root/iptables.sh
  2.   #echo "Starting kerryhu-iptables rules..."
  3.   #!/bin/bash
  4.   # BY kerryhu
  5.   # QQ:263205768
  6.   # MAIL:king_819@163.com
  7.   # BLOG:http://kerry.blog.51cto.com
  8.   #this is a common firewall created by 2010-3-27
  9.   IPT="/sbin/iptables"
  10.   CONNECTION_TRACKING="1"
  11.   CLASS_A="10.0.0.0/8"
  12.   CLASS_B="172.16.0.0/12"
  13.   CLASS_C="192.168.0.0/16"
  14.   CLASS_D_MULTICAST="224.0.0.0/4"
  15.   CLASS_E_RESERVED_NET="240.0.0.0/5"
  16.   BROADCAST_SRC="0.0.0.0"
  17.   BROADCAST_DEST="255.255.255.255"
  18.   LOOPBACK_INTERFACE="lo"
  19.   #Remove any existing rules
  20.   $IPT -F
  21.   $IPT -X
  22.   #setting default firewall policy
  23.   $IPT -P FORWARD DROP
  24.   $IPT -P INPUT DROP
  25.   $IPT -P OUTPUT DROP
  26.   #setting for loopback interface
  27.   $IPT -A INPUT -i lo -j ACCEPT
  28.   $IPT -A OUTPUT -o lo -j ACCEPT
  29.   # Stealth Scans and TCP State Flags
  30.   # All of the bits are cleared
  31.   $IPT -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
  32.   # SYN and FIN are both set
  33.   $IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
  34.   # SYN and RST are both set
  35.   $IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
  36.   # FIN and RST are both set
  37.   $IPT -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
  38.   # FIN is the only bit set, without the expected accompanying ACK
  39.   $IPT -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
  40.   # PSH is the only bit set, without the expected accompanying ACK
  41.   $IPT -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
  42.   # URG is the only bit set, without the expected accompanying ACK
  43.   $IPT -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
  44.   # Using Connection State to By-pass Rule Checking
  45.   if [ "$CONNECTION_TRACKING" = "1" ]; then
  46.   $IPT -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
  47.   $IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  48.   $IPT -A INPUT -m state --state INVALID -j DROP
  49.   $IPT -A OUTPUT -m state --state INVALID -j DROP
  50.   fi
  51.   ##################################################################
  52.   # Source Address Spoofing and Other Bad Addresses
  53.   # Refuse spoofed packets pretending to be from
  54.   # the external interface.s IP address
  55.   # Refuse packets claiming to be from a Class A private network
  56.   $IPT -A INPUT -s $CLASS_A -j DROP
  57.   # Refuse packets claiming to be from a Class B private network
  58.   $IPT -A INPUT -s $CLASS_B -j DROP
  59.   # Refuse packets claiming to be from a Class C private network
  60.   $IPT -A INPUT -s $CLASS_C -j DROP
  61.   $IPT -A INPUT -s 0.0.0.0/8 -j DROP
  62.   $IPT -A INPUT -s 169.254.0.0/16 -j DROP
  63.   $IPT -A INPUT -s 192.0.2.0/24 -j DROP
  64.   ###################################################################
  65.   #setting access rules
  66.   #允许出站域名解析
  67.   $IPT -A OUTPUT -p udp  --dport 53 -j ACCEPT
  68.   #$IPT -A OUTPUT -p tcp  -d 61.177.7.1 --dport 53 -j ACCEPT
  69.   #$IPT -A OUTPUT -p udp  -d 61.177.7.1 --dport 53 -j ACCEPT
  70.   #时钟同步
  71.   $IPT -A OUTPUT -d 192.43.244.18 -j ACCEPT
  72.   #$IPT -A OUTPUT -p udp -d 192.43.244.18 --dport 123 -j ACCEPT
  73.   #允许ping出
  74.   $IPT -A OUTPUT -p icmp -j ACCEPT
  75.   #允许ftp备份
  76.   #$IPT -A OUTPUT -p tcp -d 222.102.153.191 --dport 21 -j ACCEPT
  77.   #$IPT -A OUTPUT -p tcp -d 222.102.153.191 --dport 20 -j ACCEPT
  78.   $IPT -A OUTPUT -d 222.102.153.191 -j ACCEPT
  79.   #允许出站http
  80.   $IPT -A OUTPUT -p tcp  --dport 80 -j ACCEPT
  81.   #允许yum更新
  82.   $IPT -A OUTPUT -p tcp -d mirrors.163.com -j ACCEPT
  83.   #允许入站ssh
  84.   $IPT -A INPUT -p tcp -s 58.102.13.91 --dport 22 -j ACCEPT
  85.   #允许cacti监控
  86.   #$IPT -A INPUT -p tcp -s 222.102.153.192 --dport 161 -j ACCEPT
  87.   $IPT -A INPUT -s 222.102.153.192 -j ACCEPT
  88.   #$IPT -A INPUT -p tcp  --dport 443 -j ACCEPT
  89.   #$IPT -A INPUT -p tcp  --dport 80 -j ACCEPT
  90.   #$IPT -A INPUT -p tcp -s 127.0.0.1 --dport 3306 -j ACCEPT
  91.   chmod +x /root/iptables.sh
  92.   echo "/root/iptables.sh" >> /etc/rc.local
  93. //shell/5354

回复 "超强的iptables防护脚本"

这儿你可以回复上面这条便签

captcha