Домены
Интересные статьи
Домены

Основы работы с UFW в Ubuntu 15.04

UFW или Uncomplicated Firewall это приложение для управления межсетевым экраном на основе iptables. UFW установлен по умолчанию в Ubuntu и имеет относительно простую настройку.
UFW поддерживает как IPv4, так и IPv6.

Также UFW имеет интерфейс, если вы используете GNOME — установите guwf,а если KDEkcm-ufw.

В этой статье мы рассмотрим основы работы с UFW в Ubuntu 15.04

Исходные данные

  • Ubuntu 15.04
  • root права

Установка UFW

По умолчанию, UFW уже установлен в Ubuntu 15.04. Вы можете найти его с помощью команды:

which ufw

Если команда не отобразила путь к UFW, установите его вручную следующей командой:

apt-get install ufw

После чего запустите его:

ufw enable

В результате увидите подобное сообщение:

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

Базовые команды UFW

Команда «ufw enable» включила UFW и установила базовые правила. Вы можете проверить статус работы UFW следующей командой:

ufw status verbose

В результате увидите подобное:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

Если хотите отключить UFW, используйте:

ufw disable

В ответ вы получите следующее сообщение:

Firewall stopped and disabled on system startup
1

Команды Allow и Deny

Команда Allow

После включения UFW, все входящие соединения будут заблокированы. Поэтому, первым делом нужно разрешить доступ по SSH, если вы управляете сервером удаленно.
Команда «ufw allow port» разрешит доступ к порту port (замените port на номер порта, для SSH по умолчанию — 22).

ufw allow 22

В результате увидите подобное сообщение:

Rules updated
Rules updated (v6) #For IPv6

Если вы хотите разрешить все входящие соединения к 22 порту, но только по протоколу TCP, добавьте в конец команды «/tcp«:

ufw allow 22/tcp

Если сервис, к которому вы хотите разрешить входящие соединения работает на стандартном порту (например SSH — 22 порт), просто замените номер порта на имя сервиса.

Это сильно упрощает процесс открытия портов и избавляет от необходимости запоминать порты.
UFW берет стандартные порты в файле /etc/services.

Например, чтобы открыть доступ к SSH, используйте это:

ufw allow ssh

И проверим результат:

ufw status
2

Команда Deny

Команда Deny обратна «Allow» т.е. она запрещает доступ к порту.

Например, чтобы закрыть доступ к порту 80, используйте:

ufw deny 80

Результат:

Rule added
Rule added (v6)
31

Также как и в команде «Allow», можно использовать имена сервисов, для блокирования стандартных портов.

Например заблокируем http порт (80):

ufw deny http
41

Продвинутые команды UFW

Немного углубимся в синтаксис команд UFW, в этой части рассмотрим работу с диапазонами.
(например, разрешить пассивный режим FTP и разрешим доступ только с одного IP или подсети).

Команда Allow для диапазона портов

Помимо разрешения доступа к одиночному порту, можно указать целый диапазон портов. Например, FTP или IRC используют несколько портов для связи с клиентами.

Разрешим доступ к IRC серверу, работающему на портах с 6660 по 6670:

ufw allow 6660:6670/tcp
ufw allow 6660:6670/udp

Это разрешит подключение к портам 6660-6670 по протоколам TCP и UDP.

Команда Allow для конкретного IP

Также вы можете разрешить доступ ко всем сервисам(портам) для конкретного IP адреса. Например, если вы имеете статический IP на домашнем сервере и хотите получить доступ к нему извне.

Разрешим доступ ко всем портам для IP 192.168.1.106:

ufw allow from 192.168.1.106

Результат:

Rule added

Команда Allow для подсетей

Если вы хотите разрешить полный доступ для целой подсети IP адресов, используйте:

ufw allow from 192.168.1.1/24

Результат:

WARN: Rule changed after normalization
Rule added

Команда Allow для доступа с конкретного IP к определенному порту

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

Разрешим доступ к порту 22 (SSH) только для IP 192.168.1.106, все остальные соединения будут отклонены:

ufw allow from 192.168.1.106 proto tcp to any port 22

Результат:

Rule added

Команда Allow разрешающая все входящие соединения к определенному порту

Разрешим все входящие соединения к порту 80:

ufw allow to any port 80

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

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

Например, удалим разрешающее правило для SSH:

ufw delete allow ssh

Результат:

Rule deleted
Rule deleted (v6)

Внимание, этой командой вы заблокируете доступ к серверу по SSH, не потеряйте контроль над сервером!

Если у вас множество правил, то самый простой способ идентификации и работы с правилами — работа с их ID.

Следующая команда выведет список правил с их ID:

ufw status numbered

Результат:

Status: active
 
     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 22/tcp (v6)                ALLOW IN    Anywhere (v6)

Удалим разрешающее правило для SSH по IPv6 (ID правила: 2)

ufw delete 2

Отключение и сброс UFW

Если вам нужно отключить UFW, но оставить правила, используйте команду:

ufw disable

Результат:

Firewall stopped and disabled on system startup
5

Если вы хотите отключить UFW и удалить все его правила, используйте:

ufw reset

Результат:

Resetting all rules to installed defaults. This may disrupt existing ssh
connections. Proceed with operation (y|n)? y
Backing up 'after6.rules' to '/etc/ufw/after6.rules.20150918_190351'
Backing up 'user.rules' to '/lib/ufw/user.rules.20150918_190351'
Backing up 'after.rules' to '/etc/ufw/after.rules.20150918_190351'
Backing up 'before.rules' to '/etc/ufw/before.rules.20150918_190351'
Backing up 'before6.rules' to '/etc/ufw/before6.rules.20150918_190351'
Backing up 'user6.rules' to '/lib/ufw/user6.rules.20150918_190351'

Вас спросят уверены ли вы? После чего создается резерная копия правил и происходит удаление правил.

На этом всё 🙂

Обо мне cyber01

Прочитайте также

Как сделать дамп только нужных записей из базы данных

Бывало такое, что из всей таблицы нужно сделать дамп только определенных строк? Например, результата какого-либо …

Как установить Zend Framework на Ubuntu 18.04

Zend Framework 3 это последняя версия фреймворка. Новая версия отличается большей производительностью. Zend это фреймворк …

Как установить Python 3.8 в Ubuntu/Debian/Linux Mint

Команда разработки Python выпустила версию 3.8. Вы можете скачать последнюю стабильную версию ветки Python 3.8 …

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *