Настройка межсетевого экрана (Firewall) для выделенного сервера

Межсетевой экран (firewall) — один из самых важных элементов безопасности выделенного сервера. Он контролирует входящий и исходящий трафик, разрешая или блокируя доступ к сервисам на основе заданных правил. Правильная конфигурация фаервола поможет защитить сервер от несанкционированного доступа, DDoS-атак, сканирования портов и прочего.

🔧 Что нужно знать перед настройкой:

  • Какие сервисы запущены на сервере (SSH, HTTP, HTTPS, FTP, почта и т.д.)
  • Какие порты они используют
  • Откуда должен быть доступ (все IP, только офис, VPN и т.д.)

🛡️ Основные типы фаерволов:

  • iptables / nftables — системные фаерволы в Linux
  • firewalld — удобная надстройка для CentOS, AlmaLinux, Rocky
  • ufw (Uncomplicated Firewall) — простая утилита для Ubuntu/Debian
  • CSF (ConfigServer Security & Firewall) — популярный фаервол для Plesk/cPanel
  • Панельные интерфейсы — в Plesk, cPanel, HestiaCP часто есть графический интерфейс для управления фаерволом

⚙️ Базовая конфигурация фаервола

1. UFW (Ubuntu / Debian)

sudo apt install ufw

sudo ufw default deny incoming
sudo ufw default allow outgoing

# Разрешить доступ к основным сервисам
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

# Включить фаервол
sudo ufw enable

# Проверить статус
sudo ufw status

2. firewalld (AlmaLinux, Rocky, CentOS)

sudo systemctl enable firewalld --now

# Проверить активные зоны
sudo firewall-cmd --get-active-zones

# Добавить правила
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https

# Применить изменения
sudo firewall-cmd --reload

# Проверить активные правила
sudo firewall-cmd --list-all

3. iptables (универсальный вариант)

# Политика по умолчанию
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Разрешить loopback и установленные соединения
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Разрешить доступ к портам
iptables -A INPUT -p tcp --dport 22 -j ACCEPT    # SSH
iptables -A INPUT -p tcp --dport 80 -j ACCEPT    # HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT   # HTTPS

# Сохранить правила
sudo iptables-save > /etc/iptables/rules.v4

⚠️ Важно: по умолчанию iptables/ufw/firewalld могут блокировать весь трафик. Обязательно разрешайте SSH-доступ перед активацией, чтобы не потерять связь с сервером.

🔐 Рекомендуемые порты для открытия:

СервисПротоколПорт
SSHTCP22
HTTPTCP80
HTTPSTCP443
PleskTCP8443
cPanelTCP2083
FTPTCP21
SMTPTCP25 / 587 / 465
IMAP/POP3TCP143 / 993 / 110 / 995