Поиск по сайту:

Как установить и настроить UFW — несложный брандмауэр в Debian/Ubuntu


Поскольку компьютеры подключены друг к другу, услуги быстро растут. Электронная почта, Социальные сети, Интернет-магазин, Чат, пока Веб-конференции не являются службами, используется пользователем. Но с другой стороны, эта связь подобна двустороннему ножу. На эти компьютеры также можно отправлять вредоносные сообщения, например, вирус, вредоносное ПО, троянские приложения.

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

Одним из обязательных компонентов на вашем компьютере/серверах является Брандмауэр. Определение из Википедии:

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

Iptables — один из широко используемых серверами межсетевых экранов. Это программа, используемая для управления входящим и исходящим трафиком на сервере на основе набора правил. Как правило, доступ на сервер разрешен только доверенному соединению. Но IPTables работает в режиме консоли, и это сложно. Те, кто знаком с правилами и командами iptables, могут прочитать следующую статью, в которой описывается, как использовать брандмауэр iptables.

  1. Базовое руководство по IPTables (межсетевой экран Linux)

Установка межсетевого экрана UFW в Debian/Ubuntu

Чтобы упростить настройку IPTables, существует множество интерфейсов. Если вы используете Ubuntu Linux, вы найдете ufw в качестве инструмента брандмауэра по умолчанию. Давайте начнем изучать брандмауэр ufw.

Что такое уфв

ufw (Несложный брандмауэр) — это интерфейс для наиболее широко используемого брандмауэра iptables, который хорошо подходит для межсетевых экранов на базе хоста. ufw предоставляет основу для управления netfilter, а также предоставляет интерфейс командной строки для управления брандмауэром. Он предоставляет удобный и простой в использовании интерфейс для новичков в Linux, которые мало знакомы с концепциями брандмауэра.

С другой стороны, те же сложные команды помогают администраторам устанавливать сложные правила с использованием интерфейса командной строки. ufw является исходной версией для других дистрибутивов, таких как Debian, Ubuntu и Linux Mint.

Базовое использование ufw

Сначала проверьте, установлен ли ufw, используя следующую команду.

sudo dpkg --get-selections | grep ufw

ufw 		install

Если он не установлен, вы можете установить его с помощью команды apt, как показано ниже.

sudo apt-get install ufw

Перед использованием вам следует проверить, запущен ли ufw или нет. Используйте следующую команду, чтобы проверить это.

sudo ufw status

Если вы обнаружили Статус: неактивный, это означает, что он не активен или отключен.

НОВИНКА! Незаменимая электронная книга для каждого администратора Linux!

Скачать бесплатно 696-страничную электронную книгу

Включение/отключение ufw

Чтобы включить его, вам просто нужно ввести следующую команду в терминале.

sudo ufw enable

Firewall is active and enabled on system startup

Чтобы отключить его, просто введите.

sudo ufw disable

Перечислите текущие правила ufw

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

sudo ufw status verbose
Пример вывода
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
$

Как добавить правила ufw

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

Разрешить доступ
sudo ufw allow ssh

[sudo] password for pungki :
Rule added
Rule added (v6)
$

Если вы снова проверите статус, вы увидите такой вывод.

sudo ufw status

To 		Action 			From
-- 		----------- 		------
22 		ALLOW 			Anywhere
22 		ALLOW 			Anywhere (v6)

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

sudo ufw status numbered

To 		Action 			From
------ 		----------- 		------
[1] 22 		ALLOW 			Anywhere
[2] 22 		ALLOW 			Anywhere (v6)

Первое правило гласит, что разрешено входящее соединение с портом 22 из Anywhere как пакетов tcp, так и udp. Что делать, если вы хотите разрешить только пакеты tcp? Затем вы можете добавить параметр tcp после номера порта. Вот пример с образцом вывода.

sudo ufw allow ssh/tcp

To 		Action 			From
------ 		----------- 		------
22/tcp 		ALLOW 			Anywhere
22/tcp 		ALLOW 			Anywhere (v6)
Запретить доступ

Те же приемы применяются к правилу Запретить. Допустим, вы хотите запретить правило запретить ftp. Так что вам остается только печатать.

sudo ufw deny ftp

To 		Action 			From
------ 		----------- 		------
21/tcp 		DENY 			Anywhere
21/tcp 		DENY 			Anywhere (v6)

Добавление определенного порта

Иногда у нас есть собственный порт, который не соответствует никаким стандартам. Допустим, мы изменили ssh-порт на нашем компьютере с 22 на 2290. Затем, чтобы разрешить порт 2290, мы можем добавить его вот так.

sudo ufw allow

To 		Action 			From
-- 		----------- 		------
2290 		ALLOW 			Anywhere
2290 		ALLOW 			Anywhere (v6)

Вы также можете добавить в правило port-range. Если мы хотим открыть порт 22902300 по протоколу tcp, то команда будет такой.

sudo ufw allow 2290:2300/tcp

To 			Action 			From
------ 			----------- 		------
2290:2300/tcp 		ALLOW 			Anywhere
2290:2300/tcp 		ALLOW			Anywhere (v6)

а если вы хотите использовать udp, просто используйте следующую команду.

sudo ufw allow 2290:2300/udp

To 			Action 			From
------ 			----------- 		------
2290:2300/udp 		ALLOW 			Anywhere
2290:2300/udp 		ALLOW			Anywhere (v6)

Помните, что вам необходимо явно указать «tcp» или «udp», иначе вы получите сообщение об ошибке, подобное приведенному ниже.

ERROR: Must specify ‘tcp’ or ‘udp’ with multiple ports

Добавление конкретного IP

Ранее мы добавляли правила на основе сервиса или порта. Ufw также позволяет добавлять правила на основе IP-адреса. Вот пример команды.

sudo ufw allow from 192.168.0.104

Вы также можете использовать маску подсети, чтобы расширить диапазон.

sudo ufw allow form 192.168.0.0/24

To 		Action 			From
-- 		----------- 		------
Anywhere	ALLOW 			192.168.0.104
Anywhere	ALLOW 			192.168.0.0/24

Как видите, параметр from ограничивает только источник подключения. А пунктом назначения, представленным столбцом Кому, является Где угодно. Вы также можете управлять местом назначения, используя параметр «To». Давайте посмотрим пример, позволяющий разрешить доступ к порту 22 (ssh).

sudo ufw allow to any port 22

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

Объединение параметров

Для более конкретных правил вы также можете объединить IP-адрес, протокол и порт. Допустим, мы хотим создать правило, ограничивающее подключение только с IP 192.168.0.104, только по протоколу tcp и порту 22. Тогда команда будет такой, как показано ниже.

sudo ufw allow from 192.168.0.104 proto tcp to any port 22

Синтаксис создания правила запрета аналогичен правилу разрешения. Вам нужно всего лишь изменить параметр с allow на deny.

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

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

To 		Action 			From
-- 		----------- 		------
22/tcp		ALLOW 			192.168.0.104
21/tcp		ALLOW 			Anywhere
21/tcp 		ALLOW 			Anywhere (v6)

Существует два метода удаления правил.

Способ 1

Приведенная ниже команда удалит правила, соответствующие сервису ftp. Таким образом, 21/tcp, что означает порт ftp, будет удален.

sudo ufw delete allow ftp
Способ 2

Но когда вы попытались удалить первое правило в приведенном выше примере, используя команду ниже.

sudo ufw delete allow ssh

Or 

sudo ufw delete allow 22/tcp

Вы можете найти сообщение об ошибке, например.

Could not delete non-existent rule
Could not delete non-existent rule (v6)

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

sudo ufw status numbered

To 		Action 			From
-- 		----------- 		------
[1] 22/tcp		ALLOW 			192.168.0.104
[2] 21/tcp		ALLOW 			Anywhere
[3] 21/tcp 		ALLOW 			Anywhere (v6)

Затем вы можете удалить первое правило, используя. Нажмите «y», чтобы удалить правило навсегда.

sudo ufw delete 1

Deleting :
Allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y

Используя эти методы, вы увидите разницу. Метод 2 запрашивает подтверждение пользователя перед удалением правила, а метод 1 — нет.

Как сбросить правила

В некоторых ситуациях вам может потребоваться удалить/сбросить все правила. Вы можете сделать это, набрав.

sudo ufw reset

Resetting all rules to installed defaults. Proceed with operation (y|n)? y

Если вы нажмете «y», ufw создаст резервную копию всех существующих правил перед сбросом вашего ufw. Сброс правил также отключит ваш брандмауэр. Вам необходимо включить его снова, если вы хотите его использовать.

Расширенная функциональность

Как я уже говорил выше, брандмауэр ufw может делать все, что может делать iptables. Это достигается с помощью различных наборов файлов правил, которые представляют собой не что иное, как соответствующие текстовые файлы iptables-restore. Точная настройка ufw и/или размещение дополнительных команд iptables, не разрешенных с помощью команды ufw, — это вопрос редактирования нескольких текстовых файлов.

  1. /etc/default/ufw: основная конфигурация политик по умолчанию, поддержки IPv6 и модулей ядра.
  2. /etc/ufw/before[6].rules: правила в этих файлах рассчитываются до того, как какие-либо правила добавляются с помощью команды ufw.
  3. /etc/ufw/after[6].rules: правила в этих файлах рассчитываются после любых правил, добавленных с помощью команды ufw.
  4. /etc/ufw/sysctl.conf: настройки сети ядра.
  5. /etc/ufw/ufw.conf: устанавливает, включен ли ufw при загрузке, и устанавливает LOGLEVEL.

Заключение

UFW как интерфейс к iptables, безусловно, обеспечивает простой интерфейс для пользователя. Пользователю не нужно запоминать сложный синтаксис iptables. UFW также использует в качестве параметра «простой английский».

Разрешить, запретить, сбросить — одни из них. Я считаю, что существует гораздо больше интерфейсов iptables. Но определенно ufw — одна из лучших альтернатив для пользователей, которые хотят быстро, легко и безопасно настроить свой брандмауэр. Посетите страницу руководства ufw, набрав man ufw для получения более подробной информации.