โปรโตคอลเครือข่ายใดที่เซิร์ฟเวอร์ฐานข้อมูล Postgres ใช้


16

ฉันมีเซิร์ฟเวอร์ postgres 9.1 ที่ทำงานบนพอร์ตเริ่มต้น 5432 บนเซิร์ฟเวอร์คลาวด์ Ubuntu 12.04

ฉันต้องการเปิดพอร์ตเพื่อให้ฉันสามารถสร้างแบบสอบถามระยะไกล - แต่ฉันต้องเปิดพอร์ตบนตาราง IP ซึ่งต้องการให้ฉันระบุโปรโตคอล เอกสารนี้ไม่ได้พูดถึง TCP / UDP ฯลฯ

ฉันควรอนุญาตให้ใช้โปรโตคอลใดในตาราง IP


4
อย่าลืมเปิดใช้งาน SSL ... postgresql.org/docs/9.1/static/ssl-tcp.html
Lekensteyn

คำตอบ:


16

โปรโตคอลเป็น TCP / IP ธรรมดา

จากเอกสาร posgresql เกี่ยวกับโปรโตคอล "frontends" และ "backends" :

PostgreSQL ใช้โปรโตคอลข้อความเพื่อการสื่อสารระหว่างส่วนหน้าและส่วนหลัง (ไคลเอนต์และเซิร์ฟเวอร์) โปรโตคอลรองรับTCP / IPและซ็อกเก็ต Unix-domain หมายเลขพอร์ต 5432ได้รับการลงทะเบียนกับ IANA เป็นหมายเลขพอร์ต TCP ตามธรรมเนียมสำหรับเซิร์ฟเวอร์ที่สนับสนุนโปรโตคอลนี้ แต่ในทางปฏิบัติแล้วหมายเลขพอร์ตที่ไม่มีสิทธิพิเศษใด ๆ สามารถใช้ได้

ดังนั้นเกี่ยวกับiptablesใช้tcpโปรโตคอลเป็นซ็อกเก็ต Unix โดเมนไม่ได้หมายถึงการใช้ผ่านเครือข่าย

ตัวอย่างiptables :

iptables <other_options> -p tcp -dport 5432 -j ACCEPT

หมายเหตุ :

ตามที่Lekensteynระบุไว้เป็นอย่างยิ่งควรพิจารณาเปิดใช้งาน SSL ผ่านการเชื่อมต่อเครือข่ายนั้น (ดูเอกสารประกอบ postgresql เกี่ยวกับการใช้ TCP-over-SSL ) iptablesกฎจะไม่เปลี่ยนแปลงในกรณีที่: พอร์ตเดียวกัน (5432) โพรโทคอเดียวกัน (TCP)


1

โดยค่าเริ่มต้น PostgreSQLt ฟังพอร์ต TCP 5432 ใช้กฎ iptables ต่อไปนี้อนุญาตให้ไคลเอนต์ที่เข้ามาร้องขอ (เปิดพอร์ต 5432)

-A INPUT -p tcp --dport 5432 -s xxx.xxx.xxx.xxx -j ACCEPT

โดยที่ xxx.xxx.xxx.xxx เป็น IP ของเซิร์ฟเวอร์ที่คุณเชื่อมต่ออยู่ดังนั้นคุณจึงไม่เปิด postgres ขึ้นสู่โลก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.