Назад | Перейти на главную страницу

Тип аутентификации Postgres «локальный» против «хоста 127.0.0.1»

У меня есть сервер Postgres v10, к которому будут устанавливаться только локальные соединения. в документация Я нахожу два метода настройки такого процесса аутентификации в pg_hba.conf: местный и хозяин с 127.0.0.1:

# Allow any user on the local system to connect to any database with
# any database user name using Unix-domain sockets (the default for local
# connections).
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             all                                     trust

# The same using local loopback TCP/IP connections.
#
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             127.0.0.1/32            trust

Существуют ли какие-либо передовые методы или проблемы безопасности относительно того, какой тип (сокет домена Unix или сокет TCP / IP) мне следует выбрать, поскольку оба они кажутся применимыми к моему варианту использования? Конечно, я выберу другой метод аутентификации, отличный от "trust".

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

  • Вы можете защитить доступ к сокету домена Unix с помощью ограничений файловой системы (зависит от вашей ОС)
  • Вы можете безопасно использовать доступ без пароля, используя учетные данные однорангового узла Unix.
  • При разрешении доступа TCP через 127.0.0.1 все локальные процессы имеют доступ, и поэтому вам дополнительно необходимо использовать аутентификацию по паролю или что-то подобное (если вы не используете некоторые довольно экзотические плагины iptables)
  • Вы можете избежать накладных расходов TCP