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

Коротко о 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

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

Есть и другой способ: вывести все правила нумерованным списком, после чего указать номер правила, которое вы желаете удалить. Выведем список и удалим правило под номером 1:

sudo ufw status numbered  
sudo ufw delete 1

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

Настройки по умолчанию и восстановление исходного состояния.

Если для передаваемых данных не находится соответствующего правила, используются правила, установленные по умолчанию. В Ubuntu 16.04 после включения фаервола весь входящий трафик блокируется (deny), а исходящий пропускается (accept) без каких-либо препятствий. Другими словами, исходящие данные фильтруются по принципу черного списка (разрешено все, что не запрещено отдельными правилами), а входящие — по принципу белого (запрещено все, что не было прямо разрешено).

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

sudo ufw status verbose

О настройках по умолчанию вам поведает строка, которая начинается с «Default: ». Если ваша система настроена иначе, следующие две команды установят стандартную конфигурацию:

sudo ufw default allow outgoing  
sudo ufw default deny incoming

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

sudo ufw reset

Для подтверждения нажмите y, после чего все правила будут удалены, а фаервол — выключен, поскольку по умолчанию он находится именно в таком состоянии. Это именно то, что нужно, если в процессе настройки или экспериментов вы запутались и теперь у вас что-то не работает.

На скриншотах — состояние фаервола до и после сброса.

Настройки по умолчанию и восстановление исходного состояния

Настройки по умолчанию и восстановление исходного состояния

Настройка правил с указанием направления, протокола, порта и IP.

UFW позволяет создавать правила с несколькими дополнительными условиями. В прошлой статье я уже демонстрировал, как создать правило для конкретного IP-адреса. Кроме этого вы можете указать протокол, порт и IP как отправителя, так и получателя.

В качестве первого примера возьмем типичную ситуацию: у вас есть компьютер с Ubuntu, на котором настроены нужные вам сервисы — FTP, Samba или что-нибудь еще. Вы хотите без проблем получать доступ ко всем этим сервисам из своей домашней сети (с ПК, смартфона и т. д. ), но оставить закрытым доступ извне.

В таком случае укажем IP-адреса нашей домашней сети в качестве разрешенных:

sudo ufw allow from 192.168.0.1/24

В список разрешенных при этом попадут IP-адреса с 192.168.0.1 по 192.168.0.254 включительно.

Усложним задачу и разрешим доступ из домашней сети только к порту, используемому для FTP:

sudo ufw allow from 192.168.0.1/24 to any port 21

Пусть вас не вводит в заблуждение словосочетание «to any port». Это две отдельные части команды, одна из которых означает IP-адрес, к которому выполняется обращение (в данном случае to any, то есть, к любому), а вторая определяет номер порта (port 21).

Сделаем наше правило еще более конкретным и укажем протокол:

sudo ufw allow from 192.168.0.0/24 to any port 21 proto tcp

В случае необходимости можно заблокировать доступ с нашего компьютера к конкретному IP или даже к конкретному порту неугодившего нам IP:

sudo ufw deny out to xxx.xxx.xx.x port 123

Указывая параметр out, мы сообщаем, что хотим блокировать именно исходящие пакеты. Поскольку они, как вы помните, разрешены у нас по умолчанию, наше правило будет единственным исключением.
Хотите закрыть сразу диапазон портов? Пожалуйста:

sudo ufw deny out to xxx.xxx.xx.x port 123:456 proto udp

Теперь udp-пакеты к портам 123 - 456 на указанном IP отправлены не будут.

Ограничение доступа.

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

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

sudo ufw insert 1 deny from 123.12.12.12 to any port 80

Ограничение доступа

Теперь все запросы сначала будут проверяться на соответствие запрещенному IP, и лишь после этого — проходить далее, согласно правилу №3.

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

Чтобы запретить более 6 попыток подключения к SSH за 30 секунд, выполните:

sudo ufw limit ssh

Все лишние попытки будут заблокированы и процесс подбора пароля сильно осложнится.


Вот и всё. Для большинства домашних компьютеров этого вполне достаточно и более тонкая настройка просто не нужна.


Если у вас возникли вопросы.

Приглашаю задавать их на сервисе вопросов и ответов: Ask.LinuxRussia.com.
Там ваши вопросы не потеряются и вы быстрее получите ответ, в отличие от комментариев.

Поделиться:


Комментарии для сайта Cackle
Статистика

Количество опубликованных статей:

66

Количество опубликованных заметок:

3
Нравится Сайт? Подпишись!

И получай самые свежие новости с сайта!

Следить за новостями сайта в Telegram:

Подписывайтесь на наш канал в Telegram: @linuxrussia

Для этого достаточно иметь Telegram на любом устройстве и пройти по ссылке: https://telegram.me/linuxrussia.

Следить за новостями сайта в Twitter:

Читать @LinuxRussia

Подписывайтесь на нашу группу ВКонтакте:

Подписаться на новости

Подписывайтесь на основную RSS ленту:

Последние статьи

Подписывайтесь на RSS ленту заметок:

Последние заметки
Последние комментарии

© LinuxRussia.com, 2013 - 2021. Все права защищены.

Ubuntu is a registered trademark of Canonical Inc.

е">
или опубликуйте анонимно
Ранее (23)
Антивирус не ставлю, а вот файрвол активирую. Спасибо за подробное описание, ждем продолжения.
Did Mazay2017.02.20 08:47
Антивирус на убунту? Да Вы, батенька, эстет.. :)
Батенька то как раз не эстет. Он написал же, что НЕ ставит антивирус )
Andrey Paderin2017.02.21 09:08
Зачем это писать, если и так понятно что он там не нужен. Или есть и такие кто ставит?
2017.02.20 20:33
Активирую, открываю порты 80 и 443 и... Сайты перестают открываться. Что я делаю не так? sudo ufw status verbose Состояние: активен Журналирование: on (low) Default: allow (incoming), deny (outgoing), disabled (routed) Новые профили: skip В Действие Из - -------- -- 22 ALLOW IN Anywhere 80 ALLOW IN Anywhere 443 ALLOW IN Anywhere 22 (v6) ALLOW IN Anywhere (v6) 80 (v6) ALLOW IN Anywhere (v6) 443 (v6) ALLOW IN Anywhere (v6)
>Default: allow (incoming), deny (outgoing), disabled (routed) У вас весь входящий трафик разрешен, а весь исходящий - запрещен. Попробуйте сделать вот так: sudo ufw default allow outgoing sudo ufw default deny incoming
Добрый день! Выложите про диагностику сети с примерами пжл, интересует arp -a почему то не работает через интерфейс ppp0
или подскажите где найти инфу про сетевое администрирование Линукс
2017.02.27 11:03
Здравствуйте! Простите, что не по теме пишу, но не нашёл способа с Вами связаться. Не могу восстановить пароль на сайте ask.linuxrussia.com. Выдаёт ошибку. Скрины есть - могу показать.
2017.02.27 12:21
Здравствуйте! Ни как не могу с Вами связаться!!! Хочу рассказать Вам об одной проблеме с 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
Adm Дмитрий2017.05.07 12:15
Сейчас только заметил ваше письмо, если еще актуально, то kobylynets@gmail.com. Переезд сайта был на другую платформу, поэтому ошибки не избежны. rss на этом сайте поправил, до ask.linuxrussia.com еще руки не дошли исправить.
2017.05.07 11:32
После стандартной установки/обновления системы включил фаер sudo ufw enable потом проверил(sudo ufw status verbose) и мне выводится что все включено правильно. Почему то при сканировании портов на их открытость(2ipточкаru и где то еще) проверки повисают и их результатов можно ждать вечно:( Помогите найти причину косяка тк все ставил дефолтно и никаких иных настроек системы никоим образом не шурупил((
Нужно вывод команды прислать 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 дабы устранить сию слепоту фаера?
у вас запрещен входящий трафик, все окей. Теперь открывайте те порты, что вам нужны и потом их можете проверять. Почему виснет 2ip я без понятия. Что именно вы хотите от фаервола? Чтобы ваши все порты открыты были? Тогда отключите фаервол :).
8)ладно будем искать) в предыдущих версиях 'linux lite' сканер на дырявость портов отрабатывал минуты примерно за полторы и говорил что все порты закрыты/спрятана. Теперь же он почему то входит в бесконечный цикл и молчит как партизан посему приходится тыкать на иную силку либо "Назад" дабы не ждать его резюме вплоть до Второго Пришествия(:
8)ладно будем искать) в предыдущих версиях 'linux lite' сканер на дырявость портов отрабатывал минуты примерно за полторы и говорил что все порты закрыты/спрятаны. Теперь же он почему то входит в бесконечный цикл и молчит как партизан посему приходится тыкать на иную силку либо "Назад" дабы не ждать его резюме вплоть до Второго Пришествия(:
2017.10.26 17:23
Фаервол UFW обязательно активировать в Ubuntu 16.04? Сервера у меня нет, к ftp не подключаюсь. Ноут просто для рабочих и домашних задач.
Нет. Для домашнего компьютера лучше оставить по умолчанию, как есть. Особенно новичку.
sudo ufw allow ftp from ваш_ip не работает только так sudo ufw allow from ваш_ip to any port ftp
sudo iptables -A INPUT -i интерфейс_сетевой_карты -m tcp -m conntrack --ctstate ESTABLISHED,RELATED -p tcp -j ACCEPT sudo iptables -A OUTPUT -p tcp -j ACCEPT Просто и понятно 88-) iptables - наше всё!!! Для гурманов - немного эстетики и утончённого вкуса: https://wiki.dieg.info/pravila_iptables_dlja_ftp
Подскажите, как полностью заблокировать выход в интернет windows программе установленной через wine?
Комментарии для сайта Cackle
Статистика

Количество опубликованных статей:

66

Количество опубликованных заметок:

3
Нравится Сайт? Подпишись!

И получай самые свежие новости с сайта!

Следить за новостями сайта в Telegram:

Подписывайтесь на наш канал в Telegram: @linuxrussia

Для этого достаточно иметь Telegram на любом устройстве и пройти по ссылке: https://telegram.me/linuxrussia.

Следить за новостями сайта в Twitter:

Читать @LinuxRussia

Подписывайтесь на нашу группу ВКонтакте:

Подписаться на новости

Подписывайтесь на основную RSS ленту:

Последние статьи

Подписывайтесь на RSS ленту заметок:

Последние заметки
Последние заметки
Последние комментарии
Кирилл
Кирилл11 дней назад 16:42
Спасибо. Был запущен synaptic , его закрытие решило проблему
com
com19.04 10:46
Ubuntu и так самая простая и настраивать там нечего особо и да кому не нравится окружение не ставьте Mint а лучше из флаворов Kubuntu Xubuntu Ubuntu MATE и есть уже даже Ubuntu Cinnamon Remixещё
Цикл статей о терминале Linux
Цикл статей о systemd
Цикл статей о Samba
Цикл статей об OpenVPN
Статьи о восстановлении данных в Linux
Цикл статей о KDE
Серия статей о файловых системах Linux
Цикл статей о LAMP