Фаервол UFW. Базовая настройка (часть 1).

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

Цикл статей о фаерволе UFW.

  1. Фаервол UFW. Базовая настройка (часть 1).
  2. Фаервол UFW. Базовая настройка (часть 2).
  3. GUFW: удобная графическая оболочка для фаервола UFW.

Коротко о UFW.

Чтобы лучше понять, о чем идет речь, представьте многоквартирный дом. Сотни или даже тысячи людей входят и выходят ежедневно. Среди них есть владельцы квартир, их домочадцы, гости, а также люди, которых никто не приглашал — грабители, мошенники и просто продавцы никому не нужных вещей, надоедающие жителям. Фаервол в данном примере — это строгий консьерж на входе. Он знает и без проблем пропускает каждого жильца, а тех, кого не знает — тщательно проверяет. Имущество и покой обитателей дома при этом находятся в безопасности.

В 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

    • Edward Kobylyanets

      Сейчас только заметил ваше письмо, если еще актуально, то kobylynets@gmail.com. Переезд сайта был на другую платформу, поэтому ошибки не избежны. rss на этом сайте поправил, до ask.linuxrussia.com еще руки не дошли исправить.

  • Денис Тинг

    После стандартной установки/обновления системы включил фаер
    sudo ufw enable
    потом проверил(sudo ufw status verbose) и мне выводится что все включено правильно. Почему то при сканировании портов на их открытость(2ipточкаru и где то еще) проверки повисают и их результатов можно ждать вечно:( Помогите найти причину косяка тк все ставил дефолтно и никаких иных настроек системы никоим образом не шурупил((

    • Edward Kobylyanets

      Нужно вывод команды прислать status. По идее фаервол блокирует порты, вот и не можете подключиться к ним со стороннего сайта.
      А так для простоты удобства, если это домашний комп, можете пользоваться гуи утилитой: http://www.linuxrussia.com/gufw-ubuntu.html.

      • Денис Тинг

        Доброе время суток, Edward Kobylyanets, вот вывод команды status
        denis@denis-desktop:~/Рабочий стол$ status
        startxfce4 start/running, process 2353

        ufw [дефолтом] вроде как включен
        denis@denis-desktop:~/Рабочий стол$ sudo ufw status verbose
        Status: active
        Logging: on (low)
        Default: deny (incoming), allow (outgoing), disabled (routed)
        New profiles: skip

        Раньше(в прошлой *бунте) точно при _таких_же_настройках_ у меня все работало четко в том числе никогда не вис сканер портов8(
        скажите а может ли быть необходимость в каких-то ковыряниях с iptables дабы устранить сию слепоту фаера?

        • Edward Kobylyanets

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

          • Денис Тинг

            8)ладно будем искать) в предыдущих версиях ‘linux lite’ сканер на дырявость портов отрабатывал минуты примерно за полторы и говорил что все порты закрыты/спрятана. Теперь же он почему то входит в бесконечный цикл и молчит как партизан посему приходится тыкать на иную силку либо «Назад» дабы не ждать его резюме вплоть до Второго Пришествия(:

          • Денис Тинг

            8)ладно будем искать) в предыдущих версиях ‘linux lite’ сканер на дырявость портов отрабатывал минуты примерно за полторы и говорил что все порты закрыты/спрятаны. Теперь же он почему то входит в бесконечный цикл и молчит как партизан посему приходится тыкать на иную силку либо «Назад» дабы не ждать его резюме вплоть до Второго Пришествия(: