Среда, в которой я работаю, представляет собой крупномасштабную операцию веб-хостинга (несколько сотен серверов под управлением, почти все публичные адресации и т. Д., Поэтому все, что говорит об управлении ссылками 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, и чем больше из них «просто работают», тем лучше для всех.