Данная статья применима к:
- Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7)
- Astra Linux Special Edition РУСБ.10152-02 (очередное обновление 4.7)
Аннотация
В данной статье представлена инструкция по установке и первичной настройке СУБД PostgreSQL на Astra Linux Special Edition x.7. Установка незащищенной версии выполняет с подключенным компонентом astra-ce расширенного (extended) репозитория, установка защищенной версии выполняется без подключения этого компонента. На момент написания данной статьи в составе Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.7) доступны следующие версии СУБД PostgreSQL:
- версия 11.10-astra.se5 - защищенная версия в основном репозитории (на установочном диске);
- версия 11.10-astra.se13 - защищенная версия в основном репозитории (оперативное обновление №1);
- версия 11.12-astra.ce5 - незащищенная версия в компоненте astra-ce расширенного репозитория до оперативного обновления 1.7.2;
- версия 14+240astra4 - - незащищенная версия в компоненте astra-ce расширенного репозитория начиная с оперативного обновления 1.7.2.
Внимание!
Программное обеспечение расширенного репозитория является сторонним по отношению к Astra Linux, не дорабатывается с точки зрения выполнения требований по безопасности информации и не проверяется при сертификации.
Подробнее см. Использование стороннего программного обеспечения в аттестованных информационных системах, функционирующих под управлением Astra Linux Special Edition.
При использовании программного обеспечения расширенного репозитория рекомендуется для дополнительной изоляции процессов осуществлять их запуск в изолированной программной среде (контейнере). При использовании для этих целей Docker-контейнеров их запуск целесообразно осуществлять от имени непривилегированного пользователя в rootless-режиме, а при включенном мандатном контроле целостности (МКЦ) с применением технологии запуска контейнеров на пониженном или выделенном уровне МКЦ. Подробнее см. Руководство по КСЗ в составе эксплуатационной документации используемого обновления.
При установке СУБД PostgreSQL из компонента astra-ce расширенного репозитория защищенная версия СУБД, доработанная для взаимодействия с КСЗ Astra Linux Special Edition будет заменена на стандартную версию СУБД..
Подробнее про структуру и использование репозиториев см. Репозитории Astra Linux Special Edition x.7: структура, особенности подключения и использования.
При установке незащищенной СУБД PostgreSQL версии 14 из компонента astra-ce расширенного репозитория 1.7.2 при наличии ранее установленной СУБД PostgreSQL версии 11 необходимо перед запуском нового кластера вручную удалить ранее установленные кластеры версии 11:
Что такое СУБД PostgreSQL
Установка пакетов
- Подключить репозитории:
- основной репозиторий и актуальное оперативное обновление основного репозитория;
- только для установки незащищенной версии PostgreSQL - актуальное оперативное обновление расширенного репозитория, включая компонент astra-ce. Для установки защищенной версии подключение компонента astra-ce расширенного репозитория недопустимо.
Обновить список пакетов:
sudo apt updateОпционально: установить актуальные обновления (подробнее см. статью Fly-astra-update и astra-update - инструменты для установки обновлений).
Проверить доступные версии:
apt policy postgresql-11Установить пакет postgresql-11 старшей доступной версии:
sudo apt install postgresql-11или установить пакет postgresql-11 указанной версии:sudo apt install postgresql-11=<номер_версии>Убедиться, что служба postgresql запустилась:
systemctl status postgresql● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Fri 2021-09-10 12:48:20 MSK; 1min 26s ago
Main PID: 4338 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4637)
Memory: 0B
CGroup: /system.slice/postgresql.service
Первичная настройка СУБД PostgreSQL
Выполнить вход в сессию служебного пользователя postgres:
sudo su - postgresРаботая в сессии служебного пользователя postgres:Установить пароль администратора СУБД:
psql -c "alter user postgres with password '<указать_пароль>'"Вместо текста <пароль> указать устанавливаемый пароль;
Пароль заключается в одинарные кавычки;
Вся команда заключается в двойные кавычки.
Завершить работу в сессии служебного пользователя postgres:
exit
- Наcтроить удаленный доступ к СУБД, для чего в конфигурационном файле /etc/postgresql/11/main/postgresql.conf проверить и установить параметр listen_addresses:
Значение по умолчанию - служба postgresql подключена ко всем сетевым интерфейсам:
listen_addresses = '*'
- Допустимые значения:
Служба postgresql подключена ко всем сетевым интерфейсам IPv4:
listen_addresses = '0.0.0.0'
Служба postgresql подключена ко всем сетевым интерфейсам IPv6:
listen_addresses = '::'
Разделенный запятыми список IP-адресов сетевых интерфейсов, к которым будет подключена служба:
listen_addresses = '192.168.1.2,10.0.0.2'
- Допускается использовать пустой список, тогда подключение будет возможно только через сокеты UNIX (подробнее см. документацию СУБД).
Если в конфигурацию были внесены изменения, то для того чтобы сделанные изменения вступили в силу перезапустить службу postgresql:
sudo systemctl restart postgresqlПроверить, к каким сетевым портам и интерфейсам подключена служба postgresql, можно командой:
ss -tunelp | grep uid:`id -u postgres`
tcp LISTEN 0 1024 0.0.0.0:5432 0.0.0.0:* uid:107 ino:32947 sk:5 <->
tcp LISTEN 0 1024 [::]:5432 [::]:* uid:107 ino:32948 sk:9 v6only:1 <->Приведен вывод команды для службы, настроенной по умолчанию (параметр listen_addresses = '*', служба работает с портом 5432 на всех доступных сетевых интерфейсах IPv4 и IPv6);
- Настроить активные сетевые экраны, разрешив доступ к сетевому порту postgresql (по умолчанию - порт 5432):
Для сетевого экрана ufw:
sudo ufw allow 5432/tcpДля сетевого экрана firewalld:
sudo firewall-cmd --add-service=postgresql --zone=internal --permanent
Первичное тестирование работоспособности СУБД
Выполнить вход в сессию служебного пользователя postgres:
sudo su - postgresРаботая в сессии служебного пользователя postgres:Добавить тестового пользователя СУБД test_user1:
createuser test_user1Добавить тестовую базу данных test_db, указав в качестве её владельца тестового пользователя:
createdb test_db -O test_user1Установить пароль тестового пользователя:
psql -c "alter user test_user1 with password '<указать_пароль>'"Подключиться к созданной тестовой базе данных и войти в сессию СУБД:
psql test_db
psql (11.12 (Debian 11.12-astra.ce5))
Введите "help", чтобы получить справку.
test_db=#
Дальнейшие команды выполняются в сессии СУБД:Создать таблицу и добавить в нее данные:
create table test_table ( id int,first_name text, last_name text );
CREATE TABLEДобавить в таблицу данные:
insert into test_table (id,first_name,last_name) values (2,'Иван','Иванов');
INSERT 0 1Вывести табличные данные:
select * from test_table;id | first_name | last_name
----+------------+-----------
1 | Иван | Иванов
(1 строка)
Выйти из сессии СУБД:
exit
Удалить тестовую базу данных:
dropdb test_dbЗавершить работу в сессии служебного пользователя postgres:
exit