Что такое брандмауэр и как он работает?

Вступление

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

В этом руководстве будет рассмотрено, как работают межсетевые экраны, с акцентом на программные межсетевые экраныstateful, такие как iptables и FirewallD, которые связаны с облачными серверами. Мы начнем с краткого объяснения пакетов TCP и различных типов межсетевых экранов. Затем мы обсудим различные темы, имеющие отношение к брандмауэрам с сохранением состояния. Наконец, мы предоставим ссылки на другие учебные пособия, которые помогут вам настроить брандмауэр на вашем собственном сервере.

Сетевые пакеты TCP

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

Сетевой трафик TCP перемещается по сети вpackets, которые представляют собой контейнеры, состоящие из заголовка пакета, который содержит управляющую информацию, такую ​​как адреса источника и назначения, а также информацию о последовательности пакетов, а также данные (также известные как полезная нагрузка) . Хотя управляющая информация в каждом пакете помогает обеспечить правильную доставку связанных данных, содержащиеся в ней элементы также предоставляют брандмауэрам различные способы сопоставления пакетов с правилами брандмауэра.

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

Типы брандмауэров

Давайте быстро обсудим три основных типа сетевых брандмауэров: фильтрация пакетов (без сохранения состояния), с сохранением состояния и прикладной уровень.

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

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

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

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

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

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

Предположим, у вас есть сервер с этим списком правил брандмауэра, которые применяются к входящему трафику:

  1. Принимать новый и установленный входящий трафик на общедоступный сетевой интерфейс через порты 80 и 443 (веб-трафик HTTP и HTTPS)

  2. Перенести входящий трафик с IP-адресов нетехнических сотрудников в вашем офисе на порт 22 (SSH)

  3. Принимайте новый и установленный входящий трафик от диапазона IP-адресов вашего офиса до интерфейса частной сети через порт 22 (SSH)

Обратите внимание, что первое слово в каждом из этих примеров - «принять», «отклонить» или «отбросить». Это указывает действие, которое брандмауэр должен выполнить в случае, если часть сетевого трафика соответствует правилу. Accept означает разрешить прохождение трафика,reject означает заблокировать трафик, но ответить с ошибкой «недоступен», аdrop означает заблокировать трафик и не отправить ответа. Остальная часть каждого правила состоит из условия, с которым сопоставляется каждый пакет.

Как выясняется, сетевой трафик сопоставляется со списком правил брандмауэра в последовательности или цепочке от первого до последнего. Более конкретно, после сопоставления правила соответствующее действие применяется к рассматриваемому сетевому трафику. В нашем примере, если сотрудник бухгалтерии попытается установить SSH-соединение с сервером, он будет отклонен на основании правила 2, прежде чем правило 3 будет даже проверено. Системный администратор, однако, будет принят, потому что они будут соответствовать только правилу 3.

Политика по умолчанию

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

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

Если политика по умолчанию была установлена ​​наaccept, любой, кроме ваших собственных нетехнических сотрудников, мог бы установить соединение с любой открытой службой на вашем сервере. Это может быть примером очень плохо настроенного брандмауэра, потому что он держит только часть ваших сотрудников.

Входящий и исходящий трафик

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

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

Написание исходящих правил

Предположим, что в нашем примере межсетевой экран по умолчанию настроен на исходящий трафикdrop. Это означает, что наши правила для входящихaccept были бы бесполезны без дополнительных исходящих правил.

Чтобы дополнить примеры правил входящего брандмауэра (1 и 3) из разделаFirewall Rules и обеспечить правильную связь по этим адресам и портам, мы могли бы использовать эти правила исходящего брандмауэра:

  1. Принимать установленный исходящий трафик к общедоступному сетевому интерфейсу через порты 80 и 443 (HTTP и HTTPS)

  2. Принять установленный исходящий трафик к интерфейсу частной сети через порт 22 (SSH)

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

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

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

Iptables

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

Чтобы узнать, как реализовать брандмауэр с iptables, проверьте эти ссылки:

UFW

UFW, что означает «Несложный брандмауэр», представляет собой интерфейс для iptables, предназначенный для упрощения процесса настройки брандмауэра.

Чтобы узнать больше об использовании UFW, ознакомьтесь с этим руководством:How To Setup a Firewall with UFW on an Ubuntu and Debian Cloud Server.

FirewallD

FirewallD - это полное решение брандмауэра, доступное по умолчанию на серверах CentOS 7. Кстати, FirewallD использует iptables для настройки сетевого фильтра.

Чтобы узнать больше об использовании FirewallD, ознакомьтесь с этим руководством:How To Configure FirewallD to Protect Your CentOS 7 Server.

Если вы используете CentOS 7, но предпочитаете использовать iptables, следуйте этому руководству:How To Migrate from FirewallD to Iptables on CentOS 7.

Fail2ban

Fail2ban - это программа для предотвращения вторжений, которая может автоматически настраивать ваш брандмауэр для блокировки попыток входа в систему методом подбора и атак DDOS.

Чтобы узнать больше о Fail2ban, проверьте эти ссылки:

Заключение

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

Если вы хотите узнать больше о том, как работают брандмауэры, посмотрите эти ссылки:

Related