Ubuntu 12.04 클라우드 서버의 기본 포트 5432에서 실행되는 postgres 9.1 서버가 있습니다.
원격 쿼리를 수행할 수 있도록 포트를 열고 싶지만 프로토콜을 지정해야 하는 IP 테이블에서 포트를 열어야 합니다.이 문서TCP/UDP 등에 대한 언급은 없습니다.
IP 테이블에서 어떤 프로토콜을 허용해야 합니까?
답변1
프로토콜은 일반 TCP/IP입니다.
posgresql 문서에서"프런트엔드" 및 "백엔드" 프로토콜:
PostgreSQL은 메시지 기반 프로토콜을 사용하여 프런트엔드와 백엔드(클라이언트와 서버) 간의 통신을 수행합니다. 이 프로토콜은 다음을 지원합니다.TCP/IP또한 Unix 도메인 소켓을 통해서도 가능합니다.포트 번호 5432이 프로토콜을 지원하는 것으로 IANA에 등록된 서버의 관례적인 TCP 포트 번호이지만 실제로는 권한이 없는 모든 포트 번호를 사용할 수 있습니다.
그래서 약iptablestcp
Unix 도메인 소켓은 네트워킹에 적합하지 않으므로 이 프로토콜을 사용하십시오 .
iptables예:
iptables <other_options> -p tcp -dport 5432 -j ACCEPT
노트:
~처럼라켄슈타인, 이 네트워크 연결을 통해 SSL을 활성화하는 것을 고려하는 것이 특히 현명합니다(postgresql에 대한 설명서 참조).SSL을 통해 TCP 사용). 이것iptables이 경우 규칙은 변경되지 않습니다: 동일한 포트(5432), 동일한 프로토콜(tcp).
답변2
기본적으로 PostgreSQLt는 TCP 포트 5432에서 수신 대기합니다. 들어오는 클라이언트 요청을 허용하려면 다음 iptables 규칙을 사용하십시오(포트 5432 열기).
-A INPUT -p tcp --dport 5432 -s xxx.xxx.xxx.xxx -j ACCEPT
여기서 xxx.xxx.xxx.xxx는 연결 중인 서버의 IP이므로 Postgres를 외부 세계에 열지 않습니다.
답변3
-A INPUT -p tcp --dport 5432 -s xxx.xxx.xxx.xxx -j ACCEPT
이 명령이 pg_hba를 변경합니까?