Добро пожаловать обратно, мои начинающие кибервоины!
Межсетевые экраны играют ключевую роль в кибербезопасности, поскольку они могут отфильтровывать нежелательный и вредоносный трафик из вашей сети. Хотя межсетевые экраны не сделают вашу сеть непроницаемой, они значительно затруднят злоумышленникам её обнаружение и доступ к ней.
Многие компании продают превосходную продукцию, некоторые из которых стоят десятки тысяч долларов. Среди этих поставщиков:
Фортинет
Cisco
Palo Alto Networks
Системы контрольно-пропускных пунктов
И многое другое. Это отличные устройства, но для малого бизнеса или домашнего офиса с ограниченным бюджетом вы можете создать межсетевой экран на базе Linux с минимальными или нулевыми затратами. Мы предоставили вам руководства по использованию iptables и UFW для создания межсетевого экрана. В этом руководстве мы покажем, как создать очень эффективный межсетевой экран, используя более современный подход — nftables.
В Linux есть множество брандмауэров, которые могут защитить ваш компьютер без больших затрат. Эти брандмауэры ничуть не хуже коммерческих, и для их использования нужно лишь немного о них знать. Брандмауэры важны для защиты вашего компьютера от хакеров и других угроз.
Межсетевой экран — это подсистема компьютера, которая блокирует входящий и исходящий сетевой трафик. Межсетевые экраны могут быть программными и аппаратными. Аппаратные межсетевые экраны обычно используются для защиты сети и компьютеров в ней, тогда как программный межсетевой экран защищает систему, в которой он размещен.
Nftables — это фреймворк классификации пакетов Linux, который заменяет инфраструктуру Netfilter , используемую в iptables, ip6tables, arptables и ebtables. Фреймворки, использующие устаревшую инфраструктуру Netfilter, постепенно исчезают из основных дистрибутивов Linux. Эти фреймворки начали использовать nftables в качестве фреймворка классификации пакетов по умолчанию.
Несмотря на повсеместное распространение iptables, его архитектура имеет ряд фундаментальных ограничений и недостатков, которые можно устранить только путём фундаментальной переработки. Именно такую реконструкцию и намеревался осуществить nftables.
Таблицы
Таблицы — это высший уровень иерархии nftables. Каждая таблица соответствует одному семейству адресов и содержит цепочки, фильтрующие пакеты в этом семействе. Например, таблица IP фильтрует трафик IPv4, а таблица IP6 фильтрует трафик IPv6.
Цепи
Цепочки находятся под таблицами и фильтруют пакеты. Цепочки служат контейнерами для правил. Каждое правило nftables прикрепляется к цепочке, чтобы пакеты, «попавшие» в фильтр цепочки, впоследствии передавались правилам цепочки.
Правила
Правила — это основные строительные блоки nftables. Правила принимают пакеты, отфильтрованные по цепочкам, и выполняют над ними действия в зависимости от их соответствия определённым критериям.
kali > sudo apt install nftables
Создайте таблицу фильтров
kali> sudo nft add table ip filter
добавить таблицу: эта команда добавляет новую таблицу в конфигурацию nftables.
ip: Это указывает на то, что таблица должна быть создана в семействе IP, которое используется для фильтрации трафика IPv4 и IPv6.
Фильтр: имя создаваемой таблицы. Таблица фильтров используется по умолчанию для фильтрации трафика и обычно используется для блокировки или разрешения определённых IP-адресов или портов.
kali > sudo nft add chain ip filter output { type filter hook output priority 0; policy drop; }
добавить цепочку: эта команда указывает nftables создать новую цепочку внутри существующей таблицы.
IP-фильтр вход/выход: определяет таблицу и цепочку, к которой будет добавлена новая цепочка. «ip» указывает семейство IP-адресов, которое используется для фильтрации трафика IPv4 и IPv6. «filter» — имя таблицы, а вход/выход — имя создаваемой цепочки.
Тип фильтра : указывает, что тип цепочки — фильтр, что означает, что она будет использоваться для фильтрации сетевого трафика на основе различных критериев.
Входной хук: определяет хук, связанный с цепочкой. Входной/выходной хук указывает, что цепочка будет применена к входящему/исходящему трафику.
приоритет 0: цепочки с более низкими приоритетами оцениваются раньше цепочек с более высокими приоритетами.
Политика отбрасывания : определяет политику по умолчанию для цепочки. Оператор «policy drop» означает, что любой пакет, не соответствующий ни одному другому правилу в цепочке, будет отброшен.
добавить правило: это ключевое слово используется для добавления нового правила в брандмауэр nftables.
ip: это ключевое слово указывает, что правило применяется к IP-адресу.
Фильтр: Это имя таблицы, в которую будет добавлено правило.
ввод: это имя цепочки, в которую будет добавлено правило
ip saddr 192.168.0.103: Это критерий соответствия для правила. Эта часть правила указывает, что правило должно соответствовать любому пакету, где исходный IP-адрес — 192.168.0.103.
Отбрасывание: Это вердикт правила. Эта часть правила указывает, что любой пакет, соответствующий критериям соответствия, должен быть отброшен.
Мы также можем сделать то же самое для всей подсети, используя нотацию CIDR или 192.168.0.0/24.
kali> sudo nft add rule ip filter input ip saddr 192.168.0.0/24 drop
Если мы хотим ОТБРАСЫВАТЬ пакеты, предназначенные для определенного порта, мы можем использовать опцию TCP/UDP «dport», за которой следует порт.
kali> sudo nft добавить правило ip filter input tcp dport 22 drop
Если бы мы хотели принимать соединения с веб-сайтом www.amazon.com , мы могли бы создать правило, которое принимает исходящее соединение (выход) на amazon.com (ip daddr 52.94.236.248).
Nftables не может напрямую использовать доменные имена в своих правилах.
kali> sudo nft добавить правило ip filter output ip daddr 52.94.236.248 принять
Если бы мы хотели заблокировать доступ к любым другим веб-сайтам, мы могли бы создать следующие два правила:
kali> sudo nft добавить правило ip filter вывод tcp dport 80 отклонить
kali> sudo nft добавить правило ip filter вывод tcp dport 443 отклонить
Наконец, мы можем перечислить все наши правила:
kali> sudo nft list ruleset
Чтобы удалить таблицу aa и начать заново:
kali> sudo nft delete table <имя_таблицы>
Удаление таблицы удаляет все цепочки и правила внутри этой таблицы.
Краткое содержание:
Nftables — более мощный и гибкий межсетевой экран, чем iptables. Он отлично подходит для Linux-специалистов и специалистов по кибербезопасности, которым необходимо управлять сложными сетевыми средами.
Обладая лишь небольшими знаниями и практикой, они могут создать эффективный межсетевой экран, конкурирующий с более дорогими и сложными коммерческими продуктами стоимостью в десятки тысяч долларов.
Межсетевые экраны играют ключевую роль в кибербезопасности, поскольку они могут отфильтровывать нежелательный и вредоносный трафик из вашей сети. Хотя межсетевые экраны не сделают вашу сеть непроницаемой, они значительно затруднят злоумышленникам её обнаружение и доступ к ней.
Многие компании продают превосходную продукцию, некоторые из которых стоят десятки тысяч долларов. Среди этих поставщиков:
Фортинет
Cisco
Palo Alto Networks
Системы контрольно-пропускных пунктов
И многое другое. Это отличные устройства, но для малого бизнеса или домашнего офиса с ограниченным бюджетом вы можете создать межсетевой экран на базе Linux с минимальными или нулевыми затратами. Мы предоставили вам руководства по использованию iptables и UFW для создания межсетевого экрана. В этом руководстве мы покажем, как создать очень эффективный межсетевой экран, используя более современный подход — nftables.
В Linux есть множество брандмауэров, которые могут защитить ваш компьютер без больших затрат. Эти брандмауэры ничуть не хуже коммерческих, и для их использования нужно лишь немного о них знать. Брандмауэры важны для защиты вашего компьютера от хакеров и других угроз.
Межсетевой экран — это подсистема компьютера, которая блокирует входящий и исходящий сетевой трафик. Межсетевые экраны могут быть программными и аппаратными. Аппаратные межсетевые экраны обычно используются для защиты сети и компьютеров в ней, тогда как программный межсетевой экран защищает систему, в которой он размещен.
Nftables — это фреймворк классификации пакетов Linux, который заменяет инфраструктуру Netfilter , используемую в iptables, ip6tables, arptables и ebtables. Фреймворки, использующие устаревшую инфраструктуру Netfilter, постепенно исчезают из основных дистрибутивов Linux. Эти фреймворки начали использовать nftables в качестве фреймворка классификации пакетов по умолчанию.
Несмотря на повсеместное распространение iptables, его архитектура имеет ряд фундаментальных ограничений и недостатков, которые можно устранить только путём фундаментальной переработки. Именно такую реконструкцию и намеревался осуществить nftables.
Основы Nftables
Структура nftables является иерархической и состоит из таблиц, цепочек и правил.Таблицы
Таблицы — это высший уровень иерархии nftables. Каждая таблица соответствует одному семейству адресов и содержит цепочки, фильтрующие пакеты в этом семействе. Например, таблица IP фильтрует трафик IPv4, а таблица IP6 фильтрует трафик IPv6.
Цепи
Цепочки находятся под таблицами и фильтруют пакеты. Цепочки служат контейнерами для правил. Каждое правило nftables прикрепляется к цепочке, чтобы пакеты, «попавшие» в фильтр цепочки, впоследствии передавались правилам цепочки.
Правила
Правила — это основные строительные блоки nftables. Правила принимают пакеты, отфильтрованные по цепочкам, и выполняют над ними действия в зависимости от их соответствия определённым критериям.
Шаг
В Kali Linux nftables установлен по умолчанию, но если по какой-то причине в вашей системе nftables не установлен или вы используете другой дистрибутив, вы можете загрузить его из репозитория Kali.kali > sudo apt install nftables
Шаг № 2: Создайте некоторые правила
Давайте создадим несколько правил. Предположим, вы хотите блокировать все пакеты, приходящие с IP-адреса 192.168.0.103. Чтобы создать это правило, делаем следующее:Создайте таблицу фильтров
kali> sudo nft add table ip filter
добавить таблицу: эта команда добавляет новую таблицу в конфигурацию nftables.
ip: Это указывает на то, что таблица должна быть создана в семействе IP, которое используется для фильтрации трафика IPv4 и IPv6.
Фильтр: имя создаваемой таблицы. Таблица фильтров используется по умолчанию для фильтрации трафика и обычно используется для блокировки или разрешения определённых IP-адресов или портов.
Создайте входную и выходную цепочку
kali > sudo nft add chain ip filter input { type filter hook input priority 0; policy drop; }kali > sudo nft add chain ip filter output { type filter hook output priority 0; policy drop; }
добавить цепочку: эта команда указывает nftables создать новую цепочку внутри существующей таблицы.
IP-фильтр вход/выход: определяет таблицу и цепочку, к которой будет добавлена новая цепочка. «ip» указывает семейство IP-адресов, которое используется для фильтрации трафика IPv4 и IPv6. «filter» — имя таблицы, а вход/выход — имя создаваемой цепочки.
Тип фильтра : указывает, что тип цепочки — фильтр, что означает, что она будет использоваться для фильтрации сетевого трафика на основе различных критериев.
Входной хук: определяет хук, связанный с цепочкой. Входной/выходной хук указывает, что цепочка будет применена к входящему/исходящему трафику.
приоритет 0: цепочки с более низкими приоритетами оцениваются раньше цепочек с более высокими приоритетами.
Политика отбрасывания : определяет политику по умолчанию для цепочки. Оператор «policy drop» означает, что любой пакет, не соответствующий ни одному другому правилу в цепочке, будет отброшен.
Добавьте правило для блокировки IP-адреса:
kali> sudo nft add rule ip filter input ip saddr 192.168.0.103 drop
добавить правило: это ключевое слово используется для добавления нового правила в брандмауэр nftables.
ip: это ключевое слово указывает, что правило применяется к IP-адресу.
Фильтр: Это имя таблицы, в которую будет добавлено правило.
ввод: это имя цепочки, в которую будет добавлено правило
ip saddr 192.168.0.103: Это критерий соответствия для правила. Эта часть правила указывает, что правило должно соответствовать любому пакету, где исходный IP-адрес — 192.168.0.103.
Отбрасывание: Это вердикт правила. Эта часть правила указывает, что любой пакет, соответствующий критериям соответствия, должен быть отброшен.
Мы также можем сделать то же самое для всей подсети, используя нотацию CIDR или 192.168.0.0/24.
kali> sudo nft add rule ip filter input ip saddr 192.168.0.0/24 drop
Если мы хотим ОТБРАСЫВАТЬ пакеты, предназначенные для определенного порта, мы можем использовать опцию TCP/UDP «dport», за которой следует порт.
kali> sudo nft добавить правило ip filter input tcp dport 22 drop
Если бы мы хотели принимать соединения с веб-сайтом www.amazon.com , мы могли бы создать правило, которое принимает исходящее соединение (выход) на amazon.com (ip daddr 52.94.236.248).
Nftables не может напрямую использовать доменные имена в своих правилах.
kali> sudo nft добавить правило ip filter output ip daddr 52.94.236.248 принять
Если бы мы хотели заблокировать доступ к любым другим веб-сайтам, мы могли бы создать следующие два правила:
kali> sudo nft добавить правило ip filter вывод tcp dport 80 отклонить
kali> sudo nft добавить правило ip filter вывод tcp dport 443 отклонить
Наконец, мы можем перечислить все наши правила:
kali> sudo nft list ruleset
Чтобы удалить таблицу aa и начать заново:
kali> sudo nft delete table <имя_таблицы>
Удаление таблицы удаляет все цепочки и правила внутри этой таблицы.
Краткое содержание:
Nftables — более мощный и гибкий межсетевой экран, чем iptables. Он отлично подходит для Linux-специалистов и специалистов по кибербезопасности, которым необходимо управлять сложными сетевыми средами.
Обладая лишь небольшими знаниями и практикой, они могут создать эффективный межсетевой экран, конкурирующий с более дорогими и сложными коммерческими продуктами стоимостью в десятки тысяч долларов.