Скачиваний:
4
Добавлен:
28.12.2024
Размер:
35.55 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Факультет: Кибербезопасности

Кафедра: Защищенных систем связи

Дисциплина: Основы построения сертифицированных защищенных БД РФ

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №2

ИЗМЕНЕНИЯ ПРАВ ДОСТУПА К БД

(тема отчета)

Направление/специальность подготовки

10.03.01 Информационная безопасность

(код и наименование направления/специальности)

Выполнили работу:

Травкина Е.А., ИКБ-14

(Ф.И.О., № группы) (подпись)

Федченко А.С., ИКБ-14

(Ф.И.О., № группы) (подпись)

Ящук А.А., ИКБ-14

(Ф.И.О., № группы) (подпись)

Принял работу:

к.т.н., доцент, Пестов И.Е.

(должность, Ф.И.О.) (подпись)

Оглавление

Цель лабораторной работы 3

Задачи 3

Используемое программное обеспечение 3

Ход выполнения лабораторной работы 3

Вывод 8

Цель лабораторной работы

Изучить и проанализировать влияние изменений в конфигурации PostgreSQL на tablespace, права доступа к базе данных, а также взаимодействие различных ролей с базой данных.

Задачи

Для достижения поставленной цели были разработаны следующие задачи:

  1. изменить местоположение tablespace базы данных, проанализировать изменения в правах базы данных и поведение PostgreSQL при изменении;

  2. изменить права доступа к базе данных (rwx) на 000, проанализировать, как это повлияет на доступ к базе данных;

  3. ограничение прав суперпользователя postgres.

Используемое программное обеспечение

Для выполнения лабораторной работы используется установленный дистрибутив ОС Astra Linux.

Ход выполнения лабораторной работы

Для выполнения лабораторной работы были выполнены следующие шаги:

  1. В первой лабораторной работе была создана 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 строк)

  1. Далее необходимо изменить права 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=#

  1. Для изучения прав различных пользователей 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

Соседние файлы в предмете Основы построения сертифицированных защищенных баз данных РФ