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

How To Set Up a Firewall with UFW on Ubuntu 18.04

8 Сентября 2020 | Ubuntu

Правильно настроенный брандмауэр - один из наиболее важных аспектов общей безопасности системы.

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

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

Введение


    Прежде чем приступить к изучению этого руководства, убедитесь, что вы вошли на свой сервер с учетной записью пользователя с привилегиями sudo или с пользователем root. Лучше всего запускать административные команды от имени пользователя sudo, а не root. Если у вас нет пользователя sudo в вашей системе Ubuntu, вы можете создать его, следуя этим инструкциям .

Установить UFW


    Несложный брандмауэр должен быть установлен по умолчанию в Ubuntu 18.04, но если он не установлен в вашей системе, вы можете установить пакет, набрав:

sudo apt install ufw

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


    После завершения установки вы можете проверить статус UFW с помощью следующей команды:

sudo ufw status verbose


    По умолчанию UFW отключен. Если вы никогда раньше не активировали UFW, результат будет выглядеть так:

Status: inactive


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





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

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

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

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

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

При установке пакета с aptкомандой он добавит профиль приложения в /etc/ufw/applications.dкаталог. Профиль описывает услугу и содержит настройки UFW.

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

sudo ufw app list

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

Available applications:
  Dovecot IMAP
  Dovecot POP3
  Dovecot Secure IMAP
  Dovecot Secure POP3
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission


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

sudo ufw app info 'Nginx Full'
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server

Ports:
  80,443/tcp


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

Разрешить SSH-подключения 


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


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

sudo ufw allow ssh
Rules updated
Rules updated (v6)


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


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

sudo ufw allow 4422/tcp

Включить UFW


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

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup


    Вы будете предупреждены, что включение брандмауэра может нарушить существующие ssh-соединения, просто введите yи нажмите Enter.

Разрешить подключения к другим портам 


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


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

Открытый порт 80 - HTTP

HTTP-соединения можно разрешить с помощью следующей команды:

sudo ufw allow http

вместо http вы можете использовать номер порта 80:

sudo ufw allow 80/tcp

или вы можете использовать профиль приложения, в данном случае «Nginx HTTP»:

sudo ufw allow 'Nginx HTTP'

Открытый порт 443 - HTTPS 

HTTP-соединения можно разрешить с помощью следующей команды:

sudo ufw allow https

Для достижения того же самого вместо httpsпрофиля вы можете использовать номер порта 443:

sudo ufw allow 443/tcp

или вы можете использовать профиль приложения Nginx HTTPS:

sudo ufw allow 'Nginx HTTPS'

Открытый порт 8080 

Если вы запустите Tomcat или любое другое приложение, которое прослушивает порт, 8080чтобы разрешить входящие соединения, введите:

sudo ufw allow 8080/tcp

Разрешить диапазоны портов

Вместо того, чтобы разрешать доступ к отдельным портам, UFW позволяет нам разрешать доступ к диапазонам портов. При разрешении диапазонов портов с помощью UFW вы должны указать протокол либо, tcpлибо udp. Например, если вы хотите разрешить порты от 7100до 7200на обоих, tcpа udpзатем выполните следующую команду:

sudo ufw allow 7100:7200/tcpsudo ufw allow 7100:7200/udp


Разрешить определенные IP-адреса 

Чтобы разрешить доступ ко всем портам с вашего домашнего компьютера с IP-адресом 64.63.62.61, укажите, fromа затем IP-адрес, который вы хотите добавить в белый список:

sudo ufw allow from 64.63.62.61


Разрешить определенные IP-адреса на определенном порту 

Чтобы разрешить доступ к определенному порту, скажем, порт 22 с вашего рабочего компьютера с IP-адресом 64.63.62.61, используйте, to any portза которым следует номер порта:

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


Разрешить подключения к определенному сетевому интерфейсу

Чтобы разрешить доступ к определенному порту, скажем, порт 3360 только к определенному сетевому интерфейсу eth2, тогда вам необходимо указать allow in onи имя сетевого интерфейса:

sudo ufw allow in on eth2 to any port 3306


Запретить подключения

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

Допустим, вы открыли порты 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 from 23.24.25.0/24 to any port 80sudo ufw deny from 23.24.25.0/24 to any port 443


    Написание запрещающих правил аналогично написанию разрешающих правил, вам нужно только заменить их allowна deny.

Удалить правила UFW 

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

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

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


Вывод 

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


    Комментарии

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

Загрузка комментариев...