Действительно ли возможно иметь машину позади брандмауэра И иметь общедоступный IP-адрес? Чем это называют или где я могу найти больше информации?
Конечно. Это зависит от Вас имеющий routeable пространство IP-адресов и брандмауэр ОС, которая может также действовать как маршрутизатор (Linux и другие).
Если у Вас есть пространство действительного адреса, которое можно разделить на подсети затем, это тривиально. Просто поместите подсеть на один из сетевых интерфейсов в брандмауэре.
Можно даже сделать это использование только единственная подсеть, если Вы делаете некоторое волшебство с прокси arp. Псевдомосты с ARP прокси.
Нет - Поскольку записи pg_hba.conf проверяются последовательно для каждой попытки подключения, порядок записей имеет значение.
- Другими словами, «Первое совпадение - это метод, который я собираюсь использовать».
Вам нужно будет явно перечислить все локальные ( md5
) учетные записи, прежде чем переходить к аутентификации LDAP «всех пользователей», чтобы это работало (и это начинает мешать поддержанию pg_hba. conf
).
В качестве обходного пути вы можете использовать метод аутентификации pam
и настроить службу PAM «postgres» на использование любых методов, которые вы хотите (включая возврат к альтернативным методам), но это ограничивает вас любыми модулями PAM, установленными / настроенными в вашей системе.
(Для достаточно широких определений «ограничений» - например, вы можете использовать одноразовые пароли для учетных записей Postgres, если вы используете PAM в качестве метода аутентификации).
Я столкнулся с той же проблемой; Я хотел использовать md5
для пользователя приложения и ldap
для других пользователей в моей организации. Одно отличие состоит в том, что я использую официальный образ Docker Postgres, но мой метод должен работать для обычных пользователей Postgresql.
Образ Docker Postgres по умолчанию поставляется с пользователем postgres
. Вы можете добавить конкретного пользователя в свой файл pg_hba.conf
, предварительно поставив имя пользователя знаком плюса +
.
Мой pg_hba.conf оказался следующим:
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
host all +postgres all md5
host all all all ldap ldapurl="ldap://192.168.1.2:389/ou=People,dc=Company,dc=com?uid?one"
Вторая предпоследняя строка поддерживает пользователя приложения, postgres
, а последняя строка поддерживает несколько учетных записей пользователей LDAP.