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

    Команда Simple-Server
    03.06.2026
    7 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Кратко о задаче

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

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

    То же понадобится сделать, если используется другой релиз 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. Это выполняется командой:

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

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

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

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

    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 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:

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

    sudo ufw deny from 117.35.14.73

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

    1. Ввести команду:
    sudo ufw status numbered
    1. На экране появится сообщение:
    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)
    1. Выполнить команду удаления
    sudo ufw delete 3 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)

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

    sudo ufw delete allow https sudo ufw delete allow 443

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

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

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


    Нужен сервер для практики? Закажите VPS на Simple-Server — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация? Посмотрите все доступные тарифы

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны