Настройка UFW Ubuntu
Во всех дистрибутивах Linux для обеспечения сетевой безопасности и изоляции внутренних процессов от внешней среды используется брандмауэр iptables. Но его настройка может показаться очень сложной для новых пользователей, поэтому многие дистрибутивы создают собственные оболочки, которые упрощают процесс настройки.
В Ubuntu используется оболочка под названием UFW или Uncomplicated FireWall. В этой статье мы разберём, как выполняется настройка UFW Ubuntu, а также как пользоваться основными возможностями этой программы.
Команда UFW Ubuntu
1. Синтаксис ufw
$ ufw опции действие параметры
Сначала разберём опции утилиты:
2. Команды UFW
Для выполнения действий с утилитой доступны такие команды:
Это были все опции и команды, которые вы можете использовать в ufw. Как видите, их намного меньше, чем в iptables и всё выглядит намного проще, а теперь давайте рассмотрим несколько примеров настройки.
Настройка UFW Ubuntu
1. Как включить UFW
Сначала нужно отметить, что в серверной версии Ubuntu UFW по умолчанию включён, а в версии для рабочего стола он отключён. Поэтому сначала смотрим состояние фаервола:
Если он не включён, то его необходимо включить:
Затем вы можете снова посмотреть состояние:
Обратите внимание, что если вы работаете по SSH, то перед тем, как включать брандмауэр, нужно добавить правило, разрешающее работу по SSH, иначе у вас не будет доступа к серверу. Подождите с включением до пункта 3.
2. Политика по умолчанию
Перед тем, как мы перейдём к добавлению правил, необходимо указать политику по умолчанию. Какие действия будут применяться к пакетам, если они не подпадают под созданные правила ufw. Все входящие пакеты будем отклонять:
sudo ufw default deny incoming
А все исходящие разрешим:
sudo ufw default allow outgoing
3. Добавление правил UFW
$ ufw allow имя_службы
$ ufw allow порт
$ ufw allow порт/протокол
Например, чтобы открыть порт ufw для SSH, можно добавить одно из этих правил:
sudo ufw allow OpenSSH
sudo ufw allow 22
sudo ufw allow 22/tcp
Первое и второе правила разрешают входящие и исходящие подключения к порту 22 для любого протокола, третье правило разрешает входящие и исходящие подключения для порта 22 только по протоколу tcp.
Посмотреть доступные имена приложений можно с помощью команды:
Можно также указать направление следования трафика с помощью слов out для исходящего и in для входящего.
$ ufw allow направление порт
Например, разрешим только исходящий трафик на порт 80, а входящий запретим:
sudo ufw allow out 80/tcp
sudo ufw deny in 80/tcp
Также можно использовать более полный синтаксис добавления правил:
$ ufw allow proto протокол from ip_источника to ip_назначения port порт_назначения
В качестве ip_источника может использоваться также и адрес подсети. Например, разрешим доступ со всех IP-адресов для интерфейса eth0 по протоколу tcp к нашему IP-адресу и порту 3318:
sudo ufw allow proto tcp from 0.0.0.0/24 to 192.168.1.5 port 3318
4. Правила limit ufw
С помощью правил limit можно ограничить количество подключений к определённому порту с одного IP-адреса, это может быть полезно для защиты от атак перебора паролей. По умолчанию подключения блокируются, если пользователь пытается создать шесть и больше подключений за 30 секунд:
sudo ufw limit ssh/tcp
К сожалению, настроить время и количество запросов можно только через iptables.
5. Просмотр состояния UFW
Посмотреть состояние и действующие на данный момент правила можно командой status:
Чтобы получить более подробную информацию, используйте параметр verbose:
sudo ufw status verbose
С помощью команды show можно посмотреть разные отчеты:
Например, посмотрим список всех правил iptables:
Посмотрим все прослушиваемые порты:
sudo ufw show listening
Или недавно добавленные правила:
sudo ufw show added
6. Удаление правил ufw
Чтобы удалить правило ufw, используется команда delete. Например, удалим ранее созданные правила для порта 80:
sudo ufw delete allow out 80/tcp
sudo ufw delete deny in 80/tcp
7. Логгирование в ufw
Чтобы отлаживать работу ufw, могут понадобится журналы работы брандмауэра. Для включения журналирования используется команда logging:
sudo ufw logging on
sudo ufw logging medium
Также этой командой можно изменить уровень логгирования:
Лог сохраняется в папке /var/log/ufw. Каждая строчка лога имеет такой синтаксис:
[UFW действие] IN=интерфейс OUT=итерфейс SRC=ip_источника DST=ip_назначения LEN=размер_пакета TOS=0x10 PREC=0x00 TTL=64 DF PROTO=протокол SPT=порт_источника DPT=порт назначения LEN=размер_пакета
В качестве действия приводится то, что UFW сделал с пакетом, например ALLOW, BLOCK или AUDIT. Благодаря анализу лога настройка UFW Ubuntu станет гораздо проще.
8. Отключение UFW
Если вы хотите полностью отключить UFW, для этого достаточно использовать команду disable:
Также, если вы что-то испортили в настройках и не знаете как исправить, можно использовать команду reset для сброса настроек до состояния по умолчанию:
Выводы
В этой небольшой статье мы разобрали, как настроить UFW Ubuntu для защиты вашего компьютера от угроз из сети. Это особенно актуально для серверов, потому что они постоянно доступны из интернета.
Настройка брандмауэра с UFW в Ubuntu 20.04
Published on May 21, 2020
Введение
В этом обучающем модуле вы научитесь настраивать брандмауэр с помощью UFW в Ubuntu 20.04
Предварительные требования
Для данного обучающего руководства вам потребуется следующее:
Шаг 1 — Использование IPv6 с UFW (опционально)
Этот обучающий модуль предусматривает использование протокола IPv4, но подходит и для IPv6, если вы активировали этот протокол. Если на вашем сервере Ubuntu активирован протокол IPv6, настройте UFW для поддержки IPv6, чтобы UFW управлял правилами брандмауэра и для IPv6, и для IPv4. Для этого откройте конфигурацию UFW с помощью nano или своего предпочитаемого редактора.
Сохраните и закройте файл. После активации UFW будет настроен для записи правил брандмауэра для IPv4 и для IPv6. Однако перед включением UFW нужно убедиться, что ваш брандмауэр настроен для подключения через SSH. Для начала настроим политики по умолчанию.
Шаг 2 — Настройка политик по умолчанию
Если вы только начинаете работать с брандмауэром, прежде всего нужно настроить политики по умолчанию. Эти правила определяют обработку трафика, который явно не соответствует каким-либо другим правилам. По умолчанию UFW настроен так, чтобы запрещать все входящие соединения и разрешать все исходящие соединения. Это означает, что любые попытки связаться с вашим сервером будут заблокированы, но любые приложения на вашем сервере будут иметь связь с внешним миром.
Восстановим правила UFW по умолчанию, чтобы продолжить выполнение этого обучающего модуля. Для восстановления настроек по умолчанию для UFW необходимо использовать следующие команды:
Эти команды задают значения по умолчанию, запрещая входящие соединения и разрешая исходящие. Такие параметры брандмауэра по умолчанию достаточны для персонального компьютера, но серверам обычно нужно отвечать на поступающие запросы внешних пользователей. Мы рассмотрим это чуть позже.
Шаг 3 — Разрешение подключений SSH
Если мы сейчас активируем брандмауэр UFW, все входящие соединения будут запрещены. Это означает, что нам нужно создать правила, прямо разрешающие легитимные входящие соединения (например, SSH или HTTP), если мы хотим, чтобы сервер отвечал на такие запросы. Если вы используете облачный сервер, вы наверное хотите разрешить входящие соединения SSH, чтобы можно было подключаться к серверу и управлять им.
Чтобы разрешить на сервере входящие соединения SSH, вы можете использовать следующую команду:
Однако мы можем записать эквивалентное правило, указав номер порта вместо имени службы. Например, эта команда работает так же, как показанная выше:
Теперь ваш брандмауэр настроен, чтобы разрешать входящие соединения SSH, и мы можем его активировать.
Шаг 4 — Активация UFW
Чтобы активировать UFW, используйте следующую команду:
Шаг 5 — Разрешение других соединений
Помимо указания порта или службы есть другие способы разрешить другие соединения.
Определенные диапазоны портов
С помощью UFW вы можете указывать диапазоны портов. Некоторые приложения используют для соединений не один порт, а несколько.
Когда вы указываете диапазоны портов с помощью UFW, вы должны указать протокол ( tcp или udp ), к которому должны применяться эти правила. Мы не упоминали этого ранее, поскольку если протокол не указать, оба протокола будут разрешены, что подходит для большинства случаев.
Конкретные IP-адреса
Подсети
Подключения к определенному сетевому интерфейсу
Если вы хотите создать правило брандмауэра, применимое только к определенному сетевому интерфейсу, вы можете использовать для этого опцию «allow in on», а затем указать имя сетевого интерфейса.
Прежде чем продолжить, вам может понадобиться просмотреть сетевые интерфейсы. Для этого нужно использовать следующую команду:
Это позволит вашему серверу принимать запросы HTTP из публичной части интернета.
Если вы хотите использовать сервер базы данных MySQL (порт 3306 ) для прослушивания соединений на интерфейсе частной сети (например, eth1 ), вы можете использовать следующую команду:
Это позволит другим серверам в вашей частной сети подключаться к вашей базе данных MySQL.
Шаг 6 — Запрет соединений
Если вы не изменяли политику по умолчанию для входящих соединений, UFW настроен на запрет всех входящих соединений. Это упрощает процесс создания защищенной политики брандмауэра, поскольку вам нужно создавать правила, прямо разрешающие соединения через конкретные порты и IP-адреса.
Однако в некоторых случаях вам может понадобиться запретить определенные соединения по IP-адресу источника или подсети, например, в случае атаки с этого адреса. Если вы захотите изменить политику по умолчанию для входящих соединений на allow (что не рекомендуется), вам нужно будет создать правила deny для любых служб или IP-адресов, которым вы не хотите разрешать подключение.
Для записи правил deny можно использовать описанные выше команды, заменяя allow на deny.
Например, чтобы запретить соединения по протоколу HTTP, вы можете использовать следующую команду:
Теперь посмотрим, как можно удалять правила.
Шаг 7 — Удаление правил
Знать процедуру удаления правил брандмауэра так же важно, как и знать процедуру их создания. Существует два разных способа указывать правила для удаления: по номеру правила или по фактическому правилу (так же, как правила задавались при их создании). Начнем с метода удаления по номеру правила, поскольку этот метод проще.
По номеру правила
Если вы используете номер правила для удаления правил брандмауэра, прежде всего нужно получить список правил брандмауэра. Команда UFW status имеет опцию отображение номеров рядом с каждым правилом, как показано здесь:
Если мы решим удалить правило 2, разрешающее соединения через порт 80 (HTTP), мы можем указать его в команде UFW delete, как показано здесь:
После этого откроется диалогового окна подтверждения удаления правила 2, разрешающего соединения HTTP. Если вы включили поддержку IPv6, вы можете также удалить соответствующее правило для IPv6.
По фактическому имени правила
Этот метод удалит правила IPv4 и IPv6, если они существуют.
Шаг 8 — Проверка состояния и правил UFW
Вы можете проверить состояние UFW в любое время с помощью следующей команды:
Если UFW отключен (по умолчанию), вы увидите примерно следующее:
Если UFW активен (т. е. вы выполнили шаг 3), в результатах будет показано, что он активен, и будет выведен список заданных правил. Например, если настройки брандмауэра разрешают соединения SSH (порт 22 ) из любого источника, результат может выглядеть примерно так:
Шаг 9 — Отключение или сброс UFW (необязательно)
Если вы решите прекратить использовать UFW, вы можете отключить его с помощью следующей команды:
Если вы уже настроили правила UFW, но решите начать заново, вы можете использовать команду reset:
Эта команда отключит UFW и удалит все ранее заданные правила. Помните, что если вы изменяли политики по умолчанию, их первоначальные настройки не восстановятся. Это позволит заново начать настройку UFW.
Заключение
Теперь ваш брандмауэр настроен так, чтобы разрешать (как минимум) соединения SSH. Обязательно разрешите другие входящие соединения, необходимые ашему серверу, но при этом ограничьте все ненужные соединения, чтобы сделать его функциональным и безопасным.
Чтобы узнать о других распространенных конфигурациях UFW, ознакомьтесь с обучающим модулем Основы UFW: распространенные правила и команды брандмауэра.
Что такое ufw linux
Межсетевой экран, он же firewall (файрвол, фаервол или файервол) служит для автоматической обработки и фильтрации сетевого трафика. Поскольку не все данные, передаваемые по сети, полезны и безопасны, возникла необходимость проверять и обрабатывать их «на лету».
Чтобы лучше понять, о чем идет речь, представьте многоквартирный дом. Сотни или даже тысячи людей входят и выходят ежедневно. Среди них есть владельцы квартир, их домочадцы, гости, а также люди, которых никто не приглашал — грабители, мошенники и просто продавцы никому не нужных вещей, надоедающие жителям. Фаервол в данном примере — это строгий консьерж на входе. Он знает и без проблем пропускает каждого жильца, а тех, кого не знает — тщательно проверяет. Имущество и покой обитателей дома при этом находятся в безопасности.
В Linux для фильтрации трафика используется фаервол Netfilter, с 2000 года входящий в состав ядра. Управлять им позволяет известная многим утилита iptables. Она предоставляет очень гибкую систему настроек, но достаточно сложна в конфигурировании. Чтобы упростить пользователям жизнь, в Ubuntu была добавлена обертка для iptables — фаервол Uncomplicated Firewall (UFW) и графическая оболочка для него — GUI for Uncomplicated Firewall (GUFW). Чтобы лучше разобраться, мы начнем с консольной версии фаервола, а графическую рассмотрим в одной из следующих статей.
Включение фаервола и создание простейших правил.
По умолчанию в Ubuntu 16.04 UFW отключен. Для проверки его текущего состояния используйте команду:
Стремясь облегчить жизнь пользователям, разработчики сформировали конфигурацию фаервола, которая подходит для большинства домашних ПК. Поэтому на своем компьютере можете смело включать UFW командой:
На сервере, особенно выполняющем какую-либо работу, лучше предварительно выяснить, какие правила фильтрации будут применены и, в случае необходимости, внести свои поправки.
Прежде всего, давайте разберемся с общими принципами работы UFW. Входящие и исходящие пакеты проверяются на предмет соответствия имеющимся правилам фильтрации, после чего выполняется действие, установленное для этого правила. Если подходящее правило не будет найдено, используется действие, установленное по умолчанию. Действия могут быть такими:
После включения фаервола можно посмотреть, какие правила используются в данный момент:
Результат будет примерно таким:
На скриншоте выше мы видим, что по умолчанию разрешен весь исходящий трафик и запрещен весь входящий. Созданные правила отменяют запрет входящего трафика для портов 80, 22 и 1194/udp.
Если вы настраиваете сервер, к которому подключились по SSH, прежде всего необходимо разрешить подключение к порту 22:
С большой долей вероятности вам придется открыть некоторые из следующих портов:
К счастью, запоминать все порты не обязательно, поскольку UFW имеет набор предустановленных правил для часто используемых сервисов. Благодаря этому мы можем разрешить FTP вот так:
Можно разрешить доступ к порту только с одного IP. К примеру, вы хотите сделать так, чтобы только вы могли подключиться по FTP к своему серверу. Тогда на сервере нужно включить фаервол и выполнить следующее:
Во-первых, IP должен быть внешним, во-вторых — статическим. Если вы допустите ошибку, то сами не сможете подключиться. У большинства провайдеров статический ip можно получить за небольшую отдельную плату.
Запрещающие правила создаются примерно таким же образом. Запретим доступ к порту 110:
Запретим доступ к ftp c уведомлением о недоступности и комментарием:
Удаление правил UFW.
Если вы хотите отметить разрешающее правило, не нужно создавать запрещающее, просто удалите его. Например, если по умолчанию входящий трафик запрещен, но вы разрешили подключение к порту 443, а теперь хотите отозвать свое разрешение, выполните в консоли:
Есть и другой способ: вывести все правила нумерованным списком, после чего указать номер правила, которое вы желаете удалить. Выведем список и удалим правило под номером 1:
Настройки по умолчанию и восстановление исходного состояния.
Если для передаваемых данных не находится соответствующего правила, используются правила, установленные по умолчанию. В Ubuntu 16.04 после включения фаервола весь входящий трафик блокируется (deny), а исходящий пропускается (accept) без каких-либо препятствий. Другими словами, исходящие данные фильтруются по принципу черного списка (разрешено все, что не запрещено отдельными правилами), а входящие — по принципу белого (запрещено все, что не было прямо разрешено).
Напомню, что просмотреть текущие настройки при включенном фаерволе позволяет команда:
О настройках по умолчанию вам поведает строка, которая начинается с «Default: ». Если ваша система настроена иначе, следующие две команды установят стандартную конфигурацию:
Пользовательские правила, если они были созданы ранее, при этом останутся. Для того, чтобы сбросить вообще все настройки и вернуть фаервол к изначальному состоянию, выполните:
Для подтверждения нажмите y, после чего все правила будут удалены, а фаервол — выключен, поскольку по умолчанию он находится именно в таком состоянии. Это именно то, что нужно, если в процессе настройки или экспериментов вы запутались и теперь у вас что-то не работает.
На скриншотах — состояние фаервола до и после сброса.
Настройка правил с указанием направления, протокола, порта и IP.
UFW позволяет создавать правила с несколькими дополнительными условиями. В прошлой статье я уже демонстрировал, как создать правило для конкретного IP-адреса. Кроме этого вы можете указать протокол, порт и IP как отправителя, так и получателя.
В качестве первого примера возьмем типичную ситуацию: у вас есть компьютер с Ubuntu, на котором настроены нужные вам сервисы — FTP, Samba или что-нибудь еще. Вы хотите без проблем получать доступ ко всем этим сервисам из своей домашней сети (с ПК, смартфона и т. д. ), но оставить закрытым доступ извне.
В таком случае укажем IP-адреса нашей домашней сети в качестве разрешенных:
В список разрешенных при этом попадут IP-адреса с 192.168.0.1 по 192.168.0.254 включительно.
Усложним задачу и разрешим доступ из домашней сети только к порту, используемому для FTP:
Пусть вас не вводит в заблуждение словосочетание «to any port». Это две отдельные части команды, одна из которых означает IP-адрес, к которому выполняется обращение (в данном случае to any, то есть, к любому), а вторая определяет номер порта (port 21).
Сделаем наше правило еще более конкретным и укажем протокол:
В случае необходимости можно заблокировать доступ с нашего компьютера к конкретному IP или даже к конкретному порту неугодившего нам IP:
Указывая параметр out, мы сообщаем, что хотим блокировать именно исходящие пакеты. Поскольку они, как вы помните, разрешены у нас по умолчанию, наше правило будет единственным исключением.
Хотите закрыть сразу диапазон портов? Пожалуйста:
Особенность UFW заключается в том, что каждое новое правило добавляется в конец списка существующих правил. При поступлении пакета правила проверяются одно за другим до тех пор, пока не будет найдено подходящее. Теперь представим ситуацию, при которой вы сначала добавили общее разрешающее правило, а затем — более конкретное запрещающее. В таком случае последнее правило не будет работать, поскольку пакет пройдет благодаря предыдущему правилу.
Чтобы избежать такой ситуации, при добавлении уточняющего правила указывайте номер, который хотите ему назначить. Предположим, вы обнаружили, что на ваш веб-сервер кто-то отправляет слишком много запросов. Чтобы запретить доступ вредителю, не затрагивая остальных пользователей, назначим блокирующее его правило первым:
Теперь все запросы сначала будут проверяться на соответствие запрещенному IP, и лишь после этого — проходить далее, согласно правилу №3.
Кроме того, вы можете ограничить количество подключений. Чаще всего это используется для предотвращения автоматического подбора пароля.
Чтобы запретить более 6 попыток подключения к SSH за 30 секунд, выполните:
Все лишние попытки будут заблокированы и процесс подбора пароля сильно осложнится.
Вот и всё. Для большинства домашних компьютеров этого вполне достаточно и более тонкая настройка просто не нужна.
Настройка фаервола в Ubuntu с помощью утилиты UFW
UFW (Uncomplicated Firewall – несложный фаервол) – удобный интерфейс для управления политиками безопасности межсетевого экрана. Наши серверы постоянно подвергаются различным атакам или сканируются в поиске уязвимостей. Как только эти уязвимости находятся, мы рискуем стать частью ботнета, раскрыть конфиденциальные данные или потерять деньги из-за сбоев в работе веб-приложений. Одной из первых мер по снижению рисков безопасности является грамотная настройка правил межсетевого экрана. В нашем руководстве мы рассмотрим основные команды и правила работы с утилитой UFW.
Предварительные требования
Для начала работы с UFW вам потребуется суперпользователь(возможность исполнения команд под sudo).
Утилита UFW предустановлена в системе. Если по какой-то причине она была отсутствует, вы можете установить ее с помощью команды:
sudo apt-get install ufw
Проверка правил и текущего состояния UFW
В любое время вы можете проверить состояние UFW с помощью команды:
sudo ufw status verbose
По умолчанию UFW отключен, так что вы должны увидеть что-то вроде этого:
Если UFW включен, то в консоли будут перечисляться заданные правила. Например, если firewall настроен таким образом – SSH (порт 22) соединение из любой точки мира, консоль может выглядеть следующим образом:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
— —— —-
22 ALLOW IN Anywhere
22 (v6) ALLOW IN Anywhere (v6)
Так вы всегда можете узнать как настроен фаервол.
Внимание! Проведите начальную настройку перед включением UFW. В частности, должен быть доступен SSH(22 порт). В ином случае вы рискуете потерять доступ к серверу.
Краткое описание
С английского языка название дословно переводится как несложный (упрощенный) брандмауэр. Особенность продукта — минимализм с графической оболочкой на основе командной строки. Если кратко, то UFW используют для базовых настроек межсетевого экрана. Он содержит необходимый минимум функций для стандартной защиты корпоративных ресурсов. Создание более сложных правил и тонкая настройка доступны в iptables.
Изначально решение разрабатывалось для операционных систем семейства Debian и Ubuntu. Дальнейшие действия выполняются под управлением Ubuntu.
Предварительная подготовка
Если UFW не установлен на серверной платформе, используем стандартную утилиту:
sudo apt-get install ufw
Второй вариант – утилита установлена, но неактивна, тогда прописываем:
Важно! Любые действия, связанные с конфигурированием продукта, выполняются с правами суперпользователя.
После инсталляции проверим состояние программы:
sudo ufw status verbose
Стандартная конфигурация программы блокирует входящий трафик, но разрешает исходящий. Чтобы изменить параметры, открываем системный файл:
sudo nano /etc/default/ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
Первая строка отвечает за блокировку, а вторая за исходящие подключения.
Настройка
UFW распределяет правила согласно профилям программ. Они хранятся по следующему пути:
Создание нового или редактирование текущего профиля проводится администратором в ручном режиме. Для начала ознакомимся с текущими профилями:
Просмотр подробной информации по любой записи осуществляется при помощи следующей команды:
sudo ufw app info ‘name’
Где name — наименование профиля, которое заключается в одинарные кавычки.
Например, просмотрим сервис OpenSSH:
Первая строка — имя новой записи в UFW. Вторая описывает заголовок, по которому профиль будет идентифицироваться. Третья содержит краткое описание сервиса (рекомендуется использовать 1-2 предложения). Последняя строка указывает порты, которые необходимо открыть для работы приложения.
Сохраняем файл и перезагружаем межсетевой экран:
Следующий шаг — прописываем политику для новой записи. Доступно два режима: разрешить (Allow) и запретить (Deny). Синтаксис выглядит следующим образом:
Где action – одно из двух значений Allow или Deny, а name_profile — наименование профиля.
Операции с портами
Для открытия/закрытия портов также используется команды Allow/Deny, в зависимости от требований администратора. Синтаксис выглядит следующим образом:
1. action — одно из двух действий: разрешить (Allow) или запретить (Deny);
2. port — цифровое имя порта, для которого применяется правило;
3. name_protocol — наименование протокола.
Если требуется указать перечень портов, используем двоеточие между начальной и конечной точкой. Альтернативный вариант — использовать имя службы, для которой создается запись. Например, откроем порт для сервиса HTTP:
sudo ufw allow http
Важно! UFW разрешает стандартный порт, который закреплен за службой. Если значение отличается от общепринятых, то создавать правило по имени сервиса нельзя — оно не активируется.
Операции с IP-адресами
Аналогично портам правила создаются правила и для IP-адресов. Синтаксис идентичен предыдущему пункту:
Action – принимает значение Allow или Deny, IP-адрес – адрес оборудования, которому предоставляется/запрещается доступ к серверу.
Например, команду разрешить устройству с IP-адресом 10.68.23.15 доступ к всем портам сервера можно записать так:
sudo ufw allow from 10.68.23.15
Также доступна опция идентификации порта, например:
sudo ufw allow from 10.68.23.15 to any port 22
Добавление словосочетания to any port (name) задает конкретное значение порта, для которого доступ будет открыт. Вместо name указываем номер порта.
Если требуется создать правило для нескольких IP-адресов, используем видоизмененный синтаксис:
sudo ufw allow from 10.68.23.0/24
Операции с сетевым интерфейсом
При создании профилей также применяют имена сетевых интерфейсов. Синтаксис представлен ниже:
sudo ufw in on to any port sudo ufw in on
Поле action, как и в предыдущих разделах, принимает состояние Allow и Deny, а опция name_interface отвечает за наименование сетевого интерфейса, для которого создается правило.
Для просмотра списка активных интерфейсов вводим в терминале команду:
Также доступна дополнительная опция to any port — для однозначной идентификации порта.
Удаление записей
Чтобы удалить созданное ранее правило, используем ключ delete. В общем виде команда выглядит так:
Где number — порядковый номер записи в таблице конфигурации UFW. Чтобы проставить цифровые значения для каждой строки, укажем в терминале:
sudo ufw status numbered
После этого просто указываем номер записи в таблице. Допустим:
Перезагрузка не требуется.
Настраиваем UFW в Ubuntu
Устанавливать UFW в операционную систему не нужно, поскольку он присутствует там по умолчанию. Однако в стандартном своем виде он неактивен и не имеет вообще никаких правил. Сначала займемся активацией, а потом рассмотрим основные действия. Однако первоочередно следует изучить синтаксис, и особенно это касается тех юзеров, кто планирует задействовать данный межсетевой экран на постоянной основе.
Шаг 1: Изучение синтаксиса
Как известно, UFW — консольная утилита, а это значит, что управление ею осуществляется через стандартный «Терминал» или любой другой пользовательский. Взаимодействие такого рода выполнимо с помощью специально установленных команд. Все они всегда имеются в документации, однако читать огромную кучу материалов не имеет смысла, особенно в случае с сегодняшним инструментом. Принцип ввода выглядит так: sudo ufw опции действие параметры. sudo отвечает за запуск от имени суперпользователя, ufw — стандартный аргумент, обозначающий вызываемую программу, а остальные фразы и определяют устанавливаемые правила. Именно на них мы и хотим остановиться более детально.
Как видите, команд не так уж и много. Их точно меньше, нежели в других доступных межсетевых экранах, а запомнить синтаксис можно уже через несколько попыток взаимодействия с UFW. Осталось только разобраться с примером конфигурации, чему и будут посвящены следующие этапы сегодняшнего материала.
Шаг 2: Включение/Отключение/Сброс настроек
Мы решили выделить несколько конфигурационных моментов в один этап, поскольку они частично связаны между собой и похожи по реализации. Как вы уже знаете, UFW изначально находится в отключенном состоянии, поэтому давайте активируем его, применив всего одну команду.
Теперь вы знаете о том, какие именно команды отвечают за управление общим поведением рассматриваемого сегодня Firewall. Все остальные этапы будут нацелены исключительно на конфигурацию, а сами параметры приведены в качестве примера, то есть вы должны изменять их, отталкиваясь от своих потребностей.
Шаг 3: Установка правил по умолчанию
В обязательном порядке следует применить правила по умолчанию, которые будут относиться ко всем входящим и исходящим соединениям, не упомянутых отдельно. Это означает, что все входящие подключения, не обозначенные вручную, будут заблокированы, а исходящие при этом проходят успешно. Вся схема реализуется следующим образом:
Теперь вы можете не беспокоиться о том, что какие-либо неизвестные входящие попытки подключения пройдут успешно и кто-то сумеет получить доступ к вашей сети. Если же вы не собираетесь блокировать абсолютно все входящие попытки соединения, пропустите указанное выше правило и переходите к созданию собственных, детально изучив следующий этап.
Шаг 4: Добавление собственных правил межсетевого экрана
Правила брандмауэра — главная настраиваемая опция, ради которой пользователи и задействуют UFW. Мы на примере инструмента OpenSSH сейчас рассмотрим пример разрешения доступа, а также не забудем и про блокировку по портам. Для начала вам необходимо запомнить дополнительные команды синтаксиса, отвечающие за добавление правил:
После этого можете смело приступать к созданию разрешающих или запрещающих правил. Давайте по порядку разберемся с каждым типом политик.
Шаг 5: Установка правил limit
Мы вынесли тему установки правил limit в отдельный этап, поскольку об этом необходимо поговорит подробнее. Данное правило ограничивает количество подключенных IP-адресов к одному порту. Наиболее очевидное применение этого параметра — защита от атак, которые подразумевают перебор паролей. Осуществляется установка стандартной политики так:
Точно таким же образом устанавливаются политики ограничений и на другие приложения. Используйте для этого название службы, порт или порт/протокол.
Шаг 6: Просмотр состояния UFW
Иногда юзеру требуется посмотреть текущее состояние брандмауэра не только в плане активности, но и установленных правил. Для этого существует отдельная команда, о которой мы говорили ранее, а сейчас рассмотрим ее более детально.
Есть и другие опции, отображающие определенные сведения о существующих правилах и состоянии межсетевого экрана. Давайте вкратце пробежимся по всем ним:
В необходимый для вас момент вы можете использовать любую из этих опций, чтобы получить желаемую информацию и задействовать ее в своих целях.
Шаг 7: Удаление существующих правил
Некоторые пользователи, получив нужные сведения о существующих правилах, желают удалить некоторые из них, чтобы наладить соединение или задать новые политики. Рассматриваемый брандмауэр позволяет сделать это в любой доступный момент, что осуществляется так:
Используйте опции просмотра состояния, чтобы скопировать требуемые правила и удалить их так же, как это было продемонстрировано в примере.
Шаг 8: Включение логирования
Последний этап сегодняшней статьи подразумевает активацию опции, которая автоматически время от времени будет сохранять информацию о поведении UFW в отдельный файл. Необходима она далеко не всем пользователям, а применяется так:
Выше вы изучили целых восемь этапов, которые используются для настройки брандмауэра UFW в операционной системе Ubuntu. Как видите, это очень простой межсетевой экран, который подойдет даже начинающим юзерам из-за легкости освоения синтаксиса. UFW еще можно смело назвать хорошей заменой стандартному iptables, если он вас не устраивает.
Как просмотреть статус UFW?
По умолчанию UFW в неактивном состоянии т.е. нет правил брандмауэра не настроен и весь трафик разрешен.Чтобы увидеть статус, введите следующую команду:
Настройка политики по умолчанию
По умолчанию, когда UFW активируется он блокирует весь входящий трафик на межсетевой экран / сервер.Только исходящий трафик разрешен.Вы можете просмотреть правила по умолчанию UFW, введя следующую команду:
$ grep ‘DEFAULT_’ /etc/default/ufw
DEFAULT_INPUT_POLICY=”DROP” DEFAULT_OUTPUT_POLICY=”ACCEPT” DEFAULT_FORWARD_POLICY=”DROP” DEFAULT_APPLICATION_POLICY=”SKIP”
Политика по умолчанию работает хорошо для серверов и ноутбуков / рабочих станции, так как вам нужно только открыть ограниченное количество входящих портов.Это хорошая политика, она закрывает все порты на сервере / брандмауэра, и вам нужно только открыть порты один за другим.Вы можете выполнить следующие команды, чтобы установить политику, блокировать все входящие соединения и разрешить только исходящие соединения от сервера / межсетевого экрана:
Создание первого правила брандмауэра, чтобы разрешить подключение к SSH (TCP-порт 22)
Введите следующую команду, чтобы разрешить SSH-соединения с сервером:
$ sudo ufw allow ssh
sudo ufw allow 22/tcp
Скажем, если вы работаете в SSH на порту 2020, введите следующую команду:
$ sudo ufw allow 2020/tcp
Следующие правила открывают доступ к TCP SSH порт 22 только на 10.8.0.1 (т.е. ваш сервер SSH слущает на IP 10.8.0.1 порт 22) из любого места:
$ ufw allow proto tcp from any to 10.86.115.66 port 22
Разрешение соединения в UFW
Вы можете легко разрешить входящие соединения на порт/диапазон, название приложения, IP-адреса/подсети в UFW.
Проверьте приведенные ниже примеры.
а) Предоставление приложений по имени или номеру порта/диапазон
ufw allow service-name
ufw allow ssh or ufw allow 22/tcp ufw allow ftp or ufw allow 21/tcpsudo ufw allow 1500:2000/tcp
б) Разрешение IP-адреса/подсети
Ниже команда позволяет устанавливать соединение с конкретным IP или подсети, а также мы можем использовать определенные номера портов.
Для того, чтобы разрешить соединения с определенного IP-адреса
ufw allow from 10.200.20.45
Чтобы указать IP-адрес, который разрешен для подключения к определенному порту запуска
ufw allow from 10.200.20.45 to any port 22
Выше позволяет IP-адрес 10.200.20.45 только для подключения через SSH
Чтобы разрешить определенную подсеть IP-адресов для подключения к системе с помощью CIDR обозначения для указания сетевой маски
ufw allow from 192.168.1.0/24
Выше позволяет IP – адрес от 192.168.1 до 192.168.1.254 для подключения к системе
Вы можете также указать порт назначения подсети
ufw allow from 192.168.1.0/24 to any port 22
Это означает, что IP-адрес от 192.168.1 до 192.168.1.254 может подключаться к системе через порт 22, который является SSH.
в) Разрешить именем интерфейса
Если нам нужно разрешить соединения через имя интерфейса его можно указать так:
ufw allow in on eth0 to any port 80
Как запретить соединения в UFW
По умолчанию UFW настроен запрещать все входящие соединения.
а) IP-адрес/подсеть
Если мы хотим заблокировать некоторые конкретные адреса IP-доступа, то мы можем сделать это с помощью следующей команды:
ufw deny from 192.168.1.15
Это будет блокировать все входящие соединения от хоста с IP-адресом 192.168.1.15
Далее заблокируем всю подсеть:
ufw deny from 150.165.125.0/24
Это будет блокировать все соединения, поступающие из этой подсети.
б) Запретить порты и приложения
Запретить порт или услугу
ufw deny httpsudo ufw deny 1500:2000/tcp * Запрет диапазонов портов *
Удаление и получение номеров правил
Когда вы добавляете много правил, вы можете лучше отслеживать их, просматривая их номера. Номера можно получить с помощью следующей команды:
ufw status numbered
Вывод
ufw status numbered Status: active To Action From — —— —- [ 1] 22/tcp ALLOW IN Anywhere [ 2] 22 ALLOW IN Anywhere [ 3] 80/tcp ALLOW IN Anywhere [ 4] 53/tcp ALLOW IN Anywhere [ 5] 22/tcp (v6) ALLOW IN Anywhere (v6) [ 6] 22 (v6) ALLOW IN Anywhere (v6) [ 7] 80/tcp (v6) ALLOW IN Anywhere (v6) [ 8] 53/tcp (v6) ALLOW IN Anywhere (v6)
Допустим, мы хотим удалить правила номер 2. Мы делаем это следующей командой:
Заметка :
После удаления второго правила в брандмауэре, правило 3 будет теперь новое правило 2. Таким образом, если вы хотите удалить текущее правило 3, вы будете удалять, используя номер 2.
ufw delete allow http
Сброс правил
Если вы недовольны существующим правилам, и вы хотите, чтобы начать все сначала, вы можете сделать это, запустив
Вход и перезагрузка
Чтобы включить использование протоколирования следующей команды:
Если вы хотите отключить ведение журнала по какой-то причине (не рекомендуется), вы можете использовать следующую команду:
sudo ufw logging off
Журналы по умолчанию находятся в файле /var/log/ufw.log. Чтобы увидеть их в режиме реального времени, используйте -f, как это:
Если вы хотите увидеть правила, которые были недавно добавлены
Файлы конфигурации UFW
Для большинства сценариев, вы можете использовать терминальные команды, но в некоторых случаях, может вы захотите отредактировать конфигурационные файлы напрямую. В UFW есть несколько конфигурационных файлов, а именно:
Эти два файла содержат правила, которые вычисляются перед всеми правилами, которые вы добавили в UFW. Так что если вы хотите, чтобы некоторые правила выполнялись первыми. Первый файл для ipv4 и второй один для v6
Они оцениваются после правил команды ufw. Они хороши для использования, если вы хотите переопределить какое-то правило и применить его независимо. Опять же, два файла, для двух версий протокола IP, которые в настоящее время используются.
Здесь у нас есть модули ядра, использующиеся в ufw, а также другие параметры. Вы можете изменить конфигурационные файлы только как root, и вы можете использовать любой текстовый редактор. который Вам нравится.
Избегайте добавления повторяющихся правил
Далее рассмотрим механизм против повторяющихся правил. Сначала мы откроем порт 101
sudo ufw allow 100
Обратите внимание, что команда без протокола, как и выше открывает оба UDP и TCP-порт. Так давайте выполним ту же команду еще раз, чтобы увидеть, что происходит
Вывод
Skipping adding existing rule Skipping adding existing rule (v6)
Это не позволяет нам добавить дубликат правила. Это хорошо, но есть еще шанс, что мы можем добавить дубликат правила этой серии команд:
ufw allow 101/udp ufw allow 101/tcp
Указав TCP и UDP порт 101, мы все еще можем добавить открытый порт 101 для всех протоколов и это дубликат правила, как порт 101 открыт дважды, один раз для каждого протокола и один раз для всех из них.
Это оставляет место для ошибок, и это, как правило, не является хорошей практикой. Нам нужно отменить все три команды с помощью команды ufw delete, если мы хотим вернуться к значению по умолчанию для порта 101.
Для закрытия некоторого порта, вы запускаете некоторые команды, просто вместо того, чтобы разрешить, введите deny.
В этой статье мы рассмотрели использование UFW, который является несложным брандмауэром, используемым для разрешения или ограничения трафика. Это очень мощный брандмауэр для регулирования трафика в вашей системе. Не стесняйтесь опробовать команды в вашей системе.




















































