Настройка межсетевого экрана (Firewall) для выделенного сервера
Как настроить 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-доступ перед активацией, чтобы не потерять связь с сервером.
🔐 Рекомендуемые порты для открытия:
Сервис | Протокол | Порт |
---|---|---|
SSH | TCP | 22 |
HTTP | TCP | 80 |
HTTPS | TCP | 443 |
Plesk | TCP | 8443 |
cPanel | TCP | 2083 |
FTP | TCP | 21 |
SMTP | TCP | 25 / 587 / 465 |
IMAP/POP3 | TCP | 143 / 993 / 110 / 995 |