Środowisko, w którym działam, to hosting na dużą skalę (kilkaset zarządzanych serwerów, prawie ogólnodostępne adresowanie itp. - więc wszystko, co mówi o zarządzaniu linkami ADSL, prawdopodobnie nie zadziała dobrze), a my „ szukam czegoś, co będzie wygodne w zarządzaniu zarówno podstawowym zestawem reguł (około 12 000 wpisów w iptables według bieżącej liczby), jak i zestawem reguł opartych na hoście, którymi zarządzamy dla klientów. Nasz podstawowy zestaw reguł routera zmienia się kilka razy dziennie, a zestawy reguł oparte na hoście zmieniają się może 50 razy w miesiącu (na wszystkich serwerach, więc może jedna zmiana na pięć serwerów miesięcznie).
Obecnie używamy filtergen (który jest ogólnie kulkami i super-kulkami w naszej skali działania), a w przeszłości korzystałem z zapory przy innych pracach (które byłyby lepsze niż filtergen, ale myślę, że trzeba być coś lepszego niż to).
„Musts”, które wymyśliliśmy dla każdego systemu zastępczego to:
- Musisz wygenerować zestaw reguł dość szybko (uruchomienie filtru na naszym zestawie reguł zajmuje 15-20 minut; to jest po prostu szalone) - jest to związane z następnym punktem:
- Musi wygenerować plik stylu iptables-restore i załadować go w jednym trafieniu, a nie wywoływać iptables dla każdej wstawki reguły
- Nie wolno zdejmować zapory na dłuższy czas, gdy zestaw reguł się ładuje (ponownie, jest to konsekwencja powyższego punktu)
- Musi obsługiwać IPv6 (nie wdrażamy niczego nowego, co nie jest kompatybilne z IPv6)
- Musi być wolny od DFSG
- Musi korzystać z plików konfiguracyjnych w postaci zwykłego tekstu (ponieważ wszystko uruchamiamy za pomocą kontroli wersji i za pomocą standardowych narzędzi do manipulacji tekstem w Uniksie są nasze SOP)
- Musi obsługiwać zarówno RedHata, jak i Debiana (preferowane w pakiecie, ale przynajmniej nie może być jawnie wrogi w stosunku do standardów obu dystrybucji)
- Musi obsługiwać możliwość uruchamiania dowolnych poleceń iptables w celu obsługi funkcji, które nie są częścią „języka ojczystego” systemu
Wszystko, co nie spełnia wszystkich tych kryteriów, nie będzie brane pod uwagę. Oto nasze „przyjemne do zrobienia”:
- Powinien obsługiwać „fragmenty” plików konfiguracyjnych (to znaczy, możesz upuścić stos plików w katalogu i powiedzieć zaporze ogniowej: „uwzględnij wszystko w tym katalogu w zestawie reguł”; intensywnie korzystamy z zarządzania konfiguracją i chcielibyśmy użyć tej funkcji do automatycznie dostarczaj reguły dotyczące usług)
- Powinny obsługiwać surowe tabele
- Powinno umożliwić określenie konkretnego ICMP zarówno w pakietach przychodzących, jak i regułach ODRZUCANIA
- Powinien z wdziękiem wspierać nazwy hostów, które kończą się na więcej niż jednym adresie IP (kilka razy przyłapaliśmy go na filtrach; to raczej królewski ból w tyłku)
- Im więcej opcjonalnych / dziwnych funkcji iptables obsługiwanych przez narzędzie (natywnie lub za pośrednictwem istniejących lub łatwo zapisywalnych wtyczek), tym lepiej. Od czasu do czasu używamy dziwnych funkcji iptables, a im więcej tych, które „po prostu działają”, tym lepiej dla wszystkich.