在Centos上为Postgresconfiguration防火墙规则的问题

我试图按照这个指南,允许远程连接postgres http://www.cyberciti.biz/tips/postgres-allow-remote-access-tcp-connection.html
目前我遇到了防火墙的问题。
我有它的设置,所以我有一个/tmp/v4 ,我可以修改,只是恢复我的防火墙规则。
我已经尝试了2个设置。
本指南的build议:

 -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d 00.000.000.00 --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT -A OUTPUT -p tcp -s 00.000.000.00 --sport 5432 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT 

当我使用这个设置并运行nc ipofserver 5432我得到Ncat: connection timed out
如果我尝试设置

 -I INPUT -p tcp -s 00.000.000.00 --dport 5432 -j ACCEPT -I INPUT -p tcp -s 00.000.000.00 --dport 5432 -j ACCEPT 

我运行相同的ncat命令,我得到Ncat: Connection refused

我在另一台服务器上使用相同的基本防火墙(不是上面列出的)来提供redis服务,并且能够正常工作。

firewalld在这个箱子里被禁用,主要是为了熟悉目的。

这两款机器都是CentOS 7

00.000.000.00取代了我实际使用的计算机的IP地址

centos7使用防火墙cmd,除非你禁用它。 我假设你没有,因为你会提到否则。

有了这个假设,那么你可以简单地在你的postgresql主机上运行这个:

 firewall-cmd --add-service=postgresql 

一旦你已经validation了它的工作原理,那么你可以使用永久性开关重新运行它,使其在重新启动后坚持:

 firewall-cmd --add-service=postgresql --permanent 

如果你安装了bash-completion软件包,在重新login后,firewall-cmd自动完成,使它非常容易使用。

编辑:OP表示他没有使用firewall-cmd。 所以假设他使用旧的iptables服务,那么修改的规范方法是编辑/ etc / sysconfig / iptables。

如果要允许传入连接到该主机中的端口5432 / tcp,则需要添加此行

 -A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT 

之前

 -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT 

并重新加载iptables服务。 这当然会允许从任何主机到数据库服务器的所有连接。

如果你想限制什么主机可以连接(让我们将其限制为1,111.222.111.222),那么:

 -A INPUT -p tcp -s 111.222.111.222 --sport 1024:65535 --dport 5432 -m state --state NEW,ESTABLISHED -j ACCEPT 

这应该做到这一点,当然,删除另一个,并重新加载iptables服务