Чек-лист hardening Linux-сервера

Чек-лист к статье Hardening Linux. Для каждого пункта дана команда, по результату которой можно поставить отметку. Пункт без проверки не считается выполненным.
Доступ
- ☐ Вход root по SSH запрещён:
sshd -T | grep permitrootlogin→no - ☐ Вход по паролю отключён:
sshd -T | grep passwordauthentication→no - ☐ Администраторы работают через личные учётные записи:
getent group sudo wheel - ☐ Нет лишних
NOPASSWD:grep -rn NOPASSWD /etc/sudoers /etc/sudoers.d/ - ☐ Нет учётных записей без пароля:
awk -F: '$2==""' /etc/shadow→ пусто - ☐ Второй фактор для администраторов: MFA для SSH
Обновления
- ☐ Очередь обновлений пуста:
apt list --upgradableилиdnf check-update - ☐ Автообновления безопасности включены:
systemctl status unattended-upgrades/dnf-automatic-install.timer - ☐ Сервисы перезапущены после обновления:
needrestart/dnf needs-restarting -r - ☐ Система не снята с поддержки:
cat /etc/os-release
Сеть
- ☐ Firewall включён, политика по умолчанию «запретить»:
nft list ruleset/ufw status verbose - ☐ Слушают только нужные порты:
ss -tulpn - ☐ Проверка снаружи совпадает:
nmap -Pn -p- SERVER_IP - ☐ Служебные порты (БД, мониторинг, Docker API) не доступны из интернета
- ☐ Защита от подбора:
cscli metrics/fail2ban-client status
Сервисы и файлы
- ☐ Лишние сервисы отключены:
systemctl list-unit-files --state=enabled - ☐ Сервисы работают не от root:
ps -eo user,comm | sort | uniq -c | sort -rn | head - ☐ Нет файлов, доступных всем на запись:
find / -xdev -type f -perm -0002 2>/dev/null | head - ☐ SELinux или AppArmor включены:
getenforce/aa-status
Журналы и наблюдение
- ☐ Журнал journald хранится на диске:
ls /var/log/journal - ☐ Логи уходят на отдельный сервер:
logger testи поиск записи на приёмнике - ☐ Время синхронизировано:
timedatectl→System clock synchronized: yes - ☐ Сервер на мониторинге: Zabbix
Ядро и права (методический документ ФСТЭК)
- ☐ Параметры ядра применены и проверены скриптом:
sudo bash fstek-linux-check.sh(скрипт и пояснения) - ☐ Нет файлов с записью для группы и остальных в системных каталогах:
sudo find /bin /sbin /usr/bin /usr/sbin /lib /lib64 -xdev ! -type l -perm /022 -ls - ☐ Список SUID/SGID сверен с эталоном:
sudo find / -xdev -type f \( -perm -4000 -o -perm -2000 \) -ls - ☐ Домашние каталоги закрыты:
stat -c '%a %n' /home/*показывает 700 - ☐ Отклонения от документа записаны с причиной
Резервные копии
- ☐ Копия есть вне сервера и вне площадки
- ☐ Восстановление проверено за последние 3 месяца: 3-2-1
Если пунктов без отметки много, начните с доступа и обновлений: они закрывают большинство реальных взломов. Для полного перечня мер сверяйтесь с CIS Benchmarks вашего дистрибутива.





















