伺服端的典型防火墻需求,通常如下:
1、允許所有出站流量,
2、限制所有入站流量,
3、允許HTTP和HTTPS這類流量,
4、只允許從堡壘機登入伺服器,
5、只允許從監控主機存取伺服器的被監控埠,或只允許代理機存取一些內部服務,
6、如果有雙機熱備,可能還要允許VRRP透過,否則會發生腦裂。
防火墻大都是firewalld,而不再是iptables了。
下面我們看具體的firewalld配置
0、 可能要清空之前的防火墻策略
rm -rf /etc/firewalld/zones
因為是可能,所以它是第0條。
0、
啟動firewalld並設定預設區域
(假設使用public區域):
systemctl start firewalldfirewall-cmd --set-default-zone=public
通常有如下區域,這個區域類似於配置模版。
不同的區域,可以作用在不同的網卡,如下:
firewall-cmd --permanent --zone=trusted --change-interface=eth0firewall-cmd --permanent --zone=public --change-interface=etpfirewall-cmd --reload
最簡配置:除了啟動firewalld,其他均可以不配置。
1、
允許所有出站流量
:
firewalld預設情況下允許所有出站流量,所以你不需要做額外的設定。
2、 限制所有入站流量 :
設定預設入站規則為拒絕:
firewall-cmd --zone=public --set-target=DROP
3、 允許HTTP和HTTPS流量 :
使用以下命令允許HTTP和HTTPS流量透過:
firewall-cmd --zone=public --add-service=http --permanentfirewall-cmd --zone=public --add-service=https --permanent
4、 只允許從堡壘機登入伺服器 :
// 先移除預設開啟的沒有存取限制的ssh服務firewall-cmd --permanent --remove-service=ssh// 添加復雜規則,只允許指定IP段存取22埠firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="22" accept'
5、 只允許從監控主機存取伺服器的被監控埠,或只允許代理機存取一些內部服務
//zabbix監控firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="10051" accept'//mysqlfirewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3306" accept'//redisfirewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="6379" accept'//mongodbfirewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="27017" accept'
6、. 開啟VRRP協定 :
主備機都執行下面的命令
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface em1 --destination 224.0.0.18 --protocol vrrp -j ACCEPTfirewall-cmd --reload
7、 重新載入防火墻以套用更改 :
firewall-cmd --reload
全文完。