CentOS 7防火墙设置示例

7150阅读 0评论2016-07-30 skykiker
分类:LINUX

CentOS 7防火墙设置示例

假设需要在CentOS 7上开放postgres,pcsd和corosync(这些是一个PostgreSQL HA集群的组成部分)的防火墙端口。下面是执行过程。

5432是postgrs的默认端口,容易被探测到,建议改成非默认端口。

机器上有两个网络设备,一个是内网的一个公网的,这两个网络设备默认都绑在public区域。

[root@node1 ~]# firewall-cmd  --list-all
public (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/tcp
firewall-cmd  --permanent --zone=internal --add-port=2224/tcp
firewall-cmd  --permanent --zone=internal --add-port=5405/udp
firewall-cmd  --reload


[root@node1 ~]# firewall-cmd  --list-all --zone=internal
internal (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

上一篇:调节effective_io_concurrenc优化PostgreSQL bitmap index scan性能
下一篇:初步理解MySQL的gap锁