一、緣由:
禍起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 可以查看詳細信息。