W niniejszym rozdziale zostaną opisane dodatkowe moduły i rozwiązania zwiększające funkcjonalność LMS'a znajdujące się w katalogu contrib. Część z nich należy dostosować do własnych potrzeb, a niektóre integrują się z interfejsem LMS-UI.
====8.1. Moje konto====
===8.1.1. Wstęp===
W katalogu contrib/customer znajduje się przykład rozwiązania, dzięki któremu każdy klient twojej sieci może sprawdzić własny bilans finansowy.
Skrypt sprawdza spod jakiego adresu jest żądanie i wyświetla bilans i informacje o kliencie, który jest właścicielem komputera o tym adresie.
Dla osób korzystających z proxy, nie korzystających z sieci tylko w domu, albo którzy nie chcą aby dzieci/małżonkowie/pracownicy mieli wgląd w dane finansowe dotyczące ich dostępu do sieci/innych usług przeznaczone jest "Moje konto 2".
===8.1.2. Instalacja===
Pliki należy skopiować w dowolne miejsce i wystawić pod adresem dostępnym dla każdego użytkownika, a następnie ustawić poprawną ścieżkę do lms.ini w pliku index.php.
====8.2. Moje konto 2====
===8.2.1. Wstęp===
W katalogu contrib/customer_otherip znajduje się odpowiednik contrib/customer, który nie rozpoznaje klienta po adresie IP, ale wymaga logowania. Uwierzytelnianie odbywa się na podstawie numeru PIN oraz telefonu klienta, ale możliwe jest także wykorzystanie ID lub numeru umowy (dodatkowe pole w bazie) - patrz pliki balanceview.php i authentication.inc).
Skrypt wyświetla bilans i informacje o kliencie, a także w połączeniu z contrib/formularz_przelewu_wplaty umożliwia klientowi wydrukowanie formularza przelewu/wpłaty na kwotę zaległości. Panel pozwala również na pobieranie i wydruk faktur przez klienta.
===8.2.2. Instalacja===
Instalacja sprowadza się do ustawienia opcji sys_dir w sekcji [directories] pliku lms.ini oraz zlinkowania katalogu img z lms'owymi ikonkami.
====8.3. Panel SQL====
===8.3.1. Wstęp===
W katalogu contrib/sqlpanel znajdziesz moduł, dzięki któremu będziesz miał możliwość bezpośredniego dostępu do bazy danych poprzez zadawanie zapytań SQL. Wyniki wyświetlane są w formie tabeli. Ponadto podawany jest czas wykonania zapytania. Możliwe jest także drukowanie wyników zapytania.
Ilość wyświetlanych wierszy na jednej stronie ograniczana jest domyślnie do 50. Można to zmienić przy pomocy zmiennej 'sqlpanel_pagelimit' w sekcji [phpui] konfiguracji.
===8.3.2. Instalacja===
Instalacja polega na skopiowaniu plików w odpowiednie miejsca w drzewie katalogów lms'a. Plik sql.php, sqllang.php skopiuj do katalogu modules, a pliki sql.html, sqlprint.html do katalogu templates. Po tej czynności dostęp do modułu będzie możliwy przez wywołanie http://lms.adres.pl/?m=sql.
====8.4. Ostrzeżenia + squid====
===8.4.1. Wstęp===
Ten mały zestaw narzędzi pozwala za pomocą squida w dosyć elegancki sposób wyświetlać wiadomości administracyjne oraz w razie potrzeby blokować dostęp do w3cache. Oczywiście aby to działało w 100%, wszyscy klienci muszą korzystać ze squida.
Kluczowym elementem jest redirector. Odpowiada on za to, aby w momencie ustawienia dla danego komputera flagi warn, przekierowywał wszystkie żądania wysyłane do serwera proxy na nasz, ustalony wcześniej adres. Przekierowaniu nie ulegają adresy zawierające adres naszej winietki, tak aby umożliwić załadowanie się obrazków. Jeśli komputer ma ustawioną flagę warn, to po przekierowaniu użytkownik ma możliwość oznaczenia wiadomości jako przeczytanej, po czym skrypt automatycznie kieruje przeglądarkę na pierwotnie wywoływany URL. W przypadku oznaczeniu danego komputera jako wyłączony, użytkownik będzie zawsze przekierowywany na adres winietki, bez możliwości oznaczenia wiadomości jako przeczytanej. Więcej informacji znajdziesz w pliku README.
===8.4.2. Instalacja===
Zaczynamy od konfiguracji squida (squid.conf):
# wersja 2.5
redirector_bypass on
redirect_program /sciezka/do/lms-squid
# wersja 2.6
url_rewrite_program /sciezka/do/lms-squid
które informują squida aby dla każdego adresu używał naszego redirectora. Następnie należy skonfigurować redirectora. Otwieramy w naszym ulubionym edytorze plik lms-squid i praktycznie wszystko co można w nim ustawić to:
my $configfile = '/etc/lms/lms.ini';
Czyli położenie pliku konfiguracyjnego. Reszta konfiguracji ustawiana jest w lms.ini, gdzie dopisujemy sekcję [redirector] i definiujemy adres winietki:
[redirector]
redirect = http://net-komp.net.pl
Do katalogu gdzie ma być widoczna winietka kopiujemy pliki index.php, message.html i zawartość katalogu img.
====8.5. Antywirus====
===8.5.1. Wstęp===
Większość z nas miała problemy z zawirusowanymi komputerami. Różni ludzie mają różne podejście do problemu. Skrypt lms-antyvir wykrywa wirusy zagrażające stabilności sieci. Jest oparty na programie tcpdump, przy pomocy którego możemy spróbować wykryć wirusy/trojany same się rozprzestrzeniające jak Mydoom itp. Cechą wspólną prawie wszystkich tego typu programów jest skanowanie sieci na portach 135 i 445 oraz dodatkowych w zależności od odmiany wirusa. Oczywiście MS Windows też korzysta z tych portów, ale nie w takim stopniu. Po wykryciu nadmiernego ruchu wyświetlana jest informacja na standardowe wyjście lub włączane jest ostrzeżenie ze zdefiniowanym komunikatem.
==8.5.2. Konfiguracja==
Konfigurację lms-antyvir dokonuje się w sekcji [antyvir] pliku lms.ini, a masz do dyspozycji następujące opcje:
* logfile
Lokalizacja tymczasowych pliku(ów) z logami tcpdumpa. Domyślnie: /tmp/antyvir
Przykład: logfile = /var/log/antyvir
* interfaces
Lista oddzielonych spacją nazw interfejsów, z których tcpdump ma zbierać dane. Domyślnie: eth0
Przykład: interfaces = eth0 eth1
* ports
Lista oddzielonych spacją portów, z których tcpdump ma zbierać dane. Dla każdego tworzony jest osobny proces, więc nie przesadzać. Domyślnie: 135 445
Przykład: ports = 445
* packets
Określa liczbę pakietów po odebraniu której tcpdump kończy pracę. Domyślnie: 1000
Przykład: packets = 500
* threshold
Określa liczbę pakietów, po przekroczeniu której program uznaje ruch w sieci za podejrzany. Domyślnie: 50
Przykład: threshold = 100
* field
Ma to związek z tcpdumpem i jego różnymi wersjami. W starszych wersjach powinno być tu 6. Jak to sprawdzić? tcpdump -i eth1 -enp -c 1 otrzymujemy 00:03:38.613761 0:40:f4:b3:1c:67 0:30:84:b3:bb:8d 0800 1414: 10.100.0.52.4314 > 172.181.172.35.4662: .... interesuje nas pole w tym wypadku 6 czyli adres IP nadawcy. Domyślnie: 11
Przykład: field = 6
* message
Treść ostrzeżenia, w którym można zastosować zmienną %DATE dla bieżącej daty i godziny. Jeśli pusta, ostrzeżenie nie zostanie włączone. Domyślnie: pusta
Przykład: message = Wykryto wirusa w dniu %DATE