2012-03-19 57 views
43

Tôi có thể kết nối tốt với máy chủ postgresql từ xa có hạn chế kết nối tới một vài ips trong pg_hba.conf, nhưng điều này là đủ nếu bạn có listen_addresses được đặt thành " * "trong tệp postgresql.conf?Làm thế nào để cấu hình postgresql postgresql.conf listen_addresses cho nhiều địa chỉ ip

Tệp đó cho biết rằng tham số đó có thể lấy danh sách địa chỉ IP được phân cách bằng dấu phẩy, nhưng nếu tôi làm như vậy, tôi sẽ mất khả năng kết nối từ xa.

postgresql-8.4.9 RHEL

+0

Quy ước mặc định cho phép kết nối từ bất kỳ địa chỉ IPv4 nào là '0.0.0.0'. Tôi hy vọng cái này sẽ giúp bạn. – MrGomez

+2

tôi muốn đảm bảo kết nối chỉ được thực hiện cục bộ hoặc từ hai ips từ xa. Tôi đã cấu hình thành công trong pg_hba.conf, nhưng listen_addresses sẽ được đặt thành – chrismarx

+0

Bạn đã thử một CSV như '192.168.0.1,192.168.0.2,127.0.0.1' chưa? Trong trường hợp cuối cùng, '127.0.0.1' là địa chỉ vòng lặp tương thích RFC cho hệ thống của bạn. Xem tài liệu này để biết thêm thông tin: http://www.rfc-editor.org/rfc/rfc3330.txt – MrGomez

Trả lời

59

listen_addresses điều khiển mà IPS máy chủ sẽ trả lời trên, không có IPS máy chủ sẽ cho phép các kết nối để xác thực từ. Hoàn toàn hợp lý và bình thường khi sử dụng listen_addresses '*' để máy chủ sẽ chấp nhận các kết nối đến trên bất kỳ ip nào được gán cho một giao diện trên máy chủ lưu trữ postgresql, trong khi sử dụng pg_hba.conf để kiểm soát quyền truy cập ở cấp độ hạt mịn hơn. cơ sở dữ liệu và người dùng.

+0

ok, đó là những gì tôi muốn biết, làm cho vấn đề nhận danh sách được phân cách bằng dấu phẩy trong đó tranh luận. cảm ơn! – chrismarx

+0

Chỉnh sửa để làm cho nó rõ ràng hơn rằng 'pg_hba.conf' điều khiển * đăng nhập *. Máy chủ vẫn chấp nhận các kết nối TCP/IP trên bất kỳ giao diện nghe nào và giao tiếp với máy khách kết nối. Nó chỉ nhanh chóng kết luận rằng khách hàng không phải là từ một dải IP được phép và đóng kết nối. Điều này có nghĩa là trong số những thứ khác mà khai thác trước khi xác thực có thể làm việc với loại trừ 'pg_hba' nhưng không phải là nếu Pg đơn giản là không nghe trên giao diện mà sự khai thác xuất hiện. Các quy tắc tường lửa, không phải là 'listen_addresses', là câu trả lời cho điều đó. –

+0

Giải pháp này làm việc cho tôi trên bưu cục 9.1. Cảm ơn @CraigRinger –

2

Đặt listen_addresses thành '*' là bình thường, vì các điểm này chỉ ra. Ngoài ra, bạn có thể sử dụng các công cụ như iptables để từ chối truy cập vào cổng ngoài các IP từ xa nhất định. Bạn thậm chí có thể làm cả hai: dư thừa trong bảo mật không nhất thiết phải là một điều xấu (mặc dù, dựa vào bảo mật địa chỉ IP không phải là quá tốt).

+0

vâng, đã có tường lửa dựa trên ip tại chỗ, chỉ cần cố gắng đảm bảo mọi thứ được định cấu hình là tốt nhất có thể- – chrismarx

Các vấn đề liên quan