
POD-2LR-2
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет: Кибербезопасности
Кафедра: Защищенных систем связи
Дисциплина: Основы построения сертифицированных защищенных БД РФ
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №2
ИЗМЕНЕНИЯ ПРАВ ДОСТУПА К БД
(тема отчета)
Направление/специальность подготовки
10.03.01 Информационная безопасность
(код и наименование направления/специальности)
Выполнили работу:
Травкина Е.А., ИКБ-14
(Ф.И.О., № группы) (подпись)
Федченко А.С., ИКБ-14
(Ф.И.О., № группы) (подпись)
Ящук А.А., ИКБ-14
(Ф.И.О., № группы) (подпись)
Принял работу:
к.т.н., доцент, Пестов И.Е.
(должность, Ф.И.О.) (подпись)
Оглавление
Цель лабораторной работы 3
Задачи 3
Используемое программное обеспечение 3
Ход выполнения лабораторной работы 3
Вывод 8
Цель лабораторной работы
Изучить и проанализировать влияние изменений в конфигурации PostgreSQL на tablespace, права доступа к базе данных, а также взаимодействие различных ролей с базой данных.
Задачи
Для достижения поставленной цели были разработаны следующие задачи:
изменить местоположение tablespace базы данных, проанализировать изменения в правах базы данных и поведение PostgreSQL при изменении;
изменить права доступа к базе данных (rwx) на 000, проанализировать, как это повлияет на доступ к базе данных;
ограничение прав суперпользователя postgres.
Используемое программное обеспечение
Для выполнения лабораторной работы используется установленный дистрибутив ОС Astra Linux.
Ход выполнения лабораторной работы
Для выполнения лабораторной работы были выполнены следующие шаги:
В первой лабораторной работе была создана db1 с владельцем user. У суперпользователя postgres также есть доступ к базе данных, что демонстрирует следующий вывод консоли:
user@astra:~$ sudo -i -u postgres
postgres@astra:~$ pasq
-bash: pasq: команда не найдена
postgres@astra:~$ psql
psql (11.21 (Debian 1:11.21-astra.se8))
Введите "help", чтобы получить справку.
postgres=# \c db1 Вы подключены к базе данных "db1" как пользователь "postgres". db1=# exit
По умолчанию, если не указывать параметры при создании БД, новые базы данных создаются в tablespace pg_default, что демонстрирует следующий вывод консоли:
postgres=# SELECT datname, spcname FROM pg_database d LEFT JOIN pg_tablespace t ON d.dattablespace = t.oid; datname | spcname -----------+------------ postgres | pg_default template1 | pg_default template0 | pg_default db1 | pg_default (4 строки)
Для того чтобы поменять местоположение tablespace для db1, нужно создать новую директорию для новой tablespace conf_star. Если не дать все права на эту директорию для postgres, то он не сможет работать с db1 после её иммиграции. Команды для создания директории и изменение полномочий для postgres:
postgres=# exit postgres@astra:~$ exit выход user@astra:~$ sudo mkdir -p /mnt/pg_data/tablespaces/conf_star [sudo] пароль для user: user@astra:~$ sudo chown postgres:postgres /mnt/pg_data/tablespaces/conf_star user@astra:~$ sudo chmod 700 /mnt/pg_data/tablespaces/conf_star
Далее необходимо создать новый tablespace и задать для него местоположение. После создания tablespace conf_star, перемещаем db1 в новое табличное пространство следующими командами:
postgres=# CREATE TABLESPACE conf_star LOCATION '/mnt/pg_data/tablespaces/co nf_star'; CREATE TABLESPACE postgres=# ALTER DATABASE db1 SET TABLESPACE conf_star;
ALTER DATABASE
Проверить в каком tablespace находится какая-либо БД можно следующей командой:
postgres=# SELECT datname, spcname FROM pg_database d LEFT JOIN pg_tablespace t ON d.dattablespace = t.oid; datname | spcname -----------+------------ postgres | pg_default template1 | pg_default template0 | pg_default db1 | conf_star (4 строки)
Если все права были верно выданы postgres, то проблем с подключением к db1 возникнуть не должно.
postgres=# \c db1 Вы подключены к базе данных "db1" как пользователь "postgres". db1=# exit
postgres@astra:~$ exit
выход
Проверку и смену прав для пользователя postgres можно произвести следующими командами:
user@astra:~$ ls -ld /mnt/pg_data/tablespaces/conf_star
drwx------ 3 postgres postgres 4096 сен 18 16:27 /mnt/pg_data/tablespaces/conf_star
user@astra:~$ sudo chmod 000 /mnt/pg_data/tablespaces/conf_star
user@astra:~$ sudo -i -u postgres
postgres@astra:~$ psql
psql (11.21 (Debian 1:11.21-astra.se8))
Введите "help", чтобы получить справку.
postgres=# \c db1
ВАЖНО: ошибка доступа к каталогу "pg_tblspc/16387/PG_11_201809051/16385": Отказано в доступе
Сохранено предыдущее подключение
postgres=# exit
postgres@astra:~$ psql
psql (11.21 (Debian 1:11.21-astra.se8))
Введите "help", чтобы получить справку.
postgres=# \z db1
Права доступа
Схема | Имя | Тип | Права доступа | Права для столбцов | Политики -------+-----+-----+---------------+--------------------+----------
(0 строк)
Далее необходимо изменить права rwx на 000 для db1 для суперпользователя postgres. Проверить права postgres ко всем БД можно следующими командами:
user@astra:~$ sudo ls -ld /var/lib/postgresql/11/main/base drwx------ 6 postgres postgres 4096 сен 18 14:22 /var/lib/postgresql/11/main/base
Для дальнейшей работы с настройкой прав пользователя БД необходимо узнать oid той БД, к которой мы хотим ограничить права. Вывод oid всех баз данных можно произвести следующими командами:
user@astra:~$ sudo -i -u postgres postgres@astra:~$ psql psql (11.21 (Debian 1:11.21-astra.se8)) Введите "help", чтобы получить справку. postgres=# SELECT oid, datname FROM pg_database; oid | datname -------+----------- 13129 | postgres 1 | template1 13128 | template0 16385 | db1 (4 строки)
Проверяем права суперпользователя к определенной БД и затем меняем rwx на 000, и проверяем изменения командами:
user@astra:~$ sudo ls -ld /var/lib/postgresql/11/main/base/16385 drwx------ 2 postgres postgres 12288 сен 18 14:22 /var/lib/postgresql/11/main/base/16385
user@astra:~$ sudo chmod 000 /var/lib/postgresql/11/main/base/16385
user@astra:~$ sudo ls -ld /var/lib/postgresql/11/main/base/16385
d--------- 2 postgres postgres 12288 сен 18 14:22 /var/lib/postgresql/11/main/base/16385
Проверить доступ postgres к db1 после изменений можно двумя приведёнными ниже командами:
user@astra:~$ psql -U postgres -d db1 psql: ВАЖНО: пользователь "postgres" не прошёл проверку подлинности (Peer) user@astra:~$ sudo -i -u postgres postgres@astra:~$ psql psql (11.21 (Debian 1:11.21-astra.se8)) Введите "help", чтобы получить справку. postgres=# \c db1 ВАЖНО: не удалось открыть файл "base/16385/PG_VERSION": Отказано в доступе Сохранено предыдущее подключение postgres=#
Для изучения прав различных пользователей postgres необходимо поменять группу владельца и владельца db1.
Для этого была проведена смена владельца db1 с user на user1 командой:
user@user:~$ sudo chown user /var/lib/postgresql/11/main/base/16385
После этого была проведена проверка доступа к db1 пользователя postgres следующими командами:
postgres=# \c db1 ВАЖНО: не удалось открыть файл "base/16385/PG_VERSION": Отказано в доступе Сохранено предыдущее подключение
Также была создана новая группа пользователей следующими командами:
user@user:~$ sudo groupadd group1
Далее была изменена группа владельцев и владелец db1 командой:
user0@user:~$ sudo chown user1:group1 /var/lib/postgresql/11/main/base/16385
После этого была проведена проверка доступа пользователя postgres к db1:
postgres=# \c db1 ВАЖНО: не удалось открыть файл "base/16385/PG_VERSION": Отказано в доступе Сохранено предыдущее подключение
Вывод
В ходе данной лабораторной работы были проанализированы возможность доступа к базе данных после изменения значения table space в конфигурационном файле config. В результате изменения расположения базы данных при подключении к ней не возникает проблем.
Также была проведена проверка доступа к базе данных при изменении прав доступа к базе данных (rwx) на 000. При этом к базе данных становится невозможно подключиться.
Далее были изменены владелец и группа владельца базы данных и проанализирована возможность доступа к базе данных от пользователя, не являющимся владельцем и не относящемся к группе владельцев. При этом доступ к базе данных у данного пользователя отсутствовал.
Санкт-Петербург
2024