Archiwum z Maj 2009

FortiGate i równoważenie obciążenia

czwartek, 28 Maj 2009

Równoważenie obciążenia (LB + HA) w FortiGate sprawdzone! Działa. Na razie w środowisku mocno testowym, produkcyjnie na razie nie mam potrzeby używania. Zanim opiszę jak używać, odnośniki do alternatywnych rozwiązań:

Produkcyjnie wykorzystywałem relayd, LVS i mod_jk. Heartbeat testowałem bardzo krótko.
Konfiguracja w FortiGate jest dość prosta (pomijam politykę zapory):

  1. Konfigurujemy Virtual Server
    W CLI konfigurujemy podobnie jak Virtual IP. Jako typ VIP ustawiamy server-load-balance. Rodzaj LB (server-type) możemy ustawić na: HTTP, TCP lub UDP oraz IP. Metod rozkładu obciążenia mamy do wyboru sześć: Static, Round Robin, Weighted, First Alive, Least RTT i Least Session. Do konfiguracji sprawdzania obecności (Health Check) trzeba wrócić później.
  2. Definiujemy rzeczywiste serwery
    Oprócz nazwy i adresu IP podajemy port usługi, a także wagę i maksymalną liczbę połączeń. Serwery rzeczywiste przypisujemy serwera wirtualnego.
  3. Definiujemy sposób sprawdzania obecności (przypisać go należy do wirtualnego serwera)
    Określamy typ (HTTP, TCP lub PING) i interwał oraz liczbę powtórzeń. W przypadku typu TCP podajemy port usługi, dla HTTP – URL i cią jaki ma być dopasowany do zawartości.
  4. …no i możemy cieszyć się gotowym rozwiązaniem.

lb1

Przykładowa konfiguracja może wyglądać tak:

config firewall ldb-monitor
edit "DEV-HCH"
set type tcp
set port 80
next
end
config firewall vip
edit "DEV"
set type server-load-balance
set extip 192.168.1.230
set extintf "wan1"
set server-type tcp
set monitor "DEV-HCH"
set ldb-method first-alive
set extport 80
config realservers
edit 1
set ip 10.1.0.1
set port 80
next
edit 2
set ip 10.1.0.2
set port 80
next
edit 3
set ip 10.1.0.3
set port 80
next
end
next
end

Jedyny minus jaki dotychczas dostrzegłem, to brak jakiejkolwiek informacji w logach (pamięć, FortiAnalyzer) o tym, że dany serwer nie działa lub zmienił swój stan.

Poniżej wykres z JMeter – duży skok na początku to wyłączenie pierwszego serwera; metoda rozkładania obciążenia: First Alive i 10 sekund pomiędzy kolejnymi testami.
spline-visualizer
Innych testów nie chciało mi się robić. Środowisko testowe jeszcze trochę będzie stało (planuję m. in. testy MySQL w klastrze), więc jak ktoś chce wyniki testów LB przy konkretnych ustawieniach, proszę o kontakt.

spam via Skype

piątek, 22 Maj 2009

Tego jeszcze nie widziałem u siebie (choć już dawno nie korzystam z tego sposobu komunikacji):

========================================================================
=========== WIADOMOŚĆ AUTOMATYCZNA, NIE WYMAGA ODPOWIEDZI ==============
========================================================================

Witaj siedem4!

Użytkownik jordanmoore702052 próbuje skontaktować się z tobą przez Skype.

Oto wiadomość:
"heya   have a min to rate my cam? http://allyscampage. com/siedem4  cya soon!"

Aby dodać tę osobę do listy kontaktów, odwiedź:
http://skype.com/go/contactrequest?username=jordanmoore702052&cm_mmc=T-_-E-_-A-_-C

Miłej rozmowy!
Zespół Skype

Po co mi FortiGate?

środa, 20 Maj 2009

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!

Xerox Phaser 6180DN jako czujnik temperatury i wilgotności

środa, 13 Maj 2009

Na stronie testowej drukowanej przez Xerox Phaser 6180DN (domyślnie po każdym włączeniu urządzenia) można znaleźć odczyt bieżącej temperatury i wilgotności powietrza – prawdopodobnie korzysta z tego samo urządzenie, bo tonery muszą mieć zapewnione odpowiednie środowisko pracy. Postanowiłem skorzystać z tych odczytów i stworzyć mapę temperaturową naszej firmy – 6 drukarek na 3 poziomach (+ew. inne podobne sprzęty to łącznie 15). Niestety jest to jedyny znany mi sposób poznania tych parametrów. W panelu dostępnym przez HTTP już nie ma tych danych (i paru innych również), OID’y (SNMP) specyficzne dla Xerox’a róimg077wnież nie podają niczego takiego… A myślałem, że będzie taka przednia zabawa. Ktokolwiek widział, ktokolwiek wie, proszony jest o pomoc.

Przy okazji przerabiania tematu drukarek sieciowych przypomniał mi się artykuł z Hakin9 (2/2009) – Hakowanie drukarek sieciowych autorstwa Wojciecha Smola. Nasze drukarki sieciowe idealnie pasowały (niektóre ciągle jeszcze pasują) do tego tekstu (dostęp, zabezpieczenia). Jest jeszcze jedna kwestia, która (chyba) nie została przez niego poruszona – mianowicie historia wydruków dostępna na urządzeniach. Niektóre sprzęty takową oferują, wiec jest możliwe odtworzenie dowolnego wydruku, który zachował się w buforze (zazwyczaj niewielki). A z autopsji wiem, że są ludzie, którzy drukują np. swoją pocztę czy poufne zestawienia, by po przeczytaniu dokument zniszczyć (swoją drogą strasznie to nieekologiczne).

CONFidence 2009 tuż tuż

wtorek, 12 Maj 2009

10:54 <@guzik> mam wolne miejsce na CONFidence
10:54 <@guzik> wejście bez transportu
10:54 <@guzik> i nocleg w HS

Dzyndzel

poniedziałek, 11 Maj 2009

Lekarz powiedział ‘Dzyndzel!’

Infratec PM 8 ujarzmiony!

czwartek, 7 Maj 2009

Wreszcie podłączyłem i zacząłem konfigurować zarządzalne listwy zasilające (zakupione chyba jeszcze w zeszłym roku – vide Monitoring środowiska informatycznego). Skąpa dokumentacja produktów to domena Infratec AG, ale dałem radę z niemiecką ulotką :> Co do produktów, to niby spełniają swoją funkcję, ale czegoś jakby im brak. Jeśli to możliwe, apeluję o nie wykorzystywanie zarządzania przez WWW – strasznie toporne i wysypuje sporo błędów. Przy połączeniu przez telnet jedyny błąd jaki zauważyłem, to:

Can't get configuration. Someone else is editing

W takiej sytuacji należy chwilę poczekać lub po prostu przelogować się – byłem jedyną osobą, która się podłączyła. Irytujące jest również to, że zwykłe odczytanie informacji przez SNMP generuje wpis w logach z poziomem critical.
Poniżej parę uwag odnośnie podłączenia samego PM 8.

  1. PM 8 (nie ta na zdjęciu obok) to nie PM 8 IP (ta na zdjęciu obok), więc samodzielnie listwą nie da się zarządzać przez sieć. Gniazda RJ-45 (Bus In i Bus Out) to tylko wejście i wyjście dla szyny RS-485 (połączenie kaskadowe).
  2. Port Comm służy tylko i wyłącznie do komunikacji z modułem RMS-AD1 (RMS 320) i nie ma co liczyć na wpięcie RS-232.
  3. Listwy takie można łączyć kaskadowo pamiętając oczywiście, że wyjście (Bus Out) pierwszej łączymy z wejściem (Bus In) kolejnej. Niezbędne jest też ustawienie adresów za pomocą przełączników DIP (domyślnie ustawiony na 0, co oznacza pierwszy moduł – PM1) – teoretycznie 64 adresy (6 przełączników), ale zarządzać można tylko 16 urządzeniami.
  4. W przypadku PM 8 zarządzanie zasilane jest z pierwszego gniazda (IN 1). Drugie gniazdo wejściowe 240 V zasila jedynie wyjścia 5 – 8 (OUT 2.1 – OUT 2.4) i nie jest wystarczające do poprawnej pracy. Konieczne też nie jest, jeśli chcemy wykorzystywać jedynie połowę gniazd.

Ostatecznie do RMS-AD1 mam podłączone dwie wspomniane listwy, a także dwa czujniki temperatury oraz jeden temperatury i wilgotności.
Do przetestowania pozostały: czujnik dymu, czujnik ruchu i czujnik otwartych drzwi (wszystkie do wejść cyfrowych, więc nie przewiduję problemów). No i oczywiście test stanu linii zasilających w samym RMS.
Zamówiłem jeszcze czytnik kart (kontrola dostępu), ale Maxbert s. c. nie zrealizowała tego zamówienia (dziś ich strona nie wyświetla się). Może i dobrze, bo chyba do głównego modułu nie da się podłączyć jednocześnie listw i takiego czytnika.