Фаервол UFW. Базовая настройка.

Межсетевой экран, он же firewall (файрвол, фаервол или файервол) служит для автоматической обработки и фильтрации сетевого трафика. Поскольку не все данные, передаваемые по сети, полезны и безопасны, возникла необходимость проверять и обрабатывать их «на лету».

Чтобы лучше понять, о чем идет речь, представьте многоквартирный дом. Сотни или даже тысячи людей входят и выходят ежедневно. Среди них есть владельцы квартир, их домочадцы, гости, а также люди, которых никто не приглашал — грабители, мошенники и просто продавцы никому не нужных вещей, надоедающие жителям. Фаервол в данном примере — это строгий консьерж на входе. Он знает и без проблем пропускает каждого жильца, а тех, кого не знает — тщательно проверяет. Имущество и покой обитателей дома при этом находятся в безопасности.
В Linux для фильтрации трафика используется фаервол Netfilter, с 2000 года входящий в состав ядра. Управлять им позволяет известная многим утилита iptables. Она предоставляет очень гибкую систему настроек, но достаточно сложна в конфигурировании. Чтобы упростить пользователям жизнь, в Ubuntu была добавлена обертка для iptables — фаервол Uncomplicated Firewall (UFW) и графическая оболочка для него — GUI for Uncomplicated Firewall (GUFW). Чтобы лучше разобраться, мы начнем с консольной версии фаервола, а графическую рассмотрим в одной из следующих статей.

Включение фаервола и создание простейших правил.

По умолчанию в Ubuntu 16.04 UFW отключен. Для проверки его текущего состояния используйте команду:
sudo ufw status
Стремясь облегчить жизнь пользователям, разработчики сформировали конфигурацию фаервола, которая подходит для большинства домашних ПК. Поэтому на своем компьютере можете смело включать UFW командой:
sudo ufw enable
На сервере, особенно выполняющем какую-либо работу, лучше предварительно выяснить, какие правила фильтрации будут применены и, в случае необходимости, внести свои поправки.

 

Прежде всего, давайте разберемся с общими принципами работы UFW. Входящие и исходящие пакеты проверяются на предмет соответствия имеющимся правилам фильтрации, после чего выполняется действие, установленное для этого правила. Если подходящее правило не будет найдено, используется действие, установленное по умолчанию. Действия могут быть такими:
  • Allow — пропустить (т. е., разрешить);
  • Deny — заблокировать (запретить);
  • Reject — отклонить и отправить обратно специальный код, сообщающий, что пакет был отклонен.

После включения фаервола можно посмотреть, какие правила используются в данный момент:

sudo ufw status verbose

Результат будет примерно таким:

На скриншоте выше мы видим, что по умолчанию разрешен весь исходящий трафик и запрещен весь входящий. Созданные правила отменяют запрет входящего трафика для портов 80, 22 и 1194/udp.

 

Если вы настраиваете сервер, к которому подключились по SSH, прежде всего необходимо разрешить подключение к порту 22:
sudo ufw allow 22

С большой долей вероятности вам придется открыть некоторые из следующих портов:

  • 80 для HTTP,
  • 443 для HTTPS,
  • 20 и 21 для FTP,
  • 25 для SMTP (отправка почты),
  • 465 для SMTPS (отправка почты с шифрованием),
  • 143 для IMAP (получение почты),
  • 993 для IMAPS (получение почты с шифрованием) и т. д.
К счастью, запоминать все порты не обязательно, поскольку UFW имеет набор предустановленных правил для часто используемых сервисов. Благодаря этому мы можем разрешить FTP вот так:
sudo ufw allow ftp
Можно разрешить доступ к порту только с одного IP. К примеру, вы хотите сделать так, чтобы только вы могли подключиться по FTP к своему серверу. Тогда на сервере нужно включить фаервол и выполнить следующее:
sudo ufw allow ftp from ваш_ip
Имейте в виду: во-первых, IP должен быть внешним, во-вторых — статическим. Если вы допустите ошибку, то сами не сможете подключиться. У большинства провайдеров статический ip можно получить за небольшую отдельную плату.

 

Запрещающие правила создаются примерно таким же образом. Запретим доступ к порту 110:
sudo ufw deny 110
Запретим доступ к ftp c уведомлением о недоступности и комментарием:
sudo ufw reject ftp comment ‘FTP temporarily closed. Please, come back tomorrow.’

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

Если вы хотите отметить разрешающее правило, не нужно создавать запрещающее, просто удалите его. Например, если по умолчанию входящий трафик запрещен, но вы разрешили подключение к порту 443, а теперь хотите отозвать свое разрешение, выполните в консоли:
sudo ufw delete allow 443
Есть и другой способ: вывести все правила нумерованным списком, после чего указать номер правила, которое вы желаете удалить. Выведем список и удалим правило под номером 1:
sudo ufw status numbered
sudo ufw delete 1
Сегодня я продемонстрировал лишь небольшую часть возможностей фаервола UFW. В следующих статьях мы продолжим строить надежную защиту от нежелательного трафика.
До новых публикаций!
  • Edward Kobylyanets

    Тест

  • Дмитрий

    Здравствуйте! Простите, что не по теме пишу, но не нашёл способа с Вами связаться. Не могу восстановить пароль на сайте ask.linuxrussia.com. Выдаёт ошибку. Скрины есть — могу показать.

  • Дмитрий

    Здравствуйте! Ни как не могу с Вами связаться!!!

    Хочу рассказать Вам об одной проблеме с RSS-рассылкой на этом сайте, а именно — ask.linuxrussia.com.

    Я читаю новости с Вашего сайта с помощью RSS-рассылки. Но в этой рассылке я нашёл ошибки, которые не позволяют в полной мере воспользоваться рассылкой. Попробую показать это на скринах, если конечно получится.

    http://savepic.ru/13042860m.htm

    http://savepic.ru/13084847m.htm

    P.S. Я забыл пароль доступа к сайту, но потом я его вспомнил. Но я не об этом. При восстановлении пароля выскакивает вот такая ошибка:

    http://savepic.ru/13073583m.htm

    И ещё одну ошибку нашёл:

    http://savepic.ru/13067438m.htm