Стенд и таблица адресации
Типовое задание — защитить автоматизированную систему (АС) из двух узлов: сервера, где хранятся конфиденциальные данные, и автоматизированного рабочего места (АРМ) оператора. Ниже — модель стенда. Любой подсвеченный адрес, имя хоста или пользователя можно нажать и заменить под свой вариант — значение подставится во все команды.
| Узел | Роль | IP-адрес | Шлюз |
|---|---|---|---|
| AS-SRV | Сервер АС (защищаемые данные) | 192.168.10.10/24 | 192.168.10.1 |
| AS-WS | АРМ оператора | 192.168.10.20/24 | 192.168.10.1 |
| Учётная запись | Роль | Права |
|---|---|---|
| isso | Администратор безопасности (ИСО) | sudo, управление СЗИ и политиками |
| operator | Оператор АС | обычный пользователь, работа в АС |
| u_conf | Пользователь конфиденциальных данных | доступ к /srv/secure через группу sec_team |
Базовая настройка ОС: имя хоста, сеть, время
Начинаем с имени узла, статической адресации и часового пояса — на обоих узлах. Команды выполняются от имени администратора (sudo).
# на сервере
sudo hostnamectl set-hostname as-srv
# на АРМ
sudo hostnamectl set-hostname as-ws
# записи в /etc/hosts
echo "192.168.10.10 as-srv" | sudo tee -a /etc/hosts
echo "192.168.10.20 as-ws" | sudo tee -a /etc/hosts# пример для сервера, интерфейс eth0
sudo tee /etc/systemd/network/10-eth0.network >/dev/null <<EOF
[Match]
Name=eth0
[Network]
Address=192.168.10.10/24
Gateway=192.168.10.1
DNS=192.168.10.1
EOF
sudo systemctl enable --now systemd-networkd
sudo systemctl restart systemd-networkdsudo timedatectl set-timezone Europe/Moscow
timedatectl status
ip -brief addr show
ping -c 3 192.168.10.1Учётные записи, группы и sudo
Создаём администратора безопасности, оператора и пользователя конфиденциальных данных. Администратору даём sudo, остальным — нет. Принцип минимальных привилегий: лишних прав не выдаём.
# администратор безопасности
sudo useradd -m -s /bin/bash -c "Security Officer" isso
# оператор АС
sudo useradd -m -s /bin/bash -c "AC Operator" operator
# пользователь конфиденциальных данных
sudo useradd -m -s /bin/bash -c "Confidential User" u_conf
# задаём пароли (введите P@ssw0rd!)
sudo passwd isso
sudo passwd operator
sudo passwd u_conf
# группа доступа к защищаемым данным
sudo groupadd sec_team
sudo usermod -aG sec_team u_conf# добавляем в группу sudo (Debian/Astra) или wheel (Альт)
sudo usermod -aG sudo isso 2>/dev/null || sudo usermod -aG wheel isso
# проверяем, что у оператора нет sudo
sudo -l -U operatorПарольная политика и блокировка учётных записей
Требования к сложности и сроку действия паролей плюс блокировка после неудачных попыток входа — почти всегда есть в критериях. Сложность задаётся модулем pam_pwquality, срок — через login.defs и chage, блокировка — через pam_faillock.
sudo tee /etc/security/pwquality.conf >/dev/null <<EOF
minlen = 8
minclass = 3
dcredit = -1
ucredit = -1
lcredit = -1
ocredit = -1
maxrepeat = 3
EOF
# minlen — минимальная длина, minclass — классы символов,
# dcredit/ucredit/lcredit/ocredit = -1 — обязательны цифра/верхний/нижний/спецсимвол# глобально для новых пользователей
sudo sed -i 's/^PASS_MAX_DAYS.*/PASS_MAX_DAYS 90/' /etc/login.defs
sudo sed -i 's/^PASS_MIN_DAYS.*/PASS_MIN_DAYS 1/' /etc/login.defs
sudo sed -i 's/^PASS_WARN_AGE.*/PASS_WARN_AGE 7/' /etc/login.defs
# для уже созданных учёток
sudo chage -M 90 -m 1 -W 7 operator
sudo chage -l operator# показать конфиг faillock
sudo tee /etc/security/faillock.conf >/dev/null <<EOF
deny = 5
unlock_time = 600
fail_interval = 900
EOF
# включить в PAM (Debian/Astra): добавить pam_faillock в /etc/pam.d/common-auth
# preauth: auth required pam_faillock.so preauth
# authfail: auth [default=die] pam_faillock.so authfail
# account: account required pam_faillock.so
# просмотр и сброс счётчика
sudo faillock --user operator
sudo faillock --user operator --resetДискреционное разграничение доступа (DAC): права и ACL
Защищаемый каталог должен быть доступен только нужной группе. Базовые права — через владельца/группу и chmod, точечные — через POSIX ACL (setfacl). Плюс корректная umask, чтобы новые файлы не создавались с лишними правами.
sudo mkdir -p /srv/secure
sudo chown root:sec_team /srv/secure
sudo chmod 2770 /srv/secure # 2 — setgid: новые файлы наследуют группу
ls -ld /srv/secure# дать пользователю u_conf доступ rwx, остальным — ничего
sudo setfacl -m u:u_conf:rwx /srv/secure
sudo setfacl -m g:sec_team:rwx /srv/secure
# ACL по умолчанию для новых файлов
sudo setfacl -d -m g:sec_team:rwx /srv/secure
getfacl /srv/secure# запрет прав для 'остальных' у новых файлов
echo 'umask 027' | sudo tee -a /etc/profile.d/secure-umask.sh
sudo chmod +x /etc/profile.d/secure-umask.shМандатное разграничение доступа (Astra Linux, PARSEC)
Если стенд на Astra Linux Special Edition, в задании часто есть мандатное (мандатно-ролевое) управление доступом: пользователям и каталогам назначаются уровни конфиденциальности. Управление — утилитами PARSEC. Команды выполняются от администратора.
# разрешить пользователю работу с уровнями 0..1 (несекретно..конфиденциально)
sudo pdpl-user -l 0:1 u_conf
# посмотреть назначенные уровни
pdpl-user u_conf# установить уровень конфиденциальности 1 на каталог защищаемых данных
sudo pdpl-file 1:0:0 /srv/secure
# проверить метку
pdpl-file /srv/secureКонтроль съёмных носителей и автозапуска
Защита от утечки через USB — частый пункт. Простой способ — запретить модуль usb-storage; более гибкий — правила usbguard, разрешающие только доверенные устройства.
echo 'install usb-storage /bin/true' | sudo tee /etc/modprobe.d/block-usb-storage.conf
sudo modprobe -r usb-storage 2>/dev/null || true
# проверка: после подключения флешки она не должна монтироватьсяsudo apt-get install -y usbguard 2>/dev/null || sudo apt install -y usbguard
# сгенерировать политику по текущим устройствам
sudo usbguard generate-policy | sudo tee /etc/usbguard/rules.conf
sudo systemctl enable --now usbguard
# посмотреть устройства и заблокировать/разрешить
sudo usbguard list-devicesМежсетевой экран (nftables)
Политика по умолчанию — запрет входящего трафика, разрешаем только нужное: управление по SSH из своего сегмента и установленные соединения. Пример полностью на nftables.
sudo tee /etc/nftables.conf >/dev/null <<EOF
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iif lo accept
ct state established,related accept
ip saddr 192.168.10.0/24 tcp dport 2222 accept
ip protocol icmp accept
}
chain forward { type filter hook forward priority 0; policy drop; }
chain output { type filter hook output priority 0; policy accept; }
}
EOF
sudo systemctl enable --now nftables
sudo nft -f /etc/nftables.conf
sudo nft list rulesetЗащита удалённого доступа (SSH)
Ужесточаем SSH: нестандартный порт, запрет входа под root, доступ только нужным пользователям, отключение устаревших методов.
sudo tee /etc/ssh/sshd_config.d/10-secure.conf >/dev/null <<EOF
Port 2222
PermitRootLogin no
Protocol 2
MaxAuthTries 3
LoginGraceTime 30
AllowUsers isso
EOF
sudo systemctl restart ssh 2>/dev/null || sudo systemctl restart sshd# на машине администратора генерируем ключ и копируем на сервер
ssh-keygen -t ed25519 -C "isso@as-srv"
ssh-copy-id -p 2222 isso@192.168.10.10
# после проверки входа по ключу можно отключить пароль:
# в sshd_config.d/10-secure.conf добавить PasswordAuthentication noАудит событий безопасности (auditd)
Аудит фиксирует доступ к защищаемым данным, изменения учётных записей и использование привилегий. Настраивается пакетом auditd и правилами auditctl.
sudo apt install -y auditd audispd-plugins 2>/dev/null || sudo apt-get install -y auditd
sudo systemctl enable --now auditd
sudo tee /etc/audit/rules.d/secure.rules >/dev/null <<EOF
# доступ к защищаемому каталогу
-w /srv/secure -p rwxa -k secure_data
# изменения учётных записей
-w /etc/passwd -p wa -k accounts
-w /etc/shadow -p wa -k accounts
# использование sudo
-w /etc/sudoers -p wa -k sudo_changes
EOF
sudo augenrules --load
sudo auditctl -l# кто обращался к защищаемым данным
sudo ausearch -k secure_data -i | tail -n 20
# отчёт по аутентификациям
sudo aureport -auКонтроль целостности (AIDE)
Контроль целостности фиксирует эталонное состояние важных файлов и сообщает об изменениях. Классический инструмент — AIDE.
sudo apt install -y aide 2>/dev/null || sudo apt-get install -y aide
# создать эталонную базу
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db 2>/dev/null || true
# проверить изменения
sudo aide --checkАнтивирусная защита (ClamAV)
Если в КОД нет конкретного сертифицированного антивируса, для тренировки подойдёт ClamAV: обновление баз и сканирование.
sudo apt install -y clamav clamav-daemon 2>/dev/null || sudo apt-get install -y clamav
# обновить базы
sudo systemctl stop clamav-freshclam
sudo freshclam
sudo systemctl start clamav-freshclam
# просканировать защищаемый каталог рекурсивно
clamscan -r /srv/secure
# просканировать всю систему, показывая только заражённые файлы
sudo clamscan -r -i /Резервное копирование и восстановление
Резервное копирование защищаемых данных с проверкой восстановления — отдельный критерий. Простой надёжный вариант — архив tar по расписанию cron.
sudo tee /usr/local/sbin/backup-secure.sh >/dev/null <<'EOF'
#!/bin/bash
SRC="/srv/secure"
DST="/var/backups/secure"
mkdir -p "$DST"
TS=$(date +%F-%H%M%S)
tar czf "$DST/secure-$TS.tar.gz" -C "$SRC" .
find "$DST" -name 'secure-*.tar.gz' -mtime +7 -delete
EOF
sudo chmod +x /usr/local/sbin/backup-secure.sh
sudo /usr/local/sbin/backup-secure.sh
ls -l /var/backups/secureecho '0 23 * * * root /usr/local/sbin/backup-secure.sh' | sudo tee /etc/cron.d/backup-secure
# тест восстановления в отдельный каталог
sudo mkdir -p /tmp/restore
sudo tar xzf /var/backups/secure/$(ls -t /var/backups/secure | head -1) -C /tmp/restore
ls -R /tmp/restoreСамопроверка и типичные ошибки
- Адресация и связность: ip -brief addr, ping шлюза.
- Учётные записи: у администратора есть sudo, у оператора нет; пароли заданы.
- Парольная политика применяется: попытка задать слабый пароль отклоняется.
- Блокировка faillock срабатывает после заданного числа ошибок и снимается.
- Доступ к /srv/secure есть только у u_conf/sec_team, у остальных — отказ.
- Мандатные метки (если Astra) назначены пользователю и каталогу.
- USB-накопители заблокированы согласно заданию.
- Межсетевой экран: лишние порты закрыты, нужные открыты (nft list ruleset).
- SSH: порт изменён, root запрещён, вход по ключу работает.
- Аудит пишет события (ausearch -k secure_data), AIDE обнаруживает изменения.
- Антивирус обновлён и сканирует; резервная копия создаётся и восстанавливается.
- Лишние права «чтобы заработало» — нарушение принципа минимальных привилегий, теряются баллы.
- Забыли применить правила (augenrules --load, nft -f, перезапуск sshd) — настройка есть в файле, но не действует.
- Заблокировали себе доступ faillock/firewall без запасной сессии.
- Не показали проверяемый результат: эксперт должен увидеть, что мера работает.
- Оставили самопроверку на последние минуты.
Остались вопросы по подготовке
Задавай вопросы ИИ-помощнику на странице — он отвечает по теме демонстрационного экзамена 10.02.05: настройка защищённой ОС, разграничение доступа, межсетевой экран, аудит, контроль целостности, разбор критериев. Значения в примерах (хосты, адреса, пользователи) меняй под свой вариант — они подставятся во всю документацию.
Инструменты подготовки
премиумОдин клик — и адреса, подсети, VLAN, порты и пароли меняются на новый согласованный вариант. Значения подставятся во все команды и таблицы на странице. Удобно тренироваться «как на экзамене», когда даны другие числа.
- 1. Как называется принцип «минимально необходимых прав»?
- 2. Что делает модуль pam_faillock?
- 3. Инструмент контроля целостности файлов:
Откройте все памятки, тренажёры и инструменты подготовки — разово за 99 ₽, без регистрации.
Задай вопрос по настройке, командам или теории этой специальности — отвечу на основе ИИ.
Чтобы отрабатывать команды вживую, нужен VPS. Можно поднять за пару минут на Beget.
Открыть Beget →Премиум открывает сразу всё:
- ✓генератор варианта стенда
- ✓таймер экзамена и чек-лист
- ✓тренажёр-тесты с автопроверкой
- ✓памятки и экспорт в PDF
- ✓100 вопросов ИИ-помощнику
дешевле чашки кофе · разово · без подписки и регистрации