Как установить и настроить UFW — несложный брандмауэр в Debian/Ubuntu
Поскольку компьютеры подключены друг к другу, услуги быстро растут. Электронная почта, Социальные сети, Интернет-магазин, Чат, пока Веб-конференции не являются службами, используется пользователем. Но с другой стороны, эта связь подобна двустороннему ножу. На эти компьютеры также можно отправлять вредоносные сообщения, например, вирус, вредоносное ПО, троянские приложения.
Интернет, как крупнейшая компьютерная сеть, не всегда полон хороших людей. Чтобы обеспечить безопасность наших компьютеров/серверов, нам необходимо защитить их.
Одним из обязательных компонентов на вашем компьютере/серверах является Брандмауэр. Определение из Википедии:
В вычислительной технике брандмауэр — это программная или аппаратная система сетевой безопасности, которая контролирует входящий и исходящий сетевой трафик путем анализа пакетов данных и определения, следует ли их пропускать или нет, на основе применяемого набора правил.
Iptables — один из широко используемых серверами межсетевых экранов. Это программа, используемая для управления входящим и исходящим трафиком на сервере на основе набора правил. Как правило, доступ на сервер разрешен только доверенному соединению. Но IPTables работает в режиме консоли, и это сложно. Те, кто знаком с правилами и командами iptables, могут прочитать следующую статью, в которой описывается, как использовать брандмауэр iptables.
- Базовое руководство по 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. Если мы хотим открыть порт 2290 – 2300 по протоколу 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, — это вопрос редактирования нескольких текстовых файлов.
- /etc/default/ufw: основная конфигурация политик по умолчанию, поддержки IPv6 и модулей ядра.
- /etc/ufw/before[6].rules: правила в этих файлах рассчитываются до того, как какие-либо правила добавляются с помощью команды ufw.
- /etc/ufw/after[6].rules: правила в этих файлах рассчитываются после любых правил, добавленных с помощью команды ufw.
- /etc/ufw/sysctl.conf: настройки сети ядра.
- /etc/ufw/ufw.conf: устанавливает, включен ли ufw при загрузке, и устанавливает LOGLEVEL.
Заключение
UFW как интерфейс к iptables, безусловно, обеспечивает простой интерфейс для пользователя. Пользователю не нужно запоминать сложный синтаксис iptables. UFW также использует в качестве параметра «простой английский».
Разрешить, запретить, сбросить — одни из них. Я считаю, что существует гораздо больше интерфейсов iptables. Но определенно ufw — одна из лучших альтернатив для пользователей, которые хотят быстро, легко и безопасно настроить свой брандмауэр. Посетите страницу руководства ufw, набрав man ufw для получения более подробной информации.