web服务器iptables配置脚本实现代码
程序员文章站
2022-06-08 13:47:22
web服务器iptables配置脚本 欢迎一起改进
实现代码:
#!/bin/bash
# id 201510192126
# author...
web服务器iptables配置脚本 欢迎一起改进
实现代码:
#!/bin/bash # id 201510192126 # author ricky # e-mail 564001002@qq.com it运维管理技术交流群 16548318 # centos 6 系统初始优化脚本 # version 1.0.0 #add iptables yum -y install iptables #iptables conf bak if [ ! -e "/etc/sysconfig/iptables.bak" ]; then cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bak > /dev/null 2>&1 fi #add config cat > /etc/sysconfig/iptables << eof # firewall configuration written by system-config-securitylevel # manual customization of this file is not recommended. # 防火墙规则有先后顺序,修改前请测试确定后更改 # e-mail:564001002@qq.com *filter :input drop [0:0] :forward accept [0:0] :output accept [0:0] :syn-flood - [0:0] #related,established -a input -m state --state related,established -j accept #io -a input -i lo -j accept #ping -a input -p icmp -j accept #redis #-a input -p tcp -m tcp --dport 6379 -j accept #-a input -s 127.0.0.1/32 -p tcp -m tcp --dport 6379 -j accept #mysql #-a input -p tcp -m tcp --dport 3306 -j accept #-a input -s 127.0.0.1/32 -p tcp -m tcp --dport 3306 -j accept #memcache #-a input -p tcp -m tcp --dport 11211 -j accept #-a input -s 127.0.0.1/32 -p tcp -m tcp --dport 11211 -j accept #php #-a input -p tcp -m tcp --dport 9000 -j accept #-a input -s 127.0.0.1/32 -p tcp -m tcp --dport 9000 -j accept #ssh -a input -p tcp -m state --state new -m tcp --dport 22 -j accept #-a input -p tcp -m tcp --dport 22 -m state --state new -m recent --update --seconds 60 --hitcount 10 --name ssh --rsource -j drop #-a input -p tcp -m tcp --dport 22 -m state --state new -m recent --set --name ssh --rsource -j accept #http 500 * 90% 需要限制情况下可以取消第一行注释 #-a input -p tcp -m tcp --dport 80 -m connlimit --connlimit-above 500 --connlimit-mask 32 -j reject --reject-with icmp-port-unreachable -a input -p tcp -m state --state new -m tcp --dport 80 -j accept #https 500 * 90% 需要限制情况下可以取消第一行注释 #-a input -p tcp -m tcp --dport 443 -m connlimit --connlimit-above 500 --connlimit-mask 32 -j reject --reject-with icmp-port-unreachable -a input -p tcp -m state --state new -m tcp --dport 443 -j accept #---service-------------------------------------------------- #dns 安装dns服务器后需要打开 #-a input -p udp --sport 53 -j accept #ntp 配置ntp服务器时候需要打开 #-a input -p udp --sport 123 -j accept #对外访问,比如api接口 需要结合output drop 全部关闭情况下才需要打开,这种限制非常严格情况下才配置 #-a output -p tcp --dport 80 -j accept #-a output -p tcp --dport 443 -j accept ###################################################################################### #以下#号部分未测试或为成功,并可能有错误开启之前请先测试,并保证能与你的环境匹配 #syn-flood #-a syn-flood -p tcp -m limit --limit 500/sec --limit-burst 10000 -j return #------fin syn rst ack syn----------------- #-a input -p tcp -m tcp --tcp-flags fin,syn,rst,ack syn -m limit --limit 1/sec -j accept #-a input -p tcp -m tcp --tcp-flags fin,syn,rst,ack syn -m limit --limit 10/sec --limit-burst 100 -j accept ###################################################################################### #portsan 端口扫描拒绝,缺少工具没能测试好,请慎用。 #-a input -p tcp --syn -m recent --name portscan --rcheck --seconds 60 --hitcount 10 -j log #-a input -p tcp --syn -m recent --name portscan --set -j drop -a input -j reject --reject-with icmp-host-prohibited -a syn-flood -j reject --reject-with icmp-port-unreachable -a forward -j reject --reject-with icmp-host-prohibited commit eof /sbin/service iptables restart source /etc/profile chkconfig iptables on /sbin/iptables -l -v chkconfig | grep iptables echo -e "\033[31m iptables ok \033[0m"
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
上一篇: linux定时任务访问url实例
下一篇: 请问贵地是否下雨了