Narzędzia do zarządzania iptables w środowisku na dużą skalę

15

Ś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.
womble
źródło
Ugryzę - co oznaczają słowa „piłki” i „super piłki” w twoim poście? Zgaduję, że nie mówisz o sprężystych gumowych kulkach, ale nie mogę wywnioskować, czy kontekst oznacza „dobry” czy „zły”.
Evan Anderson,
piłki == złe. Super piłki == dodatkowe złe.
womble
Przy tak wielu regułach upewnij się, że masz regułę AKCEPTUJ u góry, która akceptuje ustanowione i powiązane połączenia. Komputery PC nie mają TCAM i że wiele reguł wpływa na wydajność. Dużo.
Thomas
@ thomas: Tak, w zestawie reguł jest pewna ilość optymalizacji. Posiadanie tej „wiedzy” na temat optymalizacji w każdym wybranym narzędziu zapory byłoby oczywiście dodatkowym atutem.
womble

Odpowiedzi:

4

Jeśli być może chcesz przejść od podejścia opartego na regułach do sposobu „opisywania wymaganego stanu końcowego”, zajrzyj do fwbuildera.

Plusy:

  • obsługiwane wiele zapór ogniowych - Twoje podstawowe + reguły oparte na hoście - z 1 zestawu obiektów
  • SQL-esque „powiedz mi, czego chcesz” zamiast „powiedz mi, jak to zrobić” (NB: Nie mówię, że jest tam jakiś SQL! Po prostu to opisowe Vs proceduralne :-)
  • Jest to GUI, trochę jak interfejsy dostawców sprzętu komercyjnego, więc możliwe jest przesunięcie niektórych zadań w dół stosu pracowników / umiejętności
  • obsługuje większość „dziwnych” zastosowań, które próbowałem
  • potrafi generować reguły dla różnych implementacji F / W - BSD / cicso / iptables / itp
  • oddziela front-end od kompilatora reguł, co sprawia, że ​​mam nadzieję, że szybkość jest przedmiotem zainteresowania autorów. Uwaga: Nie mam nic w pobliżu skali, do której nawiązujesz
  • Format pliku nie jest binarny
  • robi IPv6
  • Tworzy konfigurację style iptables-save do ładowania atomowego i szybkiego

Cons:

  • To GUI
  • Przeniesienie istniejącego zestawu reguł prawdopodobnie nie będzie bezbolesne
  • Podczas gdy GPL i Debian, klienci Windows + OSX mają 30-dniową ewaluację, ponieważ nikt nie skompilował jeszcze wersji darmowej dla tych systemów operacyjnych; stąd komercyjne ramię deweloperów ma monopol na te binaria
  • Format pliku jest technicznie XML; Uwaga: nie zniechęcaj się: spójrz na narzędzia, które one udostępniają (możesz użyć binarnego GUI do manipulowania nim za pomocą na przykład CLI), narzędzia XML CLI, które już istnieją, i pamiętaj o tym - na twoim skala - niektóre pozory metadanych + struktury nie są / złe / rzeczy! Różni się całkiem nieźle między edycjami, IIRC.

Link: http://www.fwbuilder.org

Jonathan Matthews
źródło
Hm ... spojrzę. Istnienie GUI (nie wspominając o XML) powoduje, że drżę dość gwałtownie, ale pojawia się kilka interesujących pomysłów (pojedynczy zestaw reguł dla całej infrastruktury). System OS X nie będzie problemem.
womble
Zgadzam się, GUI sprawiło, że początkowo korzystałem z WTF, ale byłem zadowolony z tego, co zobaczyłem od strony CLI. Jak dynamiczna jest twoja konfiguracja? Czy byłoby to 10 zmian dziennie czy 10 zmian rocznie? Może to być przydatny czynnik do wyszczególnienia tutaj. Przyjemną funkcją formatu pliku XML może być to, że za pomocą narzędzi obsługujących XML można mieć całą konfigurację w jednym pliku, używając obiektów o pojedynczej definicji, ale tworzyć dziennik zmian specyficzny dla węzła do dokumentowania konfiguracji i zestawów zmian poszczególnych serwerów . Tylko myśl ...
Jonathan Matthews,
@Jathanathan: Masz rację, dynamika zestawu reguł jest ważna. Zredagowałem pytanie; podstawowy zestaw reguł to kilka razy dziennie przez większość dni roboczych.
womble
3

Napisz swoje własne. poważnie - w tej skali jest to uzasadnione.

używaj ipset i / lub wielu iptable tabel / podtabeli. w miarę możliwości przeładuj tylko niektóre podtabele / niektóre zestawy ipset - przyspieszy to rekonfigurację.

prawdopodobnie już to robisz, ale nadal warto o tym wspomnieć - użyj zagnieżdżonych tabel, aby zmniejszyć obciążenie routera i średnią liczbę wyszukiwań potrzebnych do pakietów ustanawiających nowe połączenia. oczywiście-DO PRZODU -m stan - stan USTANOWIONY, POWIĄZANY jest twoją najwyższą regułą.

pQd
źródło
„Napisz własne” nie jest wykluczone, ale przede wszystkim sprawiło, że przefiltrowaliśmy - napisał go były pracownik. Wolelibyśmy nie tworzyć jeszcze innego narzędzia do zarządzania zaporą, jeśli to w ogóle możliwe.
womble
IPSET jest błyskawiczny jak na duże zestawy reguł. „przechowuj wiele adresów IP lub numerów portów i dopasowuj je do kolekcji według iptables za jednym zamachem; dynamicznie aktualizuj reguły iptables o adresy IP lub porty bez obniżania wydajności; wyrażaj złożone adresy IP i zestawy reguł oparte na portach za pomocą jednej reguły iptables i korzystaj z prędkości zestawów adresów IP „Używam go z firewallem. Nie mam pojęcia, jak zachowałaby się ściana przybrzeżna na twojej skali.
artifex
2

święte kule (utrzymywanie tematu przy życiu!) człowiek ... 12.000 podstawowych zasad?

Zakładam, że rozważałeś wszystkie proste opcje, takie jak po prostu upuszczenie zestawów do CVS? Lalek czy CFengine?

Szczerze mówiąc, z szerokiego przeglądu, który podałeś, zdecydowanie zalecam ponowną ocenę projektu sieci. Prawdopodobnie jestem trochę zbyt uproszczony, ale po prostu nie mogę pojąć projektu, który wymagałby 12k reguł iptables. To naprawdę brzmi jak coś, co skorzystałoby bardziej na rozwiązaniu typu SLB niż lepszy sposób zarządzania regułami zapory.

Na marginesie, w jaki sposób dodać komentarz do dodania „odpowiedzi”?

Greeblesnort
źródło
Aby móc komentować, potrzebujesz minimalnej reputacji. Kiedy to zrobisz, pojawi się link.
jay_dubya,
Prawdopodobnie istnieje pewna ilość nadmiarowości w naszych regułach iptables, ale jest to w dużej mierze funkcja filtergen, która może nie być tak wydajna, jak mogłaby. Mamy jednak / 19 przestrzeni IP i sieci VLAN dla poszczególnych klientów oraz dość restrykcyjną „domyślną politykę” (wymagającą wyjątków dla otwartych portów według adresów IP zgodnie z wymaganiami klientów). Z pewnością nie będziemy w stanie pozbyć się więcej niż kilku z tych zasad. No i tak, używamy już Puppet i nie zamierzamy pisać ręcznie zestawów reguł w naszej skali działania.
womble
cóż, z pewnością utrzymujesz większą przestrzeń IP niż ja, ale nadal trudno mi jakoś uzasadnić tak wiele reguł. Czy zastanawiałeś się nad rozbiciem ich na strukturę drzewiastą, w której możesz zastosować konfiguracje reguł upadku w punktach pośrednich? tzn. wszystkie serwery WWW tylko w podsieci X, wszystkie serwery WWW + smtp w podsieci Y? W rzeczywistości nie musiałbyś ich podsieć, logicznie pogrupuj je za warstwową zaporą ogniową ... przepraszam, jeśli w tej chwili dodam tylko hałas ... Może po prostu nie jestem wystarczająco wyrafinowany. Lubię moje reguły zapory ogniowej krótkie i brutalne =)
Greeblesnort,
Tak naprawdę nie jesteśmy w stanie „rozdzielić” takich rzeczy; w dużej mierze jesteśmy dedykowanym dostawcą hostingu serwerów, więc to, co nasi klienci decydują się robić z ich maszynami z dnia na dzień, może się zmienić, wymagając dużo więcej tańca niż gdybyśmy tylko robili dedykowaną infrastrukturę dla usługi wewnętrznej.
womble
0

12000 zasad? jesteś szalony? Czy nie masz problemów z wydajnością przy takiej ilości filtrowania? Nie rozumiem, dlaczego potrzebujesz 12 000 reguł? Jak sprawdzisz, czy zestaw reguł faktycznie egzekwuje zasady?

Jakie są zasady?

Jak testujesz swoją polisę?

12 000 reguł prawdopodobnie łamie każdą zasadę bezpieczeństwa w książce.

The Unix Janitor
źródło
-2

możesz także wypróbować rozwiązanie SAAS do zarządzania iptables -> https://www.efw.io/Forum . Może także integrować się z chmurą AWS.

Paul Ma
źródło
Wątpię, aby oferta SaaS była wolna od DFSG.
womble