UFW: настройка файрвола в Linux простыми словами
iptables мощный, но я не хочу держать в голове его синтаксис ради простой задачи — открыть пару портов и закрыть остальное. UFW даёт тот же результат человеческими командами. Это надстройка над iptables, которая делает настройку файрвола понятной.
Установка
sudo apt update && sudo apt install ufw -y
Проверяю статус:
sudo ufw status
Если выключен — включаю:
sudo ufw enable
Первое правило — разрешить SSH
Это критично сделать перед включением файрвола с политикой "запретить всё". Иначе потеряешь доступ к серверу:
sudo ufw allow ssh
Или явно по порту:
sudo ufw allow 22/tcp
Базовые правила
Разрешить веб-трафик:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Запретить весь входящий трафик по умолчанию:
sudo ufw default deny incoming
Разрешить весь исходящий:
sudo ufw default allow outgoing
Эта пара — основа любой настройки файрвола: закрыть всё на вход, открывать только то, что нужно.
Доступ по SSH только со своего IP
Если сервер не публичный и подключаешься только из дома или офиса — стоит ограничить доступ по IP. Сначала узнаю свой адрес:
curl -s icanhazip.com
Затем разрешаю порт только для него:
sudo ufw allow from YOUR_IP to any port PORT comment "allow from home"
Если сервис в Docker-контейнере — нужно правило route:
sudo ufw route allow from YOUR_IP to any port PORT comment "allow from home docker"
Другие порты
Например, для приложения на 8080:
sudo ufw allow 8080/tcp
Запретить порт:
sudo ufw deny 3306/tcp # MySQL — не должен торчать наружу
Удалить правило:
sudo ufw delete allow 80/tcp
Управление правилами
Посмотреть список с номерами — удобно для удаления:
sudo ufw status numbered
Удалить по номеру:
sudo ufw delete 1
Проверка состояния
Подробный статус со всеми правилами:
sudo ufw status verbose
Сброс и отключение
Полный сброс всех правил:
sudo ufw reset
Отключение файрвола:
sudo ufw disable
Логирование
Включить логи:
sudo ufw logging on
Посмотреть:
sudo cat /var/log/ufw.log
Полезно, когда нужно понять, что именно блокируется и откуда идёт трафик.
Профили приложений
У некоторых сервисов есть готовые профили с нужными портами — не нужно вспоминать, что именно открывать. Список доступных:
sudo ufw app list
Разрешить трафик для приложения, например Samba:
sudo ufw allow Samba
Ограничить доступ конкретной сетью:
sudo ufw allow from 192.168.0.0/24 to any app Samba
После любых изменений — проверь, что нужные сервисы остались доступны. Особенно если правишь правила удалённо: одна неверная команда — и SSH-сессия обрывается без возможности вернуться.
Регулярно проверяй текущие правила:
sudo ufw status verbose
UFW — простой и эффективный способ защитить сервер. Главное — настроить под свои задачи и не забывать пересматривать правила со временем.
Если хочешь обсудить похожую задачу — пиши на [email protected] или заходи на 1it.pro.