Контрольный список по укреплению серверов Linux
15 мин чтения - 8 мая 2026 г.

Пошаговый контрольный список для защиты сервера Linux. Охватывает SSH, брандмауэры, исправления, разрешения на файлы, SELinux/AppArmor и ведение журнала аудита
Контрольный список по укреплению безопасности серверов Linux
Стандартная установка Linux не является безопасной. Неправильные настройки, такие как открытый доступ к корневому SSH, слабые брандмауэры и незапатченное программное обеспечение, являются причиной большинства нарушений безопасности. Новые серверы подвергаются автоматическому сканированию в течение нескольких минут после подключения к сети, поэтому укрепление безопасности должно быть выполнено в первую очередь.
Этот контрольный список охватывает основные шаги: блокировка SSH, настройка брандмауэров, установка исправлений, ужесточение прав доступа к файлам, включение обязательного контроля доступа и настройка ведения журнала аудита.
Блокировка SSH
SSH — это ваша основная точка доступа и первое, что проверяют злоумышленники. Конфигурация по умолчанию (аутентификация по паролю, вход под пользователем root, порт 22) — это именно то, что ищут автоматические сканеры.
Сгенерируйте пару ключей Ed25519, которая обеспечивает лучшую безопасность и производительность, чем RSA:
ssh-keygen -t ed25519Как только вход с помощью ключа заработает, обновите /etc/ssh/sshd_config:
PasswordAuthentication no
ChallengeResponseAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
AllowUsers yourname
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2Измените порт по умолчанию с 22 на что-нибудь менее очевидное. Это не остановит целеустремленного злоумышленника, но значительно сократит количество ложных срабатываний при автоматическом сканировании.
Всегда тестируйте изменения со второго терминала, прежде чем закрывать текущую сессию. Запустите sudo sshd -t для проверки на наличие синтаксических ошибок, затем systemctl reload sshd для применения изменений без разрыва активных соединений.
Добавьте двухфакторную аутентификацию
2FA означает, что злоумышленнику потребуются как ваш SSH-ключ, так и физический доступ к вашему устройству. Установите модуль PAM для Google Authenticator:
sudo apt install libpam-google-authenticator # Debian/Ubuntu
sudo dnf install google-authenticator # RHEL/FedoraЗапустите google-authenticator для каждого пользователя, чтобы сгенерировать секретный ключ и коды восстановления. Храните коды восстановления в автономном режиме.
Добавьте эту строку в /etc/pam.d/sshd:
auth required pam_google_authenticator.soЗатем обновите /etc/ssh/sshd_config:
KbdInteractiveAuthentication yes
UsePAM yes
AuthenticationMethods publickey,keyboard-interactiveВо время тестирования держите сессию активной. Коды TOTP зависят от точного системного времени, поэтому убедитесь, что NTP работает.
Настройка брандмауэров и Fail2Ban
Используйте брандмауэр на уровне хоста, даже если ваш сервер находится за сетевым брандмауэром. Принцип прост: по умолчанию блокируйте весь входящий трафик, а затем разрешайте только то, что вам нужно.
Для Ubuntu/Debian (UFW):
ufw default deny incoming
ufw default allow outgoing
ufw limit ssh
ufw enableДля RHEL/Rocky/AlmaLinux (Firewalld):
firewall-cmd --set-default-zone=public
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=https
firewall-cmd --reloadУсильте сетевой стек ядра, добавив следующее в файл /etc/sysctl.conf:
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.icmp_echo_ignore_broadcasts = 1Установите Fail2Ban
Fail2Ban отслеживает попытки входа в систему и блокирует IP-адреса после нескольких неудачных попыток. Создайте /etc/fail2ban/jail.local (не редактируйте jail.conf не создавайте файл напрямую, так как обновления его перезапишут) и настройте его так, чтобы IP-адреса блокировались на один час после трех неудачных попыток в течение 10 минут. Укажите правильный бэкэнд для вашего брандмауэра (banaction = ufw или banaction = nftables).
Службы аудита и удаление устаревших протоколов
Проверьте, что прослушивает порт с помощью ss -tlnp и что запущено с помощью systemctl list-units --type=service --state=running. Отключите все, что вам не нужно: Bluetooth, CUPS, avahi-daemon, rpcbind.
Удалите устаревшие протоколы, передающие данные в открытом виде:
| Устаревший протокол | Порт(ы) | Безопасная альтернатива |
|---|---|---|
| Telnet | 23 | SSH |
| RSH / Rlogin | 512, 513, 514 | SSH |
| FTP | 21 | SFTP / FTPS |
| TFTP | 69 | SFTP / SCP |
| NIS | Переменная | LDAP / Kerberos |
В Debian/Ubuntu: sudo apt-get --purge remove xinetd nis tftpd telnetd rsh-server. В системах на базе RHEL: yum erase xinetd ypserv tftp-server telnet-server rsh-server. Проверьте удаление с помощью ss -tulpn.
Установка исправлений и автоматизация обновлений
Обновление системы — это самый быстрый способ устранить известные уязвимости. Запустите обновления сразу после развертывания:
apt update && apt upgrade -y # Debian/Ubuntu
dnf update -y # RHEL/RockyЗатем автоматизируйте установку патчей безопасности. В Debian/Ubuntu установите unattended-upgrades и настройте его так, чтобы он применял только патчи безопасности. В RHEL/Rocky установите dnf-automatic и установите upgrade_type = security в /etc/dnf/automatic.conf.
Настройте уведомления по электронной почте о результатах обновления. Отключите автоматическую перезагрузку на производственных серверах (Automatic-Reboot = false), чтобы перезагрузки происходили во время запланированных окон технического обслуживания. Для сред с высоким временем безотказной работы рассмотрите возможность установки исправлений в режиме реального времени с помощью Canonical Livepatch (Ubuntu) или kpatch (RHEL).
Усиление защиты файловых систем и прав доступа
Сначала проверьте бинарные файлы SUID и SGID. Эти файлы запускаются с повышенными привилегиями и являются основными целями для злоумышленников:
find / -xdev \( -perm -4000 -o -perm -2000 \) -type f -lsУжесточите права доступа к критически важным файлам: /etc/shadow должно быть 600, /etc/passwd должно быть 644, /etc/ssh/sshd_config должно быть 600. Установите глобальный umask значение 027 в /etc/profile , чтобы новые файлы не были доступны для чтения всем пользователям.
Найдите и исправьте файлы, доступные для записи всем пользователям, с помощью find / -xdev -type f -perm -0002 -ls. Для каталогов, которые должны оставаться доступными для записи всем пользователям (например, /tmp), примените флаг sticky: chmod 1777 /tmp.
Параметры безопасного монтирования
Редактировать /etc/fstab , чтобы ограничить действия на критически важных разделах:
| Параметры | Параметры монтирования | Назначение |
|---|---|---|
/tmp | nodev, nosuid, noexec | Предотвращает запуск вредоносного ПО в области, доступной для записи |
/var/tmp | nodev, nosuid, noexec | Такая же защита, как и у /tmp |
/dev/shm | nodev, nosuid, noexec | Защита общей памяти |
/home | nodev, nosuid | Блокирует бинарные файлы с setuid и узлы устройств |
/var/log | nodev, nosuid, noexec | Защита целостности журналов |
Проверьте изменения с помощью mount -o remount перед перезагрузкой, чтобы избежать проблем при загрузке.
Включите средства обязательного контроля доступа
SELinux и AppArmor добавляют ограничения на уровне ядра на то, что могут делать процессы. Используйте то, что поставляется с вашей дистрибутивом: SELinux для RHEL/CentOS/Fedora, AppArmor для Ubuntu/Debian/SUSE. Переключение между ними вызывает проблемы с совместимостью.
SELinux: Проверьте статус с помощью getenforce. Начните в разрешительном режиме (setenforce 0) не менее двух недель, чтобы зафиксировать поведение рабочей нагрузки, не вызывая сбоев. Отслеживайте нарушения с помощью ausearch -m avc -ts recent. Используйте audit2why для диагностики блокировок и audit2allow -M [module_name] для создания модулей политики. Как только журналы очистятся, переключитесь в режим принудительного соблюдения с помощью setenforce 1, а затем сделайте его постоянным в /etc/selinux/config.
AppArmor: проверьте активные профили с помощью aa-status. Установите apparmor-utils для команд управления. Запустите профили в режиме предупреждений с помощью aa-complain, затем перейдите в режим принудительного выполнения с aa-enforce , как только будете уверены. Используйте aa-genprof для создания профилей для пользовательских приложений.
Настройка ведения журналов аудита и мониторинга
Без ведения журналов инциденты не оставляют следов. Установите auditd:
sudo apt-get install auditd audispd-pluginsДобавьте наблюдение за файловой системой для критически важных файлов:
-w /etc/passwd -p wa -k identity
-w /etc/shadow -p wa -k identityОтслеживайте выполнение всех команд на уровне root:
-a always,exit -F arch=b64 -S execve -F euid=0 -k root_commandsЗагрузите правила с помощью augenrules --load и добавьте -e 2 в конец файла правил, чтобы сделать конфигурацию защищенной от несанкционированного изменения (для вступления изменений в силу требуется перезагрузка).
Мониторинг целостности файлов с помощью AIDE
AIDE обнаруживает несанкционированные изменения файлов, сравнивая текущее состояние с исходным, признанным исправным. Установите его, инициализируйте базу данных с помощью aideinit, и переместите полученный файл в /var/lib/aide/aide.db.gz. Настройте ежедневную задачу cron для запуска aide --check и отправки результатов по электронной почте администраторам.
Централизация журналов
Локальные журналы бесполезны, если злоумышленник с правами root удалит их. Пересылайте журналы на удаленный сервер в режиме реального времени с помощью rsyslog с шифрованием TLS. Добавьте в /etc/rsyslog.conf:
*.* @@remote-host:514Set LogLevel VERBOSE в конфигурации SSH, чтобы журналы включали отпечатки ключей для каждого успешного входа в систему. Для производственных сред, управляющих несколькими серверами, такие инструменты, как Wazuh или OSSEC, обеспечивают обнаружение вторжений на уровне хоста с централизованным анализом журналов
Текущее обслуживание
Укрепление безопасности — это не разовое мероприятие. Настройки меняются, появляются новые уязвимости, а при смене персонала остаются заброшенные учетные записи.
Еженедельно: просматривайте журналы Fail2Ban, проверяйте наличие неудачных обновлений, проверяйте резервные копии.
Ежемесячно: проводить аудит учетных записей пользователей и прав доступа, проверять запущенные службы, выполнять полное сканирование с помощью Lynis или OpenSCAP.
Ежеквартально: меняйте учетные данные, обновляйте правила брандмауэра, тестируйте восстановление после сбоев.
Используйте инструменты «инфраструктура как код», такие как Ansible с ролями укрепления безопасности dev-sec.io, чтобы обеспечить единообразную конфигурацию всего вашего парка серверов и предотвратить отклонения между аудитами.
Выделенные серверы FDC предоставляют вам полный root-доступ и полный контроль над вашим стеком безопасности. Изучите варианты выделенных серверов, чтобы создать платформу, на которой вы контролируете каждый уровень.

Устали от медленного развертывания или ограничений пропускной способности? FDC Servers предлагает мгновенную выделенную мощность, глобальный охват и гибкие планы, рассчитанные на любой масштаб.
Обновление сейчас
Руководство по настройке Prometheus и node_exporter
Установите Prometheus и node_exporter, настройте цели соскоба, настройте службы systemd и обеспечьте безопасность стека мониторинга. Шаг за шагом для Linux.
15 мин чтения - 29 мая 2026 г.
XDP и eBPF для обработки пакетов в Linux
14 мин чтения - 27 мая 2026 г.

У вас есть вопросы или вам нужно индивидуальное решение?
Гибкие варианты
Глобальный охват
Мгновенное развертывание
Гибкие варианты
Глобальный охват
Мгновенное развертывание