一、缘由:
祸起Redis未授权访问漏洞被利用,删除了服务器的所有账号,导致无法登陆;这才不得不把开启防火墙提上日程。再次在开启防火墙过程中,一刀切造成了一些前段进程的端口被封,甚是后悔!
二、解决办法:
开启防火墙也算是很重要的一个工程,所以要小心仔细,需从以下几点事先写好方案。
1、登陆每一台机器,区分并确认前端进程和后端进程(后端进程即不面向用户开放的进程),做好统计。
2、如果资源允许,最好前端后端进程部署在不同的机器上,尤其是PHP、WEB等前端应该单独部署,特殊对待。
3、内网防火墙默认限制IP,前端进程防火墙限制端口,默认允许公司所有服务器IP地址。
4、防火墙需要允许127.0.0.1、ICMP、yum、DNS 等必须的规则通过。
其中DNS 如果有自己的DNS服务器最好,允许其IP通过即可;如果是公网DNS,需先在reslove.conf里设置NDS IP,然后再iptables里允许其通过;yum一样的,如果没有自己公司的yum源,需要加上iptables -I INPUT -p tcp -m state —state ESTABLISHED,RELATED -j ACCEPT,即添加允许已经建立的连接和原先的连接产生相关的连接,以及它们连接之后的通讯。
三、iptables 规则
一般默认策略禁止INPUT,放通FORWARD ,OUTPUT即可。
比如我的脚本iptables.sh如下:
iptables -F iptables -P INPUT DROP
iptables -A INPUT -s 223.5.5.5 -j ACCEPT ...... iptables -A INPUT -s 127.0.0.1 -j ACCEPT iptables -A INPUT -p icmp -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT service iptables save
查看防火墙信息命令:sudo iptables -L -n -v
其中-L 即 list ;-n 不进行ip、端口到域名的逆向解析;-v 可以查看详细信息。
附上一份详细的iptables介绍博客:http://blog.chinaunix.net/uid-26495963-id-3279216.html