- Требование к настройке UFW Ubuntu
- Как установить UFW в Ubuntu
- Шаг 1: Настройка политики ufw ubuntu по умолчанию
- Шаг 2: Проверьте профили приложений по умолчанию
- Шаг 3: Разрешить SSH в UFW Ubuntu
- Шаг 4: Включить UFW
- Шаг 5: Проверка статуса UFW
- Шаг 6: Разрешить входящий трафик в UFW Ubuntu
- Разрешить трафик на один порт
- Разрешить диапазон портов в UFW фаерволе
- Разрешить несколько портов
- Разрешить определенные IP-адреса
- Разрешить подсети
- Разрешить подключение с определенного IP-адреса на порт
- Разрешить трафик на определенный интерфейс
- Шаг 7: Добавить правило с комментарием в UFW
- Шаг 8: Блокировка соединения в UFW Ubuntu
- Шаг 9: Создание правила с именем профиля приложения
- Шаг 10: Как удалить правило в UFW Ubuntu
- Шаг 11: Активация маскировки IP
- Шаг 12: Остановка UFW и сброс
- Шаг 13: Как включить IPv6 в UFW Ubuntu
- Команды UFW
- Заключение
UFW (Uncomplicated Firewall) — это брандмауэр управляемый из командной строки, предназначенный для Ubuntu. Он работает и в дистрибутивах на основе Debian.
Брандмауэр построен с целью облегчить сложность Iptables. UFW Ubuntu предоставляет удобные способы создания брандмауэра на основе хоста. GUFW — это графическая версия для управления UFW.
UFW предустановлен в операционных системах Ubuntu, но не включен по умолчанию. Вам необходимо выполнить команду ufw для включения и настройки брандмауэра.
В этом руководстве мы покажем, как настроить брандмауэр с UFW в Ubuntu 22.04 LTS.
Требование к настройке UFW Ubuntu
- Система под управлением Ubuntu 22.04.
- Пользователь root или обычная учетная запись с правами sudo.
- Знание о работе брандмауэре.
- Доступ к терминалу.
Как установить UFW в Ubuntu
UFW поставляется с предустановленной в Ubuntu. В случае, если вы его не нашли, вы можете установить пакет ufw с помощью команды apt.
sudo apt update
sudo apt install ufw
Шаг 1: Настройка политики ufw ubuntu по умолчанию
Брандмауэры обычно имеют политику по умолчанию. Вы можете найти политику ufw по умолчанию в файле /etc/default/ufw
. Политика по умолчанию будет активна после включения брандмауэра.
Как только UWF включен, то по умолчанию он запрещает все входящие потоки и разрешает все исходящие потоки. Это означает, что любой, кто пытается получить доступ к вашему серверу, не сможет подключиться, если вы не откроете определенные порты и службы.
Вы можете найти политику правил ufw в файле /etc/default/ufw
.
$ cat /etc/default/ufw
Ответ терминала:
Синтаксис для изменения политики ufw по умолчанию:
ufw default allow|deny|reject DIRECTION
- allow|deny|reject это разрешение, которое вы установите.
- DIRECTION — это одно из значений: входящее, исходящее или маршрутизируемое.
В случае, если кто-то изменил значения по умолчанию, вам нужно вернуться к ufw default:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Шаг 2: Проверьте профили приложений по умолчанию
Когда вы установили некоторые стандартные приложения, UFW распознает службы связанные с этими приложениями. Это профиль приложения, который представляет собой текстовый файл в формате INI, описывающий службу и содержащий правила брандмауэра для этой службы. Это может быть полезно, чтобы разрешить службу на UFW, если вы не помните номер порта. Профили приложений создаются в каталоге /etc/ufw/applications.d
во время установки пакета.
Чтобы перечислить все профили приложений, которые распознаются по умолчанию:
sudo ufw app list
Available applications:
OpenSSH
OpenSSH — это приложение, которое позволяет использовать службу SSH, указанную в приложениях, распознанных на UFW по умолчанию.
Если вы установите некоторые инструменты, такие как Nginx, вы увидите больше приложений.
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Шаг 3: Разрешить SSH в UFW Ubuntu
По умолчанию SSH-соединения не разрешены на UFW. Это означает, что если вы включите UFW, то не будет правила, которое разрешит ваше SSH-соединение. Итак, первое, что нужно сделать после доступа к удаленному облачному серверу — это разрешить SSH-соединения на UFW Ubuntu. Сделать это можно командами:
sudo ufw allow 22
или
sudo ufw allow ssh
Ответ терминала:
Rule added
или
Rule added (v6)
Когда IPv6 включен, UFW автоматически добавит для него правило. Это линия с упоминанием (v6).
Шаг 4: Включить UFW
UFW не включен по умолчанию. Итак, вы должны сначала активировать его. Помните, что при его активации, если нет правила подключения SSH, вы потеряете удаленное соединение, так как по умолчанию оно будет запрещать все входящие соединения, которые явно не указаны.
Чтобы запустить брандмауэр UFW, нам нужно его включить:
sudo ufw enable
Далее введите Y
Command may disrupt existing ssh connections. Proceed with operation
(y|n)? y
Firewall is active and enabled on system startup
С включением ufw мы включили брандмауэр на Ubuntu.
Вы можете увидеть предупреждение о том, что ssh-соединение может быть нарушено. Это будет верно, если в UFW нет правила SSH.
Перед запуском брандмауэра используете следующую команду для отображения всех добавленных правил:
sudo ufw show added
Ответ терминала:
Added user rules (see 'ufw status' for running firewall):
ufw allow 22
Шаг 5: Проверка статуса UFW
Вы можете в любое время проверить состояние брандмауэра ufw ubuntu,. Кроме того, он показывает, как настроены правила брандмауэра. Чтобы проверить включен или выключен брандмауэр используйте команду.
sudo ufw status verbose
Ответ терминала примерно будет такой:
Первая строка вывода показывает статус ufw активным или неактивным. В следующих строках отображается список установленных правил.
Шаг 6: Разрешить входящий трафик в UFW Ubuntu
Пришло время создать правила, чтобы указать входящие потоки, которые вы собираетесь разрешить. Вы должны разрешить только те службы, которые вам нужны и которым вы доверяете.
Давайте проверим, как писать правила для разрешения подключений на основе порта, диапазонов портов, IP-адреса, диапазона IP и многого другого.
Разрешить трафик на один порт
Если у вас есть служба для добавления, вы можете использовать UFW, чтобы разрешить один порт.
Например, чтобы разрешить HTTP-трафик на порту 80:
sudo ufw allow 80
Далее проверьте, проверив статус UFW:
sudo ufw status
Ответ терминала:
Разрешить диапазон портов в UFW фаерволе
UFW позволяет устанавливать правила для определенных диапазонов портов для разрешения подключений.
Например, вы запускаете некоторые приложения Java, прослушивающие порт 8080 до 8085. Будет утомительно вносить вручную порт за портом; UFW позволяет указать диапазон портов. Вам нужно будет указать разрешенный протокол (TCP или UDP).
sudo ufw allow 8080:8085/tcp
Вы можете сделать то же самое для протокола UDP, просто замените TCP
Разрешить несколько портов
Вы можете разрешить несколько портов в командной строке. Также необходимо указать протокол (TCP или UDP).
Например, чтобы разрешить порты 80 и 443 в брандмауере ufw, введите:
sudo ufw allow 80,443/tcp
Теперь вы можете проверить свои правила UFW
sudo ufw status
Ответ терминала будет следующим:
Кстати вы можете заметить, что указано имя протокола.
Разрешить определенные IP-адреса
Когда у вас есть сервер, доступный через Интернет, вы должны быть осторожны с тем, кому разрешено обращаться к серверу. Используя UFW, вы можете указать IP-адреса, которым разрешен доступ к серверу. Это может быть полезно, если вы собираетесь предоставить доступ некоторым партнерам.
Например, чтобы разрешить подключения с IP-адреса 58.105.0.200, вы можете указать:
sudo ufw allow from 58.105.0.200
Разрешить подсети
Вместо того, чтобы разрешать определенный IP-адрес, вы можете просто разрешить подсеть IP-адресов. UFW позволяет использовать определенную маску подсети с использованием обозначения CIDR.
Например, чтобы разрешить сеть 192.168.10.0 с маской сети 24, введите команду:
sudo ufw allow from 192.168.10.0/24
Разрешить подключение с определенного IP-адреса на порт
UFW позволяет определенному IP-адресу подключаться к порту с помощью опции from
any port
IP-адрес.
Например, чтобы разрешить IP-адрес 58.105.0.200 для подключения к порту 22, введите:
sudo ufw allow from 58.105.0.25 to any port 22
Вы также можете фильтровать, чтобы разрешить определенные протоколы, используя опцию proto
:
sudo ufw allow from 58.105.0.0/24 to any port 22 proto tcp
Чтобы настроить сервер на прослушивание определенного IP-адреса на порте:
ufw allow from any to 10.8.0.1 port 22
Вы можете дополнительно фильтровать, чтобы ограничить только определенный источник для подключения определенного IP-адреса к порту:
sudo ufw allow proto tcp from 10.20.80.55 to 10.20.80.56 port 22
Разрешить трафик на определенный интерфейс
Используя UFW, вы можете определить правила брандмауэра, которые будут применяться к определенному интерфейсу.
Во-первых, вы можете использовать следующую команду ip для проверки деталей интерфейса:
ip a
Следующая команда создает правило брандмауэра UFW для установки в сетевом интерфейсе с именем eth1 чтобы разрешить трафик MYSQL т.е. порт 3306:
sudo ufw allow in on eth1 to any port 3306
Шаг 7: Добавить правило с комментарием в UFW
Чтобы добавить комментарий к правилу ufw, используйте следующий синтаксис:
ufw rule comment 'add your comment here'
Например, чтобы добавить комментарий к правилу ufw allow, введите:
sudo ufw allow 'Nginx HTTPS' comment 'For website allowed Nginx on port 443'
Шаг 8: Блокировка соединения в UFW Ubuntu
Как упоминалось ранее, политика по умолчанию UFW — запретить все входящие соединения. Если вы изменили политику по умолчанию и вам нужно запретить определенные службы, вы можете использовать опцию ufw deny . Когда мы используем deny UFW будет игнорировать этот трафик. Если вы хотите, чтобы ufw отправил сообщение return denied, используйте эту опцию reject
.
Синтаксис такой же, как и разрешить правила, только нужно заменить опцией deny
.
Чтобы запретить подключения к порту 21, введите:
sudo ufw deny 21
Например вы можете заблокировать все соединения, поступающие с IP-адреса 10.30.55.10 на порт номер 22.
sudo ufw deny from 10.30.55.10 to any port 22
Шаг 9: Создание правила с именем профиля приложения
Когда вы устанавливаете некоторые пакеты, такие как Nginx или Apache, он создаст профиль приложения с именем службы, которые связаны с соответствующим портом (80, 22, 443 и т. д.). Чтобы посмотреть доступные списки приложений, используйте команду ufw app list
.
Вы можете создать правило просто используя имя профиля приложения. Например, Nginx Full соответствует портам 80 и 443, а OpenSSH — порту 22.
Например, чтобы разрешить порты 80 и 443 с помощью профиля Nginx, введите
sudo ufw allow 'Nginx Full'
Шаг 10: Как удалить правило в UFW Ubuntu
Если вы создали правило UFW и оно больше не требуется, вы можете легко удалить его двумя способами.
Вы можете удалить правила UFW по номеру правила. Для просмотра номеров правил используйте следующую команду:
sudo ufw status numbered
Ответ терминала:
Теперь вы можете удалить правило ufw например номер 6. Для этого используйте следующую команду:
$ sudo ufw delete 6
Второй способ удалить правило: используйте само фактическое правило для удаления. Для этого добавьте правило, за которым следует удаление ufw.
Например, чтобы удалить правило, в котором мы разрешили порт 1194:
$ sudo ufw delete deny from 10.20.59.0/24 to any port 1194
Шаг 11: Активация маскировки IP
Маскировка IP работает с NAT. Он позволяет машинам с не маршрутизируемыми IP-адресами получать доступ к Интернету через машину, действующую как шлюз (тот, который делает маскировку).
Вы должны включить переадресацию IP, чтобы разрешить это. Отредактируем файл конфигурации /etc/ufw/sysctl.conf
и раскомментируем определенную строку.
sudo vim /etc/ufw/sysctl.conf
net/ipv4/ip_forward=1
Теперь вы должны разрешить политику DEFAULT_FORWARD_POLICY
sudo ufw default allow routed
Это изменит значение DEFAULT_FORWARD_POLICY
на ACCEPT
в файле политики по умолчанию. Обычно после перезагрузки изменения вступают в силу. Чтобы применить его немедленно, вы должны выполнить команду
sysctl -p
Вам нужно отредактировать таблицу nat
и правило маскарада и установить политику по умолчанию для цепочки POSTROUTING
. Также вы должны добавить несколько строк в файл /etc/ufw/before.rules
sudo vim /etc/ufw/before.rules
Пример:
NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
Forward traffic through eth0 - Change to match your public network interface
-A POSTROUTING -s A.B.C.0/24 -o eth0 -j MASQUERADE
don't delete the 'COMMIT' line or these rules won't be processed
COMMIT
Шаг 12: Остановка UFW и сброс
Чтобы сделать все правила неактивными, выполните следующую команду:
sudo ufw disable
Ответ терминала будет следующим:
Firewall stopped and disabled on system startup
Это отключит ufw не удаляя никаких правил, но все правила больше не активны. Вы можете активировать все правила обратно с помощью команды ufw enable
.
Если вы по какой-либо причине хотите удалить все правила, то вам нужно сбросить настройки ufw. Но это сохранит установленные политики по умолчанию.
sudo ufw reset
Шаг 13: Как включить IPv6 в UFW Ubuntu
По умолчанию IPV6 отключен в UFW. Чтобы включить IPV6, вам требуется добавить IPV6 в файле /etc/default/ufw
.
Используйте ваш любимый редактор и установите параметр IPV6 = yes:
sudo vim /etc/default/ufw
Когда вы отредактировали конфигурацию UFW, чтобы изменения вступили в силу, запустите команду ufw reload
. Это не требуется при добавлении правил с помощью командной строки.
Команды UFW
Некоторые полезные команды UFW:
Команды UFW | Описание |
---|---|
ufw default allow|deny|reject |
Для управления политиками ufw по умолчанию |
ufw app list |
Чтобы посмотреть все профили приложений |
ufw enable |
Чтобы запустить или включить брандмауэр ufw |
ufw show added |
Перед включением показать добавленные правила |
|
Показать активный / неактивный статус и список правил для запуска брандмауэра |
ufw allow |
Установить правила разрешения |
ufw rule comment |
Добавить комментарий к правилам |
ufw deny |
Установить правила запрета |
ufw delete |
Удалить определенные правила по фактическому правилу или по номеру правила |
ufw disable |
Сделать все правила неактивными |
ufw reset |
Удалить все правила |
Заключение
В этой статье мы подробно расписали, как настроить брандмауэр с UFW на Ubuntu 22.04 LTS.
Что мы рассмотрели в UFW? политика по умолчанию, профили приложений, разрешить ssh, включить, разрешить и запретить правила и удалить правила. Убедитесь, что разрешены только необходимые входящие соединения и запрещены все ненужные соединения.
Спасибо за чтение, пожалуйста оставьте свои отзывы и предложения в разделе комментариев ниже.