Если вы новичок в Linux, вы, возможно, слышали о UFW или Uncomplicated Firewall. Как следует из названия, UFW – это простой и удобный инструмент, который позволяет вам управлять брандмауэром Linux.
В этой статье мы рассмотрим некоторые основные возможности UFW и объяснения, которые помогут вам начать работу.
Что такое брандмауэр?
Брандмауэр – это система сетевой безопасности, которая отслеживает и контролирует входящий и исходящий сетевой трафик на основе заранее установленных правил безопасности. Он действует как барьер между вашим компьютером или сетью и Интернетом или другими сетями.
Зачем использовать UFW?
UFW – это внешний интерфейс для iptables
брандмауэра, предустановленного в большинстве дистрибутивов Linux. Он упрощает процесс управления брандмауэром, предоставляя удобный интерфейс командной строки.
UFW Essentials
Установка
UFW предустановлен в большинстве дистрибутивов Linux. Однако если он не установлен в вашей системе, вы можете установить его с помощью следующей команды:
$ sudo apt-get install ufw
Основной синтаксис
Основной синтаксис UFW выглядит следующим образом:
$ sudo ufw [option] [allow/deny] [port/protocol]
Вот разбивка синтаксиса:
sudo
– позволяет выполнить команду с привилегиями rootufw
– команда UFW[option]
– дополнительные опции, такие как включение, отключение, статус, сброс, перезагрузка[allow/deny]
– разрешить или запретить трафик[port/protocol]
– номер порта и/или протокола, которые необходимо разрешить или запретить
Проверка состояния
Чтобы проверить состояние UFW, выполните следующую команду:
$ sudo ufw status
Это покажет вам текущий статус UFW и правила, которые действуют в данный момент.
Включение и отключение UFW
Чтобы включить UFW, выполните следующую команду:
$ sudo ufw enable
Чтобы отключить UFW, выполните следующую команду:
$ sudo ufw disable
Политики по умолчанию
Когда вы включаете UFW, политики по умолчанию устанавливаются так, чтобы запретить весь входящий трафик и разрешить весь исходящий. Политики по умолчанию можно изменить с помощью следующих команд:
$ sudo ufw default allow [incoming/outgoing]
$ sudo ufw default deny [incoming/outgoing]
Разрешение и запрет трафика
Чтобы разрешить трафик на определенный порт, выполните следующую команду:
$ sudo ufw allow [port/protocol]
Чтобы запретить трафик на определенный порт, выполните следующую команду:
$ sudo ufw deny [port/protocol]
Блокировать IP-адрес
Чтобы заблокировать все сетевые подключения, исходящие с определенного IP-адреса, выполните следующую команду, заменив выделенный IP-адрес на IP-адрес, который вы хотите заблокировать:
$ sudo ufw deny from 192.168.10.224
OutputRule added
В этом примере, from 192.168.10.224
указывает источник IP-адрес “192.168.10.224”.
Если вы запустите sudo ufw status
сейчас, вы увидите, что указанный IP-адрес занесен в список запрещенных:
OutputStatus: active
To Action From
-- ------ ----
Anywhere DENY 192.168.10.224
Все соединения, входящие и исходящие, заблокированы для указанного IP-адреса.
Вы также можете блокировать соединения из целой подсети, указав соответствующую маску подсети для хоста, например 192.168.10.0/24
.
Разрешить IP-адрес
Чтобы разрешить все сетевые подключения, исходящие с определенного IP-адреса, выполните следующую команду, заменив выделенный IP-адрес на IP-адрес, к которому вы хотите разрешить доступ:
$ sudo ufw allow from 192.168.10.224
OutputRule added
Если вы выполните sudo ufw status
теперь, вы увидите вывод, похожий на этот, показывающий слово ALLOW
рядом с IP-адресом, который вы только что добавили.
OutputStatus: active
To Action From
-- ------ ----
...
Anywhere ALLOW 192.168.10.224
Вы также можете разрешить соединения из целой подсети, указав соответствующую маску подсети для хоста, например 192.168.10.0/24
.
Удалить правило UFW
Чтобы удалить правило, которое вы ранее настроили в UFW, используйте ufw delete
после которого следует правило (allow
или deny
) и спецификацию цели. Следующий пример удалит правило, ранее установленное на разрешение всех соединений с IP-адреса 192.168.10.224
:
$ sudo ufw delete allow from 192.168.10.224
OutputRule deleted
Другой способ указать, какое правило вы хотите удалить, – это указать идентификатор правила. Эту информацию можно получить с помощью следующей команды:
$ sudo ufw status numbered
OutputStatus: active
To Action From
-- ------ ----
[1] Anywhere DENY IN 192.168.10.220
[2] Anywhere on eth0 ALLOW IN 192.168.10.222
Из вывода видно, что есть два активных правила. Первое правило, с выделенными значениями, запрещает все соединения, исходящие с IP-адреса 192.168.10.220
. Второе правило разрешает соединения по адресу eth0
интерфейс, поступающие с IP-адреса 192.168.10.222
.
Поскольку по умолчанию UFW уже блокирует любой внешний доступ, если он не разрешен явно, первое правило является избыточным, поэтому его можно удалить. Чтобы удалить правило по его идентификатору, выполните команду:
$ sudo ufw delete 1
Вам будет предложено подтвердить операцию и убедиться, что указанный вами ID относится к тому правилу, которое вы хотите удалить.
OutputDeleting:
deny from 192.168.10.220
Proceed with operation (y|n)? y
Rule deleted
Если вы снова перечислите свои правила с помощью sudo ufw status
, вы увидите, что правило было удалено.
Список доступных профилей приложений
При установке приложения, работающие с сетью, обычно устанавливают профиль UFW, который можно использовать для разрешения подключения с внешних адресов. Это часто то же самое, что запустить ufw allow from
, преимущество которого заключается в том, что он позволяет абстрагироваться от конкретных номеров портов, используемых службой, и предоставляет удобную номенклатуру для ссылающихся служб.
Чтобы узнать, какие профили доступны в настоящее время, выполните следующее:
$ sudo ufw app list
Если вы установили службу, например веб-сервер или другое сетезависимое программное обеспечение, и профиль не стал доступен в UFW, сначала убедитесь, что служба включена. Для удаленных серверов, как правило, доступен OpenSSH:
OutputAvailable applications:
OpenSSH
Разрешить все входящие HTTP/HTTPS (порт 443
/ 80
)
Веб-серверы, такие как Apache и Nginx, обычно прослушивают HTTP-запросы на порту 80
.
HTTPS обычно работает на порту 443
. Если ваша политика по умолчанию для входящего трафика настроена на отклонение или запрет, вам нужно создать правило UFW для разрешения внешнего доступа на порт 443
. Вы можете использовать либо номер порта, либо имя службы (https
) в качестве параметра этой команды.
Чтобы разрешить все входящие HTTPS и HTTP (порт 443
/ 80
) соединения, запустите:
$ sudo ufw allow https,http
OutputRule added
Rule added (v6)
Альтернативный вариант синтаксиса – указать номер порта службы HTTPS:
$ sudo ufw allow 443,80
Заключение
UFW – это мощный и простой в использовании инструмент, который позволяет вам управлять брандмауэром Linux. Ознакомившись с основными возможностями UFW и объяснениями, приведенными в этой статье, вы теперь должны хорошо понимать, как начать работу с UFW.
Помните, что всегда нужно быть осторожным при настройке брандмауэра и разрешать только тот трафик, который необходим для правильной работы вашей системы.