Перейти к основному содержимому

Задание 1: Администрирование маскирования запросов

Давайте рассмотрим, как влияет изменение значения параметра masking_mode на сообщения в логе.

Режим полного маскирования запросов и их параметров​

  1. Установите режим masking_mode = full в конфигурационном файле kms_dynamic_params.cfg:

    [UserName@ServerName ~]$ sudo su - kmadmin_pg
    [kmadmin_pg@ServerName ~]$ vi /etc/pangolin-security-utilities/kms_dynamic_params.cfg
  2. Перезапустите сервер, чтобы настройки применились:

    [UserName@ServerName ~]$ sudo systemctl restart postgresql
  3. Проверьте, что значение параметра изменилось:

    [postgres@ServerName ~]$ psql
    Pager is used for long output.
    Border style is 2.
    Line style is unicode.
    psql (15.5)
    Type "help" for help.
    postgres@postgres=# SHOW masking_mode;
    ┌──────────────┐
    │ masking_mode │
    ├──────────────┤
    │ full │
    └──────────────┘
    (1 row)
  4. Измените пароль для пользователя:

    postgres@postgres=# ALTER ROLE alex PASSWORD '<new_password>';
    ALTER ROLE
  5. Изучите записи в логе:

    [postgres@ServerName ~]$ cd /pgerrorlogs/06/
    [postgres@ServerName 06]$ less postgresql-2025-09-10_171953.log
    ...
    2025-09-10 17:22:52.249 MSK [4206] LOG: statement, masked: SELECT name,setting FROM pg_settings WHERE name=***;
    2025-09-10 17:23:38.369 MSK [4206] LOG: statement, masked: ALTER ROLE alex PASSWORD ***;
    ...

Отключение маскирования​

  1. Установите режим masking_mode = off в конфигурационном файле kms_dynamic_params.cfg.

  2. Перезапустите сервер, чтобы настройки применились:

    [UserName@ServerName ~]$ sudo systemctl restart postgresql
  3. Проверьте, что значение параметра изменилось:

    [postgres@ServerName ~]$ psql
    Pager is used for long output.
    Border style is 2.
    Line style is unicode.
    psql (15.5)
    Type "help" for help.
    postgres@postgres=# SHOW masking_mode;
    ┌──────────────┐
    │ masking_mode │
    ├──────────────┤
    │ off │
    └──────────────┘
    (1 row)
  4. Выполните SELECT с параметрами:

    postgres@postgres=# SELECT name,setting FROM pg_settings WHERE name='masking_mode';
    ┌──────────────┬─────────┐
    │ name │ setting │
    ├──────────────┼─────────┤
    │ masking_mode │ off │
    └──────────────┴─────────┘
    (1 row)
  5. Измените пароль для пользователя:

    postgres@postgres=# ALTER ROLE alex PASSWORD '<new_password>';
    ALTER ROLE
  6. Изучите лог:

    [postgres@ServerName ~]$ cd /pgerrorlogs/06/
    [postgres@ServerName 06]$ less postgresql-2025-09-10_173749.log
    ...
    2025-09-10 17:38:03.804 MSK [4336] LOG: statement: SELECT name,setting FROM pg_settings WHERE name='masking_mode';
    2025-09-10 17:38:10.956 MSK [4336] LOG: statement: ALTER ROLE alex PASSWORD 'new_password_visible';
    ...

    В режиме masking_mode = 'off' параметры SQL-запросов не маскируются, и изменение пароля видно в логе в явном виде.

Подведем итоги​

Вопрос 1

Для каких данных можно установить значение masking_mode = off?