Разъясним основы работы с утилитой ufw на VPS под управлением Linux.
UFW (Uncomplicated Firewall) представляет собой самый простой и довольно популярный инструментарий командной строки для настройки и управления брандмауэром в дистрибутивах Ubuntu и Debian. Корректно работающий брандмауэр является наиболее важной частью полной безопасности системы Linux. UFW предназначен для базовых настроек, в то время как iptables позволит сделать более сложные настройки.
Первоначальные требования
Для настройки firewall с помощью ufw следует подключиться к серверу с правами суперпользователя.
Не рекомендуется использовать одновременно два инструмента для настройки firewall – следите, чтобы на сервере по умолчанию не был включен iptables. В противном случае будет применено последнее созданное правило.
Установка и проверка статуса
Если по умолчанию на виртуальном сервере ufw не установлена, используйте Ваш пакетный менеджер:
sudo apt install ufw
Проверьте текущий статус и выведите все текущие правила с помощью такой команды:
sudo ufw status verbose
Так, в выключенном состоянии появится следующее сообщение:
Status: inactive
Включите firewall с помощью такой команды:
sudo ufw enable
Ответьте на вопрос диалоговом окне:
Command may disrupt existing ssh connections.
Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Внимание: если у вас все же пропало соединение с сервером при настройке Firewall, подключитесь к нему через web-консоль в панели управления.
И ufw будет активен:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
sudo ufw disable
Политики по умолчанию
Брандмауэр UFW по умолчанию отклоняет все входящие соединения и разрешает только исходящие подключения к серверу. Поэтому никто не может получить доступ к вашему серверу без особого открытия порта с вашей стороны, а все работающие службы или приложения на вашем сервере получают доступ к внешней сети.
По умолчанию политики безопасности располагаются в файле /etc/default/ufw и могут быть изменены следующей командой:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Первое правило запрещает все входящие подключения, второе разрешает исходящие.
Профили приложений
Установка программного пакета ufw с использованием диспетчера пакетов будет включать в себя профили приложений, находящихся в каталоге /etc/ufw/applications.d. Каталог определяет приложение или службу и соответствующие им настройки безопасности (в том числе открытые или закрытые порты).
Создание профилей осуществляется вручную. Просмотрите созданные профили так:
sudo ufw app list
На только что созданном VPS Вы скорее всего увидите только профиль для OpenSSH:
Available applications:
OpenSSH
Более подробно всю информацию можно просмотреть при помощи команды:
sudo ufw app info '<название_ПО>'</название_ПО>
Например:
sudo ufw app info 'OpenSSH'
В результате Вы получите:
Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.
Port:
22/tcp
Перейдите в директорию для создания профиля приложения:
cd /etc/ufw/applications.d
Теперь создайте текстовый файл с любым названием и вставьте в него строки:
[<название_профиля>]
title=<заголовок>
description=<краткое описание>
ports=<список портов>/<протокол>
Например:
[App1]
title=Text editor
description=Most popular open source application for editing text.
ports=53,80,5223,16393:16472/udp
Для того чтобы файл был виден брандмауэру, следует его перезагрузить:
ufw reload
Теперь запретите или разрешите доступ профилю:
ufw <allow/deny> <название_профиля>
Например:
ufw allow App1
Работа с портами
Чтобы открыть порты, воспользуйтесь ключевым словом allow.
А такая команды позволит открыть порт для входящих подключений:
sudo ufw allow <порт>/<протокол>
Например:
sudo ufw allow 1234/tcp
Вы можете открывать порты по именам конкретных сервисов, например:
sudo ufw allow http
Внимание: данное правило неприменимо, если сервер использует порт не по умолчанию!
ufw также позволяет открывать или закрывать промежуток портов:
sudo ufw allow <портN>:<портM>/<протокол>
Например:
sudo ufw allow 5000:5003/udp
Для закрытия портов применяйте ключевое слово deny. Синтаксис ufw остается аналогичным, только allow заменяется на deny. Например, для закрытия порта подойдет такая команда:
sudo ufw deny <порт>/<протокол>
Например:
sudo ufw deny 1234/tcp
Работа с IP-адресами
Для разрешения соединения ко всем портам сервера с конкретного IP-адреса можно использовать эту команду:
sudo ufw allow from <IP-адрес>
Например:
sudo ufw allow from 111.111.111.111
Кроме того, можно разрешить подключение к конкретному порту с определенного IP-адреса:
sudo ufw allow from <IP-адрес> to any port <порт>
Например:
sudo ufw allow from 111.111.111.111 to any port 22
Чтобы запретить подключение, используйте ключевое слово deny:
sudo ufw deny from <IP-адрес>
Например:
sudo ufw deny from 111.111.111.111
Как работать с подсетью
Утилита ufw позволяет разрешить получение трафика со всей подсети с помощью нотации CIDR:
sudo ufw allow from <подсеть>
Например:
sudo ufw allow from 192.168.1.0/24
Кроме этого, вы можете направить трафик с подсети на конкретный порт:
sudo ufw allow from <подсеть> to any port <порт>
Например:
sudo ufw allow from 192.168.1.0/24 to any port 22
Примечание: чтобы запретить эти правила, используйте ключевое слово deny.
Работа с сетевым интерфейсом
ufw также позволяет настроить подключение к конкретному порту определенного интерфейса:
sudo ufw allow in on <имя интерфейса> to any port <порт>
Например:
sudo ufw allow in on eth2 to any port 22
Внимание: Вы можете просмотреть имена всех интерфейсов сервера при помощи команды ifconfig -a.
Как удалять правила
Для удаления правил следует вывести нумерованный список актуальных правил:
sudo ufw status numbered
Удалите ненужные правила под определенным номером:
sudo ufw delete <номер_правила>
Например:
sudo ufw delete 1
Также Вы можете удалить правило ключевым словом delete, например:
sudo ufw delete allow 443
techsupport@cloudlite.ru - служба техподдержки
sales@cloudlite.ru - вопросы по услугам, оплате, документам и партнерству
partner@cloudlite.ru - партнерская программа