Назад |
Перейти на главную страницу
инструменты управления iptables для крупномасштабной среды
Среда, в которой я работаю, представляет собой крупномасштабную операцию веб-хостинга (несколько сотен серверов под управлением, почти вся общедоступная адресация и т. Д. - поэтому все, что касается управления ссылками ADSL, вряд ли будет работать хорошо), и мы ' Мы ищем что-то, что было бы удобно для управления как основным набором правил (около 12 000 записей в iptables по текущему подсчету), так и наборами правил для хостов, которыми мы управляем для клиентов. Наш базовый набор правил маршрутизатора меняется несколько раз в день, а наборы правил для хоста будут меняться примерно 50 раз в месяц (на всех серверах, так что, возможно, одно изменение на пять серверов в месяц).
В настоящее время мы используем filtergen (который представляет собой шары в целом и супер-шары в нашем масштабе операций), и я использовал shorewall в прошлом на других работах (что было бы предпочтительнее, чем filtergen, но я полагаю, что это должно быть чем-то лучше, чем это).
Что мы должны придумать для любой системы замены:
- Должен сгенерировать набор правил довольно быстро (запуск filtergen в нашем наборе правил занимает 15-20 минут; это просто безумие) - это связано со следующим моментом:
- Необходимо создать файл стиля iptables-restore и загрузить его за один удар, а не вызывать iptables для каждой вставки правила.
- Не следует отключать брандмауэр на длительный период времени, пока набор правил перезагружается (опять же, это следствие вышеупомянутого пункта)
- Должен поддерживать IPv6 (мы не развертываем ничего нового, несовместимого с IPv6)
- Должен быть без DFSG
- Необходимо использовать файлы конфигурации в виде простого текста (поскольку мы все запускаем через систему контроля версий, и использование стандартных инструментов для работы с текстом Unix является нашей СОП)
- Должен поддерживать как RedHat, так и Debian (предпочтительно в пакете, но, по крайней мере, не должен быть явно враждебным по отношению к стандартам любого из дистрибутивов)
- Должен поддерживать возможность запуска произвольных команд iptables для поддержки функций, которые не являются частью «родного языка» системы.
Все, что не соответствует всем этим критериям, рассматриваться не будет. Вот наши «хорошие вещи»:
- Должен поддерживать "фрагменты" конфигурационного файла (то есть вы можете поместить кучу файлов в каталог и сказать брандмауэру "включить все в этот каталог в набор правил"; мы широко используем управление конфигурацией и хотели бы использовать эту функцию для предоставлять правила для конкретных услуг автоматически)
- Должен поддерживать необработанные таблицы
- Должен позволить вам указывать конкретный ICMP как во входящих пакетах, так и в правилах REJECT.
- Должен изящно поддерживать имена хостов, которые разрешаются более чем на один IP-адрес (мы были пойманы этим несколько раз с помощью filtergen; это довольно королевская боль в заднице)
- Чем больше дополнительных / странных функций iptables, которые поддерживает инструмент (либо изначально, либо через существующие или легко записываемые плагины), тем лучше. Мы время от времени используем странные возможности iptables, и чем больше из них «просто работает», тем лучше для всех.
Если вы, возможно, хотите перейти от подхода, основанного на правилах, к способу «описать требуемое конечное состояние», взгляните на fwbuilder.
Плюсы:
- поддерживается несколько брандмауэров - ваше ядро + правила на основе хоста - от 1 набора объектов
- SQL-подобный подход «скажите мне, что вы хотите», а не «скажите мне, как это сделать» (NB, я не говорю, что там есть какой-то SQL! Просто он описательный Vs процедурный :-)
- Это графический интерфейс, что-то вроде интерфейсов поставщиков коммерческого оборудования и оборудования, поэтому некоторые задачи можно перенести вниз по стеку сотрудников / навыков.
- поддерживает наиболее "странное" использование, которое я пробовал
- может генерировать правила для различных реализаций f / w - BSD / cicso / iptables / etc
- отделяет интерфейс от компилятора правил, что дает мне надежду на то, что скорость важна для авторов. NB У меня нет ничего близкого к масштабу, о котором вы говорите
- Формат файла не двоичный
- делает IPv6
- Создает конфигурацию стиля iptables-save для атомарной и быстрой загрузки
Минусы:
- Это графический интерфейс
- Перемещение существующего набора правил вряд ли будет безболезненным
- В то время как GPL и Debian, клиенты Windows + OSX имеют 30-дневную пробную версию, так как никто еще не скомпилировал бесплатную версию для этих ОС; следовательно, коммерческое подразделение разработчиков имеет монополию на эти двоичные файлы
- Формат файла технически XML; NB, пусть это вас не пугает: взгляните на инструменты, которые они предоставляют (например, вы можете использовать двоичный файл gui для управления им через CLI), инструменты CLI XML, которые уже существуют, и помните, что - в вашем масштаб - некое подобие метаданных + структура - это неплохо! Он довольно хорошо отличается от правок, IIRC.
Ссылка на сайт : http://www.fwbuilder.org
напиши свой. серьезно - в таком масштабе это разумно.
использовать ipset и / или множество таблиц / вложенных таблиц iptable. по возможности перезагружайте только некоторые подтаблицы / некоторые наборы ipset - это ускорит реконфигурацию.
возможно, вы уже это делаете, но все же стоит упомянуть - используйте вложенные таблицы, чтобы уменьшить нагрузку на маршрутизатор и среднее количество запросов, необходимых для пакетов, устанавливающих новые соединения. очевидно -A FORWARD -m state --state ESTABLISHED, RELATED - ваше главное правило.
святые шары (поддерживая тему!) человек ... 12 000 основных правил?
Я предполагаю, что вы рассмотрели все простые варианты, например, просто сбросить наборы в CVS? Puppet или CFengine?
Честно говоря, исходя из представленного вами широкого обзора, я настоятельно рекомендую пересмотреть структуру вашей сети. Я, наверное, слишком упрощен, но я просто не могу понять дизайн, который требовал бы 12k правил iptables. Это действительно похоже на то, что решение типа SLB принесет больше пользы, чем лучший способ управления правилами брандмауэра.
Кстати, как добавить комментарий вместо добавления «ответа»?
12000 правил? Вы ненормальный? У вас не возникают проблемы с производительностью при таком объеме фильтрации? Не понимаю, зачем вам 12000 правил? Как вы проверяете, что установленные вами правила действительно применяют политику?
Какая политика?
Как вы проверяете свою политику?
12000 правил, возможно, нарушают все правила безопасности в книге.
вы также можете попробовать решение SAAS для управления iptables -> https://www.efw.io/Forum он также может выполнять интеграцию с облаком AWS.