НАСТРОЙКА ФАЕРВОЛА С ПОМОЩЬЮ UFW НА ОБЛАЧНЫХ СЕРВЕРАХ UBUNTU И DEBIAN

НАСТРОЙКА ФАЕРВОЛА С ПОМОЩЬЮ UFW НА ОБЛАЧНЫХ СЕРВЕРАХ UBUNTU И DEBIAN

 

Вступление

Надежно настроенный фаервол — одно из важнейших условий защиты облачного сервера. Раньше для настройки фаервола использовались сложные утилиты с огромным количеством встроенных функций, ознакомление с которыми занимает немало времени и усилий. Одна из наиболее популярных программ такого типа — IPTables. Правила фаервола нельзя придумать или составить наугад, их синтаксис не так прост. UFW — отличный альтернативный вариант, намного более простой в использовании.

Что такое UFW?

UFW, или Uncomplicated Firewall («незамысловатый фаервол») — это интерфейс IPTables. Основная цель этого удобного в использовании интерфейса — существенно упростить управление фаерволом. Он популярен среди пользователей Linux и даже установлен на многие дистрибутивы по умолчанию.

Установка UFW

Для начала нужно проверить, установлен ли UFW.  На Ubuntu он поставляется по умолчанию, но если по каким-либо причинам он не был установлен, его можно установить при помощи команд aptitude или apt-get следующим образом:

sudo aptitude install ufw

или

sudo apt-get install ufw

Проверка состояния

Чтобы проверить состояние UFW, наберите:

sudo ufw status

Скорее всего, сейчас он отключен. Всякий раз, когда UFW активен, он выдает список текущих правил, который выглядит примерно так:

Status: active
To               Action      From
--               ------      ----
22               ALLOW       Anywhere

Настройка по умолчанию

Правила по умолчанию, разрешающие или запрещающие доступ, помогут быстро и надежно настроить любой фаервол. По умолчанию UFW отклоняет все входящие и разрешает все исходящие соединения. Это значит, что никто не сможет подключиться к серверу, но все его приложения могут устанавливать необходимые соединения. Чтобы установить настройки UFW по умолчанию, используйте команды:

sudo ufw default deny incoming

и

sudo ufw default allow outgoing

Примечание: при необходимости установить более строгие настройки можно также запретить все исходящие соединения. Это достаточно спорный момент, но это может защитить облачный сервер от различного рода удаленных подключений оболочки. Это может усложнить управление фаерволом, поскольку придется также установить правила для исходящих соединений. Чтобы установить данные настройки по умолчанию, используйте:

sudo ufw default deny outgoing

Разрешение соединения

Синтаксис достаточно прост. Правила фаервола редактируются с помощью командной строки в терминале. Если активировать фаервол сейчас, он будет отклонять все входящие соединения. При подключении к облачному серверу через SSH могут возникнуть некоторые проблемы, так как данное соединение будет заблокировано. Чтоб не допустить этого, нужно разрешить SSH-соединения, это делается так:

sudo ufw allow ssh

Как можно видеть, синтаксис для разрешения соединений достаточно прост. UFW идет с некоторыми значениями по умолчанию для общего применения. Приведенная выше команда — всего лишь один из примеров. По сути это краткое обозначение команды:

sudo ufw allow 22/tcp

Данная команда позволяет устанавливать соединение с портом 22 при помощи протокола TCP. К примеру, если сервер запущен через порт 2222, то данное соединение разрешает следующая команда:

sudo ufw allow 2222/tcp

Другие соединения

Также нужно определить и разрешить другие важные соединения. Если веб-сервер защищен с помощью доступа FTP, понадобятся следующие команды:

sudo ufw allow www or sudo ufw allow 80/tcp
sudo ufw allow ftp or sudo ufw allow 21/tcp

Чтобы убедиться, что все работает должным образом, нужно протестировать сервер. Кроме того, нужно убедиться, что SSH-соединение разрешено.

Диапазоны портов

С помощью UFW можно также указать диапазоны портов. К примеру, чтобы разрешить подключение к портам с номером от 1000 до 2000, используйте команду:

sudo ufw allow 1000:2000/tcp

Чтобы вместо TCP использовать протокол UDP, наберите:

sudo ufw allow 1000:2000/udp

IP-адреса

Также понадобится указать IP-адреса. К примеру, если нужно разрешить подключение определенному адресу (допустим, домашнему или рабочему адресу), нужно использовать команду:

sudo ufw allow from 192.168.255.255

Ограничение подключений

По умолчанию все входящие подключения блокируются. Благодаря этому фаерволом легче управлять, поскольку все, что нужно сделать — это выборочно разрешить определенные порты и IP-адреса. Тем не менее, при желании открыть все порты сервера (что делать не рекомендуется), можно сначала разрешить все соединения, а потом заблокировать подключение к определенным портам, заменив в вышеприведенных командах «allow» на «deny».  Например, команда:

sudo ufw allow 80/tcp

разрешает доступ к порту 80, а команда:

sudo ufw deny 80/tcp

запрещает доступ к нему.

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

Для удаления правил существует 2 операции. Наиболее простая из них представлена следующим синтаксисом:

sudo ufw delete allow ssh

Как видите, нужно просто использовать команду «delete», а после ввести правила, которые нужно удалить. К примеру:

sudo ufw delete allow 80/tcp

или

sudo ufw delete allow 1000:2000/tcp

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

sudo ufw status numbered

что выведет пронумерованный список всех текущих правил UFW. Затем используйте команду:

sudo ufw delete [номер]

где «номер» — порядковый номер правила, которое нужно удалить.

Активация UFW

Настроив UFW согласно требованиям, его можно активировать при помощи команды (при подключении по SSH убедитесь, что такое соединение (обычно через порт 22) разрешено правилами фаервола):

sudo ufw enable

Если все работает должным образом, снова появится командная строка. Проверьте состояние UFW:

sudo ufw status

или

sudo ufw status verbose

для более подробного вывода.

Чтобы деактивировать UFW, наберите:

sudo ufw disable

Сброс настроек

Чтобы сбросить установленные правила и вернуть настройки по умолчанию, наберите:

sudo ufw reset

Итоги

Теперь облачный сервер надежно защищен, поскольку доступ к нему разрешен только определенной группе портов или IP-адресов.

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

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

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.