2012-03-19 15 views
43

Mogę połączyć się dobrze z zdalnym serwerem postgresql, który ma ograniczenia połączeń do kilku ips w pliku pg_hba.conf, ale jest to wystarczające, jeśli masz ustawione parametry listen_addresses na " * "w pliku postgresql.conf?Jak skonfigurować postgresql postgresql.conf listen_addresses dla wielu adresów IP

Pliki te wskazują, że ten parametr może zawierać listę adresów IP oddzielonych przecinkami, ale jeśli to zrobię, stracę możliwość zdalnego połączenia.

PostgreSQL 8.4.9 RHEL

+0

Domyślną konwencją zezwalającą na połączenia z dowolnego adresu IPv4 jest "0.0.0.0". Mam nadzieję, że to Ci pomoże. – MrGomez

+2

Chcę, aby zapewnić, że połączenia są nawiązywane tylko lokalnie lub z dwóch zdalnych ips. Mam to pomyślnie skonfigurowane w pg_hba.conf, ale co powinno być ustawione na adres listen_addresses na – chrismarx

+0

Czy próbowałeś pliku CSV podobnego do '192.168.0.1,192.168.0.2,127.0.0.1'? W ostatnim przypadku "127.0.0.1" to adres sprzężenia zwrotnego zgodny z RFC dla twojego systemu. Więcej informacji można znaleźć w tym dokumencie: http://www.rfc-editor.org/rfc/rfc3330.txt – MrGomez

Odpowiedz

59

listen_addresses kontrole, które IPS serwer odpowie na nie, które adresy IP serwer zezwala na połączenia do uwierzytelniania z. Jest całkowicie uzasadnione i normalne korzystanie z listen_addresses '*', więc serwer będzie akceptował połączenia przychodzące na dowolnym IP przypisanym do interfejsu na hoście serwera PostgreSQL, podczas korzystania z pg_hba.conf w celu kontrolowania dostępu na poziomie szczegółowym, dla którego IP serwer będzie akceptował logowanie dla konkretnych bazy danych i użytkownicy.

+0

OK, to jest to, co chciałem wiedzieć, sprawia, że ​​kwestia znalezienia rozdzielonej przecinkami listy tam jest dyskusyjna. dzięki! – chrismarx

+0

Edytowane w celu wyraźniejszego zaznaczenia, że ​​'pg_hba.conf' steruje * loginem *. Serwer nadal akceptuje połączenia TCP/IP w dowolnym interfejsie nasłuchiwania i dokonuje konwersji z klientem łączącym. Szybko stwierdza, że ​​klient nie jest z dozwolonego zakresu IP i zamyka połączenie. Oznacza to między innymi, że pre-auth exploity mogą działać z wykluczeniem 'pg_hba', ale nie wtedy, gdy Pg po prostu nie nasłuchuje na interfejsie, przyszedł exploit. Reguły zapory, a nie 'listen_addresses', są odpowiedzią na to. –

+0

To rozwiązanie zadziałało dla mnie na postgres 9.1. Dzięki @CraigRinger –

2

Ustawienie listen_addresses na "*" jest normalne, jak zwraca dbenhur. Możesz także używać narzędzi, takich jak iptables, do odmawiania dostępu do portu, z wyjątkiem pewnych zdalnych adresów IP. Możesz nawet zrobić jedno: nadmiarowość w bezpieczeństwie niekoniecznie jest zła (chociaż korzystanie z zabezpieczeń adresów IP nie jest tak dobre).

+0

tak, jest już firewall oparty na ip, po prostu staram się upewnić, że wszystko jest skonfigurowane tak, jak najlepiej może być- – chrismarx

Powiązane problemy