Что такое UFW и как им пользоваться? Управление firewall в Linux
Открытие/закрытие портов, IP-whitelist, rate limit и интеграция с fail2ban в Linux через UFW (Uncomplicated Firewall).
iptables кажется сложным? UFW (Uncomplicated Firewall) — стандарт на Ubuntu/Debian, «iptables с человеческим лицом». Несколько команд — и на сервере работает firewall, открыты только нужные порты. В гиде — основы и практика UFW.
Почему firewall обязателен?
Каждый открытый порт — поверхность атаки. На стандартной Linux-установке даже неактивные сервисы могут быть доступны. Firewall пропускает только нужное.
Установка UFW
В Ubuntu предустановлен. Иначе:
sudo apt update && sudo apt install ufw -y
AlmaLinux/RHEL — не UFW, а firewalld.
Основы
sudo ufw status # статус
sudo ufw status verbose # детально
sudo ufw enable # включить
sudo ufw disable # выключить
sudo ufw reset # СБРОС всех правил
КРИТИЧНО: не закройте SSH!
Перед enable обязательно разрешите SSH — иначе закроете сам себе доступ!
sudo ufw allow 22/tcp
# или кастомный порт:
sudo ufw allow 2222/tcp
Затем:
sudo ufw enable
Часто открываемые порты
# HTTP / HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Mail
sudo ufw allow 25,465,587,993,995/tcp
# FTP
sudo ufw allow 21/tcp
sudo ufw allow 990/tcp
# MySQL (только с конкретного IP)
sudo ufw allow from 1.2.3.4 to any port 3306
# По имени сервиса
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
Разрешение / запрет по IP
sudo ufw allow from 1.2.3.4
sudo ufw allow from 1.2.3.4 to any port 22
sudo ufw allow from 192.168.1.0/24
sudo ufw deny from 5.6.7.8
Закрытие порта / удаление правила
sudo ufw status numbered
sudo ufw delete 3
sudo ufw delete allow 80/tcp
Rate-limit (защита от брутфорса)
Встроенное ограничение UFW — банит при более чем 6 соединениях за 30 секунд:
sudo ufw limit 22/tcp
Золотое правило для SSH — простая альтернатива fail2ban.
Только Cloudflare (для веб-серверов)
Доступ только через Cloudflare:
sudo ufw deny 80/tcp
sudo ufw deny 443/tcp
for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
sudo ufw allow from $ip to any port 80,443 proto tcp
done
Подробно — в посте про DDoS.
Логирование
sudo ufw logging on
sudo ufw logging high
sudo tail -f /var/log/ufw.log
Интеграция с fail2ban
UFW + fail2ban = двойная защита от брутфорса:
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
/etc/fail2ban/jail.local:
[sshd]
enabled = true
port = 22
maxretry = 3
bantime = 3600
banaction = ufw
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd
Частые ошибки
- Забыли SSH перед enable: заблокировались → подключайтесь через VNC-консоль KavesNET
- Конфликт с Plesk: Plesk управляет своим firewall → либо Plesk, либо UFW. См. пост Plesk
- Игнор IPv6: проверьте
IPV6=yesв/etc/default/ufw - Default deny incoming: у новых установок default-deny — для каждого сервиса явный allow
Quick-start
Типовая конфигурация для нового VDS:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw limit 22/tcp
sudo ufw enable
sudo ufw status verbose
5 строк безопасной базовой firewall.
По теме: Подключение по SSH · Защита от DDoS
Похожие статьи
Возможно, вас также заинтересует.
Правило 3-2-1: как никогда не терять данные сервера
Правило резервного копирования 3-2-1 — золотой стандарт стратегии бэкапа сервера. Разбираем правило, автоматизацию и инфраструктуру KavesNET.
Читать далее
Как мигрировать сайт с Plesk на Plesk: гид по Migrator
Перенос сайтов, почты, БД и DNS за один раз с Plesk Migrator. Настройка, тест-миграция и cutover.
Читать далее
FileZilla: миграция файлов между двумя VDS
Перенос сайта со старого на новый VDS: FileZilla по FTP/SFTP, советы по скорости, права и обработка ошибок.
Читать далее