User Tools

Site Tools


ufw

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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