CentOS 7防火牆設定樣本
CentOS 7防火牆設定樣本
假設需要在CentOS 7上開放postgres,pcsd和corosync(這些是一個PostgreSQL HA叢集的組成部分)的防火牆連接埠。下面是執行過程。
- postgres:5432/tcp
- pcsd:2224/tcp
- corosync:5405/udp
5432是postgrs的預設連接埠,容易被探測到,建議改成非預設連接埠。
機器上有兩個網路裝置,一個是內網的一個公網的,這兩個網路裝置預設都綁在public地區。
[root@node1 ~]# firewall-cmd --list-allpublic (default, active) interfaces: eno16777736 eno33554984 sources: services: dhcpv6-client ssh ports: masquerade: no forward-ports: icmp-blocks: echo-reply rich rules:
現在我們要在內網網路上開放PostgreSQL HA叢集需要用的連接埠。 上面的eno33554984就是內部網路,先將其移到internal地區
firewall-cmd --zone=internal --change-interface=eno33554984
再在相應的ifcfg檔案中添加"ZONE=internal"使其永久生效。
echo "ZONE=internal" >> /etc/sysconfig/network-scripts/ifcfg-eno33554984
開啟PostgreSQL,pcsd和corosync的連接埠。
firewall-cmd --permanent --zone=internal --add-port=5432/tcpfirewall-cmd --permanent --zone=internal --add-port=2224/tcpfirewall-cmd --permanent --zone=internal --add-port=5405/udpfirewall-cmd --reload[root@node1 ~]# firewall-cmd --list-all --zone=internalinternal (active) interfaces: eno33554984 sources: services: dhcpv6-client ipp-client mdns samba-client ssh ports: 5432/tcp 2224/tcp 5405/udp masquerade: no forward-ports: icmp-blocks: rich rules:
需要在公網上開放postgres連接埠給特定的機器訪問(比如192.168.0.213,當然這個地址是假的),可以使用rich-rule。
firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address=192.168.0.213/32 port protocol="tcp" port="5432" accept"firewall-cmd --reload