Настройка файрвола в Ubuntu с помощью UFW на серверах UFO.Hosting

В этой статье разберем основные команды и принципы работы с утилитой UFW (Uncomplicated Firewall) для защиты вашего сервера Ubuntu.
Зачем нужен файрвол
Серверы регулярно подвергаются сканированию и атакам. Из-за этого может возникнуть утечка данных или сбои в работе веб-приложений, и все это из-за некорректной защиты. Поэтому настройка UFW поможет ограничить доступ к серверу и снизить риски.
Предварительные требования для работы
Для начала, необходимо обновить список пакетов, чтобы система получила актуальную версию UFW:
-
sudo apt-get update
-
sudo apt-get install ufw
На большинстве серверов с Ubuntu утилита UFW уже предустановлена. Проверить ее наличие можно с помощью команды:
ufw --version
Если её нет, установите ее с помощью команды:
sudo apt-get install ufw
Разрешение SSH-соединений
Перед включением UFW убедитесь, что у вас есть SSH- доступ, иначе вы потеряете подключение к серверу. Если сомневаетесь — разрешите SSH заранее.
sudo ufw allow ssh
UFW понимает названия стандартных сервисов (ssh, sftp, http, https). Если SSH использует другой порт, замените ssh на номер порта:
sudo ufw allow 2222
Как включить UFW
Выполните команду:
sudo ufw enable
Вы увидите предупреждение:
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
Так как SSH уже разрешен, нажмите y.
Разрешение других подключений
HTTP (порт 80)
sudo ufw allow http
или
sudo ufw allow 80
Если вы запускаете веб-сервер, без этого правила браузеры не смогут подключаться.
HTTPS (порт 443)
sudo ufw allow https
или
sudo ufw allow 443
Для безопасного соединения через SSL/TLS добавьте это правило.
FTP (порт 21)
sudo ufw allow ftp
или
sudo ufw allow 21/tcp
Если сервер использует FTP для передачи файлов, разрешите этот порт. Для SFTP отдельные правила не нужны, так как он использует SSH.
Как работать с диапазонами портов
Если приложение использует несколько портов (например, 3000–3100):
sudo ufw allow 3000:3100
sudo ufw allow 3000:3100/tcp
sudo ufw allow 3000:3100/udp
Указывайте протокол, если это важно для работы сервиса (TCP для веб, UDP для игр или VoIP).
Как разрешить доступ для конкретных IP
Разрешить доступ конкретному IP:
sudo ufw allow from 123.45.67.89
Разрешение работает ко всем портам сервера. Если нужен доступ только к определенному порту:
sudo ufw allow from 123.45.67.89 to any port 22
Также можно разрешить целую подсеть:
sudo ufw allow from 123.45.67.89/24
sudo ufw allow from 123.45.67.89/24 to any port 22
Как запретить соединения
Запретить HTTP:
sudo ufw deny http
Запретить соединения с конкретного IP:
sudo ufw deny from 123.45.67.89
Используйте эти команды, если хотите ограничить доступ к серверу для определенных сервисов или IP.
Как удалить правила
По номеру
sudo ufw status numbered
sudo ufw delete 2
По фактическому правилу
sudo ufw delete allow http
sudo ufw delete allow 80
Для начала проверьте список правил, чтобы случайно не удалить нужное подключение.
Как отключить и сбросить UFW
Для этого необходимо отключить файрвол:
sudo ufw disable
Сбросить все правила:
sudo ufw reset
После сброса все подключения будут разрешены только по умолчанию. Используйте осторожно.
Логи UFW
Включить логирование:
sudo ufw logging on
Уровни логов:
- off — это все, что выключено
- low — обозначает заблокированные пакеты и разрешенные по правилам
- medium — все новые соединения и недопустимые пакеты
- high — как medium, плюс ограничение скорости
- full — полный лог без ограничений
Пример:
sudo ufw logging high
Посмотреть файлы логов:
ls /var/log/ufw*
Логи помогают отслеживать попытки подключения и выявлять подозрительный трафик.
Заключение
После настройки UFW сервер защищен базовыми правилами.
- Проверьте, что все нужные приложения имеют доступ к своим портам
- Заблокируйте ненужные подключения
- Введите логи, чтобы отслеживать подозрительные действия
Даже минимальная настройка значительно снижает риски проникновения и помогает вашему серверу работать безопасно на UFO.Hosting.