Po co mi FortiGate?

W związku z moimi problemami z FortiGate zacząłem się zastanawiać po co go w ogóle używam i czy na pewno nie da się go zastąpić innym urządzeniem. I tak:

  • router / (S|D)NAT – można zastąpić czymkolwiek,
  • filtrowanie stron WWW – kiedyś przyglądałem się SquidGuard, myślę, że można wrócić do tematu i przyjrzeć się temu,
  • IDS  – Snort + SnortSam,
  • uwierzytelnianie użytkowników w Active Directory – nie znalazłem niczego takiego!

I z racji ostatniego kryterium, postanowiłem zaprojektować sobie coś takiego samemu. Ze względu na uwielbienie pf wybrałem OpenBSD (i żeby noszenie koszulki miało uzasadnienie), który służył mi przed FortiGate. Wzorowałem się trochę na dokumentacji Fortinet (prezentacja MS Power Point), bo model, który oferują nie jest zły. Cały proces składa się z następujących kroków:

  1. Użytkownik uruchamia swój komputer i loguje się do domeny.
  2. Agent zdobywa informację z serwera o nazwie użytkownika (i przynależności do grup) i nazwie maszyny, z której nastąpiło logowanie (FQDN).
  3. Agent sprawdza IP maszyny i odpowiedź klienta (Fortinet proponuje testowanie portu TCP:139 lub TCP:445).
  4. Dane o użytkowniku przesyłane są do zapory – FortiGate dostaje nazwę użytkownika i grupy oraz adres IP. Wydaje mi się, że wystarczający jest sam adres sieciowy, natomiast pozostałe dane jedynie do prezentacji.
  5. Zapora buduje sobie odpowiednie reguły.
  6. Ruch od klienta jest przepuszczany.

Oczywiście świadomie rezygnuję z ‘wyklikanego’ interfejsu, bo z autopsji wiem, że takich reguł nie ma wiele i nie zmienia się ich praktycznie w ogóle. Idea tego rozwiązania od początku polegała na tym, że ktoś robi zaporę raz, a zarządzanie dostępem zrzuca się na osobę administrującą kontrolerem domeny (lub mającą oddelegowane prawa).

Pomocniczy schemat wygląda tak:

fw + AD

Elementami potrzebnymi będą:

  • agent wyciągający dane z kontrolera domeny i przesyłający je dalej,
  • demon działający na OpenBSD i modyfikujący odpowiednio reguły.

Zabieram się za podsłuchiwanie ruchu pomiędzy FortiGate, a AD, żeby przyjrzeć się jak wygląda komunikacja pomiędzy tymi elementami. Może to pomoże przy własnym rozwiązaniu, ew. uda się skorzystać z FSAE i stworzyć rozwiązanie przejściowe.

Co do programowania, to otwarcie szukam ludzi, którzy mogli by zająć się dowolnym elementem tego rozwiązania. Pomocą przy pisaniu demona pod OpenBSD mogą być źródła np. relayd (komunikacja z pf). Jeśli chodzi o Windows, to szukam sposobu na uzyskiwanie danych z AD.

Każdy palec potrafiący przycisnąć coś na klawiaturze mile widziany!

Tagi: , ,

2 odpowiedzi do “Po co mi FortiGate?”

  1. kahir pisze:

    Nie wiem, czy dobrze zrozumiałem problem, ale na myśl przychodzą mi dwa słowa: OpenLDAP oraz authpf.

  2. guzik pisze:

    OK, ale ma to działać poza użytkownikami czyli logują się _tylko_ do AD i mają dostęp do Internetu.
    authpf spełniał by swoją rolę, gdyby to kontroler domeny (bo ma informację o użytkownikach uwierzytelnionych) zestawiał sesję SSH (wysyłając adres IP użytkownika).
    Oczywiście do AD można dostać się po LDAP, ale odpada okresowe odpytywanie np. z cron, bo minuta to zbyt duża zwłoka (takie założenie).
    To musi być inicjowane przez kontroler domeny, ew. przez komputer użytkownika (np. plink http://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter7.html#plink), ale ma działać na tyle stabilnie, żeby podczas normalnej pracy użytkownik nie musiał niczego restartować.

Dodaj odpowiedź