Настройка базовой безопасности сервера в 2026: брандмауэр, SSH и аудит уязвимостей | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

Настройка базовой безопасности сервера в 2026: брандмауэр, SSH и аудит уязвимостей

07 мая 2026 10 мин. чтения
Содержание статьи

Базовая безопасность сервера - это не опция, а обязательный фундамент для любой рабочей среды. Пропуск этого этапа открывает двери для автоматических сканеров уязвимостей и целенаправленных атак. Это руководство содержит проверенные инструкции по настройке сетевого экрана, защите SSH и внедрению автоматического аудита. Все шаги актуальны для 2026 года и готовы к применению на серверах под управлением Ubuntu, Debian, RHEL и других популярных дистрибутивов Linux.

Вы получите конкретные команды для развертывания брандмауэра (UFW или firewalld), полную конфигурацию SSH с отключением парольной аутентификации и настройку Fail2Ban. В завершение мы разберем работу с Lynis для автоматического сканирования системы на предмет упущенных уязвимостей и настроим регулярные проверки. Этот материал - ваш готовый план действий для создания защищенного периметра.

Подготовка и выбор инструментов: с чего начать настройку безопасности

Перед любыми изменениями в конфигурации критически важно создать точку для безопасного отката. Ошибка в настройке брандмауэра или SSH может привести к полной потере доступа к серверу. Начните с запуска сессии screen или tmux. Это позволит сохранить сеанс даже при разрыве соединения. Обязательно создайте резервные копии конфигурационных файлов, таких как /etc/ssh/sshd_config и текущих правил брандмауэра. Убедитесь, что у вас есть альтернативный способ доступа, например, консоль хоста в облаке или VPN-подключение к внутренней сети.

Построение защищенной инфраструктуры соответствует современным требованиям, таким как стандарты ISO/IEC 27017 и 27018 для безопасности облачных услуг и защиты данных. Ваш первый шаг - выбор правильного инструмента для управления сетевым экраном.

UFW или firewalld: что выбрать для вашего дистрибутива в 2026 году

Оба инструмента остаются актуальными в 2026 году и служат удобными фронтендами для низкоуровневых систем iptables или nftables. Выбор зависит от вашего дистрибутива и потребностей в гибкости.

  • UFW (Uncomplicated Firewall): Инструмент для простой настройки. Он использует интуитивно понятный синтаксис команд. UFW идеально подходит для Ubuntu, Debian и их производных. Его главное преимущество - минимальная кривая обучения.
  • Firewalld: Более мощная и гибкая система, которая использует концепцию зон и сервисов. Она лучше интегрирована в экосистему RHEL, CentOS, Fedora и OpenSUSE. Firewalld позволяет динамически изменять правила без полной перезагрузки, что полезно для серверов с меняющейся конфигурацией.

Рекомендация проста: для серверов на базе Ubuntu/Debian используйте UFW. Для систем на базе RHEL/Fedora/OpenSUSE выбирайте firewalld. Оба решения обеспечивают надежную защиту на сетевом уровне.

Первое и самое важное правило: обеспечьте себе путь для отката

Перед началом работ выполните этот чек-лист:

  1. Запустите сессию screen или tmux: screen -S firewall_config.
  2. Создайте резервные копии ключевых файлов:
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup_$(date +%Y%m%d)
    Если вы уже используете брандмауэр, экспортируйте текущие правила.
  3. Проверьте доступность альтернативного метода подключения (консоль управления в панели хостинга, IPMI, VPN).
  4. Для изменений в SSH всегда проверяйте конфигурацию перед перезагрузкой службы командой sudo sshd -t.

Эти действия занимают несколько минут, но спасают от часов простоя при случайной ошибке.

Настройка сетевого экрана: закрываем неиспользуемые порты

Сетевой экран - ваш первый рубеж обороны. Его базовая задача - запретить все входящие соединения и разрешить только те, что необходимы для работы сервисов. Ниже приведены две отдельные инструкции. Выполняйте только ту, которая соответствует выбранному вами инструменту.

Пошаговая настройка UFW: от установки до правил для веб-сервера

На системах Ubuntu или Debian установите и настройте UFW следующими командами:

# Установка (если не установлен)
sudo apt update && sudo apt install ufw -y

# Установка политик по умолчанию: запретить входящие, разрешить исходящие
sudo ufw default deny incoming
sudo ufw default allow outgoing

# Открытие портов для основных служб.
# ВНИМАНИЕ: Открывайте порт 22 только если уверены в безопасности SSH (см. следующий раздел).
sudo ufw allow 22/tcp comment 'SSH - временно, до настройки ключей'
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'

# Для повышения безопасности ограничьте доступ к SSH по IP (пример):
# sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp

# Включение UFW и проверка статуса
sudo ufw enable
sudo ufw status verbose

Команда status verbose покажет все активные правила и политики. Для веб-сервера этого набора правил достаточно. Если вы развертываете сервер баз данных, дополнительно откройте соответствующий порт, например, sudo ufw allow 3306/tcp comment 'MySQL', предварительно ограничив доступ подсетью.

Пошаговая настройка firewalld: работа с зонами и сервисами

В дистрибутивах на базе RHEL, CentOS или Fedora работайте с firewalld. Базовая настройка для публичного сервера выглядит так:

# Запуск и включение автозагрузки firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

# Установка зоны 'public' по умолчанию (самая строгая)
sudo firewall-cmd --set-default-zone=public

# Добавление разрешений для сервисов. Сервис 'ssh' соответствует порту 22.
sudo firewall-cmd --zone=public --add-service=ssh --permanent
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent

# Или добавление порта вручную (например, для нестандартного порта SSH 2222):
# sudo firewall-cmd --zone=public --add-port=2222/tcp --permanent

# Применение изменений
sudo firewall-cmd --reload

# Просмотр всех правил в активной зоне
sudo firewall-cmd --list-all --zone=public

Для более тонкого контроля создайте зону trusted для доверенных IP-адресов и переместите в нее интерфейс внутренней сети. Это классический подход к сегментации трафика, который подробно разобран в нашем полном руководстве по аудиту и защите серверов.

Жесткая настройка SSH: убираем пароли, добавляем ключи и Fail2Ban

SSH - это главные ворота на ваш сервер. Его стандартная конфигурация уязвима для атак методом перебора. Переход на аутентификацию по ключам и настройка Fail2Ban - обязательные меры.

Генерация SSH-ключей и настройка авторизации на сервере

Начните с генерации пары ключей на вашем клиентском компьютере. Используйте современный алгоритм Ed25519:

ssh-keygen -t ed25519 -C "your_email@example.com" -f ~/.ssh/id_ed25519_admin_server

Затем скопируйте открытый ключ на сервер. Самый безопасный способ - использовать утилиту ssh-copy-id, если парольная аутентификация пока разрешена:

ssh-copy-id -i ~/.ssh/id_ed25519_admin_server.pub username@your_server_ip

После копирования проверьте вход на сервер с использованием ключа: ssh -i ~/.ssh/id_ed25519_admin_server username@your_server_ip. Убедитесь, что вход прошел без запроса пароля. Только после успешной проверки переходите к отключению парольной аутентификации на сервере.

Редактирование sshd_config: параметры для максимальной безопасности

Отредактируйте файл /etc/ssh/sshd_config. Ниже приведен закомментированный фрагмент с ключевыми параметрами:

# Измените стандартный порт, чтобы снизить уровень шума от автоматических сканеров.
Port 2222

# Запретите вход под пользователем root.
PermitRootLogin no

# ВАЖНО: Отключите парольную аутентификацию, предварительно проверив вход по ключу.
PasswordAuthentication no
# Убедитесь, что аутентификация по ключам включена.
PubkeyAuthentication yes

# Ограничьте круг пользователей, которым разрешен вход (необязательно, но рекомендуется).
AllowUsers ваш_пользователь

# Отключите методы аутентификации, основанные на паролях PAM.
ChallengeResponseAuthentication no

# Используйте только протокол SSH 2.
Protocol 2

После внесения изменений проверьте синтаксис конфигурации: sudo sshd -t. Если ошибок нет, примените изменения: sudo systemctl reload sshd или sudo systemctl restart sshd. Подключитесь заново, указав новый порт: ssh -p 2222 -i ~/.ssh/id_ed25519_admin_server username@your_server_ip. Не закрывайте текущую сессию до успешного тестирования новой.

Установка и настройка Fail2Ban для защиты от перебора паролей

Fail2Ban автоматически блокирует IP-адреса после множества неудачных попыток входа. Установите его:

# Для Ubuntu/Debian
sudo apt update && sudo apt install fail2ban -y

# Для RHEL/Fedora/CentOS
sudo dnf install fail2ban -y  # или sudo yum install fail2ban -y

Основная конфигурация находится в /etc/fail2ban/jail.local. Создайте этот файл и настройте защиту для SSH (на стандартном или измененном порту):

[sshd]
enabled = true
port = 2222  # Укажите ваш порт SSH
logpath = %(sshd_log)s
maxretry = 5
bantime = 3600
findtime = 600

Параметр port должен соответствовать порту, указанному в sshd_config. После настройки перезапустите службу и проверьте статус:

sudo systemctl restart fail2ban
sudo fail2ban-client status sshd

Fail2Ban начнет мониторить логи SSH и блокировать подозрительные адреса. Для анализа логов веб-серверов, таких как Nginx или Apache, и поиска признаков атак используйте готовые команды из нашего руководства по практическому анализу логов.

Автоматический аудит безопасности с Lynis и мониторинг

После ручной настройки необходим систематический контроль. Инструмент аудита Lynis проверяет сотни параметров системы на соответствие лучшим практикам безопасности и выдает конкретные рекомендации по устранению уязвимостей.

Первый запуск Lynis: интерпретация результатов и устранение критичных предупреждений

Установите Lynis из официальных репозиториев или скачайте скрипт. Для Debian/Ubuntu:

sudo apt update && sudo apt install lynis -y

Запустите полный аудит системы с правами root:

sudo lynis audit system

Программа сгенерирует подробный отчет. Обращайте внимание на секции с пометками [WARNING] и [SUGGESTION]. Типичные критические находки после базовой настройки включают:

  • Настройка umask по умолчанию: Рекомендуется установить более строгие права по умолчанию (например, 027) в файлах /etc/profile или /etc/bash.bashrc.
  • Наличие неиспользуемых демонов: Lynis укажет на запущенные службы, которые не нужны для работы вашего сервера (например, Bluetooth, CUPS). Остановите и отключите их.
  • Настройки ядра: В разделе [+] Kernel могут быть предложения по включению дополнительных параметров безопасности (например, kernel.yama.ptrace_scope).

Каждая рекомендация Lynis сопровождается ссылкой на детальную документацию. Исправляйте пункты последовательно, перезапуская аудит для проверки.

Настройка регулярных проверок и оповещений

Переведите разовую проверку в постоянный процесс. Создайте задачу в cron для еженедельного запуска аудита и отправки отчета на электронную почту:

# Откройте crontab для редактирования
sudo crontab -e

# Добавьте строку (запуск каждое воскресенье в 03:00)
0 3 * * 0 /usr/bin/lynis audit system --cronjob > /var/log/lynis-report-$(date +\%Y\%m\%d).log 2>&1

Для более сложных сценариев, таких как централизованный сбор логов и визуализация в Grafana, изучите наше руководство по аудиту и мониторингу. Регулярный аудит - это основа для поддержания высокого уровня доступности (SLA), сопоставимого с промышленными стандартами в 99,982%.

Итоговый чек-лист и скрипт для быстрой проверки

После выполнения всех шагов сверьтесь с этим чек-листом. Для автоматизации проверки основных параметров используйте приведенный ниже bash-скрипт.

Чек-лист базовой безопасности:

  1. Брандмауэр: Служба активна. Политика по умолчанию - deny incoming. Открыты только необходимые порты (SSH, HTTP/S и т.д.).
  2. SSH: Парольная аутентификация отключена (PasswordAuthentication no). Вход root запрещен (PermitRootLogin no). Используется аутентификация по ключам. Fail2Ban работает и защищает службу SSH.
  3. Аудит: Lynis установлен. Критические предупреждения (WARNING) из отчета устранены. Настроена регулярная проверка (например, через cron).

Скрипт для быстрой проверки (сохраните как security_check.sh и запустите с правами root):

#!/bin/bash

echo "=== Проверка базовой безопасности сервера ==="
echo ""

# 1. Проверка брандмауэра (UFW)
echo "[1] Статус брандмауэра UFW:"
if command -v ufw &> /dev/null; then
    sudo ufw status verbose | head -20
else
    echo "UFW не установлен."
fi
echo ""

# 2. Проверка брандмауэра (firewalld)
echo "[2] Статус брандмауэра firewalld:"
if systemctl is-active --quiet firewalld 2>/dev/null; then
    sudo firewall-cmd --state
    sudo firewall-cmd --list-all --zone=public
else
    echo "firewalld не активен."
fi
echo ""

# 3. Проверка ключевых параметров SSH
echo "[3] Проверка конфигурации SSH (sshd_config):"
SSHD_CONFIG="/etc/ssh/sshd_config"
if [ -f "$SSHD_CONFIG" ]; then
    echo "- PasswordAuthentication: $(grep -i "^PasswordAuthentication" "$SSHD_CONFIG" || echo "не найдено")"
    echo "- PermitRootLogin: $(grep -i "^PermitRootLogin" "$SSHD_CONFIG" || echo "не найдено")"
    echo "- Port: $(grep -i "^Port" "$SSHD_CONFIG" || echo "не найдено")"
else
    echo "Файл $SSHD_CONFIG не найден."
fi
echo ""

# 4. Проверка статуса Fail2Ban
echo "[4] Статус службы Fail2Ban:"
if systemctl is-active --quiet fail2ban 2>/dev/null; then
    sudo systemctl status fail2ban --no-pager -l | head -10
else
    echo "Fail2Ban не активен."
fi
echo ""

# 5. Проверка наличия Lynis
echo "[5] Наличие инструмента аудита Lynis:"
if command -v lynis &> /dev/null; then
    echo "Lynis установлен: $(lynis --version 2>/dev/null | head -1)"
else
    echo "Lynis не установлен."
fi
echo ""
echo "=== Проверка завершена. Изучите вывод выше. ==="

Этот фундамент - отправная точка. Дальнейшее укрепление безопасности зависит от конкретных сервисов, размещенных на сервере: веб-приложений, баз данных или систем хранения. Для построения полноценной защищенной среды с нуля, включая установку ОС, Docker и мониторинг, изучите наше руководство по развертыванию Linux-сервера. А для автоматизации рутинных задач администрирования и работы с ИИ рассмотрите использование агрегатора AiTunnel, который предоставляет единый доступ к более чем 200 моделям нейросетей, включая GPT и Claude, с оплатой в рублях и без необходимости VPN.

Поделиться:
Сохранить гайд? В закладки браузера