Linux

Настройка и оптимизация Linux Firewall: полное руководство

Полное руководство по настройке брандмауэра Linux для защиты серверов и ПК. Вы научитесь разворачивать правила firewall, управлять портами и проверять безопасность системы.

Обновлено 28 апреля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04 / 24.04Debian 12CentOS Stream 9RHEL 9

Введение / Значимость настройки

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

Требования и подготовка

  • Система с Ubuntu 22.04/24.04, Debian 12, CentOS Stream 9 или RHEL 9.
  • Права суперпользователя (доступ к sudo).
  • Установленный и работающий SSH (если управляете сервером удалённо).
  • Отсутствие конфликтующих фаерволов: перед началом остановите firewalld, если он установлен.

Подготовка:

# Ubuntu / Debian
sudo apt update && sudo apt install ufw -y

# CentOS / RHEL
sudo dnf install ufw -y
# или используйте firewalld/nftables в зависимости от политики дистрибутива

Остановите firewalld, если он активен:

sudo systemctl stop firewalld
sudo systemctl disable firewalld

Шаг 1: Базовая политика по умолчанию

Начните с запрета всего входящего и разрешения исходящего трафика. Это минимизирует поверхность атаки.

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable

После включения проверьте, что вы не потеряли удалённый доступ, если работаете по SSH. Если порт 22 не открыт явно, добавьте его до включения UFW.

Шаг 2: Открытие необходимых портов

Разрешите сервисы, которые должны быть доступны из сети. Используйте профили приложений или прямые правила для портов.

# По номерам портов
sudo ufw allow 22/tcp       # SSH
sudo ufw allow 80/tcp       # HTTP
sudo ufw allow 443/tcp      # HTTPS

# С ограничением по IP (рекомендуется для SSH)
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp

# С ограничением по интерфейсу
sudo ufw allow in on eth0 to any port 443 proto tcp

Если вы изменили порт SSH, укажите актуальный номер вместо 22.

Шаг 3: Логирование и дополнительные правила

Включите логирование для отслеживания заблокированных попыток подключения. Это поможет выявить сканирование портов и атаки.

sudo ufw logging on
sudo ufw logging medium

Добавьте защиту от частых подключений (rate limiting) для SSH:

sudo ufw limit 22/tcp

При необходимости закройте диапазоны или запретите доступ по странам через ipset и дополнительные цепочки, если UFW этого не покрывает.

Шаг 4: Проверка и аудит правил

Убедитесь, что правила применились и имеют ожидаемый приоритет.

sudo ufw status verbose

Проверьте, какие порты реально слушаются:

sudo ss -tulnp

Для внешней проверки используйте nmap с другого хоста:

nmap -Pn -p 22,80,443 ваш_сервер

Возможные проблемы и их решения

  • Потеря SSH-доступа после включения UFW: сразу подключитесь через консоль провайдера или IPMI, добавьте правило для 22/tcp и переподключитесь. Всегда открывайте SSH до включения UFW.
  • Конфликт iptables и nftables: в современных системах UFW может использовать nftables бэкенд. Убедитесь, что вы не смешиваете правила вручную через iptables и ufw.
  • Задержки при rate limiting: при больших нагрузках ufw limit может вызывать задержки для легитимных клиентов. В таких случаях настройте fail2ban вместо простого лимита.
  • Лишние разрешения: периодически пересматривайте ufw status numbered и удаляйте неиспользуемые правила через ufw delete <номер>.

Поддержание безопасности

Регулярно проверяйте открытые порты и актуализируйте правила при добавлении или удалении сервисов. Обновляйте систему и используйте дополнительные слои защиты: ключи SSH, fail2ban и минимизацию запущенных сетевых сервисов. Правильный firewall — это база, а не единственная мера защиты.

Часто задаваемые вопросы

Какой фаервол выбрать: ufw, iptables или nftables?
Нужно ли отключать firewalld при установке UFW?
Как проверить, что порт реально открыт и доступен снаружи?
Безопасно ли открывать порт 22 для SSH?

Полезное

Установить UFW
Добавить правила для портов
Включить и проверить статус
Настроить дополнительную фильтрацию
Проверить доступность извне

Эта статья помогла вам решить проблему?