Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

Настройка фаервола в Ubuntu с помощью утилиты UFW

Команда Timeweb Cloud
Команда Timeweb Cloud
Наши инженеры, технические писатели, редакторы и маркетологи
28 января 2022 г.
1585
7 минут чтения
Средний рейтинг статьи: 5

Грамотная настройка политики работы межсетевого экрана – основа безопасности в операционной системе и отдельно взятых приложениях. С этой целью на платформе Ubuntu используют модуль UFW (Uncomplicated Firewall). Это средство настройки брандмауэра IPTables. По умолчанию он неактивен. Работать с приложением можно как через консоль, так и в графическом интерфейсе Gufw, который подключается дополнительно.

Без использования сетевого экрана пользователь рискует потерей денег, персональных данных или даже превращением сервера (локальной машины) в часть ботнета, рассылающего спам. Включение брандмауэра не исключает вероятности успешных хакерских атак, зато гарантированно отсекает большую часть запросов со стороны недоброжелателей. Поэтому есть смысл сразу после инсталляции операционной системы Linux включать сетевую защиту.

Настройка Фаервола В Ubuntu С Помощью Утилиты Ufw

Подготовка к настройке

Первое, что понадобится для работы с Firewall Ubuntu – это авторизоваться в системе в качестве суперпользователя. Без этого невозможно выполнение команд под sudo. Второй шаг заключается в проверке, есть ли вообще указанная утилита на компьютере. По умолчанию она предустановлена вместе с Ubuntu, но лучше убедиться в ее наличии. Вводим:

sudo ufw status verbose

В ответ система выдаст Status: inactive. Все верно, утилита имеется, но находится в неактивном состоянии. Если ответ какой-то иной, нужно инсталлировать ПО вручную. Для этого внесем:

sudo apt-get install ufw

То же понадобится сделать, если используется другой релиз Linux. Например, в Debian приложение не входит в стандартную поставку. Пока операционная система никак не защищена, удаленному пользователю легко открыть любой порт Ubuntu. Иногда приходится работать с компьютером, на котором ранее уже проводилась настройка UFW. Тогда при запросе текущего статуса приложения в консоли начнут перечисляться заданные правила.

Например, на экране высветится сообщение:

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)

Оно означает, что брандмауэр был ранее активирован и настроен для подключения через протокол SSH с использованием порта 22. Подобную проверку желательно проводить и после изменения параметров, чтобы убедиться в доступности сервера до завершения текущего сеанса и в дальнейшем без проблем подключаться к нему для продолжения работы.

Первоначальная настройка

Сразу после активации сетевой экран автоматически настроен на запрет абсолютно всех входящих соединений. В то же время разрешены все без исключения исходящие, инициированные хоть самим пользователем, хоть какой-либо программой. Решение объяснимо – чаще атаки имеют «внешний» характер, а только что установленная операционная система Ubuntu чиста на предмет вирусов, если при выборе дистрибутива пользовались официальными репозиториями.

Правила для закрытия входящих и открытия исходящих активируются так:

sudo ufw default deny incoming
sudo ufw default allow outgoing

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

sudo ufw allow ssh

По умолчанию все приложения, использующие такой канал соединения, используют порт 22. UFW знает имена распространенных служб – SSH, SFTP, HTTP, HTTPS, поэтому в приведенном примере внесено именно название, а не номер порта. С другой стороны, система позволяет включить коннект через нестандартный «канал». Тогда команда поменяется:

sudo ufw allow 443

Теперь пользователь явно указал SSH-демону, чтобы тот прослушивал порт 443, а не стандартный 22. Подобный шаг позволяет усилить защиту сервера, если, например, существуют риски утраты паролей или с одной локальной машины работают несколько человек, занимающихся настройкой и администрированием разных удаленных компьютеров.

После ввода перечисленных команд можно запускать Firewall Linux. Это осуществляется так:

sudo ufw enable

После ввода на экран выводится предупреждение:

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

Оно означает, что запуск утилиты приведет к принудительному завершению открытых соединений. На этом шаге важно убедиться, что соединение по SSH действительно было разрешено. Иначе при согласии (нажатие Y) будет заблокирована и эта возможность. Если все в порядке, пользователю остается согласиться с запуском и начать работать с уже защищенным сервером.

О дополнительных правилах

Помимо соединения по SSH-каналу, востребована возможность подключиться к удаленной машине по протоколам HTTP (по умолчанию 80 порт), HTTPS (443 порт), FTP (21 порт). Первый нужен для работы сайтов без сертификата SSL, второй уже применяют при подключении криптографической защиты домена, а третий – для передачи данных через стандартные файловые менеджеры.

Инициирование функции Open Port в UFW Ubuntu всегда одинаково. Включение доступа по протоколу HTTP:

sudo ufw allow http

или

sudo ufw allow 80

Аналогично для HTTPS:

sudo ufw allow https

или

sudo ufw allow 443

Для протокола FTP:

sudo ufw allow ftp

или:

sudo ufw allow 21/tcp

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

sudo ufw allow 4000:4500

или

sudo ufw allow 4000:4500/tcp
sudo ufw allow 4000:4500/udp

Второй вариант подходит для случаев, когда нужно ограничить доступ конкретными протоколами, чтобы снизить риски подключения по остальным. Если политика организации предполагает такой подход, есть смысл перейти и на ручное указание IP-адресов, для которых разрешено соединение с сервером. Пример:

sudo ufw allow from 117.35.14.73

Объединенный вариант, включающий и конкретный IP, и нужный порт, выглядит так:

sudo ufw allow from 117.35.14.73 to any port 22

При необходимости указания диапазона разрешенных IP-адресов команда чуть видоизменится:

sudo ufw allow from 117.35.14.73/90
sudo ufw allow from 117.35.14.73/90 to any port 22

Об ограничениях

Возникают ситуации, когда от администратора требуют ограничить ранее предоставленный доступ. Например, при смене провайдера вместе с выделенными IP-адресами. В этом случае прибегают к двум вариантам – отключить отдельные протоколы-порты или вообще удалить все правила, а затем заново настроить систему под новые параметры.

Пример с отключением протокола HTTPS:

sudo ufw deny http

Или с блокировкой конкретного IP-адреса:

sudo ufw deny from 117.35.14.73

При удалении правил можно воспользоваться возможностью выбрать конкретный номер, чтобы все остальные остались без изменений, и полностью «избавиться» от старых настроек. Первый способ выглядит следующим образом:

  1. Ввести команду:
    sudo ufw status numbered
  2. На экране появится сообщение:
    Status: active
    To Action From
    22 ALLOW IN Anywhere
    80 ALLOW IN Anywhere
    22 (v6)  ALLOW IN Anywhere (v6)
    80 (v6)  ALLOW IN Anywhere (v6)
  3. Выполнить команду удаления
    sudo ufw delete 3

Второй вариант относится к конкретным протоколам, когда отменяются все ранее установленные для них диапазоны портов, IP-адресов. Выглядит команда так:

sudo ufw delete allow https

или

sudo ufw delete allow 443

В крайнем случае можно прибегнуть к полному отключению брандмауэра. Например, при поиске причины неработоспособности облачной программы, сайта, иного сервиса. Команда деактивации:

sudo ufw disable

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

sudo ufw reset

После такой операции перед перезагрузкой Ubuntu или завершением сеанса надо обязательно настроить соединение хотя бы по SSH-каналу. Это подходит для ситуаций, когда компьютер настраивался «неизвестно кем и как» и проще все настроить с нуля, чем разбираться с действующими допусками по удаленному соединению с сервером.

Заключение

В статье мы перечислили основные возможности по настройке брандмауэра, которые пригодятся любому пользователю, хоть новичку, хоть опытному. Применение сетевого экрана считается обязательным для корпоративных серверов на timeweb.cloud и желательно для домашних машин, которые также иногда подвергаются хакерских атакам.

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону