Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программное обеспечение Linux и FreeBSD (http://forum.oszone.net/forumdisplay.php?f=11)
-   -   PostGreSQl - разрешить подключения с удаленных IP (http://forum.oszone.net/showthread.php?t=352431)

__sa__nya 22-11-2022 12:08 2997068

PostGreSQl - разрешить подключения с удаленных IP
 
Доброе время суток. Имеется PostgreSQL, сборка от 1С, версия 14.5.3.1. Нужно разрешить удаленные подключения с другого компьютера. Правлю файл /etc/postgresql/14/main/postgresql.conf.
Если я прописываю в разделе "Connections and Authentication" listen_addresses = '*' - удаленное подключение работает ( еще правится файл pg_hba.conf- добавляется метод аутентификации md5 для нужного IP).
Но, если я хочу, например, написать конкретный Адрес, и пишу
listen_addresses = 'localhost,192.168.2.126'
- В этом случае уже подключения нет. Гугление в интернете дает информацию что нужно править именно данный параметр, но у меня это не работает. Если смотреть логи PostGreSQl ( /var/log/postgresql/postgresql-14-main.log ), там есть строчки, судя по которым, создается мнение что PostGreSQl пытается не принимать подключения с IP, указанных в параметре listen_addresses, а "привязаться" к этим IP и "слушать" их, как если бы это были IP той машины на которой работает PostGreSQl.
Кто может подсказать как мне решить мой вопрос без варианта разрешения удаленных подключений с любых адресов ?

NickM 22-11-2022 12:42 2997074

Цитата:

Цитата __sa__nya
Но, если я хочу, например, написать конкретный Адрес, и пишу
listen_addresses = 'localhost,192.168.2.126' »

У Вас на сервере несколько сетевых интерфейсов?

Попробуйте так:
Код:

listen_addresses = '192.168.2.126, 127.0.0.1'

dmitryst 22-11-2022 13:04 2997079

Цитата:

Цитата __sa__nya
listen_addresses = 'localhost,192.168.2.126' »

= "слушать подключения к адресам локалхоста и 192.168.2.126"
То, что вам надо, в MYSQL делается как-то так....
Код:

GRANT ALL PRIVILEGES ON database.* TO 'vasya'@'11.22.33.44/255.255.255.0';
Поиск в гугле через пару минут:
listen_addresses = '*' - оставляем
Находим файл /var/lib/pgsql/data/pg_hba.conf (у вас может быть по другому пути)
В конец дописываем:
Код:

host samerole all 203.0.113.2/32 md5
где 203.0.113.2/32 - ваш комп, с которого можно заходить (если можно всем, меняем на 0.0.0.0/0), md5 - метод аутентификации. Перезапускаем сервер и проверяем..

__sa__nya 23-11-2022 08:49 2997146

Цитата:

Цитата NickM
У Вас на сервере несколько сетевых интерфейсов? »

- Нет, один. Мне вообще нужно было чтобы я мог с не локального IP подключаться к PostGreSQL серверу. Google навел меня на параметр listen_addresses .

Цитата:

Цитата dmitryst
Поиск в гугле через пару минут:
listen_addresses = '*' - оставляем
Находим файл /var/lib/pgsql/data/pg_hba.conf (у вас может быть по другому пути) »

- Да, я в курсе. Но, когда ставишь listen_addresses = '*', то в принципе порт 5432 становится открытым с любого IP мне это не особо нравится. Смысл этой темы можно ли в PostGre настроить так чтобы он принимал подключения только с определенных IP-адресов.

NickM 23-11-2022 09:08 2997148

__sa__nya, походу Вы совсем запутались.
Цитата:

Цитата __sa__nya
listen_addresses »

Здесь задаётся на каком локальном интерфейсе принимать запросы;

Вам, вот тут, уже сказали как ограничить доступ с одного адреса - задать его и указать правильную маску:
Цитата:

Цитата dmitryst
Находим файл /var/lib/pgsql/data/pg_hba.conf (у вас может быть по другому пути) »

Цитата:

Цитата dmitryst
где 203.0.113.2/32 - ваш комп, с которого можно заходить »

Цитата:

Цитата __sa__nya
Google навел меня на параметр »

Читайте официальную документацию.

__sa__nya 23-11-2022 09:18 2997150

NickM, видимо, да, параметр listen_addresses не про то чтобы писать IP с каких принимать подключения. Это привязка интерфейсов с этими IP. Про pg_hba в курсе. Но, как говорил выше, в любом случае нужно ставить listen_addresses = '*', и тогда порт 5432 открывается для всех.
Ну ладно, в общем понял. Спасибо.

NickM 23-11-2022 10:03 2997154

Цитата:

Цитата __sa__nya
в любом случае нужно ставить listen_addresses = '*', и тогда порт 5432 открывается для всех. »

А как Вы это представляете выборочное открытие порта?
Порт либо слушается, либо не слушается.
А вот ограничение по подключению к открытому порту как раз таки и настраивается.
Для сокрытия порта Вы можете воспользоваться брандмауэром, в котором настроить необходимое Вам правило.

dmitryst 23-11-2022 10:35 2997156

__sa__nya, т.е. то, что я вам написал про добавление в конфиг, вам не надо? :drug:

Jula0071 23-11-2022 11:55 2997162

The pg_hba.conf File

dmitryst 23-11-2022 11:58 2997163

Jula0071, так-то даже готовое ТС не удосужился проверить, а тут аж читать надо.... :drug:

Jula0071 23-11-2022 12:08 2997164

Цитата:

Цитата dmitryst
а тут аж читать надо »

Админу, который не хочет в RTFM, лучше бы переквалифицироваться в дворники...

__sa__nya 23-11-2022 12:35 2997166

Цитата:

Цитата NickM
__sa__nya, т.е. то, что я вам написал про добавление в конфиг, вам не надо? »

dmitryst, я же ответил еще в 4-м посте данной темы что этот вариант я так же находил но это не совсем то что мне нужно. :-)
И о проверке готового вы зря. Я же написал в первом посте что использованные варианты с postgresql.conf и pg_hba.conf не совсем устраивают.

Цитата:

Цитата Jula0071
Админу, который не хочет в RTFM, лучше бы переквалифицироваться в дворники... »

Взаимно...

Ты не прочел всю тему, а только последние сообщения и наспех подлил грязи. Ну так... Делать поспешные выводы без хорошего изучения вопроса - признак низкого интеллекта.

Jula0071 23-11-2022 13:59 2997171

Цитата:

Цитата __sa__nya
этот вариант я так же находил но это не совсем то что мне нужно »

Это именно то, что вам нужно. Ну прочитайте ж наконец документацию! Или у вас с этим проблемы, например, вы не владеете английским? Что такое listening address вам непонятно?
Если всё так сложно, ну ограничьте доступ к хосту на сетевом уровне (посредством брандмауэра). Правда, его тоже надо настраивать уметь и для этого читать документацию...

__sa__nya, мы с вами на брудершафт не пили, так что попрошу не фамильярничать, ок? Не нравится то, что я вам говорю, игнорьте, вот и всё.

NickM 23-11-2022 14:23 2997172

Цитата:

Цитата Jula0071
Или у вас с этим проблемы, например, вы не владеете английским? »

Так ведь и в этом совсем не проблема, "Postgres Pro" выложила русскоязычную документацию, выше как раз приводил ссылку на русскоязычный хэлп.

Jula0071 23-11-2022 14:39 2997175

Цитата:

Цитата NickM
"Postgres Pro" выложила русскоязычную документацию, выше как раз приводил ссылку на русскоязычный хэлп. »

ТС нужна документация на 14-ю версию, она тоже есть? Вообще канеш хорошо, что переводы делают, но по своему опыту знаю, что они часто низкого качества и потому стараюсь избегать. Микрософт к примеру не стесняется машинного перевода KB, там вообще тихий ужас.

NickM 23-11-2022 14:51 2997176

Цитата:

Цитата Jula0071
ТС нужна документация на 14-ю версию, она тоже есть? »

18.3. Подключения и аутентификация
19.1. Файл pg_hba.conf

__sa__nya 23-11-2022 14:58 2997178

Цитата:

Цитата Jula0071
__sa__nya, мы с вами на брудершафт не пили, так что попрошу не фамильярничать, ок? Не нравится то, что я вам говорю, игнорьте, вот и всё. »

- Абсолютно верно, не пили. Так давайте вы не будете меня оскорблять, вот и все. Я первый ничего негативного в ваш адрес не пишу, в отличие от вас.

В общем я получил ответы на свои вопросы. Спасибо.

dmitryst 23-11-2022 18:03 2997186

__sa__nya, ну и? Не работает? ;)

Jula0071 23-11-2022 18:20 2997188

dmitryst, надо было ласково взять за ручку, рассказать, что не только лишь у всех проблемы с восприятием реальности, погладить по головке... глядишь, дитя бы и не обиделось и сумело с пятой попытки вставить круглую палку не в квадратное гнездо.

__sa__nya 24-11-2022 06:24 2997208

Цитата:

Цитата dmitryst
__sa__nya, ну и? Не работает? »

Работает. Не совсем так как представлял себе, ну да ладно.

NickM 24-11-2022 07:36 2997210

Цитата:

Цитата __sa__nya
Работает. Не совсем так как представлял себе, ну да ладно. »

Вам и не надо ничего представлять и тем более "натягивать" программный продукт к этим представлениям.

Выше уже было сказано:
Цитата:

Цитата NickM
А как Вы это представляете выборочное открытие порта?
Порт либо слушается, либо не слушается.
А вот ограничение по подключению к открытому порту как раз таки и настраивается.
Для сокрытия порта Вы можете воспользоваться брандмауэром, в котором настроить необходимое Вам правило. »


dmitryst 24-11-2022 08:50 2997211

Цитата:

Цитата __sa__nya
Не совсем так как представлял себе »

а как вы это себе представляете? Сервер спит, никого не обслуживает, и только при получении запроса со стороны нужного айпишника начинает шуршать файлами? Нее, так не бывает! :biggrin:
Сервер (в общем случае, неважно, что за сервер, веб, БД, и т.д.) обычно настраивается на прослушивание локального порта,сокета (файлик такой, грубо говоря), либо адресов интерфейсов (или одного из..). Т.е. он запущен и слушает на указанном интерфейсе всегда и принимает запросы от всех. Конфиги некоторых серверов позволяют ограничить доступ только с определенных адресов, или подсети. Если такой опции нет, то можно использовать файерволл, как отметил коллега NickM, у меня, например, и в конфигах стоит ограничение на доступ из моей локальной подсети, и с одного-двух внешних адресов, плюс еще в фаерволле добавлено аналогичное ограничение (т.е. запущен ли сервер, невозможно узнать извне, только с парочки адресов).
Postgres позволяет ввести ограничение доступа через файл конфигурации, слушает он на локальном интерфейсе/адресе, но обслуживает запросы только с указанных вами адресов. Что вам непонятно? :drug:

dmitryst 16-02-2023 08:14 3003319

Цитата:

Цитата zorin1
Порт либо слушается, либо не слушается. »

если он слушается, то в конфиг "слушателя" обычно можно вписать, откуда он будет принимать соединения. Либо обрубить внешним файерволлом. Обычное дело ;)


Время: 16:02.

Время: 16:02.
© OSzone.net 2001-