LINUX.ORG.RU
решено ФорумAdmin

Коннект к postgresql по имени компьютера. Это возможно?

 , , ,


0

1

У меня DHCP в локальной сети иногда меняет айпишники. Роутер я тоже поменял. Задрало постоянно перебивать ip адрес для коннекта к базе. В pg_hba.conf тоже всё завязано на ip адрес. Можно как-то задать один раз конфигурацию - ну, я не знаю - хоть по имени компа, что ли, и не менять, при изменении ip? Postgresql 10, Debian 10.2

★★★★★

Обычно роутеры умеют статическую привязку ARP или назначение статического адреса вручную.

vvn_black ★★★★★
()

В pg_hba.conf тоже всё завязано на ip адрес

Можно использовать all или samenet. Также можно использовать и хостнеймы, но надо чтоб ваш DNS-сервер отдавал корректные PTR.

micronekodesu ★★★
()
Ответ на: комментарий от vvn_black

Обычно роутеры умеют статическую привязку ARP или назначение статического адреса вручную.

Умеют. Но это костыль. WiFi устройства прибывают и убывают, динамический ip - то, что доктор прописал.

tiinn ★★★★★
() автор топика
Ответ на: комментарий от tiinn

даже в сохо есть для dhcp резервация адресов по mac

ну ты и лентяй

Morin ★★★★
()
Ответ на: комментарий от Morin

Что значит «велосипедь»? Это штатное промышленное решение. Это первое, что надо в сети делать.

Ну или как выше говорят привяжи конкретному MAC конкрентый IP.

targitaj ★★★★★
()
Последнее исправление: targitaj (всего исправлений: 2)
Ответ на: комментарий от vvn_black

Так никто DHCP тебе отключать и не рекомендует. Роутеры умеют для отдельных хостов задавать статику в обход DHCP.

Ок. Понятно. MS SQL это умеет, Postgres - только через статический адрес. Вопрос закрыт.

tiinn ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Дык, база базе рознь. В принципе, я б мог учёт и в Excel вести. И в FoxPro, и в Access в mdb. Просто, привык к нормальной базе, с резервным копированием и ссылочной целостностью, с нормальными инструментами разработки. Вот и взгромоздил свой учёт на postgres.

tiinn ★★★★★
() автор топика
Ответ на: комментарий от tiinn

Ну так и зарезервируй саой динамический ип за макадресом нужного хоста или отключи на хосте получение ип по дхцп и дай ему статическиц ип вне пула, обычно дхцп на роутерах раздает из пулу х.х.х.100-х.х.х.200 роутер у тя либо 1 либо 254 верно же? Так сколько там у тя свободных ип для статики? что то мне подсказывает что 152.

julixs ★★★
()
Ответ на: комментарий от julixs

Да не вопрос, можно. Просто интересно было, нет ли какого обходного пути. К MS Sql я же по имени машины могу законнектиться, на ip ваще наплевать. Думал, у postgres есть какой-то аналог.

tiinn ★★★★★
() автор топика
Ответ на: комментарий от tiinn

Странно

listen_addresses (string)

Задаёт адреса TCP/IP, по которым сервер будет принимать подключения клиентских приложений. Это значение принимает форму списка, разделённого запятыми, из имён и/или числовых IP-адресов компьютеров [/qote]

julixs ★★★
()
Ответ на: комментарий от tiinn

Наверное, это потому, что MS SQL работает в венде, ты работаешь из венды и резолвится у тебя по netbios-у или типа того технике. А постгрес у тебя, видимо, в linux и там нет самбы с нетбиосом. Я ща не помню что там у венды актуальное на предмет имён в локальной сети.

targitaj ★★★★★
()
Последнее исправление: targitaj (всего исправлений: 1)
Ответ на: комментарий от targitaj

Да даже когда postgres в винде,один хрен, не хочет по имени коннектиться. Пробовал я его и на винды накатывать

tiinn ★★★★★
() автор топика
Последнее исправление: tiinn (всего исправлений: 1)

только по имени-отчеству, что за фамильярность

да возьми ты уже excel, к чему эти понты

Дык, база базе рознь. В принципе, я б мог учёт и в Excel вести. И в FoxPro, и в Access в mdb. Просто, привык к нормальной базе, с резервным копированием и ссылочной целостностью, с нормальными инструментами разработки. Вот и взгромоздил свой учёт на postgres.

buratino ★★★★★
()
Ответ на: комментарий от tiinn

Что такое «по имени коннектиться»? Ты с pg_hba разобрался?

Покажи строчки по которым получается и не получается.

targitaj ★★★★★
()
Ответ на: комментарий от julixs

Походу у него MSSQL через NetBIOS разрешает имена.

Legioner ★★★★★
()
Ответ на: комментарий от tiinn

Упустил один момент, а ДНС то в сети есть вообще? На правах бреда - к ms sql случаем с подвинды не к локалхосту конектишься по хостнейм?

Ну и всетаки хотелось бы взглянуть на строчки отвечающие за подключение из pg_hba.

julixs ★★★
()
Ответ на: комментарий от julixs

К MS - из-под винды, но не к локалхосту, а ко второй машине.

DNS нет на роутере.

Как не получается. Даже если обе машины под виндой, postgres стоит на винде, то

static void Main(string[] args)
        {
            NpgsqlConnection psqlConn = new NpgsqlConnection(args[0]);
            psqlConn.Open();
            psqlConn.Close();
        }
connectpsqlconsole "Host=192.168.1.66; Port=5432; DATABASE=workaround; User Id=postgres; Password=12345"

коннектится, а

connectpsqlconsole "Host=IADSW; Port=5432; DATABASE=workaround; User Id=postgres; Password=12345"

падает в исключение. В то время как MS SQL жрёт имя машины в строке подключения, и не ругается.

Да hba.conf-то причём? Ну, вот он с виндовой машины:

# PostgreSQL Client Authentication Configuration File
# ===================================================
#
# Refer to the "Client Authentication" section in the PostgreSQL
# documentation for a complete description of this file.  A short
# synopsis follows.
#
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access.  Records take one of these forms:
#
# local      DATABASE  USER  METHOD  [OPTIONS]
# host       DATABASE  USER  ADDRESS  METHOD  [OPTIONS]
# hostssl    DATABASE  USER  ADDRESS  METHOD  [OPTIONS]
# hostnossl  DATABASE  USER  ADDRESS  METHOD  [OPTIONS]
#
# (The uppercase items must be replaced by actual values.)
#
# The first field is the connection type: "local" is a Unix-domain
# socket, "host" is either a plain or SSL-encrypted TCP/IP socket,
# "hostssl" is an SSL-encrypted TCP/IP socket, and "hostnossl" is a
# plain TCP/IP socket.
#
# DATABASE can be "all", "sameuser", "samerole", "replication", a
# database name, or a comma-separated list thereof. The "all"
# keyword does not match "replication". Access to replication
# must be enabled in a separate record (see example below).
#
# USER can be "all", a user name, a group name prefixed with "+", or a
# comma-separated list thereof.  In both the DATABASE and USER fields
# you can also write a file name prefixed with "@" to include names
# from a separate file.
#
# ADDRESS specifies the set of hosts the record matches.  It can be a
# host name, or it is made up of an IP address and a CIDR mask that is
# an integer (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that
# specifies the number of significant bits in the mask.  A host name
# that starts with a dot (.) matches a suffix of the actual host name.
# Alternatively, you can write an IP address and netmask in separate
# columns to specify the set of hosts.  Instead of a CIDR-address, you
# can write "samehost" to match any of the server's own IP addresses,
# or "samenet" to match any address in any subnet that the server is
# directly connected to.
#
# METHOD can be "trust", "reject", "md5", "password", "scram-sha-256",
# "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert".
# Note that "password" sends passwords in clear text; "md5" or
# "scram-sha-256" are preferred since they send encrypted passwords.
#
# OPTIONS are a set of options for the authentication in the format
# NAME=VALUE.  The available options depend on the different
# authentication methods -- refer to the "Client Authentication"
# section in the documentation for a list of which options are
# available for which authentication methods.
#
# Database and user names containing spaces, commas, quotes and other
# special characters must be quoted.  Quoting one of the keywords
# "all", "sameuser", "samerole" or "replication" makes the name lose
# its special character, and just match a database or username with
# that name.
#
# This file is read on server startup and when the server receives a
# SIGHUP signal.  If you edit the file on a running system, you have to
# SIGHUP the server for the changes to take effect, run "pg_ctl reload",
# or execute "SELECT pg_reload_conf()".
#
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records.  In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.



# TYPE  DATABASE        USER            ADDRESS                 METHOD

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host	all				all				192.168.1.107/32			md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host    replication     all             127.0.0.1/32            md5
host    replication     all             ::1/128                 md5

tiinn ★★★★★
() автор топика
Ответ на: комментарий от tiinn

192.168.1.66 - хост с пг и на нем же мсскл? Если нет как настроена сеть на машине с мсскл дхцп или статика. Подключение к мсскл по хостнейм с любой машины или с определеной/ых

192.168.1.107/32 - то же винда?

что в listen_addresses на сервере пг

Без днс только на дхцп без статики без статики врядли что взлетит раз у тя роутер любит ип время от времени менять.

julixs ★★★
()
Последнее исправление: julixs (всего исправлений: 2)
Ответ на: комментарий от peregrine

Лучше поменяй его на scram-sha-256, если есть возможность. md5 слабенький

В домашней локалке? Для базы «в принципе, я б мог учёт и в Excel вести»?

trust и не париться.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от vvn_black

Роутер тоже можно ломануть. И порой это проще сервера, так как с обновлениями там туго. Например, после спектры и мелтдауна на всякие «крутые» роутеры не прилетели обновления...

peregrine ★★★★★
()
Ответ на: комментарий от julixs

192.168.1.66 - хост с пг и на нем же мсскл?

Да, так.

Подключение к мсскл по хостнейм с любой машины или с определеной/ых

Со второй, 192.168.1.107

192.168.1.107/32 - то же винда?

Дуалбут винды с дебианом. И вот под дебианом стоит тот же самый десятый postgresql. Но там всё плохо, он из сети вообще не виден, и я это не победил пока.

что в listen_addresses на сервере пг

listen_addresses = '*'		# what IP address(es) to listen on;

Без днс только на дхцп без статики без статики врядли что взлетит раз у тя роутер любит ип время от времени менять.

Да, похоже,не взлетит

tiinn ★★★★★
() автор топика
Ответ на: комментарий от tiinn

Подожди, так ты из какого-то кода коннектишься? Может там резолвер просто не отрабатывает? Еще из кода может не знать про md5 и пытаться ходить plain.

targitaj ★★★★★
()
Последнее исправление: targitaj (всего исправлений: 1)
Ответ на: комментарий от tiinn

Особый элемент, *, обозначает все имеющиеся IP-интерфейсы

Это значение принимает форму списка, разделённого запятыми, из имён и/или числовых IP-адресов компьютеров.

Попробуй так listen_addresses = '[hostname], [ip]'

Ну и твой ихостнейм должен всетаки резольвица в ип

julixs ★★★
()
Ответ на: комментарий от vvn_black

Можно быть не на роутере. Точнее быть какой-то программой на роутере или воспользоваться другой уязвимостью, которая даёт тебе юзер-спейс, но не рут доступ. Например, на многих топовых юзерских wifi роутерах есть торрентокачалка, dlna/ftp и так далее. Через спектру или мелтдаун ты повышаешь права до рутовских и спокойно гадишь в локалке как хочешь. В общем, это компонент атаки, а не она целиком.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 2)
Ответ на: комментарий от julixs

А знаете, товарищи, проблема, оказывается, в винде. Если postgresql стоит на винде, вышеуказанная проблема наблюдается. Сейчас попробовал законнектиться к postgresql на дебиане -

C:\Work\ConnectPSQlConsole>ConnectPSQLConsole.exe "Host=c-desktop; Port=5432; DATABASE=workaround; User Id=postgres; Password=12345"

и всё прошло на ура. Загадка.

tiinn ★★★★★
() автор топика
Ответ на: комментарий от t184256

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

anonymous
()
Ответ на: комментарий от tiinn

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

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

портянка написана так как у тебя там зоопарк походу.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.