Полное руководство по брандмауерам

В строительной отрасли, «брандмауэр» (нем. Brandmauer, от Brand — пожар и Mauer — стена) это специально построенная стена для  остановки пожара между секциями здания. Термин распространился на другие отрасли промышленности, такие как автомобилестроение,  а в конце 1980-х годов он дошел и до компьютерных систем. С одной стороны стены это бурлящий хаос в интернете, с другой стороны это ваш мощный, но в тоже время уязвимый веб сервер.

Брандмауэры (или межсетевые экраны) на самом деле больше похожи на противопожарные двери, потому что они должны кое-что пропускать. Они отслеживают весь электронный трафик, поступающий в сеть или исходящий из нее. Межсетевые экраны придерживаются строгому набору правил для определения того, что разрешено, а что нужно блокировать.

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

Протоколы и Порты

Компьютер, как большой жилой комплекс. Каждый компьютер в Интернете имеет числово адрес, известный как IP адрес. Каждый адрес это два многоквартирных дома. В каждом доме 65,535  отдельных квартир. Подавляющее большинство из них пусты, но несколько, особенно нижние имеют очень общительных жителей. Все общение происходит по почте.

A computer is like two big blocks of apartments.

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

Два дома называются TCP и UDP. Жители дома TCP принимают только заказную почту, и они гарантировано ответят вам. Как только вы начали переписываться с кем-то из TCP,  можете быть уверены, что ваша беседа буде доведена до конца. Блок UDP немного запущенней. Его жители отвечают, только если они обеспокоены. Как правило, они отвечают, но нет никаких гарантий.

Каждый житель имеет разную работу. Например, семья в квартире №80 из блока TCP обрабатывает запросы веб-сайта. Вы можете написать им с просьбой, например «пришлите мне домашнюю страницу сайта  www.smashingmagazine.com» и они ответят вам должным образом и отправят обратно данные.

Пара из UDP-квартиры №53 несут ответственность за DNS. Они преобразуют доменные имена в IP-адреса. Иногда письма теряются, но ничего страшного. Информация которой они оперируют в UDP не так критична. Отправитель всегда можете повторить запрос.

Все адреса в почтовой системе, следовательно, имеют три части: IP адрес компьютера, блока и квартиры. Таким образом, в качестве примера: 80.72.139.101, TCP, 80. В действительности, блок это протокол, а квартира номер порта. TCP поддерживаетTransmission Control Protocol и UDP является User Datagram Protocol. Их главное отличие в том, что TCP создает и поддерживает разговор (т.е. соединение) между двумя компьютерами, в то время как UDP этого не делает. В тоже время TCP более надежный, но работает медленнее.

Адрес Отправителя

В приведенном выше примере, веб-обслуживающая семья по адресу  80.72.139.101, TCP, 80 занимаются чтением книг и просто ждут письма. Они никогда не начинают разговор или соединения первыми. Они всегда выступают в роли получателей.

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

  • От 99.99.99.99, TCP, 63454: “Дорогие, 80.72.139.101, TCP, 80, Дело дошло до моего сведения, что вы обрабатываете запросы, связанные с веб-сайтом www.smashingmagazine.com. Можете ли вы выслать мне /books/ страницу? С уважением, Ваш Веб Браузер»
  • От 80.72.139.101,  TCP 80: «Конечно, без проблем. Вот: <!DOCTYPE html> <html> …»
  • От 99.99.99.99, TCP, 63454: «Спасибо, это все. Пока».

Номера квартир ниже 1024 являются более безопасными, чем те, которые выше. У них есть CCTV, и они зарезервированы для более приоритетных задач, таких как веб-сайт и FTP обслуживание. Чем выше номер квартиры, тем она недолговечнее. Люди  все время въезжают и выезжают. Они привыкли к таким вещам как запрашивание веб-страниц и начало FTP соединений.

Опасность

Но не все они прямые и узкие. Вот пример разговора между изворотливым клиентом, живущим над кафе и доверительными SSH жителями на уязвимом сервере. SSH является способом подключения к удаленному компьютеру и выполнения в нем команд. Резидент SSH всегда живет в блоке TCP, как правило, в квартире 22:

  • От 88.88.88.88, TCP квартира 58123: «Дорогой SSH сервер, я хочу установить с вами соединение. Я хотел бы зарегистрироваться как пользователь под названием root»
  • От 80.72.139.101, TCP, 22: «Конечно, без проблем, какой у Вас пароль?”
  • От 88.88.88.88: «smith»
  • От 80.72.139.101: «Неверно. Попробуйте еще раз»
  • От 88.88.88.88: «Jones»
  • От 80.72.139.101: «Все еще не верно. Попробуйте еще раз»
  • От 88.88.88.88: «Bloggs»
  • От 80.72.139.101: «Отлично, мистер Root, давно не виделись. Что вы хотите сегодня сделать?»
  • От 88.88.88.88: «Я думаю, что я просмотрю файл /и т.д./пароль, тот который содержит все имена пользователей»
  • От 80.72.139.101: “Вот информация которую вы запрашивали… Что то еще?»
  • От 88.88.88.88: «Да — покажите мне все файлы, содержащие слово ‘ кредитная карточка’»
  • От 80.72.139.101: «Извините. Это заняло некоторое время. Но вот, пожалуйста…»
  • От 88.88.88.88: «Спасибо, это все, до свидания»

The first part of the SSH conversation above: logging in as root, getting the password wrong twice, asking for a file.

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

Уровни защиты

Сервер, описанный выше, уязвим. Любой человек может отправить письмо на 80.72.139.101, TCP, 22. Если они могут правильно угадать пароль, то они будут имеют полный доступ к серверу и всех его файлам. В этом разделе рассматриваются четыре основных уровня защиты, которые можно применить к серверу, чтобы предотвратить подобные вещи, и разрешить только доверенным людям общаться с сервером.

Хотя SSH является лишь одним из многочисленных услуг, которые можно запускать на сервере, для начала это хороший вариант, поскольку он предлагает максимальный контроль над сервером. Если хакер взломает ваш FTP или SMTP-сервер, они могут нанести ущерб, но не такой сильный как с SSH.

Хорошие Пароли

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

Когда бы не получил письмо житель квартиры № 22, он сначала запрашивает правильный пароль. Если вы не введете правильный пароль, то он ничем не сможет вам помочь. Хотя он доверчивый человек. Обычно вы можете использовать столько попыток, сколько захотите. Каждые три попытки, вам, возможно, придется повторно отправлять ваше письмо, но он, как правило, не возражает.

Отказ в подключении

SSH разговор, описанный выше, был частично подделан. Если вы действительно пытаетесь подключить SSH к 80.72.139.101 (IP-адрес веб сервера Smashing Magazine’), то вы получите следующее:

SSH connection refused.

Отказано в SSH подключении.

Это означает, что резидент, проживающий по 80.72.139.101, TCP, квартира 22, получает свою почту, но сразу же отправляет ее обратно. У него есть лист бумаги, приклеенный к задней стороне его двери, в котором перечислены все люди, с которыми ему разрешено переписываться. Он проверяет адрес отправителя в списке. Если вас нет в списке, то он отказывается переписываться с вами. Но он вежливо отправляет вам обратную записку, в которой говорит, «Извините, в подключении отказано».

Такого рода защита предоставляется программным обеспечением, как  TCP Wrappers на UNIX серверах. Блокировка производится на уровне приложения используюя /etc/hosts.deny и /etc/hosts.allow файлы.

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

Программное обеспечение Брандмауэр

Брандмауэр, как консьерж, который фильтрует всю входящую почту, прежде чем она вообще распространяется среди жителей. Он имеет аналогичный лист бумаги у себя на столе. Он проверяет адрес отправителя по списку. Если вашего адреса нет в списке, то ваше письмо идет прямиком в мусорное ведро. Нет последующих ответов или вежливых извинений. Ничего. Вы ждете около нескольких недель, а затем сдаетесь. Он также фильтрует исходящую почту, просматривая свой список, чтобы проверить каким жителям разрешено писать вне их круга.

Технически это выглядит так:

SSH connection timed out — either there is nobody home or there is a firewall in a the way.

Время SSH соединения истекло — либо некого нет дома, либо на пути встречается брандмауэр.

 

Этот вид блокировки осуществляется на уровне операционной системы. Брандмауэра гарантирует, что письмо туда даже не попадает. Посмотрите на эту страницу для большего понимания разница между TCP оболочками и программным обеспечением брандмауэра.

Аппаратный Брандмауэр

Аппаратный брандмауэр это все равно, что хорошо обученный эксперт по вопросам безопасности в местном почтовом отделении. Он имеет такой же подробный список, как и консьерж, в котором описано, кому именно разрешено отправлять письма и куда. Он может защитить только ваш IP-адрес или работать над десятками адресов в одно и то же время, или даже всей общины. Он всматривается в каждую малую единицу почтовой информации, которая приходит или уходит из вашего города. Все, что ему не понравится, он отбрасывает. Как и указано выше, вы просто получите сообщение: «Время SSH соединения истекло».

Это основная защита брандмауэра. Письма не доходят даже до главного входа. Нет ни единого шанса, что он ошибочно передаст письмо жителю в квартире 22.

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

Обратите внимание, что на практике «аппаратный брандмауэр» это просто компьютер, полностью посвященный тому, чтобы быть брандмауэром, который физически отделен от веб-сервера. Сам брандмауэр по-прежнему часть программного обеспечения на этом компьютере.

Stateless и Stateful Брандмауэры

Консьерж и человек, отвечающий за безопасность, фильтруют входящую и исходящую почту. Если они новички в работе, их называют stateless брандмауэрами (фильтруют данные не отслеживая текущие соединения), т.е. пакет фильтров. Они относятся ко всей почте одинаково. Когда вы отправляете письмо в квартиру 80, то из квартиры 80 будет идти обратное письмо. Этот ответ сверяется по списками. Ваше письмо пропустят только, если разрешено отправлять письма из квартиры 80.

Через некоторое время они продвигаются по карьерной лестнице и становятся stateful брандмауэрами (отслеживают сеансы между приложениями, не пропускают пакеты нарушающие спецификации TCP/IP). Они обучаются различать исходящую почту между совершенно новыми исходящими письмами и ответами на предыдущие письма. Вследствие этого, их списки правил могут быть намного короче. Им могут сказать доставить все письма, которые являются частью сформировавшейся переписки, и выбросить почти всю новую исходящую почту. Итак, когда вы отправляете письмо в квартиру 80, обратный ответ из квартиры 80, разрешается автоматически. Но если в один одинокий зимний вечер, житель квартиры 80 вдруг решит начать свою собственную переписку, то его почта не будет пропущена.

В следующем разделе рассматривается, насколько отформатирован  список с соблюдением всех правил.

правила брандмауэра

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

Этот раздел познакомит вас с терминологией и приведет два примера конфигурации интерфейсов брандмауэра.

Терминология Брандмауэра

Вот как может выглядеть список на столе у консьержа:

  1. Письма от любого отправителя в любую квартиру в здании TCP, квартира 80 – доставка; ответы на эти письма из квартиры 80 – доставка.
  2. Письма с адреса 99.99.99.99, любой номер квартиры в здание TCP, квартира 22 – доставка; ответ на эти письма из квартиры 22 – доставка.
  3. Любые другие письма от кого-либо или кому-либо из здания TCP – выбросить. Любые другие письма от кого-либо или кому-либо из здания UDP – выбросить.

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

Основная суть в том, что любой в мире может переписываться с веб-сервером из квартиры 80, но только надежным людям, живущим по адресу а 99.99.99.99, разрешено писать SSH серверу из квартиры 22. Все другие попытки связи будут прерваны. Вот как это может быть переведено настоящему брандмауэру как IPTables:

Rule Protocol Direction Type Remote IP Remote port Server port Action
1a TCP Incoming Any Any Any 80 Allow
1b TCP Outgoing Established Any Any 80 Allow
2a TCP Incoming Any 99.99.99.99 Any 22 Allow
2b TCP Outgoing Established 99.99.99.99 Any 22 Allow
3 TCP Any Any Any Any Any Deny
4 UDP Any Any Any Any Any Deny

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

Rule Protocol Direction Remote IP Remoteport Server port Action
1 TCP Incoming Any Any 80 Allow
2 TCP Incoming 99.99.99.99 Any 22 Allow
3 TCP Any Any Any Any Deny
4 UDP Any Any Any Any Deny

Если эти правила были предназначены для аппаратных брандмауэров, то они также будут иметь server IP address, так как аппаратные брандмауэры обычно работают от имени более чем одного сервера. В этом случае таблица может просто содержать source и destination , без direction, например:

Rule Protocol Source IP Source port Destination IP Destination port Action
1 TCP Any Any 80.72.139.101 80 Allow
2 TCP 99.99.99.99 Any 80.72.139.101 22 Allow
3 TCP Any Any Any Any Deny
4 UDP Any Any Any Any Deny

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

Пример Брандмауэра

Некоторые конфигурации брандмауэра предоставляют таблицы и формы похожие на те которые выше, и вам нужно просто заполнить пустые поля. В приведенном ниже примере показан инструмент программного обеспечения брандмауэра, предоставленный Plesk 9.5.4. Plesk это общее приложение по управлению сервера. Чтобы увидеть показанный ниже скриншот, нажмите слева «Modules», затем «Firewall», «Edit Firewall Configuration» и «Add Custom Rule».

Adding a new rule to the firewall in Plesk 9.5.4.
Добавление нового правила брандмауэру в Plesk 9.5.4.

В таблице, показанной выше больше всего полей: direction,  действия allow  или denyserver port, protocol и remote/source IP address. Мини-таблица блокирует оба направления согласно одному и тому же правилу (правила 3 ​​и 4). Во многих конфигурациях, это должно быть сделано отдельно, устанавливая правила и выбирая входящее или исходящее направление.

В этом интерфейсе есть другой выбор для направления — перенаправление. Порт перенаправления позволяет перенаправлять письма из одного порта в другой. Это широко используется в домашних широкополосных маршрутизаторах, которые позволяют нескольким компьютерам использовать один IP адрес, преобразуя порты.

Например, ваш ноутбук может иметь локальный IP-адрес 192.168.1.10. Когда вы запрашиваете веб-страницу (с таким адресом  отправителя, как 192.168.1.10, TCP, 60000), ваше письмо сначала идет к широкополосному маршрутизатору, который кладет ваше письмо в новый конверт с новым адресом отправителя (например, 78.78.78.78, TCP, 12013), и пересылает его по назначению (н …

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.