Как настроить брандмауэр UFW в Ubuntu

Вчера, 13:00

Если вы только начинаете работать с VPS или VDS, важно сразу подумать о безопасности. Один из простых и надёжных способов ограничить нежелательные подключения — настроить брандмауэр. В этом гайде расскажем, как это сделать с помощью UFW — легкой утилиты для управления сетевыми правилами на Ubuntu.

Что такое UFW и зачем он нужен

UFW расшифровывается как Uncomplicated Firewall — то есть, «несложный файрвол». Он работает поверх Netfilter и поддерживает iptables и nftables. Главная его фишка — простота: всё настраивается через терминал, без необходимости ковыряться в сложных конфигурационных файлах. Эта утилита уже предустановлена во многих версиях Ubuntu, начиная с 8.04 LTS.

Как подготовить UFW к работе

По умолчанию UFW выключен после установки. Это сделано специально — чтобы вы успели задать нужные правила и не отрубили себе доступ к серверу. Поэтому перед включением нужно открыть порт SSH.
Если вы не меняли порт SSH, достаточно команды:
sudo ufw allow OpenSSH

А если порт нестандартный — замените его в команде:

sudo ufw allow 2222/tcp

Включить брандмауэр можно так:

sudo ufw enable

Как задать правила

Общий шаблон команды такой:

sudo ufw [action] from [ip] to any port [port]

Где [action] может быть:
→ allow — разрешить;

→ deny — запретить без ответа;

→ reject — запретить с ответом;

→ limit — ограничить частоту подключений (например, чтобы защититься от подбора паролей по SSH).

Открываем порты для популярных приложений

Посмотреть, какие приложения уже имеют шаблоны для UFW, можно так:

sudo ufw app list

Допустим, вы хотите разрешить полный доступ к Nginx — выполните:

sudo ufw allow "Nginx Full"

А если приложение работает на порту 9000:

sudo ufw allow 9000

Доступ к базам данных

MySQL (порт 3306):

Открыть доступ для всех:

sudo ufw allow 3306

Или только для одного IP:

sudo ufw allow from 192.0.2.10 to any port 3306

PostgreSQL (порт 5432):

Для всех:

sudo ufw allow 5432

Только для нужного адреса:

sudo ufw allow from 192.0.2.10 to any port 5432

HTTP и HTTPS

Открыть HTTP (порт 80):

sudo ufw allow 80

Открыть HTTPS (порт 443):

sudo ufw allow 443

Как удалить правило

Сначала смотрим список всех правил:

sudo ufw status numbered

Чтобы удалить, используем номер из списка:

sudo ufw delete 4

Или удаляем правило напрямую:

sudo ufw delete from 123.123.123.123 port 35 proto tcp

Как отключить UFW

Если временно нужно отключить брандмауэр, выполните:

sudo ufw disable

Вот и всё. Теперь ваш сервер стал чуть безопаснее. А главное — всё это можно сделать за пару минут, не будучи экспертом в сетевой безопасности.