Как установить nftables в Ubuntu
Рисунок 1: NFTABLES TCP/IP -модель
Начните с nftables
Estamos traduciendo nuestros guías y учебные пособия al español. ES Postible Que Usted Esté -Viendo una Traducción Generada Automáticamente. Estamos trabajando con traductores profesionales para vervificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en curso.
Создайте учетную запись Linode, чтобы попробовать это руководство с помощью кредита $ .
Этот кредит будет применен к любым действующим услугам, используемым в течение первых дней.
Nftables заменяет успешные iptables и связанные с ним рамки, построенные на NetFilter. С NFTABLES приходит улучшение производительности и удобства использования, но также и значительные изменения в синтаксисе и использовании. Используйте это руководство, чтобы начать изучать, что такое NFTABLE и как он отличается от iptables. Следуйте примеру этого руководства, чтобы реализовать свои собственные правила в NFTABLES и получить практическое представление о том, что он может сделать.
Что такое nftables?
NFTABLES – это структура классификации пакетов Linux, которая заменяет инфраструктуру NetFilter, стоящую за iptables, ip6tables, arptables и ebtables. Фреймворки с использованием устаревшей инфраструктуры Netfilter выходят из основных распределений Linux. Эти рамки начали принимать NFTABLES в качестве структуры классификации пакетов по умолчанию.
Несмотря на повсеместное распространение iptables, его архитектура имеет несколько основных ограничений и неэффективности, и это может быть разрешено только с помощью фундаментальной редизайн. Это перепроектирование – это то, что намеревались достичь.
nftables vs. iptables
Nftables сохраняет некоторые из знакомых частей инфраструктуры NetFilter и iptables. Как и в случае с iptables, nftables по -прежнему использует таблицы, цепочки и иерархию правил – таблицы, содержащие цепи, и цепочки, содержащие правила. В то время как nftables изменяют синтаксис командной строки, он поддерживает слой совместимости, который позволяет вам запускать команды iptables через ядро nftables.
NFTABLES также вносят значительные изменения в использовании от iptables. Для одного, как упомянуто выше, синтаксис командной строки для NFTABLE. Далее следует дополнительные заметные различия между NFTABLES и IPTABLES.
- В отличие от iptables, NFTABLES не имеют предопределенных таблиц или цепей, что идет на повышение производительности.
- В nftables правила могут предпринять несколько действий, в отличие от ограничения Iptables на одно действие на правило.
- Nftables поставляется с семейством INET Address, которая позволяет легко создавать таблицы, которые применяются как к IPv4, так и к IPv6.
- Набор правил NFTABLES представлен динамическим связанным списком, который улучшает обслуживание набоя правил по сравнению с монолитными правилами IPTABLES.
Кроме того, общая инфраструктура NFTABLES открывает новые параметры для структурирования набора правил, даже позволяя многомерным структурам «дерева». Вы можете использовать это, чтобы значительно уменьшить количество запросов правил, чтобы определить соответствующие действия для пакета.
Как установить nftables
Вам не нужно устанавливать nftables, если вы используете один из следующих выпусков распределения или позже:
- Debian 10 (Buster)
- Ubuntu 20.10 (Groovy Gorilla)
- Centos 8
- Fedora 32
В противном случае вы можете вручную установить NFTABLE, используя следующие шаги. Эти шаги работают на Debian 9, Ubuntu 18.04, и CentOS 7, а затем выпускают эти распределения.
Прежде чем вы начнете
- Если вы еще этого не сделали, создайте учетную запись Linode и вычислите экземпляр. Смотрите наше начало с Linode и создание справочников вычислительных экземпляров.
- Следите за настройкой и закреплением руководства по вычислению экземпляров для обновления вашей системы. Вы также можете установить часовой застрой, настроить свое имя хоста, создать ограниченную учетную запись пользователя и Hearden SSH Access.
Это руководство написано для пользователей без корня. Команды, которые требуют повышенных привилегий, префикс с помощью SUDO . Если вы не знакомы с командой SUDO, см. Руководство по пользователям и группам Linux.
Шаги установки
- Установите nftables.
- На распределениях Debian и Ubuntu используйте команду:
Sudo Apt установить nftables
Sudo Yum установить nftables
SUDO SYSTEMCTL Включение nftables sudo SystemCtl nftables nftables
Sudo Apt установить iptables-nftables-compat sudo iptables-save> iptables.Dill Sudo iptables-restore-translate -f iptables.Dilm> Dustset.nft sudo nft -f набор правил.не
Вы можете проверить импорт, получив список таблиц в NFTABLES.
таблицы списков Sudo NFT
Как использовать nftables
Этот раздел разбивает каждый из основных компонентов в nftables, предоставляя свои наиболее полезные команды. В конце этого руководства вы можете найти демонстрацию того, как настроить набор рабочих правил и увидеть его в действии.
Столы
Таблицы – самый высокий уровень иерархии NFTABLES. В данной таблице соответствует однозначное семейство и содержит цепи, которые фильтровали пакеты в этом адресу.
- Чтобы создать таблицу, используйте команду примера. Замените example_table ниже и в последующих примерах, с описательным именем для таблицы.
sudo nft add table inet anevory_table
таблицы списков Sudo NFT
sudo nft delete table inet exater_table
Sudo nft Flush Table inet anevory_table
Цепочки
Цепь
Как установить nftables в Ubuntu
Рисунок 1: NFTABLES TCP/IP -модель
Начните с nftables
Estamos traduciendo nuestros guías y учебные пособия al español. ES Postible Que Usted Esté -Viendo una Traducción Generada Automáticamente. Estamos trabajando con traductores profesionales para vervificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en curso.
Создайте учетную запись Linode, чтобы попробовать это руководство с помощью кредита $ .
Этот кредит будет применен к любым действующим услугам, используемым в течение первых дней.
nftables Заменяет успешные iptables и связанные с ним рамки, построенные на NetFilter. С NFTABLES приходит улучшение производительности и удобства использования, но также и значительные изменения в синтаксисе и использовании. Используйте это руководство, чтобы начать изучать, что такое NFTABLE и как он отличается от iptables. Следите за этим руководством’S пример для реализации ваших собственных правил в nftables и получить практическое представление о том, что он может сделать.
Что такое nftables?
nftables – это структура классификации пакетов Linux, которая заменяет Netfilter Инфраструктура, стоящая за iptables, ip6tables, arptables и ebtables. Фреймворки с использованием устаревшей инфраструктуры Netfilter выходят из основных распределений Linux. Эти рамки начали принимать NFTABLES в качестве структуры классификации пакетов по умолчанию.
Несмотря на повсеместное распространение iptables, его архитектура имеет несколько основных ограничений и неэффективности, и это может быть разрешено только с помощью фундаментальной редизайн. Это перепроектирование – это то, что намеревались достичь.
nftables vs. iptables
Nftables сохраняет некоторые из знакомых частей инфраструктуры NetFilter и iptables. Как и в случае с iptables, nftables по -прежнему использует таблицы, цепочки и иерархию правил – таблицы, содержащие цепи, и цепочки, содержащие правила. В то время как nftables изменяют синтаксис командной строки, он поддерживает слой совместимости, который позволяет вам запускать команды iptables через ядро nftables.
NFTABLES также вносят значительные изменения в использовании от iptables. Для одного, как упомянуто выше, синтаксис командной строки для NFTABLE. Далее следует дополнительные заметные различия между NFTABLES и IPTABLES.
- В отличие от iptables, NFTABLES не имеют предопределенных таблиц или цепей, что идет на повышение производительности.
- В nftables правила могут предпринять несколько действий, в отличие от iptables’ Ограничение на единое действие на правило.
- Nftables поставляется с семейством INET Address, которая позволяет легко создавать таблицы, которые применяются как к IPv4, так и к IPv6.
- nftables’ Набор правил представлен динамическим связанным списком, который улучшает набор правил’Собщиковываемость по сравнению с Iptables’ Монолитный набор правил.
Кроме того, nftables’ Общая набор инфраструктура открывает новые параметры для структурирования вашего набора правил, даже позволяя многомеренно “дерево” структуры. Вы можете использовать это, чтобы значительно уменьшить количество запросов правил, чтобы определить соответствующие действия для пакета.
Как установить nftables
Вам не нужно устанавливать nftables, если вы используете один из следующих выпусков распределения или позже:
- Debian 10 (Buster)
- Ubuntu 20.10 (Groovy Gorilla)
- Centos 8
- Fedora 32
В противном случае вы можете вручную установить NFTABLE, используя следующие шаги. Эти шаги работают на Debian 9, Ubuntu 18.04, и CentOS 7, а затем выпускают эти распределения.
Прежде чем вы начнете
- Если вы еще этого не сделали, создайте учетную запись Linode и вычислите экземпляр. Смотрите наше начало с Linode и создание справочников вычислительных экземпляров.
- Следите за настройкой и закреплением руководства по вычислению экземпляров для обновления вашей системы. Вы также можете установить часовой застрой, настроить свое имя хоста, создать ограниченную учетную запись пользователя и Hearden SSH Access.
Это руководство написано для пользователей без корня. Команды, которые требуют повышенных привилегий, префикс с помощью SUDO . Если вы’Re не знаком с командой Sudo, см. Руководство по пользователям и группам Linux.
Шаги установки
- Установите nftables.
- На распределениях Debian и Ubuntu используйте команду:
Sudo Apt установить nftables
Sudo Yum установить nftables
SUDO SYSTEMCTL Включение nftables sudo SystemCtl nftables nftables
Sudo Apt установить iptables-nftables-compat sudo iptables-save> iptables.Dill Sudo iptables-restore-translate -f iptables.Dilm> Dustset.nft sudo nft -f набор правил.не
Вы можете проверить импорт, получив список таблиц в NFTABLES.
таблицы списков Sudo NFT
Как использовать nftables
Этот раздел разбивает каждый из основных компонентов в nftables, предоставляя свои наиболее полезные команды. В конце этого руководства вы можете найти демонстрацию того, как настроить набор рабочих правил и увидеть его в действии.
Столы
Таблицы – самый высокий уровень иерархии NFTABLES. В данной таблице соответствует однозначное семейство и содержит цепи, которые фильтровали пакеты в этом адресу.
Чтобы создать таблицу, используйте команду примера. Замените example_table ниже и в последующих примерах, с описательным именем для таблицы.
sudo nft add table inet anevory_table
таблицы списков Sudo NFT
sudo nft delete table inet exater_table
Sudo nft Flush Table inet anevory_table
Цепочки
Цепочки живут под таблицами и пакетами фильтров. Вы прикрепляете каждое правило nftables к цепочке, чтобы пакеты “пойманный” в цепи’S Фильтр впоследствии передается в цепь’S Правила.
Цепочки могут быть двух видов. База Цепи действуют как точки входа для пакетов, поступающих из сетевого стека. Обычный Цепи не действуют как фильтры, но могут действовать как цели прыжков. Они могут помочь в управлении потоком и организацией ваших NFTABLES.
Чтобы создать базовую цепочку, используйте команду, такую как пример команды ниже. Замените example_chain, здесь и позже, с описательным именем цепочки.
sudo nft add inte inet aext_table example_chain ''
sudo nft add inte inet aext_table example_chain
nft delete inet inet aext_table example_chain
nft nft flush inet inet aext_table example_chain
Правила
Правила получают пакеты, отфильтрованные цепочками и предпринимают действия на них в зависимости от того, соответствуют ли они конкретным критериям. Каждое правило состоит из двух частей, которые следуют за таблицей и цепью в команде. Во -первых, правило имеет ноль или более выражения которые дают критерии для правила. Во -вторых, правило имеет один или несколько заявления которые определяют действие или действия, предпринятые, когда пакет соответствует правилу’S выражения. Как выражения, так и заявления оцениваются слева направо. См. Следующий пример для добавления правила, чтобы получить разбивку этих двух частей.
Чтобы создать правило, используйте команду, аналогичную примеру. Это правило берет пакеты из примера 22:
sudo nft ud ud inet example_table example_chain tcp dport 22 счетчик принять
- Здесь часть TCP Dport 22 содержит правило’S Два выражения. Он соответствует пакетам TCP, а затем соответствует, когда эти пакеты направлены на порт 22.
- Счетчик принимает часть содержит правило’S два утверждения. Во -первых, соответствующие пакеты добавляют в правило’S счетчик, сохраняя подсчет пакетов, соответствующий правилу. Во -вторых, затем принимаются соответствующие пакеты.
- Имейте в виду, что команды вердиктов, такие как принятие и сброс, конечная обработка правила, поэтому они должны быть размещены на правиле’отправлять.
sudo nft ud ud inet anet_table example_chain position 3 tcp dport 22 счетчик принять
таблица списков sudo nt inet aext_table
Точно так же вы можете использовать такую команду, как пример, чтобы перечислить все правила внутри exater_chain в example_table .
цепочка Sudo NFT inet aember_table example_chain
sudo nft delete rule inet anemes_table example_chain handle 2
Здесь ручка является идентификатором правила, которое вы удаляете. Вы можете получить правило’S Ручка с использованием параметра -a при запуске команды для перечисления правил, как в:
таблица списков sudo inet inet_table -a
Пример использования nftables
Ниже вы можете следить за созданием набора правил. Пример наняла правил использует таблицу INET, две цепи – одна для входящих пакетов, а другая для исходящих – и правило для каждой цепи.
Создать таблицу, inet-table .
Sudo nft Добавить таблицу inet inet-table
nft add add inte inet inet-letbal< type filter hook output priority 0; >'
sudo nft добавить правило inet inet-net output-filter-cheam ip daddr 8.8.8.8 счетчик
nft add add inte inet inet-net-net-net-net-net-net-net-net-net-net-wable-фильтер-цепь '< type filter hook input priority 0; >'sudo nft ud ud inet inet-table-gliple-filter-цепь TCP Dport 3030 Счетчик
таблица списков SUDO
Вы должны получить выход, аналогичный следующему:
Таблица IP inet-leate < chain output-filter-chain < type filter hook output priority 0; policy accept; ip daddr 8.8.8.8 counter packets 0 bytes 0 >цепочка входной фильтер-цепь < type filter hook input priority 0; policy accept; tcp dport 3030 counter packets 0 bytes 0 >>
С машины, работающей NFTABLES, пропингите адрес назначения, указанный в первом правиле.
Ping -c 1 8.8.8.8
Curl 192.0.2.0: 3030
Таблица IP inet-leate < chain output-filter-chain < type filter hook output priority 0; policy accept; ip daddr 8.8.8.8 counter packets 1 bytes 84 >цепочка входной фильтер-цепь < type filter hook input priority 0; policy accept; tcp dport 3030 counter packets 1 bytes 64 >>
Больше информации
Вы можете проконсультироваться с следующими ресурсами для получения дополнительной информации по этой теме. Хотя они предоставляются в надежде, что они будут полезны, обратите внимание, что мы не можем поручиться за точность или своевременность материалов извне размещенных.
- nftables
- Nftables обращаются к семьям
- Настройка цепочек в nftables
Эта страница была первоначально опубликована в пятницу, 9 июля 2021 года.
Как установить nftables в Ubuntu
В этой статье мы узнаем, как переключить брандмауэр Linux с iptables на nftables на Ubuntu. Iptables, основанный на модуле NetFilter ядра Linux, в настоящее время является брандмауэром по умолчанию для многих распределений Linux. Он защищает от нескольких векторов угроз и позволяет вашему серверу блокировать нежелательный трафик на основе конкретного набора правил.
Nftables – это новая подсистема ядра Linux, которая заменяет несколько частей фреймворка NetFilter (на которой основаны iptables), что позволяет улучшить функциональность. Эти изменения были реализованы в ядра версии 3.13. Этот модуль усиливает функциональность NetFilter, подобную брандмауэру, для фильтрации сетевого трафика. Усовершенствованная структура NFTABLES моделируется после того, как система Berkeley Packet Filter (BPF), которая использует базовый набор выражений для создания сгруппированных, сложных правил фильтрации. Это’Стоит отметить, что это не обновление для iptables, а скорее замена. Iptables скоро будет заменен NFTABLES на большинстве систем в качестве единой унифицированной платформы, предоставляя конфигурацию брандмауэра поверх виртуальной машины в клетке.
Чем nftables отличается от iptables?
В iptables есть несколько цепей и таблиц, которые загружаются по умолчанию.
В nftables нет цепочек или таблиц по умолчанию.
В iptables есть только одна цель на правило.
В nftables вы можете выполнить несколько действий в пределах одного правила.
В nftables есть инструмент под названием IPSet. Использование IPSet позволяет составлять список нескольких сетей или адресов, которые можно соответствовать в одном правиле.
В структуре iptables есть четыре инструмента на семью:
- iptables
- ip6tables
- Arptables
- ebtables
NFTABLES содержат уровень совместимости, который охватывает все эти инструменты, что позволяет использовать синтаксис старых правил iptables.
Каковы преимущества nftables?
Основными преимуществами nftables являются:
- Архитектура, которая встроена прямо в ядро
- Синтаксис, который объединяет инструменты iptables в один инструмент командной строки
- Уровень совместимости, который позволяет использовать синтаксис правил iptables.
- Новый, простой в обучении синтаксис.
- Упрощенный процесс добавления правил брандмауэра.
- Улучшенная отчетность об ошибках.
- Сокращение репликации кода.
- Лучшая общая производительность, удержание и постепенные изменения в фильтрации правил.
Сравнение правил
.Вся информация о брандмауэре можно просмотреть с использованием одного инструмента командной строки под названием NFT. NFT использует одно правило для адресов IPv4 и IPv6 вместо использования нескольких правил для каждой задачи. Он не предполагает полного контроля брандмауэра и не удалит правила брандмауэра, установленные другими инструментами или пользователями. NFT также улучшает набор правил брандмауэра, добавляя параметры для ведения журнала и отклонения функций в том же правиле. Наконец, новый бэкэнд NFT почти на 100% совместим с существующими конфигурациями брандмауэра.
Вот простое правило падения для IP в nftables:
nft добавить правило IP -фильтр вывод IP DADDR 10.10.10.10 каплей
В iptables правило будет:
iptables -a output -d 10.10.10.10 -J Drop
Эти примеры, приведенные ниже.
root@host [~]# nft adure Правило IP6 Filter Input Tcp Dport Accept root@host [~]# nft Правило IP6 Фильтр вход ICMPV6 Тип < nd-echo-request, nd-router-advert, neighbor-solicit, nd-neighbor-advert >принимать
Вот несколько других примеров:
#Review Текущая конфигурация: root@host [~]# nft list rulesset #add Новая таблица с семейством "inet" и таблицей "Фильтр": root@host [~]# nft Добавить таблицу INET Filter #Add Новая цепь, чтобы принять все входящие трафики: root@host@host [~]# nft add inte inet input \ < type filter hook input priority 0 \; policy accept \># Допустить новое правило, чтобы принять несколько портов TCP: root@host [~]# nft Правило inet filter input tcp dport \ < ssh, telnet, https, http \>Принять #TO Показать ручки правил: root@host [~] # nft - -handle -Цепочка таблицы таблицы семейства нулечных списков #TOD Удалить правило: root@host [~] # nft УДАЛЕНИЕ Правило inet Filter Ручка ввода 3 # Ко Сохранить текущую конфигурацию: root@hov.конфликт
Это быстрый обзор используемых замены замены:
Установка Debian/Ubuntu
.Метод установки NFTABLES на сервере Debian/Ubuntu очень прост,. В разделе ниже мы сохранили текущий набор правил iptables на .Файл TXT, просмотрел файл, переведен его в читабельный формат NFT, а затем импортировал его в новый набор правил NFT.
root@host: ~# iptables-save> fwrules.txt root@host: ~# cat fwrules.txt root@host: ~# iptables-restore-translate -f fwrules.txt root@host: ~# iptables-restore-translate -f fwrules.txt> набор правил.не
Во второй части процесса мы устанавливаем nftables и инструмент iptables-nftables-compat (который загружает правила в подсистему ядра nf_tables), и, наконец, мы включаем сервис.
root@host: ~# apt instables root@host: ~# apt install iptables-nftables-compat root@host: ~# systemctl inable nftables.услуга
В последнем разделе мы привлекут предыдущий набор правил с набора правил.NFT -файл. Затем мы просматриваем набор правил с ‘список’ флаг.
root@host: ~# nft -f набор правил.nft root@host: ~# nft list table steet table ip nat < chain PREROUTING < type nat hook prerouting priority 0; policy accept; >цепочка ввода < type nat hook input priority 0; policy accept; >Выход цепи < type nat hook output priority 0; policy accept; >Цепь Postrouting < type nat hook postrouting priority 0; policy accept; >> таблица ip mangle < chain PREROUTING < type filter hook prerouting priority 0; policy accept; >цепочка ввода < type filter hook input priority 0; policy accept; >цепочка вперед < type filter hook forward priority 0; policy accept; >Выход цепи < type filter hook output priority 0; policy accept; >Цепь Postrouting < type filter hook postrouting priority 0; policy accept; >> Таблица IP RAW < chain PREROUTING < type filter hook prerouting priority 0; policy accept; >Выход цепи < type filter hook output priority 0; policy accept; >> Таблица IP -фильтр < chain INPUT < type filter hook input priority 0; policy accept; >цепочка вперед < type filter hook forward priority 0; policy accept; >Выход цепи < type filter hook output priority 0; policy accept; >> Таблица INET Filter < chain input < type filter hook input priority 0; policy accept; >цепочка вперед < type filter hook forward priority 0; policy accept; >Выход цепи < type filter hook output priority 0; policy accept; >> root@host: ~#
NFT Command Синопсис
#NFT Параметры команды и синтаксис root@host [~]# nft [-nnscaesupyj] [-i Directory] [-f filename | -i | cmd…] root@host [~]# nft -h Использование: nft [options] [cmds. ] Параметры: -h, -help показывать эту справку -v, -version show version informa. -F, -файл ввод чтения из -i, -интерациактивное ввод чтения из интерактивного CLI -n, -Necumeric При указании один раз, покажите сетевые адреса численно (поведение по умолчанию). Укажите дважды, чтобы также показать интернет -сервисы (номера портов) численно. Укажите три раза, чтобы также показать протоколы, идентификаторы пользователей и идентификаторы группы численно. -S, -беззаконный опустить государственную информацию о наборе правил. -N Перевод IP -адресов на имена. -A, -ручка правила вывода -ручки. -E, -Эхо повторить, что было добавлено, вставлено или заменено. -I, -Includepath добавить в поиск путей, которые искали файлы, файлы. По умолчанию: /etc -debug Укажите уровень отладки (сканер, анализатор, Eval, NetLink, MNL, Proto -CTX, Segtree, All) root@host [~]# nft -v nftables v0.8.2 (Джо Btfsplk)
Firemethalld и Nftables
Как насчет брандмалда? К счастью, Firewalld легко взаимодействует с NFTables через саму команду NFT. На изображении FireMwelld ниже мы видим, как в настоящее время взаимодействуют iptables и Firewalld.
Ранняя проблема с Iptables и FireMwalld заключалась в том, что брандмалд принял полный контроль над брандмауэром на сервере. Теперь, используя nftables в качестве бэкэнда, это больше не соответствует правде, так как NFTables позволит для нескольких имен -пространств, а брандмалд будет охватывать правила, наборы и цепи в таблицу FireWalld. Это избегает многих конфликтов, которые можно встретить с другим программным обеспечением, которое не взаимодействует с бранддалдом. В предстоящих выпусках NFTables будет обновлен для использования новых либеральных сальто.
Восстановить
Если по какой -то причине вам нужно вернуться к старому бэкэнду iptables, вы можете легко сделать это, сбросив ‘брандмауэрд‘ вход в /и т. Д./Firewalld/Firewalld.конфликт вернуться к ‘iptables‘, а затем перезапустить брандмалд.
Узнайте, как эта новая служба может вписаться в ваш общий план безопасности для вашего сервера. Все еще не уверен в том, как реализовать это на вашем сервере Ubuntu или у вас есть дополнительные вопросы? Наши специалисты по поддержке поддерживают нашу помощь в ответе на эти и любые другие вопросы об этой технологии.
Статьи по Теме:
- Как исправить “Этот сайт может’t обеспечить безопасное соединение” Ошибка
- Как установить mongodb на Almalinux
- Как установить PostgreSQL на Almalinux
- Как использовать WP Toolkit для обеспечения и обновления WordPress
- Как установить и настроить Ansible на Almalinux
- Как установить Redis в контейнер easyapache 4 в CPanel
Об авторе: Дэвид Сингер
Я – G33K, Linux Blogger, разработчик, студент и бывший технический писатель для LiquidWeb.компонент. Моя страсть ко всем вещам технологии движутся моей охотой на все, что Coolz. Мне часто нужен отпуск после возвращения из отпуска.
Присоединяйтесь к нашему списку рассылки, чтобы получить новости, советы, стратегии и вдохновение, необходимое для развития вашего бизнеса
Что’S новый в безопасности для Ubuntu 22.04 LTS?
Canonical Ubuntu 22.04 LTS – последний долгосрочный выпуск поддержки Ubuntu, одного из мира’Самые популярные дистрибутивы Linux. В качестве долгосрочного выпуска поддержки, Ubuntu 22.04 LTS будет поддерживаться в течение 10 лет, получая как расширенные обновления безопасности, так и LivePatching kernel с помощью подписки Ubuntu Advantage (которая бесплатно для личного использования). Это продолжает эталон выпусков Ubuntu LTS, которые служат самым безопасным основанием для разработки и развертывания приложений Linux и услуг. В этом сообщении мы рассмотрим различные функции безопасности и улучшения, которые вошли в этот новый релиз с момента Ubuntu 20.04 LTS релиз. Для более подробного изучения некоторых из этих функций обязательно ознакомьтесь с предыдущими статьями в этой серии, которые охватывают улучшения, предоставленные в каждом промежуточном выпуске Ubuntu за последние 2 года между 20.04 LTS и 22.04 LTS.
Оптимизированные ядра Linux
Ubuntu 22.04 LTS представляет оптимизированные версии ядра для разных платформ. Для сертифицированных OEM настольных устройств, upstream v5.17 Ядро используется в качестве базовой линии, в то время как все другие настольные и серверные платформы основаны на V5.15 ядра. Огромное количество изменений и улучшений безопасности вошли в ядро Linux с момента V5.4 ядра Ubuntu 20.04 LT, в том числе:
Усовершенствования безопасности аппаратного обеспечения
Intel’S программного обеспечения расширения Guard (SGX) предоставляет защищенные аппаратные корпусы, которые приложения могут использовать для хранения конфиденциальных данных, либо для выполнения конфиденциальных вычислений без риска помех от ненадежных компонентов. Ubuntu 22.04 LTS позволяет поддержать эту функцию, которая присутствовала в процессорах Intel в течение ряда лет. Пока для платформ ARM, поддержка ARMV8.5 Расширение тега памяти теперь доступно на устройствах ARM64. Эта функция направлена на предотвращение проблем безопасности памяти путем помещения адресов памяти с помощью ключа, который не может быть легко подделан, и, таким образом, предотвращение общих атак по безопасности памяти, таких как переполнение буфера. Пользовательские процессы могут теперь включать теги памяти для выбранных областей памяти, чтобы помочь в предотвращении атак за коррупцию памяти. Наконец, AMD Secure зашифрованная виртуализация (SEV) также поддерживается подсистемой виртуализации KVM, чтобы защитить гостевые регистры виртуальных машин от доступа к хост -операционной системе.
Улучшения безопасности общего ядра
Также доступны ряд других общих, независимых от платформы, функций безопасности ядра, включая как новые функции безопасности, такие как основное планирование, а также различные улучшения упрочнения. Поскольку первые экземпляры уязвимостей микроархитектурных боковых каналов (т.е. Призрак и т. Д.) Сначала были обнаружены более 4 лет назад, разработчики работали над средствами для управления процессами, как они запланированы в рамках симметричной многопроцессорной (SMT) ядер. SMT Братья и сестры делятся аппаратными ресурсами ЦП между собой, и поэтому в результате может быть довольно сложно избежать различных аппаратных атак по боковым каналам. В настоящее время предоставлена поддержка планирования основного планирования, что позволяет процессам контролировать, какие потоки будут запланированы между братьями и сестрами SMT, и, следовательно, могут позволить им защитить конфиденциальную информацию от проникновения к другим ненадежным процессам в системе.
Рандомизация стека ядра обеспечивает меру упрочнения, чтобы расстроить злоумышленников, желающих выполнить атаки коррупции памяти в ядре. Поместив стек ядра с другим смещением при последующих системных вызовах, злоумышленники не могут выполнять атаки, сначала протекая адрес стека ядра, а затем перезаписывая эту память на более позднем системном вызове. Заключив этот потенциальный вектор атаки Ubuntu 22.04 LTS обеспечивает более оборонительную платформу от атак ядра.
В подсистеме BPF также наблюдается ряд улучшений безопасности, включая ограничение его использования только для привилегированных процессов по умолчанию, а также включение первоначальных усилий по поддержке подписанных программ BPF, а также также. Обе эти меры направлены на то, чтобы помочь свести к минимуму вероятность того, что эта спектакльная подсистема может быть использована для атаки ядра, в то же время позволяя ее использовать как разработчиками, так и системными администраторами по мере необходимости.
Наконец, включение нового модуля безопасности Landlock Linux обеспечивает еще один механизм для того, чтобы песочница применения, чтобы соответствовать более традиционным методам с помощью Apparmor или Selinux. Landlock позволяет приложениям указать свою собственную политику (и, следовательно, больше сродни фильтрам SECCOMP), в отличие от Apparmor и Selinux, которые предназначены для того, чтобы позволить системному администратору настраивать глобальные системные политики в разных приложениях. В сочетании со стеком LSM Landlock можно использовать в сочетании с Apparmor, чтобы обеспечить подход в глубину защиты к изоляции приложения.
Усовершенствования безопасности пользователей
С каждым новым выпуском Ubuntu есть возможность обновить диапазон программных пакетов, предоставленных в архиве Ubunt. Ubuntu 22.04 LTS не является исключением, внесение обновлений для ряда соответствующих пакетов безопасности, включая OpenSSL, OpenSSH, NFTABLE, GCC и даже Humble Bash Shell.
OpenSSL 3
Ubuntu 22.04 LTS Ships с последним основным выпуском почтенного криптографического инструментария, OpenSSL. В OpenSSL 3 многие устаревшие алгоритмы были устарели и отключены по умолчанию – включая MD2 и DES. Эти и другие устаревшие алгоритмы вместо этого присутствуют в унаследованном поставщике, который может быть включен по мере необходимости либо через изменение конфигурации, либо программно. Отключив их по умолчанию, пользователи и приложения защищены от криптографических атак от этих менее безопасных алгоритмов.
Улучшения UX Opensh для токенов FIDO/U2F
Другая опора экосистемы безопасности Linux – OpenSSH, обеспечивая безопасный доступ к удаленной оболочке к системам Linux. Семь релизов OpenSsh произошли с момента 8 версии 8.2 был включен в предыдущий Ubuntu 20.Выпуск 04 LTS, приносящий ряд улучшений для системных администраторов, разработчиков и пользователей. В частности, использование токенов аппаратной безопасности U2F/FIDO было значительно улучшено в Openssh 8.9, Принесение значительных преимуществ пользователя при использовании этих устройств аутентификации второго факта для удаленного доступа.
nftables в качестве бэкмауэнда брандмауэра по умолчанию
Брандмауэр на Linux состоит из двух компонентов – механизм брандмауэра в ядре Linux и инструменты, используемые для настройки этого из пользователя. Ядра Linux традиционно поддерживает две разные подсистемы для политик брандмауэра – iptables / Xtables и более новые NFTABLES. NFTABLES приносит значительные преимущества как с точки зрения производительности, так и с гибкости при создании и развертывании правил брандмауэра, особенно для систем IPv4/IPv6 с двойным стеком. Традиционный iptables Инструмент управления пользователем пространства теперь настраивает nftables бэкэнд ядра, пока новый не Инструмент пользователя также присутствует, чтобы позволить создать более гибкие правила, не поддерживаемые традиционными iptables парадигма.
GCC 11 и Bash 5.1
GCC 11.2 приносит расширенные возможности статического анализа, позволяя разработчикам обнаруживать и исправлять потенциальные уязвимости программного обеспечения и другие проблемы во время цикла разработки. Это включает в себя поддержку для обнаружения возможного использования без безрезультатного, нулевого указателя, утечка памяти и небезопасных вызовов из условий обработчика сигнала. С помощью Ubuntu 22.04 LT в качестве основы для своих платформ разработки, разработчики программного обеспечения могут помочь обеспечить, чтобы код, который они пишут, максимально правильный и не дефектный, насколько это возможно.
Разработчики и администраторы систем также выиграют от включения Bash 5.1. Этот выпуск почтенной оболочки включает в себя нативную поддержку улучшенной генерации псевдо-рэндома через переменную $ srandom. В отличие от исторической $ случайной переменной, $ srandom получен из ядра’S /Dev /Urandom Secure Random Source Device, гарантируя, что его выход не может быть легко предсказан потенциальными злоумышленниками.
Частные домашние каталоги
Традиционно системы Ubuntu выбрали удобство общего доступа к пользователю’S Home Home Directory, поддержка CASES, такие как общие ПК в университете и домашних условиях. Однако, по мере развития технологического ландшафта, и Ubuntu стала доминирующим в других областях, таких как облачные вычисления и Интернет вещей (IoT), в настоящее время считается более защищенным подходом для защиты пользователей и их данных. Ubuntu 22.04 LT теперь позволяет по умолчанию частные домашние каталоги, гарантируя, что данные пользователей не доступны для других без их явного разрешения.
В общей сложности, диапазон улучшений безопасности в Ubuntu 22.04 LTS делает его наиболее безопасным выпуском Ubuntu на сегодняшний день, используя и опираясь на различные другие функции упрочнения и безопасности, которые долгое время были основной частью Ubuntu. Кроме того, обновления безопасности и LivePatching kernel для 22.04 LTS предоставляется в течение десяти лет с помощью подписки Ubuntu Advantage, продолжая эталон выпусков Ubuntu LTS, служащих наиболее безопасным основанием для разработки и развертывания приложений Linux и услуг.
Поговори с нами сегодня
Заинтересован в управлении Ubuntu в вашей организации?
Настройка брандмауэра nftables
Автор: Jeroen van Kessel
| 1 июня 2020 г. | 10 минут читать
NFTABLES (NetFilter) консолидирует таблицы в новый брандмауэр Linux на основе ядра. Большинство распределений Linux переходят с iptables в NFTABLES, поскольку их платформа брандмауэра по умолчанию. Nftables теперь по умолчанию в Debian 10, Ubuntu 20.04, RHEL 8, SUSE 15 и Fedora 32. Время мигрировать!
В этом блоге подробно рассказывается о том, как настроить NFTABLES на основе модели периметра, которая метафорически визуализируется на картинке 1. Посмотрите на сетевую модель с нулевым дозом, если вы хотите заполнить пробелы подхода на основе периметра. Также ознакомьтесь с PF, если вам нужно надежное решение брандмауэра на краю вашей сети.
Картинка 1: Форт Буртанж, Нидерланды (фото Элиз Ван Хек)
Начало работы с nftables
Сначала мы устанавливаем nftables:
$ sudo apt -get установить nftables -y
$ nft -v nftables v0.9.3 (Topsy)
Далее мы включим NFTABLES на загрузке и запустим демон:
$ sudo SystemCtl включает nftables $ sudo systemctl nftables $ sudo systemctl nftables nftables nftables.Сервис - Nftables Загружено: загружен (/lib/systemd/system/nftables.услуга; неполноценный; Продавец предустановлен: включен) Active: Active (выходит); 1 с.nftables.Орг процесс: 16565 execstart =/usr/sbin/nft -f/etc/nftables.conf (code = exited, status = 0/success) Main Pid: 16565 (code = exited, status = 0/success)
Как работает nftables
NFTABLES, по сути, является сетевым фильтром, также называемым списком управления доступа сети (ACL), который позволяет управлять потоками сетевых данных. Эти сетевые фильтры являются иерархическими и зависимым от порядка. На рисунке 1 показано, как функции nftables на основе модели TCP/IP:
Рисунок 1: NFTABLES TCP/IP -модель
Давайте начнем снизу на модели TCP/IP. Ссылка на данные – это точка, в которой вы можете упростить трафик для конкретных (виртуальных) NIC (сетевые интерфейсные карты) на основе их входящего VNIC (IIFNAME) и Outcoming VNIC (OIFNAME). Таким образом, вы можете отделить трафик данных (e.г. Https) из управленческого трафика (e.г. SSH или VNC).
При ссылке на данные протокол ARP (протокол разрешения адреса) используется для разрешения IP -адреса на MAC -адрес. Во время первоначальной трансляции ARP злонамеренная организация может попытаться связать свой MAC -адрес с IP -адресом для запрошенного IP -адреса хоста, что приведет к отправке трафика для этого IP -адреса на хост злоумышленника вместо этого. Вы можете управлять трафиком ARP в разделе фильтра ARP (1).
Далее следует интернет -работы TCP/IP и транспортный уровень с IP -фильтром и IP6 Filter (2). Эти фильтры помогают нам сформировать сетевой трафик от нашего хоста IP (SADDR) в сетевые сегменты или другой хост (DADDR). Nftables может отфильтровать пакеты на основе сетевого протокола, порта назначения (DPORT), исходного порта (Sport) и его состояния сеанса (CT State). Небольшая примечание – протокол ICMP на самом деле является частью протокола IP и, следовательно, технически работает на интернет -уровне. В идеале, ваши таблицы IP и IP6 должны блокировать любой сетевой трафик (DROP), если это не разрешено (принять).
Nftables – это сетевой фильтр, а не нативный брандмауэр (3) приложения (3). Сетевые порты часто принимаются за управление сетью приложений. Имейте в виду, что злонамеренный актер может туннель обратной оболочкой над портом 443 TCP (HTTPS) или UDP -портом 53 (DNS). Приложение (L7) фильтрация может заполнить эти пробелы, используя веб -прокси для HTTPS -трафика, а также системы предотвращения вторжений (IPS) для сброса вредоносного туннельного трафика по другим сетевым протоколам, даже над ICMP. DPI (глубокая проверка пакетов) является ключевым словом здесь.
Как настроить nftables
Мы будем напрямую отредактировать /etc /nftables.CONF COUN FILE вместо использования NFT CLI (NFT ADD) и (NFT DELETE). Этот файл конфигурации загружен по умолчанию на загрузке. Вы должны быть root (sudo), чтобы установить фильтры брандмауэра на портах до 1024.
$ sudo cp /etc /nftables.Conf /etc /nftables.конфликт.bak $ sudo vi /etc /nftables.конфликт
Сначала мы определяем переменные, которые мы можем использовать позже в нашем наборе правил:
Определите nic_name = "eth0" определить nic_mac_gw = "de: ad: be: ef: 01: 01" define nic_ip = "192.168.1.12 "Определите local_inetw = < 192.168.0.0/16 >Определить local_inetwv6 = < fe80::/10 >Определите dns_servers = < 1.1.1.1, 8.8.8.8 >Определите ntp_servers = < time1.google.com, time2.google.com, time3.google.com, time4.google.com >Определить DHCP_SERVER = "192.168.1.1 "
nftables автоматически отображает имена сетевых протоколов с номерами портов (e.г. Https <> 443). В нашем примере мы разрешаем только входящие сеансы, которые мы инициировали (CT State Compet Accept) из эфемерных портов (Dport 32768-65535). Помните, что приложение или веб -сервер должны разрешать вновь инициированные сеансы (CT State New).
Таблица IP -фильтр < chain input < type filter hook input priority 0; policy drop; iifname "lo" accept iifname "lo" ip saddr != 127.0.0.0/8 drop iifname $NIC_NAME ip saddr 0.0.0.0/0 ip daddr $NIC_IP tcp sport < ssh, http, https, http-alt >tcp dport 32768-65535 ct state established accept iifname $NIC_NAME ip saddr $NTP_SERVERS ip daddr $NIC_IP udp sport ntp udp dport 32768-65535 ct state established accept iifname $NIC_NAME ip saddr $DHCP_SERVER ip daddr $NIC_IP udp sport bootpc udp dport 32768-65535 ct state established log accept iifname $NIC_NAME ip saddr $DNS_SERVERS ip daddr $NIC_IP udp sport domain udp dport 32768-65535 ct state established accept iifname $NIC_NAME ip saddr $LOCAL_INETW ip daddr $NIC_IP icmp type echo-reply ct state established accept > chain output < type filter hook output priority 0; policy drop; oifname "lo" accept oifname "lo" ip daddr != 127.0.0.0/8 drop oifname $NIC_NAME ip daddr 0.0.0.0/0 ip saddr $NIC_IP tcp dport < ssh, http, https, http-alt >tcp sport 32768-65535 ct state new,established accept oifname $NIC_NAME ip daddr $NTP_SERVERS ip saddr $NIC_IP udp dport ntp udp sport 32768-65535 ct state new,established accept oifname $NIC_NAME ip daddr $DHCP_SERVER ip saddr $NIC_IP udp dport bootpc udp sport 32768-65535 ct state new,established log accept oifname $NIC_NAME ip daddr $DNS_SERVERS ip saddr $NIC_IP udp dport domain udp sport 32768-65535 ct state new,established accept oifname $NIC_NAME ip daddr $LOCAL_INETW ip saddr $NIC_IP icmp type echo-request ct state new,established accept > chain forward < type filter hook forward priority 0; policy drop; >>
Следующий кодовый блок используется для блокировки входящего и исходящего трафика IPv6, за исключением запросов Ping (ICMPV6 типа Echo-Request) и IPv6 Network Discovery (ND-router-advert, nd-neighbor-solicit, nd-neighbor-advert). VNIC часто автоматически предоставляется с адресами IPv6 и оставляют нетронутыми. Эти интерфейсы могут злоупотреблять злонамеренными организациями для туннеля конфиденциальных данных или даже оболочки.
Таблица IP6 Фильтр < chain input < type filter hook input priority 0; policy drop; iifname "lo" accept iifname "lo" ip6 saddr != ::1/128 drop iifname $NIC_NAME ip6 saddr $LOCAL_INETWv6 icmpv6 type < destination-unreachable, packet-too-big, time-exceeded, parameter-problem, echo-reply, nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert >Установленное состояние CT CAST> < type filter hook output priority 0; policy drop; oifname "lo" accept oifname "lo" ip6 daddr != ::1/128 drop oifname $NIC_NAME ip6 daddr $LOCAL_INETWv6 icmpv6 type echo-request ct state new,established accept >цепочка вперед < type filter hook forward priority 0; policy drop; >>
Последний блок кода используется для трафика ARP, который ограничивает рамки ARP вещания сети:
Таблица ARP фильтр < chain input < type filter hook input priority 0; policy accept; iif $NIC_NAME limit rate 1/second burst 2 packets accept >Выход цепи < type filter hook output priority 0; policy accept; >>
$ sudo systemctl restart nftables && systemctl nftables && nft List
Соображения
Обязательно проверьте, что ваши порты действительно открыты или закрыты. Вы можете использовать NC, Telnet или TCPDUMP для этого.
nftables может регистрировать действия в/var/log/syslog . Вы должны использовать RSYSLOG для пересылки журналов в ваше любимое решение SIEM, чтобы получить лучшее представление о вашей сети.
С правильным скелетом Nftables облегчает срок службы для инженеров DevOps для применения фислендмауэра микро -сегментации. Инженеры DevOps могут предоставить модульные правила брандмауэра для хостов на основе Linux, используя инструмент управления конфигурацией, такой как Ansible. Эти наборы правил брандмауэра затем подталкиваются и загружаются на основе основной функции виртуальной машины или контейнера. Например, серверы баз данных должны разговаривать только с ограниченным подмножествами веб -серверов. Этот способ обеспечения правил брандмауэра на уровне хозяина должен уменьшить поверхность атаки для бокового движения злонамеренным актером.
Этот пост просто затронул основные возможности брандмауэра NFTABLES. Проверьте страницу Wiki Nftables для получения дополнительных методов брандмауэра. Имейте в виду, что одно решение брандмауэра не обязательно заменяет другое. Также посмотрите на брандмауэр с краем, если у вас нет сетевого домена с нулевым дозом.
Обсуждение и вопросы
Copyright 2019 – 2023 Cryptsus. Все права защищены.
Код находится под новой лицензией Беркли дистрибуции программного обеспечения (BSD), потому что мы заботимся о создании более открытого мира.