Как настроить брандмауэр с UFW в Ubuntu 20.04

Обновлено

8 минут чтения

Брандмауэр — это инструмент для мониторинга и фильтрации входящего и исходящего сетевого трафика. Он работает, определяя набор правил безопасности, которые определяют, разрешить или заблокировать определенный трафик.

Ubuntu поставляется с инструментом настройки межсетевого экрана под названием UFW (Несложный межсетевой экран). Это удобный интерфейс для управления правилами брандмауэра iptables. Его основная цель — упростить или, как следует из названия, упростить управление брандмауэром.

В этой статье описывается, как использовать инструмент UFW для настройки и управления брандмауэром в Ubuntu 20.04. Правильно настроенный брандмауэр — один из наиболее важных аспектов общей безопасности системы.

Предварительные требования #

Только root или пользователи с привилегиями sudo могут управлять системным брандмауэром. Лучше всего запускать административные задачи от имени пользователя sudo.

Установить UFW #

UFW является частью стандартной установки Ubuntu 20.04 и должен присутствовать в вашей системе . Если по какой-то причине он не установлен, вы можете установить пакет, набрав:

  sudo apt update   sudo apt install ufw  

Проверить статус UFW #

По умолчанию UFW отключен. Вы можете проверить статус службы UFW с помощью следующей команды:

  sudo ufw status verbose  

В выводе будет показано, что статус брандмауэра неактивен:

  Статус: неактивен  

Если UFW активирован, вывод будет выглядеть примерно так:

Политики UFW по умолчанию #

По умолчанию межсетевой экран UFW блокирует все входящие и пересылка трафика и разрешение всего исходящего трафика. Это означает, что любой, кто пытается получить доступ к вашему серверу, не сможет подключиться, если вы специально не откроете порт. Приложения и службы, запущенные на вашем сервере, будут иметь доступ к внешнему миру.

Политики по умолчанию определены в файле /etc/default/ufw и могут можно изменить либо вручную, изменив файл, либо с помощью команды sudo ufw default .

Политики межсетевого экрана являются основой для создания более сложных и определяемые пользователем правила. Как правило, исходные политики UFW по умолчанию являются хорошей отправной точкой.

Профили приложений #

Профиль приложения — это текстовый файл в формате INI, который описывает службу и содержит правила брандмауэра для службы. Профили приложений создаются в каталоге /etc/ufw/applications.d во время установки пакета..

Вы можете вывести список всех профилей приложений, доступных на вашем сервере, набрав:

  sudo ufw app list  

В зависимости от пакетов, установленных в вашей системе, результат будет выглядеть следующим образом:

  Доступные приложения: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH  

Чтобы найти дополнительную информацию об определенном профиле и включенных правилах, используйте следующую команду:

  sudo ufw app info 'Nginx Full'  

Выходные данные показывают, что профиль «Nginx Full» открывает порты 80 и 443 .

  Профиль: Nginx FullTitle: Веб-сервер (Nginx, HTTP + HTTPS) Описание: Маленький, но очень мощный и эффективный веб-сервер Порты: 80 443/tcp  

Вы также можете создавать собственные профили для своих приложений.

Включение UFW #

Если вы подключаетесь к Ubuntu из удаленного места, перед включением брандмауэра UFW, вы должны явно разрешить входящее соединение SSH соединения. В противном случае вы больше не сможете подключиться к машине.

Чтобы настроить брандмауэр UFW на разрешение входящих SSH-подключений, введите следующую команду:

  sudo ufw allow ssh  
  Rules updatedRules updated (v6)  

Если SSH работает на нестандартный порт, вам необходимо открыть этот порт.

Например, если ваш демон ssh прослушивает порт 7722 , введите следующую команду, чтобы разрешить соединения на этот порт:

  sudo ufw allow 7722/tcp  

Теперь, когда брандмауэр настроен на разрешение входящих соединений SSH, вы можете включите его, набрав:

  sudo ufw enable  
  Команда может нарушить существующие соединения ssh.  Продолжить операцию (y | n)?  yFirewall активен и включается при запуске системы  

Вы будете предупреждены, что включение брандмауэра может нарушить существующие соединения 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 разрешить протокол TCP на любой порт 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-адресу доступ только к определенному порту, используйте для ключевое слово any port , за которым следует номер порта.

Например, чтобы разрешить доступ к порту 22 с машины с IP-адресом 64.63.62. 61 , введите:

  sudo ufw allow from 64.63.62.61 to any port 22  

Subnets #

Синтаксис разрешения подключений к подсети IP-адресов такой же, как при использовании одного IP-адреса. Единственное отличие состоит в том, что вам нужно указать маску сети.

Ниже приведен пример, показывающий, как разрешить доступ для IP-адресов в диапазоне от 192.168.1.1 до 192.168.1.254 на порт 3360 (MySQL):

  sudo ufw allow from 192.168.1.0/24 to  любой порт 3306  

Определенный сетевой интерфейс #

Чтобы разрешить соединения через определенный сетевой интерфейс, используйте в ключевое слово, за которым следует имя сетевого интерфейса:

  sudo ufw разрешить на eth2 любой порт 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 с 23.24.25.0/24 на любой порт 80,443  

Удаление правил UFW #

Есть два разных способа удалить правила UFW по номеру правила и указав фактическое правило.

Удалять правила по номеру правила проще, особенно если вы новичок в UFW. Чтобы сначала удалить правило по номеру правила, вам нужно найти номер правила, которое вы хотите удалить. Чтобы получить список пронумерованных правил, используйте команду ufw status numbered :

  sudo ufw status numbered  
  Статус: активно На действие От - ------ ---- [1] 22/tcp РАЗРЕШИТЬ В любом месте [2] 80/tcp РАЗРЕШИТЬ В любом месте [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  

IP Masquerading #

IP Masquerading — это вариант NAT (трансляция сетевых адресов) в ядре Linux, который преобразует сетевой трафик повторно -запись исходных и целевых IP-адресов и портов. С помощью IP Masquerading вы можете разрешить одной или нескольким машинам в частной сети связываться с Интернетом, используя один Linux-компьютер, который действует как шлюз.

Настройка IP Masquerading с UFW включает несколько шагов.

Во-первых, вам нужно включить переадресацию IP. Для этого откройте файл /etc/ufw/sysctl.conf :

  sudo nano/etc/ufw/sysctl.conf  

Найдите и раскомментируйте строку, которая гласит net.ipv4.ip_forward = 1 :

/etc/ufw/ sysctl.conf
  net/ipv4/ip_forward = 1  

Далее вам нужно настроить UFW для разрешения пересылаемых пакетов. Откройте файл конфигурации UFW:

  sudo nano/etc/default/ufw  

Найдите DEFAULT_FORWARD_POLICY и измените значение с DROP на ACCEPT :

/etc/default/ufw
  DEFAULT_FORWARD_POLICY = "ACCEPT"  

Теперь вам нужно установить политику по умолчанию для POSTROUTING в таблице nat и правило маскарада. Для этого откройте файл /etc/ufw/before.rules и добавьте строки, выделенные желтым, как показано ниже:

   sudo nano/etc/ufw/before.rules

Добавьте следующие строки:

/etc/ufw/before.rules
  # Правила таблицы NAT * nat: POSTROUTING ACCEPT [0: 0] # Перенаправлять трафик через eth0 - Изменить на публичный сетевой интерфейс-A POSTROUTING -s 10.8.0.0/16 -  o eth0 -j MASQUERADE # не удаляйте строку 'COMMIT', иначе эти правила не будут обработаны COMMIT  

Не забудьте заменить eth0 в строке -A POSTROUTING для соответствия имени общедоступного сетевого интерфейса:

Когда вы закончите, сохраните и закройте файл .

Наконец, перезагрузите правила UFW, отключив и снова включив UFW:

  sudo ufw disable    sudo ufw enable  

Заключение #

Мы показали вам, как установить и настроить брандмауэр UFW на вашем сервере Ubuntu 20.04. Обязательно разрешите все входящие соединения, которые необходимы для правильного функционирования вашей системы, ограничив при этом все ненужные соединения.

Для получения дополнительной информации по этой теме посетите страницу руководства UFW.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

ufw firewall iptables ubuntu security
Оцените статью
techsly.ru
Добавить комментарий