centos 下安装postgres的远程连接问题

按照postgres官网的步骤,yum安装postgresql 9.4成功。

配置文件pg_hba.conf和postgresql.conf也更改了远程连接需要改的地方。

然后远程用pgadmin就是无法连接。关闭centos的防火墙service iptables stop后,就能连接了。

防火墙也添加了

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

还是不行。

后来改成

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

然后service iptables restart,就能远程连接了。

看来和防火墙的--state NEW 是否是 

4)基于状态的匹配扩展(连接跟踪)
每个网络连接包括以下信息:源地址、目标地址、源端口、目的端口,称为套接字对(socket pairs);协议类型、连接状态(TCP协议)
和超时时间等。防火墙把这些信息称为状态(stateful)。状态包过滤防火墙能在内存中维护一个跟踪状态的表,比简单包过滤防火墙具有更大的安全性,命令格式如下: 
iptables -m state –-state [!]state [,state,state,state]
其中,state表是一个逗号分割的列表,用来指定连接状态,4种:
>NEW: 该包想要开始一个新的连接(重新连接或连接重定向)
>RELATED:该包是属于某个已经建立的连接所建立的新连接。举例:
FTP的数据传输连接和控制连接之间就是RELATED关系。
>ESTABLISHED:该包属于某个已经建立的连接。
>INVALID:该包不匹配于任何连接,通常这些包被DROP。
例如:
(1)在INPUT链添加一条规则,匹配已经建立的连接或由已经建立的连接所建立的新连接。即匹配所有的TCP回应包。
#iptables -A INPUT -m state –state RELATED,ESTABLISHED

有关,以后再研究

在CentOS中,iptables规则是从一个文件(/etc/sysconfig/iptables)中,从上到下读取配置的,后一条的规则能覆盖(override)前一条规则,例如默认规则下有2条拒绝规则:

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

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

这两条规则的含义是拒绝其他不符合规则的数据包,并且给被拒绝的主机发送一条icmp host prohibited的消息。并且这两条规则可以认为是iptables对默认规则的补充,因为在这些默认规则之前,有:INPUT ACCEPT [0:0]这样的规则,这些规则表示默认全部允许。

那说了这么多,到底要表达什么呢?不知道有没有这样的印象,就是在CentOS中直接使用iptables命令插入一个规则,并没有起作用,原因就是它默认被插入到了REJECT规则的下面?例如执行“iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8088 -j ACCEPT”却发现不好用,原因是它插入到“-A INPUT -j REJECT --reject-with icmp-host-prohibited”的下面,要想好用,那必须插入到它的前面,例如执行“iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 8088 -j ACCEPT”,这样它就会被添加到INPUT链的最前端,也就起到预期的作用了。

猜你喜欢

转载自radzhang.iteye.com/blog/2396698
今日推荐