Грамотная настройка политики работы межсетевого экрана – основа безопасности в операционной системе и отдельно взятых приложениях. С этой целью на платформе Ubuntu используют модуль UFW (Uncomplicated Firewall). Это средство настройки брандмауэра IPTables. По умолчанию он неактивен. Работать с приложением можно как через консоль, так и в графическом интерфейсе Gufw, который подключается дополнительно.
Без использования сетевого экрана пользователь рискует потерей денег, персональных данных или даже превращением сервера (локальной машины) в часть ботнета, рассылающего спам. Включение брандмауэра не исключает вероятности успешных хакерских атак, зато гарантированно отсекает большую часть запросов со стороны недоброжелателей. Поэтому есть смысл сразу после инсталляции операционной системы Linux включать сетевую защиту.
cloud
Первое, что понадобится для работы с 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. Это осуществляется так:
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
При удалении правил можно воспользоваться возможностью выбрать конкретный номер, чтобы все остальные остались без изменений, и полностью «избавиться» от старых настроек. Первый способ выглядит следующим образом:
sudo ufw status numbered
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)
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 и желательно для домашних машин, которые также иногда подвергаются хакерских атакам.