Задачи администрирования безопасности [110.1]

Рейтинг: 70.2% · 15 голосов
Полный курс LPIC-1 (экзамены 101-500 и 102-500): архитектура, загрузка, пакеты, команды и текст, ФС и права, шелл-скрипты, пользователи, сервисы, сеть, безопасность. Debian и RHEL.
Ответить
Аватара пользователя
Sergey_Sysadmin
Сообщения: 134
Зарегистрирован: 11 май 2026, 05:31

Задачи администрирования безопасности [110.1]

Сообщение Sergey_Sysadmin »

Оглавление курса (41)
  1. Введение в LPIC-1 и как устроен путь администратора
  2. Железо, устройства и модули ядра [101.1]
  3. Загрузка системы: от BIOS до systemd [101.2]
  4. systemd, цели и уровни выполнения [101.3]
  5. План разметки диска и swap [102.1]
  6. Загрузчик GRUB 2 [102.2]
  7. Разделяемые библиотеки [102.3]
  8. Управление пакетами в Debian: dpkg и apt [102.4]
  9. Управление пакетами RPM, DNF и Zypper [102.5]
  10. Linux как гость виртуализации [102.6]
  11. Командная строка Bash [103.1]
  12. Обработка текста фильтрами [103.2]
  13. Базовое управление файлами [103.3]
  14. Потоки, конвейеры и перенаправление [103.4]
  15. Процессы: создание, мониторинг, сигналы [103.5]
  16. Приоритеты выполнения процессов [103.6]
  17. Регулярные выражения [103.7]
  18. Редактор vi и vim [103.8]
  19. Разделы и создание файловых систем [104.1]
  20. Целостность и обслуживание ФС [104.2]
  21. Монтирование файловых систем [104.3]
  22. Урок 21. Права доступа и владение: rwx, chmod, umask и специальные биты
  23. Жёсткие и символические ссылки
  24. FHS и поиск файлов в системе [104.7]
  25. Окружение и кастомизация оболочки [105.1]
  26. Урок 25. Написание простых bash-скриптов [105.2]
  27. Графика, рабочие столы и доступность
  28. Учётные записи пользователей и групп
  29. Автоматизация задач: cron, at, таймеры [107.2]
  30. Локализация и интернационализация [107.3]
  31. Системное время и синхронизация [108.1]
  32. Системное логирование [108.2]
  33. Основы почтового агента (MTA) [108.3]
  34. Печать и CUPS [108.4]
  35. Основы интернет-протоколов [109.1]
  36. Постоянная конфигурация сети [109.2]
  37. Диагностика сети [109.3]
  38. DNS на стороне клиента [109.4]
  39. Задачи администрирования безопасности [110.1] (вы здесь)
  40. Настройка безопасности хоста [110.2]
  41. Шифрование данных: SSH и GnuPG [110.3]
Урок 38. Задачи администрирования безопасности [110.1]

Эта тема собирает вместе ежедневные обязанности администратора, которые держат систему в безопасном состоянии. Вы научитесь находить файлы с опасными правами SUID/SGID, грамотно раздавать административные полномочия через sudo вместо раздачи пароля root, ограничивать аппетиты пользователей лимитами, а главное - видеть, кто реально сейчас в системе, какие порты открыты и какие процессы за ними стоят. Это не разовая настройка, а навык регулярного аудита.

Изображение

Как это работает

Биты SUID и SGID - это механизм повышения прав на время запуска программы. Когда на исполняемом файле стоит SUID, процесс выполняется с правами ВЛАДЕЛЬЦА файла, а не того, кто его запустил. Классический пример - passwd: обычный пользователь меняет свой пароль, но запись идёт в /etc/shadow, владелец которого root. SGID работает так же, но для группы. Опасность в том, что любая уязвимость в SUID-root программе превращается в полный захват системы, поэтому таких файлов должно быть как можно меньше, и их список надо знать наизусть.

sudo решает другую задачу: дать пользователю конкретные права root без выдачи пароля root. Логика описана в /etc/sudoers, который НИКОГДА не редактируют напрямую - только через visudo. Эта обёртка проверяет синтаксис перед сохранением, иначе одна опечатка заблокирует sudo для всех. Команда su - это переключение на другого пользователя целиком (нужен его пароль), su - root даёт полноценную root-сессию с её окружением. sudo точнее: каждое действие логируется в journald и отдельно в /var/log/auth.log (Debian) или /var/log/secure (RHEL).

Лимиты ограничивают ресурсы одного пользователя или сессии: число открытых файлов, процессов, размер core-дампа, объём памяти. Команда ulimit меняет лимиты текущей оболочки (мягкий лимит можно поднимать до жёсткого потолка), а постоянные правила задаются в /etc/security/limits.conf через PAM-модуль pam_limits. В мире systemd те же ограничения для сервисов задаются директивами LimitNOFILE и подобными в unit-файлах - это важно помнить в 2026.

Наконец, аудит присутствия и сети. Кто залогинен прямо сейчас показывают who и w. История входов лежит в бинарных журналах: last читает /var/log/wtmp (успешные входы), lastb читает /var/log/btmp (НЕудачные попытки - первый признак перебора пароля). Открытые сокеты смотрят через ss, а кто именно держит файл или порт - через lsof и fuser.

Команды и примеры

Поиск SUID/SGID файлов по всей системе:

Код: Выделить всё

# SUID (бит 4000) и SGID (бит 2000) одной командой
find / -type f -perm /6000 -exec ls -l {} \; 2>/dev/null

# Только SUID
find / -perm -4000 -type f 2>/dev/null
# Только SGID
find / -perm -2000 -type f 2>/dev/null
Ключ -perm -4000 означает "установлен как минимум этот бит", а /6000 - "установлен любой из битов 4000 или 2000". Сравните найденное с заведомо чистым списком: passwd, sudo, su, mount, umount, ping, newgrp. Лишнее (особенно в /tmp или /home) - повод для тревоги.

Правка sudoers и проверка прав:

Код: Выделить всё

visudo                      # правка основного файла
visudo -f /etc/sudoers.d/devops   # отдельный файл (правильный способ)

# Пример строки: пользователю anna только systemctl без пароля
anna ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

sudo -l                     # показать, что мне разрешено
sudo -u www-data id         # выполнить от другого пользователя
Лимиты:

Код: Выделить всё

ulimit -a                   # все текущие лимиты
ulimit -n                   # мягкий лимит на открытые файлы
ulimit -Hn                  # жёсткий (Hard) потолок
ulimit -n 8192              # поднять в текущей сессии

# Постоянно в /etc/security/limits.conf:
# user  type    item    value
@dev    soft    nofile  4096
@dev    hard    nofile  8192
* hard nproc 2048
Кто в системе и история входов (одинаково в Debian и RHEL):

Код: Выделить всё

who                # кто залогинен (терминал, время, источник)
w                  # то же + что выполняет + load average
last               # успешные входы из wtmp
last -n 10 anna    # последние 10 входов пользователя anna
lastb              # НЕудачные попытки (нужен root)
last reboot        # история перезагрузок
Открытые порты, файлы и процессы:

Код: Выделить всё

ss -tulpn          # TCP/UDP слушающие сокеты с процессами
ss -tan state established   # активные TCP-соединения

lsof -i :443       # кто держит порт 443
lsof -u anna       # все открытые файлы пользователя anna
lsof /var/log/syslog        # кто держит конкретный файл

fuser -v 8080/tcp  # процесс на порту 8080
fuser -k /mnt/usb  # убить процессы, мешающие размонтировать
nmap сканирует порты СНАРУЖИ, как это видит атакующий:

Код: Выделить всё

nmap -sT localhost           # TCP connect скан
nmap -sV -p 1-1024 192.168.1.10   # с определением версий служб
В Debian/Ubuntu nmap ставится через apt install nmap, в RHEL/Fedora - dnf install nmap. lsof и pam обычно уже на месте.

Частые грабли
  • Редактирование /etc/sudoers напрямую в обычном редакторе. Опечатка ломает sudo целиком, и без второго root-доступа систему уже не починить. Только visudo.
  • netstat больше нет по умолчанию в современных дистрибутивах - привыкайте к ss. Если очень надо, netstat живёт в пакете net-tools.
  • ulimit меняет лимит ТОЛЬКО текущей оболочки и её потомков. Поднять жёсткий лимит выше потолка может только root.
  • Изменения в limits.conf применяются при НОВОМ входе через PAM, а не к уже запущенным сессиям и не к systemd-сервисам (для них - LimitNOFILE в unit).
  • Запуск ss или lsof без sudo прячет процессы чужих пользователей - PID и имя программы будут пустыми.
  • lastb по умолчанию пуст: файл /var/log/btmp создаётся не всегда, и читать его может только root.
  • nmap по внешнему адресу чужой сети без разрешения - это уже не аудит, а потенциально незаконное сканирование.
Мини-лаба
  • Найдите все SUID-файлы в системе и сравните список с эталонным набором (passwd, sudo, su, mount). Запишите, нет ли лишнего.
  • Создайте файл /etc/sudoers.d/lab через visudo -f, разрешив тестовому пользователю выполнять только systemctl status nginx без пароля. Проверьте через sudo -l от его имени.
  • В limits.conf задайте этому пользователю hard nofile 1024, перелогиньтесь под ним и убедитесь через ulimit -Hn.
  • Запустите ss -tulpn и сопоставьте каждый слушающий порт с процессом. Найдите, кто держит порт 22.
  • Сделайте несколько входов под неверным паролем, затем посмотрите их в lastb (от root).
  • Через lsof -i найдите процесс, держащий сетевое соединение, и определите его PID и пользователя.
Контрольные вопросы
  • Чем отличается поведение find -perm -4000 от find -perm /4000?
  • Почему sudoers редактируют только через visudo и что именно проверяет эта команда?
  • Какой журнал читает lastb и о какой угрозе сигнализируют записи в нём?
  • В чём разница между мягким и жёстким лимитом ulimit и кто может поднять жёсткий?
  • Какой командой увидеть, какой процесс и под каким пользователем слушает конкретный TCP-порт?
  • Почему правка /etc/security/limits.conf не влияет на лимиты systemd-сервиса?
👍3 ❤️1 🔥5 😄 🤔3
Аватара пользователя
southender
Сообщения: 1
Зарегистрирован: 15 май 2026, 14:56

Re: Задачи администрирования безопасности [110.1]

Сообщение southender »

А чем sudo принципиально лучше su -, если оба дают root? Я думал это одно и то же по сути.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
k8s_pro
Сообщения: 1
Зарегистрирован: 23 май 2026, 09:17

Re: Задачи администрирования безопасности [110.1]

Сообщение k8s_pro »

Подтверждаю про lastb: на свежем стенде он был пустой, пока руками не создал /var/log/btmp и не дал права root. Без этого записи неудачных входов просто никуда не пишутся.
👍2 ❤️1 🔥 😄 🤔
Ответить
← Предыдущая глава
DNS на стороне клиента [109.4]
Следующая глава →
Настройка безопасности хоста [110.2]

Все главы курса «LPIC-1: администратор Linux (101 + 102)»

Поделиться темой: ✈ Telegram VK

Вернуться в «LPIC-1: администратор Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя