Основы Linux для хакеров, часть 11: брандмауэры Linux (iptables)

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
153
Депозит
-8.95$
Добро пожаловать обратно, мои начинающие кибервоины!

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

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

Iptables — это гибкий брандмауэр, разработанный для Linux и других операционных систем на базе *nix. Он использует командную строку для настройки цепочек политик, разрешающих или блокирующих трафик. Когда кто-то пытается подключиться к вашему компьютеру, iptables автоматически ищет правило, соответствующее типу трафика. Если соответствие не найдено, iptables возвращается к действию по умолчанию.

Межсетевой экран iptables был разработан проектом Netfilter и стал доступен как часть ядра Linux с января 2001 года. По мере развития iptables за прошедшие годы он развил функциональность многих коммерческих межсетевых экранов.





6a4a49_817bbfbf68b341acb0adbed7d8af49f4mv2-1.jpg


Основы Iptables

iptables состоит из некоторых базовых структур, известных как таблицы, цепочки и цели.

Давайте рассмотрим каждый из них.

Таблицы

Таблицы — это конструкция iptables, которая определяет категории функциональности, такие как фильтрация пакетов или NAT. Существует четыре таблицы: FILTER, NAT, MANGLE и RAW. Таблица Filter используется по умолчанию, если не указано иное. NAT используется для перезаписи источника и/или назначения пакетов. MANGLE используется для изменения пакетов, например, для модификации заголовка TCP. RAW используется для настройки исключений из отслеживания соединений.

Цепи

Каждая таблица имеет собственные встроенные цепочки, и пользователь может создавать свои собственные. Цепочки — это списки правил внутри таблицы. Для наших целей наиболее важными являются цепочки INPUT, OUTPUT и FORWARD.

ВХОД

Эта цепочка предназначена для пакетов, предназначенных для локальной системы.

ВЫХОД

Эта цепочка предназначена для пакетов, покидающих локальную систему.

ВПЕРЕД

Эта цепочка предназначена для пакетов, маршрутизируемых через локальную систему.

СООТВЕТСТВОВАТЬ

СООТВЕТСТВИЕ — это ситуация, когда пакет соответствует условию, установленному правилом. Затем iptables обрабатывает пакет в соответствии с действием, указанным в правиле.

ЦЕЛИ

iptables поддерживает набор целей, которые запускают действие, когда пакет соответствует условию правила. Наиболее важные из них: ACCEPT (пропустить пакет), DROP (отбросить пакет), LOG, REJECT (отбросить пакет и отправить сообщение об ошибке) и RETURN.

Шаг №1: Установка Iptables

Iptables установлен практически на всех системах Linux и *nix, но если по какой-то причине в вашей системе не установлены таблицы iptables, вы можете загрузить их из репозитория.

kali > sudo apt install iptables



6a4a49_d318f811009d4acfb8fef2e83156084bmv2-1-1024x192.png


Шаг №2: Настройка политики по умолчанию

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

Чтобы увидеть политику по умолчанию в ваших цепочках политик, просто введите:

кали > sudo iptables -L



6a4a49_f00439ba5524467593098491fe5bd68emv2-1.png




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

Шаг №3: помощь iptables

Далее давайте посмотрим на экран справки по iptables.

кали > sudo iptables -h



6a4a49_466227a88e324d9aac2393ca052a3523mv2.png




На первом из этих экранов вы видите ключевые параметры -A, -D и -L. Все они написаны заглавными буквами и позволяют добавить (-A), удалить (-D) и вывести (-L) список элементов цепочки соответственно.



6a4a49_616f79588c9643c2b7a53f139610d287mv2.png




На втором экране мы видим опции -s, -d и -j. Все они написаны строчными буквами и обозначают адрес источника, адрес назначения и адрес назначения соответственно.

Шаг №4: Создайте некоторые правила

Теперь давайте создадим несколько правил. Предположим, вы хотите блокировать все пакеты, приходящие с IP-адреса 192.168.1.102. Чтобы создать это правило, делаем следующее:

-A это добавляет это правило в цепочку

INPUT проверяет соответствие пакетам, поступающим в локальную систему.

-s задает исходный адрес пакетов

-j задает цель, в данном случае DROP



6a4a49_90abacd069d14323980fae3aa1dc1ddfmv2.png




Мы можем сделать то же самое для всей подсети, используя нотацию CIDR или 192.168.1.0/24.



6a4a49_ce0b10b7cbbd4f29b673245de9b37061mv2.png




Если мы хотим ОТБРАСЫВАТЬ пакеты, предназначенные для определенного порта, мы можем использовать опцию -p, за которой следует протокол (tcp), и –dport (порт назначения), за которым следует порт (ssh).



6a4a49_42da45b49d82431db54e1008e2d99576mv2.png




Если бы мы хотели принимать соединения с веб-сайтом www.amazon.com , мы могли бы создать правило, которое ПРИНИМАЕТ исходящее соединение (OUTPUT) по протоколу TCP (-p tcp) tp amazon.com (-d amazon.com)

kali > sudo iptables -A ВЫВОД -p tcp -d amazon.com -j ПРИНЯТЬ



6a4a49_5c7cc5c270744879b4d3f07414fbc571mv2.png




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

Если бы мы хотели заблокировать доступ к любым другим веб-сайтам, мы могли бы создать следующие два правила:

kali > sudo iptables -A ВЫВОД -p tcp –dport 80 -j DROP

kali > sudo iptables -A ВЫХОД -p tcp –dport 443 -j ОТБРОС




6a4a49_53b037a9755845d4a365a0f6b359df72mv2.png




Порядок этих правил критически важен. iptables будет искать по всем правилам, пока не найдёт совпадение. Это означает, что если последние два правила, отбрасывающие порты 80 и 443, будут размещены перед правилом домена, пользователь никогда не сможет открыть amazon.com , поскольку правила отбрасывания сработают до того, как будут найдены правила домена.

Поэтому, когда локальная система пытается подключиться к amazon.com , она блокируется, а браузер отключается по тайм-ауту, как показано ниже.



6a4a49_0b8ab268658847598229e551bb3490f0mv2-1024x584.png




Наконец, мы можем просмотреть нашу таблицу, используя опцию -L или list.



6a4a49_c14fd71c95a94391bf1363519df77b68mv2.png




Чтобы удалить таблицу и начать заново, мы можем очистить (-F) таблицу.

кали > sudo iptables -F



6a4a49_6122d86abff645048bb735ba9e59b5f6mv2.png




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

Краткое содержание

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