Брандмауэры 101

Опубликовано: 25 Марта, 2023


Преобразование сетевых адресов


Задача вашего брандмауэра номер один — отделить вашу частную сеть от Интернета и использовать это разделение для защиты от злоумышленников. Одна технология брандмауэра, которая помогает создать это разделение (и помогает с нехваткой IP-адресов) в преобразовании сетевых адресов (NAT).


Основная идея NAT заключается в том, что большинство компьютеров в вашей сети не должны быть доступны из Интернета. Один из способов сделать эти компьютеры недоступными из Интернета — назначить им недопустимые IP-адреса.


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


Например, предположим, что пользователь хочет посетить веб-узел с ПК в частной сети. Пользователь вводил URL-адрес сайта в свой веб-браузер, и это, в свою очередь, преобразовывалось в HTTP-запрос. Запрос будет отправлен на брандмауэр, а затем брандмауэр будет использовать свой собственный IP-адрес для размещения HTTP-запроса от имени пользователя. Когда на запрос получен ответ, ответ отправляется на брандмауэр, а брандмауэр возвращает ответ пользователю, который первоначально сделал запрос.


Фильтрация портов


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


Самый простой способ понять концепцию порта — представить его как радиостанцию. Думайте о TCP как о FM-радио, а о UDP — как об AM-радио. На этом рисунке порт будет TCP/IP-эквивалентом радиостанции.


Точно так же, как радиостанции имеют целевое назначение, так и некоторые порты TCP и UDP. Одна из основных причин, по которой у нас есть брандмауэры и фильтрация портов, заключается в том, что люди могут использовать порты для целей, для которых они не предназначены. Например, в моем уголке мира 99,7 FM — моя любимая станция классического хэви-метала. Однако только потому, что станция играет классический металл, технически они могут играть все, что захотят. Ничто не мешает ди-джею отказаться от Judas Priest в пользу Бритни Спирс. Порты работают так же. TCP-порт 21 традиционно используется для FTP. Однако ничто не мешает кому-либо попытаться установить сеанс Telnet через порт, даже если Telnet не предназначен для использования порта.


Распространенным методом взлома является сканирование портов по IP-адресу. Сканирование портов — это метод, который предоставляет хакеру список открытых портов. Получив такой список, хакер иногда пытается использовать протоколы (например, Telnet) через порты, которые обычно используются для других целей, чтобы получить доступ к системе.


Здесь в игру вступает фильтрация портов. Фильтрация портов гарантирует, что через открытый порт не будет проходить ничего, кроме протокола, разрешенного администратором. Например, если бы фильтрация портов была применена к TCP-порту 21, то FTP-связь была бы разрешена, но никакие другие типы связи через этот порт не разрешались бы.


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


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


Демилитаризованная зона


Еще одна функция, предлагаемая большинством брандмауэров, — демилитаризованная зона (DMZ). Хотя название «демилитаризованная зона» может звучать как нечто довольно серьезное, на самом деле демилитаризованная зона — это не что иное, как область, которая не находится под юрисдикцией брандмауэра. Различные брандмауэры реализуют DMZ по-разному. Некоторые брандмауэры просто требуют, чтобы вы вводили IP-адреса машин, которые вы хотите поместить в DMZ, другие брандмауэры имеют выделенный сетевой порт, который вы можете использовать для любых сетевых устройств, которые вы хотите поместить в DMZ.


Я лично рекомендую избегать использования DMZ, если это вообще возможно. Причина в том, что машины в DMZ не получают абсолютно никакой защиты от брандмауэра. Единственная защита машины — это функции безопасности, встроенные в операционную систему, и любые средства защиты, которые вы могли бы сделать самостоятельно.


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


Перенаправление порта


Я уже говорил о том, как можно использовать фильтрацию портов, чтобы заблокировать использование протокола, кроме определенного IP-адреса. Концепция переадресации портов основана на этой концепции и особенно полезна в организациях, использующих NAT.


Основная идея перенаправления портов проста. Представьте на мгновение, что в вашей организации есть общедоступный веб-сервер, использующий IP-адрес 192.168.0.12 (это недействительный общедоступный адрес, но давайте представим, что это так). Если бы это был единственный общедоступный веб-сервер в вашей организации, вы, вероятно, создали бы правило фильтрации пакетов в своем брандмауэре, которое блокировало бы HTTP-запросы через порт 80 на любой адрес в вашей сети, кроме 192.168.0.12. Если кто-то отправил HTTP-запрос на любой другой адрес, его браузер просто отобразит сообщение о том, что веб-сайт не может быть найден.


Для этого конкретного примера мы сделали вид, что адрес 192.168.0.12 общедоступен. Однако на самом деле этот адрес вполне действителен в частной сети, но недоступен из Интернета. В идеале вы, вероятно, захотите заменить частный адрес вашего веб-сервера публичным адресом. Хотя это не всегда вариант. Некоторые интернет-провайдеры выдают только один общедоступный IP-адрес, и если у вас есть только один общедоступный IP-адрес, у вас почти нет другого выбора, кроме как назначить этот адрес вашему брандмауэру.


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


Здесь в игру вступает перенаправление портов. Переадресация портов — это, по сути, правило, которое сообщает брандмауэру, что если определенный тип запроса поступает на определенный порт, то этот запрос должен быть перенаправлен на указанную машину в частной сети. В этой конкретной ситуации мы пытаемся сделать веб-сервер общедоступным. Для этого вы должны создать правило переадресации портов, которое перенаправляет любой HTTP-запрос на TCP-порт 80 на 192.168.0.12. Как только такое правило будет введено, человек, желающий получить доступ к веб-сайту вашей компании, откроет свой веб-браузер и введет http://yourdomain.com. После этого их веб-браузер выполняет DNS-запрос, чтобы определить, какой IP-адрес связан с вашим доменным именем. IP-адрес, на который ссылается DNS-сервер, должен быть действительным IP-адресом вашей компании (адрес, назначенный вашему брандмауэру). Затем веб-браузер отправит HTTP-запрос на ваш общедоступный IP-адрес, не подозревая, что на самом деле он отправляет запрос брандмауэру. Брандмауэр получает входящий запрос и перенаправляет его на ваш веб-сервер.


Вывод


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