Linux - UFW Firewall Setup (ufw)
Оглавление:
- Предпосылки
- Установить UFW
- Проверьте статус UFW
- UFW Политики по умолчанию
- Профили приложений
- Разрешить SSH-соединения
- Включить UFW
- Разрешить соединения на других портах
- Открытый порт 80 - HTTP
- Открытый порт 443 - HTTPS
- Открытый порт 8080
- Разрешить диапазоны портов
- Разрешить конкретные IP-адреса
- Разрешить определенные IP-адреса на конкретном порту
- Разрешить подсети
- Разрешить подключения к определенному сетевому интерфейсу
- Запретить соединения
- Удалить правила UFW
- Отключить UFW
- Сброс UFW
- Вывод
Правильно настроенный межсетевой экран является одним из наиболее важных аспектов общей безопасности системы. По умолчанию Ubuntu поставляется с инструментом настройки брандмауэра, который называется UFW (Uncomplicated Firewall). UFW - это удобный интерфейс для управления правилами брандмауэра iptables, и его основная цель - сделать управление iptables более простым или, как следует из названия, несложным.
Предпосылки
Перед началом работы с этим учебным курсом убедитесь, что вы вошли на свой сервер с учетной записью пользователя с привилегиями sudo или с пользователем root. Лучше всего запускать административные команды как пользователь sudo вместо root. Если у вас нет пользователя sudo в вашей системе Ubuntu, вы можете создать его, следуя этим инструкциям.
Установить UFW
Несложный брандмауэр должен быть установлен по умолчанию в Ubuntu 18.04, но если он не установлен в вашей системе, вы можете установить пакет, набрав:
Проверьте статус UFW
После завершения установки вы можете проверить состояние UFW с помощью следующей команды:
sudo ufw status verbose
UFW по умолчанию отключен. Если вы никогда не активировали UFW раньше, вывод будет выглядеть так:
Status: inactive
Если UFW активирован, вывод будет выглядеть примерно так:
UFW Политики по умолчанию
По умолчанию UFW блокирует все входящие подключения и разрешает все исходящие подключения. Это означает, что любой, кто пытается получить доступ к вашему серверу, не сможет подключиться, если вы не откроете порт специально, а все приложения и службы, работающие на вашем сервере, смогут получить доступ к внешнему миру.
Политики по умолчанию определены в
/etc/default/ufw
и могут быть изменены с помощью
sudo ufw default
Политики брандмауэра являются основой для создания более подробных и определенных пользователем правил. В большинстве случаев исходные политики 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
, вы можете использовать следующую команду, чтобы разрешить подключения к этому порту:
Включить 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 вы можете использовать номер порта, 80:
sudo ufw allow 80/tcp
или вы можете использовать профиль приложения, в данном случае «Nginx
Открытый порт 443 - HTTPS
HTTP-соединения могут быть разрешены с помощью следующей команды:
sudo ufw allow
Для достижения того же вместо профиля
https
вы можете использовать номер порта,
443
:
sudo ufw allow 443/tcp
или вы можете использовать профиль приложения, Nginx
Открытый порт 8080
Разрешить диапазоны портов
Вместо разрешения доступа к отдельным портам UFW позволяет нам разрешать доступ к диапазонам портов. При разрешении диапазонов портов с помощью UFW необходимо указать протокол,
tcp
или
udp
. Например, если вы хотите разрешить порты от
7100
до
7200
для
tcp
и
udp
выполните следующую команду:
sudo ufw allow 7100:7200/tcp
sudo 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
, вам необходимо указать параметр
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
. Чтобы запретить все соединения с
23.24.25.0/24
вы можете использовать следующую команду:
sudo ufw deny from 23.24.25.0/24
sudo ufw deny from 23.24.25.0/24 to any port 80
sudo 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 -- ------ ---- 22/tcp ALLOW IN Anywhere 80/tcp ALLOW IN Anywhere 8080/tcp ALLOW IN Anywhere
Чтобы удалить правило № 3, которое разрешает подключения к порту 8080, используйте следующую команду:
sudo ufw delete 3
Второй способ - удалить правило, указав фактическое правило, например, если вы добавили правило, чтобы открыть порт
8069
вы можете удалить его с помощью:
Отключить UFW
Если по какой-либо причине вы хотите остановить UFW и деактивировать все правила, которые вы можете использовать:
sudo ufw disable
Позже, если вы хотите снова включить UTF и активировать все правила, просто введите:
Сброс UFW
Сброс UFW отключит UFW и удалит все активные правила. Это полезно, если вы хотите отменить все свои изменения и начать все сначала.
Для сброса UFW просто введите следующую команду:
Вывод
Вы узнали, как установить и настроить брандмауэр UFW на своем сервере Ubuntu 18.04. Обязательно разрешите все входящие подключения, которые необходимы для правильного функционирования вашей системы, ограничивая при этом все ненужные подключения.
UFW Firewall Iptables Ubuntu безопасностиАппаратный брандмауэр и брандмауэр программного обеспечения - Разница
В чем разница между брандмауэром программного обеспечения и аппаратным брандмауэром? См. Сравнение. Сегодня аппаратный брандмауэр имеет встроенные IPS / IPDS (системы предотвращения вторжений).
Как отключить брандмауэр в Ubuntu 18.04
В этом уроке мы покажем вам, как отключить брандмауэр UFW в системах Ubuntu 18.04. Настоятельно рекомендуется оставить брандмауэр включенным. Однако в некоторых ситуациях, например при тестировании, может потребоваться остановить или отключить брандмауэр.
Как настроить брандмауэр с помощью UFW на Debian 9
UFW (несложный брандмауэр) - это удобный интерфейс для управления правилами брандмауэра iptables, и его главная цель - упростить управление iptables или, как следует из названия, несложно. В этом уроке мы покажем вам, как настроить брандмауэр с UFW на Debian 9.