Категория > Новости > Nftables. Как выглядит будущее настройки файрвола в Linux - «Новости»
Nftables. Как выглядит будущее настройки файрвола в Linux - «Новости»22-06-2020, 12:41. Автор: Викентий |
Начинающие админы часто считают, что файрвол в Linux называется iptables. Более опытные знают, что нынешняя подсистема ядра для фильтрации трафика и модификации пакетов называется NetFilter, а команда iptables всего лишь утилита для ее настройки. В этой статье я познакомлю тебя с новым инструментом, который все чаще встречается в современных дистрибутивах, — nftables.![]() Возможно, для тебя это будет новостью, но iptables вовсе не уникальна, есть и другие утилиты подобного рода. Собственно, настраивать ей можно только правила для пакетов IPv4 на сетевом уровне. Для IPv6 понадобится Настройка сетевых интерфейсов, маршрутов, пространств имен Рё прочего СѓР¶Рµ давно унифицирована РІ утилите Как ни странно, первые попытки переосмыслить настройку МСЭ предпринимались еще в 2008 году. Проект назвали nftables, но он стал легендарным (в узких кругах) долгостроем. В 2014 году его наконец приняли в основную ветку ядра 3.13, но пользовательские утилиты какое-то время оставались почти непригодными к работе. К примеру, счетчики пакетов для правил хранились в ядре, но просмотреть их из пространства пользователя не было никакой возможности. Сейчас дело наконец меняется и дистрибутивы даже начинают использовать nftables по умолчанию. Сторонние инструменты вроде fail2ban тоже уже добавляют ее поддержку. Несколько причин расстаться с iptables и перейти на nftables:
В этой статье мы перенесем настройки моего VPS с iptables на nftables. Нужно отметить, что использовать сразу оба инструмента на одной машине не выйдет, так что нужно планировать одномоментную миграцию. Документацию можно найти в вики проекта. Проблемы iptablesХотя NetFilter вполне хорошо справлялся со своей задачей, его настройка через Рљ примеру, встроенный синтаксис для РіСЂСѓРїРї адресов Рё сетей РІ нем так Рё РЅРµ появился. Существует отдельный инструмент для этих целей — ipset, который позволяет создать РіСЂСѓРїРїС‹ Рё ссылаться РЅР° РЅРёС… РІ правилах, РІСЂРѕРґРµ Однако само то, что группы настраиваются отдельно от правил и с помощью другой утилиты, создает много проблем. Нужно помнить два разных синтаксиса, да еще и убедиться, что настройки ipset при загрузке применяются раньше правил iptables, — это при том, что во многих дистрибутивах Linux встроенного сервиса для ipset так и нет. Другая надоедливая проблема — нельзя указать несколько разных действий в одном правиле. Хотя еще больше раздражает отсутствие возможности использовать одни правила для IPv4 и IPv6. В современном мире dual stack уже стал нормой на серверах, машин с одним IPv4 все меньше, а машин с одним IPv6 нет и не предвидится, в итоге админу приходится дублировать одни и те же правила в двух разных конфигах. Кроме того, в некоторых местах синтаксис опций iptables достаточно хрупкий. Где-то можно ставить пробел после запятой, где-то нет. Где-то можно смело поменять две опции местами, где-то это вызовет ошибку. Если правила генерируются скриптом, это особенно усложняет тестирование. Все это приводит к тому, что iptables часто используют как своеобразный низкоуровневый «язык ассемблера», который генерируется либо фронтендами вроде shorewall или firewalld, либо пользовательскими скриптами. А цель проекта nftables — в первую очередь сделать настройку правил простой и удобной для человека. Давай посмотрим, насколько это удалось. Перейти обратно к новости |