一键配置CentOS iptables防火墙的Shell脚本分享
手里几台VPS配置iptables太繁琐,看到了朱哥的LNMP脚本里有一个自动配置iptables防火墙的脚本,借来改了一下,给需要的人用;
只提供常用端口的设置,如果你有特殊需求只需自行添加或减少相应的端口即可;
使用方法:
chmod+xiptables.sh ./iptables.sh
设置iptables开机自动启动:
chkconfig--level345iptableson
完整Shell:
#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin exportPATH functionsupport_distro(){ if[-z"`egrep-i"centos"/etc/issue`"];then echo"Sorry,iptablesscriptonlysupportcentossystemnow." exit1 fi } support_distro echo"============================iptablesconfigure============================================" #OnlysupportCentOSsystem #获取SSH端口 ifgrep"^Port"/etc/ssh/sshd_config>/dev/null;then sshdport=`grep"^Port"/etc/ssh/sshd_config|sed"s/Port\s//g"` else sshdport=22 fi #获取DNS服务器IP if[-s/etc/resolv.conf];then nameserver1=`cat/etc/resolv.conf|grepnameserver|awk'NR==1{print$2}'` nameserver2=`cat/etc/resolv.conf|grepnameserver|awk'NR==2{print$2}'` fi IPT="/sbin/iptables" #删除已有规则 $IPT--delete-chain $IPT--flush #禁止进,允许出,允许回环网卡 $IPT-PINPUTDROP $IPT-PFORWARDDROP $IPT-POUTPUTACCEPT $IPT-AINPUT-ilo-jACCEPT #允许已建立的或相关连接的通行 $IPT-AINPUT-mstate--stateRELATED,ESTABLISHED-jACCEPT $IPT-AOUTPUT-mstate--stateRELATED,ESTABLISHED-jACCEPT #限制80端口单个IP的最大连接数为10 $IPT-IINPUT-ptcp--dport80-mconnlimit--connlimit-above10-jDROP #允许80(HTTP)/873(RSYNC)/443(HTTPS)/20,21(FTP)/25(SMTP)端口的连接 $IPT-AINPUT-ptcp-mtcp--dport80-jACCEPT $IPT-AINPUT-ptcp-mtcp--dport873-jACCEPT $IPT-AINPUT-ptcp-mtcp--dport443-jACCEPT $IPT-AINPUT-ptcp-mtcp--dport20-jACCEPT $IPT-AINPUT-ptcp-mtcp--dport21-jACCEPT $IPT-AINPUT-ptcp-mtcp--dport25-jACCEPT #允许SSH端口的连接,脚本自动侦测目前的SSH端口,否则默认为22端口 $IPT-AINPUT-ptcp-mtcp--dport$sshdport-jACCEPT #允许ping $IPT-AINPUT-picmp-micmp--icmp-type8-jACCEPT $IPT-AINPUT-picmp-micmp--icmp-type11-jACCEPT #允许DNS [!-z"$nameserver1"]&&$IPT-AOUTPUT-pudp-mudp-d$nameserver1--dport53-jACCEPT [!-z"$nameserver2"]&&$IPT-AOUTPUT-pudp-mudp-d$nameserver2--dport53-jACCEPT #保存规则并重启IPTABLES serviceiptablessave serviceiptablesrestart echo"============================iptablesconfigurecompleted============================================"