инструменты управления iptables для крупномасштабной среды

15

Среда, в которой я работаю, представляет собой крупномасштабную операцию веб-хостинга (несколько сотен серверов под управлением, почти все публичные адресации и т. Д., Поэтому все, что говорит об управлении ссылками ADSL, вряд ли будет работать хорошо), и мы " Мы ищем то, что будет удобно для управления как основным набором правил (около 12 000 записей в iptables при текущем количестве), так и наборами правил на основе хоста, которыми мы управляем для клиентов. Наш основной набор правил маршрутизатора меняется несколько раз в день, а наборы правил на основе хоста будут меняться, возможно, 50 раз в месяц (для всех серверов, поэтому, возможно, одно изменение на пять серверов в месяц).

В настоящее время мы используем filtergen (в общем, шары и супер-шары в нашем масштабе работы), и я использовал shorewall в прошлом на других работах (что было бы предпочтительнее, чем filtergen, но я полагаю, что быть там что-то лучше, чем это).

«Мусты», которые мы придумали для любой системы замены:

  • Должен генерировать набор правил довольно быстро (запуск фильтра на нашем наборе правил занимает 15-20 минут; это просто безумие) - это связано со следующим пунктом:
  • Необходимо сгенерировать файл стиля iptables-restore и загрузить его одним нажатием, а не вызывать iptables для каждой вставки правила
  • Не должен отключать брандмауэр в течение длительного периода, пока перезагрузится набор правил (опять же, это является следствием вышеупомянутого пункта)
  • Должен поддерживать IPv6 (мы не внедряем ничего нового, не совместимого с IPv6)
  • Должен быть без DFSG
  • Необходимо использовать текстовые файлы конфигурации (поскольку мы запускаем все через контроль версий и используем стандартные инструменты Unix для работы с текстом - наша СОП)
  • Должен поддерживать как RedHat, так и Debian (желательно в упаковке, но, по крайней мере, не должен быть явно враждебным стандартам любого из дистрибутивов)
  • Должен поддерживать возможность запуска произвольных команд iptables для поддержки функций, которые не являются частью "родного языка" системы

Все, что не соответствует всем этим критериям, не будет рассматриваться. Следующие наши "приятно иметь":

  • Если необходимо поддерживать «фрагменты» файла конфигурации (то есть вы можете поместить кучу файлов в каталог и сказать брандмауэру «включить все в этом каталоге в набор правил»; мы широко используем управление конфигурацией и хотели бы использовать эту функцию для предоставить правила для конкретной службы автоматически)
  • Должен поддерживать необработанные таблицы
  • Должно позволять вам указывать конкретный ICMP как во входящих пакетах, так и в правилах REJECT.
  • Должен изящно поддерживать имена хостов, которые разрешают более одного IP-адреса (мы несколько раз ловили его с помощью filtergen; это довольно королевская боль в заднице)
  • Чем больше опциональных / странных функций iptables, которые поддерживает инструмент (изначально или с помощью существующих или легко записываемых плагинов), тем лучше. Время от времени мы используем странные функции iptables, и чем больше из них «просто работают», тем лучше для всех.
ombble
источник
Я укушу - что означают термины "шары" и "супер шары" в вашей публикации? Я предполагаю, что вы не говорите о надувных резиновых сферах, но я не могу понять, означает ли контекст "хороший" или "плохой".
Эван Андерсон
шары == плохо. Супер шары == очень плохо.
womble
При таком количестве правил убедитесь, что у вас есть правило ACCEPT, принимающее установленные и связанные соединения. ПК не имеют TCAM, и многие правила влияют на производительность. Много.
Томас
@thomas: Да, в набор правил входит определенная оптимизация. Разумеется, наличие «знаний» об оптимизации в любом выбранном инструменте брандмауэра было бы плюсом.
womble

Ответы:

4

Если вы, возможно, хотите перейти от подхода, основанного на правилах, к способу «описать требуемое конечное состояние», взгляните на fwbuilder.

Плюсы:

  • поддерживается несколько брандмауэров - ваше ядро ​​+ правила на основе хоста - из 1 набора объектов
  • Подход SQL-esque «скажи мне, что ты хочешь», а не «скажи мне, как это сделать» (примечание: я не говорю, что там есть какой-то SQL! Просто то, что он описательный и процедурный :-)
  • Это графический интерфейс, похожий на интерфейсы коммерческих аппаратных и аппаратных средств производителей, так что можно отодвинуть некоторые задачи в стек сотрудников / навыков
  • поддерживает наиболее "странное" использование, которое я пробовал
  • может генерировать правила для различных реализаций ч / б - BSD / cicso / iptables / etc
  • отделяет внешний интерфейс от компилятора правил, что позволяет надеяться, что скорость беспокоит авторов. NB Я не имею ничего общего с масштабом, на который вы намекаете
  • Формат файла не двоичный
  • делает IPv6
  • Создает конфигурацию стиля iptables-save для атомарной и быстрой загрузки

Минусы:

  • Это графический интерфейс
  • Перемещение вашего существующего набора правил вряд ли будет безболезненным
  • В то время как GPL и в Debian клиенты Windows + OSX являются 30-дневными, так как никто еще не кросс-скомпилировал бесплатную версию для этих ОС; следовательно, коммерческое подразделение разработчиков имеет монополию на эти двоичные файлы
  • Формат файла технически XML; NB не позволяйте этому оттолкнуть вас: взгляните на инструменты, которые они предоставляют (вы можете использовать двоичный файл gui для манипулирования им через CLI, например), инструменты CLI XML, которые уже существуют, и помните - на вашем Масштаб - некоторое подобие метаданных + структура не плохая вещь! Он довольно хорошо различается в разных редакциях, IIRC.

Ссылка: http://www.fwbuilder.org

Джонатан Мэттьюс
источник
Хм ... Я посмотрю. Наличие GUI (не говоря уже о XML) заставляет меня сильно дергаться, но вы выдвигаете некоторые интересные идеи (единый набор правил для всей инфраструктуры). OS X не будет проблемой.
womble
Я согласен, GUI действительно сделал меня WTF изначально, но я был доволен тем, что увидел со стороны CLI. Насколько динамичны ваши настройки? Будет ли 10 изменений в день или 10 изменений в год? Это может быть полезным фактором для детализации здесь. Кроме того, хорошая функция формата файлов XML может заключаться в том, что с помощью инструментов, поддерживающих XML, вы можете иметь всю конфигурацию в одном файле, используя объекты с одним определением, но создавать журнал изменений для конкретного узла для документирования конфигураций и наборов изменений отдельного сервера. , Просто мысль ...
Джонатан Мэттьюс
@Jonathan: Вы правы, важно знать динамизм набора правил. Я редактировал вопрос; для основного набора правил это несколько раз в день.
womble
3

написать свой. серьезно - в таком масштабе это разумно.

используйте ipset и / или множество таблиц / подтаблиц iptable. по возможности перезагружайте только некоторые подтаблицы / некоторые наборы ipset - это ускорит реконфигурацию.

возможно, вы уже это делаете, но все же стоит упомянуть - используйте вложенные таблицы, чтобы уменьшить нагрузку на маршрутизатор и среднее количество запросов, необходимых для пакетов, устанавливающих новые соединения. очевидно, состояние FORWARD -M -state УСТАНОВЛЕНО, RELATED - ваше главное правило.

PQD
источник
«Напиши свое» - это не за столом, но это то, что в первую очередь заставило нас работать с фильтром - оно было написано бывшим сотрудником. Мы бы предпочли не выпускать еще один инструмент управления брандмауэром, если это вообще возможно.
womble
IPSET молниеносен для больших наборов правил. «хранить несколько IP-адресов или номеров портов и сопоставлять их с помощью iptables одним махом; динамически обновлять правила iptables для IP-адресов или портов без снижения производительности; выражать сложные IP-адреса и наборы правил на основе портов с помощью одного правила iptables и получать выгоду от скорости» из комплектов IP "Я использую это с shorewall. Я понятия не имею, как shorewall будет работать в вашем масштабе, хотя.
artifex
2

святые шары (поддержите тему живой!) человек ... 12 000 основных правил?

Я предполагаю, что вы рассмотрели все простые варианты, такие как простое добавление наборов в CVS? Кукольный или CFengine?

Честно говоря, из широкого обзора, который вы дали, я настоятельно рекомендую переоценить дизайн вашей сети. Я, вероятно, немного слишком упрощен, но я просто не могу понять дизайн, который потребовал бы 12k правил iptables. Это действительно похоже на то, что больше выиграет от решения типа SLB, чем от лучшего способа управления правилами брандмауэра.

Кстати, как добавить комментарий, а не добавить ответ?

Greeblesnort
источник
Вам нужно минимальное количество репутации, чтобы комментировать. Когда вы сделаете ссылку появится.
jay_dubya
Вероятно, в наших правилах iptables есть определенная избыточность, но это в значительной степени функция filtergen, возможно, не настолько эффективная, как могла бы. Тем не менее, у нас есть / 19 IP-пространства и VLAN для каждого клиента, а также довольно ограничительная «политика по умолчанию» (требующая исключения для каждого IP-адреса для открытия портов, как того требуют клиенты). Мы, конечно, не сможем избавиться от более чем нескольких из этих правил. О, да, мы уже используем Puppet, и мы не собираемся начинать писать наборы правил вручную в нашем масштабе операций.
womble
ну, вы, конечно, поддерживаете большее пространство IP, чем я, но мне все еще трудно как-то оправдать такое количество правил. Задумывались ли вы о том, чтобы разбить их на древовидную структуру, в которой вы могли бы использовать установки правил «сквозной» в точках удушья? т.е. все веб-серверы только в подсети X, все веб-серверы + smtp в подсети Y? На самом деле вам не нужно было бы их подсетить, просто логически сгруппировать их за многоуровневым брандмауэром ... извините, если я просто добавляю шум в этот момент ... Я просто не могу быть достаточно изощренным для этого. Мне нравятся мои правила межсетевого экрана, короткие и жестокие =)
Greeblesnort
На самом деле мы не в состоянии «раскладывать» такие вещи; Мы в основном являемся провайдером хостинга выделенных серверов, поэтому то, что наши клиенты решают делать со своими машинами изо дня в день, может измениться, что потребует гораздо большего танца, чем если бы мы просто делали выделенную инфраструктуру для внутреннего сервиса.
womble
0

12000 правил? Ты псих? Не страдаете ли вы проблемами с производительностью при таком количестве фильтрации? Я не понимаю, зачем вам нужно 12 000 правил? Как вы проверяете, что набор правил действительно обеспечивает соблюдение политики?

Какова политика?

Как вы проверяете свою политику?

12 000 правил, возможно, нарушают все правила безопасности в книге.

Уникс Дворник
источник
-2

Вы также можете попробовать решение SAAS для управления iptables -> https://www.efw.io/Forum, оно также может выполнять интеграцию с облаком AWS.

Пол Ма
источник
Я сомневаюсь, что SaaS-предложение будет без DFSG.
womble