Перейти к основному содержимому
UFW

UFW

Подготовка к работе с UFW

Для начала работы с UFW нужен пользователь, у которого есть права на исполнение команд под sudo.

Установить UFW можно командой:

sudo apt install ufw

Проверка состояния

Проверить состояние UFW в любой момент можно с помощью команды:

sudo ufw status verbose

По умолчанию UFW отключен:

Status: inactive

Если UFW включен, то в консоли будут перечисляться заданные правила.

Пример

Например, настроено SSH (порт 22) соединение из любой точки мира:

Status: active

Logging: on (low)

Default: deny (incoming), allow (outgoing), disabled (routed)

New profiles: skip



To Action From

-- ------ ----

22 ALLOW IN Anywhere

22 (v6) ALLOW IN Anywhere (v6)
к сведению

Рекомендуем провести начальную настройку перед включением UFW. В частности, должен быть доступен SSH(22 порт), чтобы не потерять доступ к серверу.

Начальная настройка

По умолчанию UFW-настройки запрещают все входящие соединения и разрешают все исходящие.

примечание

Это значит, что если кто-то попытается получить доступ к серверу, он не сможет подключиться, в то время как любое приложение на сервере имеет доступ к внешним соединениям.

Cоответствующие правила файрвола прописываются так:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Добавление правила для SSH-соединений

Чтобы разрешить входящие SSH-соединения, нужно выполнить команду:

sudo ufw allow ssh

SSH демон прослушивает 22 порт. UFW знает об именах распространенных служб (ssh, sftp, http, https), поэтому их можно использовать вместо номера порта.

Если SSH-демон использует другой порт, необходимо указать его в явном виде, например:

sudo ufw allow 2222

Когда межсетевой экран настроен, можно включать его.

Запуск UFW

Чтобы включить UFW, нужно ввести команду:

sudo ufw enable

Будет примерное предупреждение:

Command may disrupt existing ssh connections. Proceed with operation (y|n)? 

Это означает, что запуск этого сервиса может разорвать текущее ssh соединение. Но если ssh добавлен в правила, этого не произойдет и тогда можно согласиться — (y).

Добавление правил для других подключений

Чтобы приложения работали корректно, необходимо добавить другие правила.

HTTP (80 порт) для работы незашифрованных веб-серверов:

  • sudo ufw allow http
  • sudo ufw allow 80

HTTPS (443 порт) для зашифрованных соединений:

  • sudo ufw allow https
  • sudo ufw allow 443

FTP (21 порт) для незашифрованной передачи файлов:

  • sudo ufw allow 21/tcp
  • sudo ufw allow ftp

Добавление диапазонов портов:

  • sudo ufw allow 3000:3100
  • sudo ufw allow 3000:3100/tcp — с указанием протокола tcp
  • sudo ufw allow 3000:3100/udp — с указанием протокола upd

Добавление IP-адресов

В этом примере указанному адресу разрешается доступ ко всем портам сервера:

sudo ufw allow from 123.45.67.89

Если нужен доступ к конкретному порту:

sudo ufw allow from 123.45.67.89 to any port 22

Аналогично с диапазонами IP-адресов:

  • 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

Удаление правил

Существует два способа удаления правил:

  • по номеру правила
  • с указанием фактического правила

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

sudo ufw status numbered
Пример ответа
Status: active




To Action From

-- ------ ----

[ 1] 22 ALLOW IN Anywhere

[ 2] 80 ALLOW IN Anywhere

[ 3] 22 (v6) ALLOW IN Anywhere (v6)

[ 4] 80 (v6) ALLOW IN Anywhere (v6)

Далее нужно выполнить команду ufw delete с указанием номера правила, которое следует удалить:

sudo ufw delete 2

Отключение UFW и сброс правил

Отключить UFW можно командой:

sudo ufw disable

В результате ее выполнения все созданные ранее правила утратят силу.

Если требуется сбросить текущие настройки, есть команда:

sudo ufw reset

В результате ее выполнения все правила будут отключены и удалены.

Логи

В UFW есть опция сохранения логов — журнал событий. Команда запуска:

sudo ufw logging on

UFW поддерживает несколько уровней логирования:

  • off: отключен
  • low: регистрирует все заблокированные пакеты, не соответствующие заданной политике (с ограничением скорости), а также пакеты, соответствующие зарегистрированным правилам
  • medium: low, плюс все разрешенные пакеты, не соответствующие заданной политике, все недопустимые пакеты, и все новые соединения, все записи ведутся с ограничением скорости
  • high: medium, плюс все пакеты с ограничением скорости
  • full: high, но без ограниения скорости

Чтобы задать уровень, нужно указать его как параметр:

sudo ufw logging high

По умолчанию используется уровень low.

Для просмотра файлов относящихся с логам UFW используйте команду:

ls /var/log/ufw