Главная » OpenSource базы данных » PostgreSQL » Как разрешить внешние подключения к PostgreSQL на Ubuntu

📑 Как разрешить внешние подключения к PostgreSQL на Ubuntu

Чтобы разрешить внешние подключения к PostgreSQL на Ubuntu, вам нужно выполнить несколько шагов:

1. Настройка прослушивания адресов в postgresql.conf:

Откройте файл конфигурации PostgreSQL postgresql.conf. Расположение файла может отличаться в зависимости от версии PostgreSQL, но обычно он находится в /etc/postgresql/<версия>/main/postgresql.conf. Например:

sudo nano /etc/postgresql/14/main/postgresql.conf

Найдите строку, начинающуюся с listen_addresses. По умолчанию она может быть закомментирована (#listen_addresses = ‘localhost’) или установлена в ‘localhost’.

Измените значение listen_addresses на ‘*’. Это позволит PostgreSQL прослушивать все доступные IP-адреса. Если вы хотите разрешить подключения только с определенных IP-адресов, укажите их через запятую (например, ‘192.168.1.0/24, 10.0.0.0/16’).

listen_addresses = '*'

Сохраните изменения и закройте файл.

2. Настройка правил доступа в pg_hba.conf:

Откройте файл pg_hba.conf. Он находится в том же каталоге, что и postgresql.conf (например, /etc/postgresql/<версия>/main/pg_hba.conf).

sudo nano /etc/postgresql/14/main/pg_hba.conf

Добавьте строку, разрешающую подключения с внешних IP-адресов. Рекомендуется использовать аутентификацию md5 или scram-sha-256 для безопасности.

host all all 0.0.0.0/0 scram-sha-256
  • host: Указывает, что правило применяется к подключениям через TCP/IP.
  • all: Указывает, что правило применяется ко всем базам данных.
  • all: Указывает, что правило применяется ко всем пользователям PostgreSQL.
  • 0.0.0.0/0: Указывает, что правило применяется ко всем IP-адресам (любой IP-адрес и маска подсети). Внимание: Это разрешает подключения с любого IP-адреса в интернете. Для большей безопасности рекомендуется указать конкретные IP-адреса или диапазоны IP-адресов, с которых разрешены подключения. Например, 192.168.1.0/24 разрешит подключения только из сети 192.168.1.0/24.
  • scram-sha-256: Указывает метод аутентификации. scram-sha-256 — более современный и безопасный метод, чем md5. Вы также можете использовать md5, но scram-sha-256 предпочтительнее.

Сохраните изменения и закройте файл.

3. Перезапуск PostgreSQL:

Перезапустите службу PostgreSQL, чтобы применить изменения:

sudo systemctl restart postgresql

4. Настройка брандмауэра (UFW):

Если у вас включен брандмауэр UFW, вам нужно разрешить входящие подключения к порту PostgreSQL (по умолчанию 5432).

sudo ufw allow 5432/tcp

Если UFW не включен, рекомендуется его всё-таки включить:

sudo ufw enable

Проверьте статус UFW:

sudo ufw status

Убедитесь, что порт 5432 разрешен.

5. Проверка подключения:

С удаленного компьютера попробуйте подключиться к PostgreSQL, используя клиент PostgreSQL (например, psql) или другое приложение, которое использует PostgreSQL.

psql -h <IP-адрес_сервера> -U <имя_пользователя> -d <имя_базы_данных>

Замените <IP-адрес_сервера>, <имя_пользователя> и <имя_базы_данных> на соответствующие значения.

Важные замечания по безопасности:

  • Ограничьте доступ по IP-адресам: Вместо 0.0.0.0/0 в pg_hba.conf укажите конкретные IP-адреса или диапазоны IP-адресов, с которых разрешены подключения. Это значительно повысит безопасность вашей базы данных.
  • Используйте надежные пароли: Убедитесь, что у всех пользователей PostgreSQL установлены надежные пароли.
  • Рассмотрите возможность использования SSL: Для шифрования трафика между клиентом и сервером PostgreSQL рассмотрите возможность использования SSL.
  • Регулярно обновляйте PostgreSQL: Устанавливайте последние обновления безопасности для PostgreSQL.
  • Мониторинг: Настройте мониторинг PostgreSQL для обнаружения подозрительной активности.
  • Пример более безопасной конфигурации pg_hba.conf:

Предположим, вы хотите разрешить подключения только с IP-адреса 192.168.1.100 и из сети 10.0.0.0/24. В pg_hba.conf вы должны добавить следующие строки:

host all all 192.168.1.100/32 scram-sha-256
host all all 10.0.0.0/24 scram-sha-256

В этом примере /32 означает, что правило применяется только к IP-адресу 192.168.1.100, а /24 означает, что правило применяется ко всем IP-адресам в сети 10.0.0.0/24.

Следуя этим шагам, вы сможете разрешить внешние подключения к PostgreSQL на Ubuntu, обеспечив при этом необходимый уровень безопасности. Помните, что безопасность базы данных — это непрерывный процесс, и важно регулярно пересматривать и обновлять ваши настройки безопасности.

При перепечатке просьба вставлять активные ссылки на oslogic.ru
Copyright oslogic.ru © 2025 . All Rights Reserved.