Только для посетителей нашего блога: получите дополнительные 3 месяца бесплатно + скидку 10% на трехгодичный план YSBLOG10
Захватить сделку

Как осуществлять мониторинг и обеспечивать безопасность FirewallD на сервере Linux — простое руководство

Для мониторинга и обеспечения безопасности FirewallD На сервере Linux проверьте его состояние, установите базовый уровень минимальных привилегий для зон и служб, включите логирование отклоненных пакетов и автоматизируйте оповещения и блокировки с помощью таких инструментов, как Fail2Ban. Используйте firewall-cmd для отображения, аудита и усиления правил, а затем постоянно просматривайте журналы и обновляйте политики в соответствии с меняющимися угрозами.

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

Что такое FirewallD и почему это важно??

FirewallD — это динамический межсетевой экран для хостов, который manageсеть Правила применяются через зоны и службы. В современных версиях RHEL, Rocky, AlmaLinux и Fedora используется следующий подход: бэкэнд nftablesЭто позволяет изменять политики без разрыва соединений, что делает его идеальным решением для производственных серверов, требующих непрерывной работы и надежной безопасности.

Ключевые понятия: Зоны, Сервисы, Время выполнения и Постоянное состояние

Зоны группируют интерфейсы и источники по уровню доверия (например, общедоступный, внутренний, доверенный). Сервисы представляют собой предопределенные наборы правил (например, ssh, http, https), сопоставленные с портами и протоколами.

  • Время: Изменения вступают в силу немедленно; теряются при перезагрузке или повторном запуске, если не сохранены.
  • постоянный: Сохранено на диск; применяется при перезагрузке.
  • Лучшая практика: Создайте постоянную сборку, протестируйте во время выполнения, а затем перезагрузите для сохранения результатов.

Предварительные условия и процедура безопасной смены обстановки

  • Иметь доступ к консоли или внеполосный доступ manageперед изменением SSH правила.
  • Узнайте свою зону по умолчанию и активные интерфейсы.
  • Добавьте в белый список IP-адреса администратора для SSH прежде чем ужесточать политику.
  • Запланируйте период технического обслуживания для переустановки критически важных систем.

Проверьте состояние и базовые параметры FirewallD.

Начните с подтверждения. FirewallD установлен.Укажите, какая зона активна и какая используется. Это задаёт базовый уровень мониторинга и предотвращает случайные блокировки.

sudo systemctl status firewalld
sudo firewall-cmd --state
sudo firewall-cmd --get-default-zone
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --list-all

Если вы используете дистрибутив, в котором по умолчанию используется другой брандмауэр (например, UFW в Ubuntu), используйте только одну службу брандмауэра за раз, чтобы избежать конфликтов.

Создайте надежную базовую политику.

Ваша цель — принцип минимальных привилегий: разрешать серверу только то, что ему необходимо. Для типичного веб-сервера это означает следующее: SSH для доступа администратора и HTTP/HTTPS для посетителей.

Установите зону по умолчанию и разрешите необходимые службы.

# Set default zone to "public" and allow core services
sudo firewall-cmd --permanent --set-default-zone=public
sudo firewall-cmd --permanent --zone=public --add-service=ssh
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https

# Optional: open a specific port (e.g., PostgreSQL 5432)
sudo firewall-cmd --permanent --zone=public --add-port=5432/tcp

# Apply changes
sudo firewall-cmd --reload

# Verify
sudo firewall-cmd --list-all

Ограничивая SSH Использование IP-адресов источников значительно снижает вероятность ошибок при переборе паролей. риск. Используйте сложные правила, чтобы разрешить SSH только с проверенных адресов.

# Allow SSH only from admin IPs
sudo firewall-cmd --permanent --zone=public \
  --add-rich-rule='rule family=ipv4 source address=203.0.113.10 service name="ssh" accept'
sudo firewall-cmd --permanent --zone=public \
  --add-rich-rule='rule family=ipv6 source address=2001:db8::/64 service name="ssh" accept'

# Optionally drop SSH for everyone else (place after accepts)
sudo firewall-cmd --permanent --zone=public \
  --add-rich-rule='rule service name="ssh" drop'

sudo firewall-cmd --reload
sudo firewall-cmd --list-rich-rules

Отслеживание активности и журналов FirewallD

Включить логирование для отклоненных пакетов

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

# Enable logging (options: off, all, unicast, broadcast, multicast)
sudo firewall-cmd --set-log-denied=all
sudo firewall-cmd --get-log-denied

# Tail recent firewall logs
sudo journalctl -u firewalld -f

Эффективное чтение и фильтрация журналов

FirewallD записывает данные в systemd-journald. Используйте journalctl для запроса временных диапазонов или grep для анализа без лишнего шума.

# Last hour of FirewallD logs
sudo journalctl -u firewalld --since "1 hour ago"

# Kernel-level drops (network stack)
sudo journalctl -k | grep -i "IN="

# Summarize hits for a specific port (e.g., SSH)
sudo journalctl -k | grep -i "DPT=22" | awk '{print $NF}' | sort | uniq -c | sort -nr | head

В RHEL 8+/Rocky/AlmaLinux/Fedora FirewallD использует nftables. Избегайте прямого редактирования правил nft; manage правила с помощью firewall-cmd для обеспечения согласованности конфигурации.

Автоматические оповещения и блокировки с помощью Fail2Ban

Fail2Ban считывает журналы работы сервиса (например, SSH (использует FirewallD для автоматической блокировки IP-адресов, используемых злоумышленниками). Это проверенный способ уменьшить количество попыток перебора паролей и защитить ресурсы сервера.

# Install fail2ban (RHEL/Rocky/AlmaLinux/Fedora)
sudo dnf install -y fail2ban

# Basic jail for SSH using FirewallD rich rules
sudo tee /etc/fail2ban/jail.local >/dev/null <<'EOF'
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
backend = systemd
banaction = firewallcmd-rich-rules

[sshd]
enabled = true
EOF

sudo systemctl enable --now fail2ban
sudo fail2ban-client status
sudo fail2ban-client status sshd

Мониторинг запретов с помощью fail2ban-client status sshdЕсли вы используете несколько сервисов (Postfix, Dovecot, Nginx), Включите их блокировки и используйте banaction = firewallcmd-rich-rules для обеспечения согласованной работы FirewallD. правоприменение.

Расширенная защита с помощью сложных правил

Ограничение скорости SSH чтобы сбросить грубую силу

Ограничение скорости дополняет Fail2Ban. Следующее правило разрешает до 10 подключений в минуту. SSH; лишние попытки отбрасываются. Настройте под свои условия и законные модели использования.

# Rate-limit SSH globally
sudo firewall-cmd --permanent --add-rich-rule='rule service name="ssh" limit value="10/m" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule service name="ssh" drop'
sudo firewall-cmd --reload

Блокировка заведомо вредоносных IP-адресов и подсетей

# Block a single IPv4 address
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=198.51.100.23 drop'

# Block an IPv4 subnet
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=198.51.100.0/24 drop'

# Block an IPv6 subnet
sudo firewall-cmd --permanent --add-rich-rule='rule family=ipv6 source address=2001:db8:bad::/48 drop'

sudo firewall-cmd --reload

Режим паники и режим блокировки

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

# Panic mode (emergency only)
sudo firewall-cmd --panic-on
sudo firewall-cmd --panic-off

# Lockdown mode
sudo firewall-cmd --lockdown-on
sudo firewall-cmd --lockdown-off

# Manage lockdown whitelist (XML or firewall-cmd helpers on newer versions)
# /etc/firewalld/lockdown-whitelist.xml

Текущее техническое обслуживание и аудит

  • Регулярно проверяйте правила: firewall-cmd --list-all и --list-rich-rules.
  • Преобразовать протестированные изменения во время выполнения в постоянные: firewall-cmd --runtime-to-permanent.
  • Проверка конфигурационных файлов после внесения изменений: firewall-cmd --check-config.
  • Создайте резервную копию конфигураций FirewallD из /etc/firewalld/.
  • Для предотвращения несоответствия правил необходимо согласовать действия с облачными межсетевыми экранами (группами безопасности AWS, группами безопасности Azure, межсетевым экраном VPC GCP).
  • Еженедельно проверяйте журналы событий; ужесточайте правила на основе анализа тенденций отклоненного трафика.

Распространенные ошибки, которых следует избегать

  • Использование iptables-services совместно с FirewallD приводит к конфликтам. Выберите один из вариантов.
  • Редактирование nftables напрямую, без использования firewall-cmd.
  • Открытие портов на постоянной основе без указания цели и владельца.
  • Забыли перезагрузить страницу после внесения необратимых изменений.
  • Внесение в белый список 0.0.0.0/0 для SSHВсегда ограничивайте доступ или используйте VPN/бастион.
  • Отключение режима запрета логирования не помогает; вы не можете отслеживать то, что не регистрируете в логах.

Пример из реальной жизни: защита веб-сервера за считанные минуты.

# 1) Confirm status and active zones
sudo systemctl is-active firewalld && sudo firewall-cmd --get-active-zones

# 2) Allow only SSH (restricted), HTTP, HTTPS
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --permanent --zone=public \
  --add-rich-rule='rule family=ipv4 source address=203.0.113.10 service name="ssh" accept'
sudo firewall-cmd --permanent --zone=public \
  --add-rich-rule='rule service name="ssh" drop'

# 3) Enable denied logging and rate-limit SSH
sudo firewall-cmd --set-log-denied=all
sudo firewall-cmd --permanent --add-rich-rule='rule service name="ssh" limit value="10/m" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule service name="ssh" drop'

# 4) Apply and verify
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
sudo firewall-cmd --list-rich-rules

# 5) Watch logs
sudo journalctl -u firewalld -f

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

1. Как проверить, запущен ли FirewallD?

Использование: systemctl status firewalld и firewall-cmd --stateЕсли он неактивен, запустите sudo systemctl enable --now firewalldЗатем проверьте зоны и правила с помощью firewall-cmd --get-active-zones и --list-all.

2. Как включить логирование отклоненных пакетов в FirewallD?

Run sudo firewall-cmd --set-log-denied=all Для регистрации всех отклоненных пакетов. Просмотр журналов с помощью journalctl -u firewalld or journalctl -k. Вы можете переключиться на unicast, broadcast или multicast для уменьшения шума.

3. В чём разница между runtime и permanent в FirewallD?

Изменения, вносимые во время выполнения, являются мгновенными, но временными; они исчезают после перезагрузки или повторной загрузки системы. Постоянные изменения сохраняются на диск и применяются после перезагрузки. firewall-cmd --reloadПреобразуйте изменения, внесенные во время выполнения, с помощью firewall-cmd --runtime-to-permanent.

4. Как мне разрешить SSH с одного IP-адреса?

Используйте расширенное правило: sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=203.0.113.10 service name="ssh" accept' последующей sudo firewall-cmd --reloadПри желании можно добавить правило сброса для всех остальных случаев. SSH попытки.

5. FirewallD лучше, чем iptables, для серверов?

Для большинства современных серверов Linux — да. FirewallD обеспечивает динамическое обновление правил, зон и абстракций служб, а в современных дистрибутивах использует nftables. Его проще безопасно поддерживать в производственной среде, чем управлять правилами iptables напрямую.

Отправить по:

Прахлад Праджапати

Пралад — специалист по веб-хостингу и эксперт по органическому росту сайтов с упором на SEO из Индии. Активно работая в цифровом пространстве с 2019 года, он помогает людям развивать свои веб-сайты с помощью эффективных и устойчивых стратегий. Увлеченный обучением и быстрой адаптацией, он считает, что мелкие детали приводят к большому успеху. Узнайте его мнение о веб-хостинге и SEO, чтобы улучшить свое присутствие в интернете.

Оставьте комментарий

Ваш электронный адрес не будет опубликован. Обязательные поля помечены * *

Наверх