Russian Articles

Доступ к PostgreSQL извне через PGBouncer

PostgreSQL

  1. Подключаемся к PostgreSQL: bash su postgres psql 1. Создаем пользователя для бэкапов: sql CREATE USER backup SUPERUSER PASSWORD 'PLACE YOUR PASSWORD HERE';

  2. Делаем его readonly: sql ALTER USER backup set default_transaction_read_only = on; 1. Запоминаем MD5 хэш пароля нового пользователя (шучу, выписываем): sql use postgres SELECT usename, passwd FROM pg_shadow

  3. Выходим из psql и идём добавлять доступ к юзеру со внешнего сервера через HBA:

    nano /etc/postgresql/9.6/main/pg_hba.conf
    
    1. Добавляем след. строку:

      host    all             backup          1.1.1.1/32        md5
      

      Вместо 1.1.1.1 указываем IP внешнего сервера. На этом всё. Если у вас нет pgbouncer, то в настройках PostgreSQL открываем доступ из внешней сети и обновляем настройки.

      PGBouncer

    2. Корректируем настройки pgbouncer:

      nano /etc/pgbouncer/pgbouncer.ini
      
    1. Открываем доступ из внешней сети: listen_addr = *
    2. Включаем использование файла HBA: auth_type = hba
    3. Указываем путь к файлу HBA: auth_hba_file = /etc/postgresql/9.6/main/pg_hba.conf
  4. Добавляем в список паролей, используемых в pgbouncer, данные нового пользователя:

    nano /etc/pgbouncer/userlist.txt
    

    Добавляем:

    "backup" "MD5 хэш пароля"
    
  5. Перезапускаем pgbouncer:

    service pgbouncer restart
    

    Проверка доступов

    С внешнего сервера: “`

pgcli –host АДРЕС_СЕРВЕРА_БД –port 6432 –dbname ЛЮБАЯ_БД –username ЛОКАЛЬНЫЙ_ПОЛЬЗОВАТЕЛЬ

Вводим пароль, и должно быть отказано в коннекте. Значит, лишнего не расшарили.


С сервера БД:

pgcli –host localhost –port 6432 –dbname ЛЮБАЯ_БД –username ЛОКАЛЬНЫЙ_ПОЛЬЗОВАТЕЛЬ

Вводим пароль, и должен быть успешный коннект. Значит, текущие доступы не сломали.


С сервера бэкапов:

pgcli –host localhost –port 6432 –dbname ЛЮБАЯ_БД –username backup “` Вводим пароль, и должен быть успешный коннект. Значит, новый доступ добавили.

created: 2018-05-16 (Wed) updated: 2018-05-16 (Wed) views: 159

Contributors

orsinium