Брандмауэр — это инструмент для мониторинга и фильтрации входящего и исходящего сетевого трафика. Он работает, определяя набор правил безопасности, которые определяют, разрешать или блокировать определенный трафик.
Ubuntu поставляется с инструментом настройки брандмауэра под названием UFW (Uncomplicated Firewall). Это удобный интерфейс для управления правилами брандмауэра iptables. Его основная цель — сделать управление брандмауэром проще или, как следует из названия, несложным.
В этой статье описывается, как использовать инструмент UFW для настройки и управления брандмауэром в Ubuntu 20.04. Правильно настроенный брандмауэр является одним из наиболее важных аспектов общей безопасности системы.
В этой статье описывается, как использовать инструмент UFW для настройки и управления брандмауэром в Ubuntu 20.04.
Установить UFW
UFW является частью стандартной установки Ubuntu 20.04 и должен присутствовать в вашей системе. Если по какой-то причине он не установлен, вы можете установить пакет, набрав:
sudo apt update
sudo apt install ufw
Проверить статус UFW
UFW по умолчанию отключен. Вы можете проверить статус службы UFW с помощью следующей команды:
sudo ufw status verbose
Политики UFW по умолчанию
По умолчанию брандмауэр UFW блокирует весь входящий и пересылаемый трафик и разрешает весь исходящий трафик. Это означает, что любой, кто пытается получить доступ к вашему серверу, не сможет подключиться, если вы специально не откроете порт. Приложения и службы, работающие на вашем сервере, смогут получить доступ к внешнему миру.
Политики по умолчанию определены в /etc/default/ufw
файле и могут быть изменены вручную или с помощью sudo ufw default <policy> <chain>
команды.
Политики брандмауэра являются основой для создания более сложных и определяемых пользователем правил. Как правило, исходные политики UFW по умолчанию являются хорошей отправной точкой.
Профили приложений
Профиль приложения — это текстовый файл в формате INI, который описывает службу и содержит правила брандмауэра для службы. Профили приложений создаются в /etc/ufw/applications.d
каталоге во время установки пакета.
Вы можете перечислить все профили приложений, доступные на вашем сервере, набрав:
sudo ufw app list
В зависимости от пакетов, установленных в вашей системе, вывод будет выглядеть примерно так:
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Чтобы найти дополнительную информацию о конкретном профиле и включенных правилах, используйте следующую команду:
sudo ufw app info 'Nginx Full'
Вывод показывает, что профиль «Nginx Full» открывает порты 80
и файлы 443
.
Вы также можете создавать собственные профили для своих приложений.
Включение UFW
Если вы подключаетесь к Ubuntu из удаленного места, перед включением брандмауэра UFW вы должны явно разрешить входящие SSH-соединения. В противном случае вы больше не сможете подключиться к машине.
Чтобы настроить брандмауэр UFW для разрешения входящих SSH-подключений, введите следующую команду:
sudo ufw allow ssh
Если SSH работает на нестандартном порту , вам необходимо открыть этот порт.
Например, если ваш демон ssh прослушивает порт 7722
, введите следующую команду, чтобы разрешить подключения к этому порту:
sudo ufw allow 7722/tcp
Теперь, когда брандмауэр настроен на разрешение входящих SSH-соединений, вы можете включить его, набрав:
sudo ufw enable
Вы будете предупреждены, что включение брандмауэра может нарушить существующие соединения ssh, просто введите y
и нажмите Enter
.
Открытие портов
В зависимости от приложений, работающих в системе, вам также может потребоваться открыть другие порты. Общий синтаксис для открытия порта следующий:
ufw allow port_number/protocol
Ниже приведены несколько способов разрешить HTTP-соединения.
Первый вариант — использовать имя службы. UFW проверяет /etc/services
файл на наличие порта и протокола указанной службы:
sudo ufw allow http
Вы также можете указать номер порта и протокол:
sudo ufw allow 80/tcp
Если протокол не указан, UFW создает правила как для , так tcp
и для udp
.
Другой вариант — использовать профиль приложения; в этом случае «Nginx HTTP»:
sudo ufw allow 'Nginx HTTP'
UFW также поддерживает другой синтаксис для указания протокола с помощью proto
ключевого слова:
sudo ufw allow proto tcp to any port 80
Диапазоны портов
UFW также позволяет открывать диапазоны портов. Начальный и конечный порты разделены двоеточием ( :
), и вы должны указать протокол либо , tcp
либо udp
.
Например, если вы хотите разрешить порты с 7100
на 7200
и на tcp
и на udp
, вы должны выполнить следующую команду:
sudo ufw allow 7100:7200/tcp
sudo ufw allow 7100:7200/udp
Конкретный IP-адрес и порт
Чтобы разрешить соединения на всех портах с данного исходного IP-адреса, используйте from
ключевое слово, за которым следует исходный адрес.
Вот пример внесения IP-адреса в белый список:
sudo ufw allow from 64.63.62.61
Если вы хотите разрешить данному IP-адресу доступ только к определенному порту, используйте to any port
ключевое слово, за которым следует номер порта.
Например, чтобы разрешить доступ к порту 22
с машины с IP-адресом 64.63.62.61
, введите:
sudo ufw allow from 64.63.62.61 to any port 22
Подсети
Синтаксис разрешения подключений к подсети IP-адресов такой же, как и при использовании одного IP-адреса. Разница лишь в том, что вам нужно указать сетевую маску.
Ниже приведен пример, показывающий, как разрешить доступ для IP-адресов в диапазоне от 192.168.1.1
до 192.168.1.254
до порта 3360
( MySQL ):
sudo ufw allow from 192.168.1.0/24 to any port 3306
Конкретный сетевой интерфейс
Чтобы разрешить подключения к определенному сетевому интерфейсу, используйте in on
ключевое слово, за которым следует имя сетевого интерфейса:
sudo ufw allow in on eth2 to any port 3306
Отказ в подключении
Политика по умолчанию для всех входящих подключений установлена на deny
, и если вы не изменили ее, UFW будет блокировать все входящие подключения, если вы не откроете подключение специально.
Написание запрещающих правил аналогично написанию разрешающих правил; вам нужно только использовать deny
ключевое слово вместо allow
.
Допустим, вы открыли порты 80
и 443
, а ваш сервер подвергается атаке из 23.24.25.0/24
сети. Чтобы запретить все подключения от 23.24.25.0/24
вас, выполните следующую команду:
sudo ufw deny from 23.24.25.0/24
Вот пример запрета доступа только к портам 80
и 443
из них 23.24.25.0/24
можно использовать следующую команду:
sudo ufw deny proto tcp from 23.24.25.0/24 to any port 80,443
Удаление правил UFW
Существует два разных способа удаления правил UFW по номеру правила и путем указания фактического правила.
Удалить правила по номеру проще, особенно если вы новичок в UFW. Чтобы сначала удалить правило по номеру правила, вам нужно найти номер правила, которое вы хотите удалить. Чтобы получить список пронумерованных правил, используйте ufw status numbered
команду:
sudo ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] 8080/tcp ALLOW IN Anywhere
Чтобы удалить номер правила 3
, которое разрешает подключения к порту 8080
, введите:
sudo ufw delete 3
Второй способ — удалить правило, указав фактическое правило. Например, если вы добавили правило для открытия порта 8069
, вы можете удалить его с помощью:
sudo ufw delete allow 8069
Отключение UFW
Если по какой-либо причине вы хотите остановить UFW и деактивировать все правила, вы можете использовать:
sudo ufw disable
Позже, если вы захотите снова включить UTF и активировать все правила, просто введите:
sudo ufw enable
Сброс UFW
Сброс UFW отключит UFW и удалит все активные правила. Это полезно, если вы хотите отменить все свои изменения и начать заново.
Чтобы сбросить UFW, введите следующую команду:
sudo ufw reset
0 комментариев