Instrukcja zestawienia połączeń sieciowych celem wykorzystania programów Lefthand.

LHMK to młody choć dobrze zapowiadający się produkt do obsługi MSP autorstwa warszawskiej firmy Lefthand.


Jego głównym atutem jest oparcie engine'u bazy danych o opensource'owy projekt Firebird oraz wieloplatformowość (całość spokojnie można określić mianem "platform independent"). Z punktu widzenia operatora w zakresie obsługi wersja linuksowa i windowsowa nie różnią się niczym. Także serwer bazy danych może być hostowany na dowolnej maszynie *nix'owej bądź windowsowej. Nie sprawia problemu praca wg. dowolnego schematu: ... czyli z technicznego punktu widzenia - bajka (choć doceniana jedynie przez administratorów i wdrożeniowców).
Ale nie do końca niestety.
Firebird jak każda poważna baza proponuje usermanagement z modelem ról. Użytkownik SYSDBA (jak sa w MSSQL'u) ma pełne uprawnienia i inicjalnie domyślne hasło które zna każdy kto bazę instalował i które zmienia każdy kto chce z bazy korzystać u siebie.
Parę: user=SYSDBA + pass=masterkey program Lefthand niestety ma hardkodowaną w bibliotekach i zmiana hasła masterkey powoduje brak dostępu do baz lh*.gdb.
Dodatkowo jeśli nie możemy zmienić hasła dla konta administracyjnego bazy - nie możemy jej także wystawić w sieci (tzn. port 3050 musi być filtrowany). Znakomicie uniemożliwia to zastosowanie projektu w modelu wielooddziałowym (a nawet w LAN'ie jeśli mamy użytkownika potrafiącego obsłużyć sniffer, wywołać isql i zapodać komendę drop).
Do czasu gdy w programie Lefthand użytkownik i hasło będzie parametryzowalne (w stylu user=lefthand + pass=nasze_haslo) podpierać się trzeba rozwiązaniami okrężnymi:
  1. Startować bazę z Firebird'em na hoście siedzącym za bramką prowadzącą serwer ssh
  2. Dopuszczać połączenia na 3050 jedynie z bramki
  3. Forwardować klienckie 3050 do hosta z Firebird'em przy użyciu ssh
Step by step:
  1. Host z Firebirdem: iptables -A INPUT -i adres_bramki -p tcp --dport 3050 -j ACCEPT + iptables -A INPUT -p tcp --dport 3050 -j DROP
  2. Stacja kliencka: ssh -C -L 3050:adres_firebirda:3050 adres_bramki + w ustawieniach dostępu do bazy w LHMK: localhost:lh.gdb

Punkt 2 w środowisku Windows robi się trywialnie przy pomocy PUTTY'ego (dodatkowo można do tej sesji wyrzucić "Pani Ziucie" skrót na pulpit z podpisem w stylu "Zanim uruchomisz Lefthand".

O czym trzeba pamiętać ?

Po zastosowaniu się do tej instrukcji układ hula bez problemu. Jeśli tak nie jest - wróć do jej początku.