Sam demon potrafi tylko uruchamiać moduły i to one odwalają całą robotę. Większość modułów jest przeznaczona do określonego zastosowania, jedynie 'hostfile' można używać do różnych konfigów (usług), np. różnych typów firewalli. Parametry konfiguracyjne modułów umieszcza się w sekcjach instancji je wywołujących.
Tabela 6-1. Lista modułów demona lmsd
Nazwa | Opis |
---|---|
system | Wywoływanie poleceń powłoki |
parser | Parser uniwersalnych skryptów T-Script |
dhcp | Konfiguracja serwera dhcpd |
cutoff | Odłączanie klientów z zaległościami w opłatach |
dns | Konfiguracja serwera dns |
ethers | Tworzenie pliku /etc/ethers |
hostfile | Moduł uniwersalny (np. tworzenie reguł iptables) |
notify | Powiadamianie klientów o zaległościach w opłatach pocztą elektroniczną |
ggnotify | Powiadamianie klientów o zaległościach w opłatach przez gadu-gadu |
payments | Naliczanie opłat abonamentowych |
oident | Konfiguracja oident |
tc | Tworzenie reguł TC |
tc-new | Tworzenie reguł TC (powiązania komputerów z taryfami) |
traffic | Statystyki wykorzystania łącza |
pinger | Badanie aktywności klientów |
ewx-pt | Konfiguracja EtherWerX PPPoE Terminatora |
ewx-stm | Konfiguracja EtherWerX Standalone Traffic Managera |
ewx-stm-channels | Konfiguracja EtherWerX Standalone Traffic Managera (ze rozszerzoną obsługą kanałów) |
Jedyne co robi ten moduł to wykonanie zadanego polecenia (listy poleceń) powłoki i/lub komendy SQL. Może się przydać gdy chcesz podczas przeładowania konfiguracji wykonać jakąś komendę lub uruchomić zewnętrzny skrypt, na przykład jeden z tych, które możesz znaleźć w katalogu /bin. W pierwszej kolejności jest wykonywane polecenie SQL.
W związku z powyższym możesz zdefiniować jedynie treść polecenia SQL lub shella. Powłoka powinna sobie także poradzić z listą poleceń oddzielonych średnikami:
sql
Polecenie SQL. Domyślnie: puste.
Przykład: sql = 'DELETE FROM stats WHERE dt < %NOW% - 365*86400'
command
Polecenie powłoki. Domyślnie: puste.
Przykład: command = 'echo -n "tu moduł "; echo "system"'
Moduł nalicza opłaty abonamentowe klientów oraz opłaty stałe. Należy go uruchamiać codziennie. Opłaty naliczane na podstawie przypisanych klientowi taryf zapisywane są do bazy wraz z komentarzem określonym zmienną 'comment'. Po naliczeniu opłat tworzone są faktury. Komentarz do opłaty stałej to zlepek składający się z jej nazwy oraz wierzyciela. Na końcu usuwane są z bazy nieaktualne obciążenia klientów.
Dla tego modułu są dostępne następujące zmienne konfiguracyjne:
comment
Komentarz do operacji. '%period' zostanie zamienione na daty od-do należnego abonamentu, np. '2003/10/10 - 2003/11/09', '%tariff' na nazwę odpowiedniej taryfy/zobowiązania, %month na pełną nazwę bieżącego miesiąca, %year na bieżący rok, a %next_mon na następny miesiąc w formacie RRRR/MM. Domyślnie: 'Subscription: '%tariff' for period: %period'.
Przykład: comment = 'Abonament miesięczny za okres %period'
settlement_comment
Komentarz do operacji wyrównania. '%period' zostanie zamienione na daty od-do okresu wyrównania, np. '2003/10/20 - 2003/11/09', a '%tariff' na nazwę odpowiedniej taryfy. Domyślnie odpowiada opcji comment.
Przykład: settlement_comment = 'Wyrównanie za okres %period'
up_payments
"Naliczanie z góry", czyli czy okres w komentarzu ma być liczony do przodu, czy do tyłu w stosunku do daty naliczenia opłaty. Domyślnie: yes.
Przykład: up_payments = no
expiry_days
Określa liczbę dni od daty wygaśnięcia przypisanych klientowi zobowiązań, po której dane tego zobowiązania zostaną usunięte z bazy. Przy ustawieniu na '0' dane zostaną usunięte natychmiast po dacie, do której obowiązywało zobowiązanie. Domyślnie: 30.
Przykład: expiry_days = 365
deadline
Termin płatności podany w dniach. Domyślnie: 14.
Przykład: deadline = 21
paytype
Rodzaj płatności (1-gotówka, 2-przelew, 3-przelew/gotówka, 4-karta, 5-kompensata, 6-barter, 7-umowa). Domyślnie: 2 (przelew).
Przykład: paytype = 1
numberplan
ID planu numeracyjnego faktur. Domyślnie: 0 (plan domyślny).
Przykład: numberplan = 0
check_invoices
Włącza automatyczne oznaczanie faktur jako rozliczonych dla klientów z bilansem większym równym zero. Domyślnie: wyłączona.
Przykład: check_invoices = 1
networks
Lista nazw sieci, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie sieci).
Przykład: networks = "lan1 lan2"
excluded_networks
Lista nazw sieci, które mają pominięte. Wielkość liter nie ma znaczenia. Domyślnie: pusta (żadna).
Przykład: excluded_networks = "lan3 lan4"
customergroups
Lista nazw grup klientów, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie grupy).
Przykład: customergroups = "grupa1 grupa2"
excluded_customergroups
Lista nazw grup klientów, które mają być pominięte. Wielkość liter nie ma znaczenia. Domyślnie: pusta (żadna).
Przykład: excluded_customergroups = "grupa3 grupa4"
Moduł 'notify' służy do informowania klientów o zaległościach w opłatach za pomocą poczty elektronicznej. Aktualne saldo klienta porównywane jest ze zmienną 'limit', jeśli jest niższe - wiadomość zostaje wysłana. Treść wiadomości pobierana jest z przygotowanego szablonu, w którym można stosować następujące zmienne:
%saldo - aktualne saldo klienta (także %B)
%b - wartość bezwzględna aktualnego salda klienta
%pin - PIN klienta
%name - imię klienta
%lastname - nazwisko/nazwa klienta
%last_10_in_a_table - wyciąg ostatnich 10 operacji na kocie klienta
Poniżej przedstawiono dostępne opcje konfiguracyjne modułu 'notify':
template
Lokalizacja pliku z szablonem wiadomości. Domyślnie: pusty
Przykład: template = modules/notify/sample/mailtemplate
file
Lokalizacja pliku tymczasowego. Domyślnie: /tmp/mail
Przykład: file = /tmp/mail.txt
command
Polecenie powłoki wysyłające e-maila. '%address' zostanie zastąpione adresem e-mail klienta. Domyślnie: 'mail -s "Liabilities Information" %address < /tmp/mail'.
Przykład: command = 'mail %address -s "musisz zapłacić, bo jak nie..." < /tmp/mail.txt'
limit
Wiadomość o zaległościach zostaje wysłana jeśli saldo klienta spadnie poniżej kwoty określonej zmienną limit. Domyślnie: 0
Przykład: limit = -20
debug_mail
Określa adres na który zostaną wysłane wszystkie wiadomości, przydatne podczas testów. Domyślnie: puste.
Przykład: debug_mail = localhost@moja.net
Odpowiednik modułu 'notify' służący do wysyłania wiadomości gadu-gadu. Aktualne saldo klienta porównywane jest ze zmienną 'limit', jeśli jest niższe - wiadomość zostaje wysłana. Treść wiadomości pobierana jest z przygotowanego szablonu, w którym można stosować zmienne takie jak dla modułu 'notify' (może to być też ten sam szablon).
Moduł wymaga zainstalowanej biblioteki libgadu oraz źródeł programu ekg. Odpowiednie ścieżki do nich należy ustawić w modules/ggnotify/Makefile przed kompilacją modułu.
Podobnie jak w 'notify' masz do dyspozycji następujące zmienne:
template
Lokalizacja pliku z szablonem wiadomości. Domyślnie: pusty.
Przykład: template = modules/ggnotify/sample/mailtemplate
uin
Identyfikator gadu-gadu użytkownika wysyłającego wiadomości. Domyślnie: pusty.
Przykład: uin = 1234567
password
Hasło dla konta określonego zmienną 'uin'. Domyślnie: puste.
Przykład: password = "moje_trudne__hasło"
limit
Wiadomość o zaległościach zostaje wysłana jeśli saldo klienta spadnie poniżej kwoty określonej zmienną limit. Domyślnie: 0
Przykład: limit = -20
debug_uin
Jeśli ustawione, na to konto zostaną wysłane wszystkie wiadomości. Domyślnie: puste.
Przykład: debug_uin = 7654321
Cutoff zmienia status komputerów na 'odłączony' i/lub włącza ostrzeżenia klientom, którzy mają na koncie zaległości większe niż określony limit. Ponadto odłącza komputery klientów, którym wygasły wszystkie zobowiązania lub są one zawieszone. Ten moduł nie zajmuje się fizycznym blokowaniem dostępu do sieci.
Dla modułu 'cutoff' mamy następujące opcje:
limit
Odłączenie następuje jeśli saldo klienta spadnie poniżej wartości określonej jako kwota lub wartość procentowa sumy miesięcznych zobowiązań klienta (ze znakiem '%'). Domyślnie: 0.
Przykład: limit = -20
command
Określa komendę systemową, która zostanie wywołana jeżeli co najmniej jeden klient zostanie odłączony lub zostanie włączone ostrzeżenie. Domyślnie: nieustawiona.
Przykład: command = 'lmsd -qi firewall'
warning
Włącza ostrzeżenie dla odłączanego klienta i przypisuje mu określoną w tej opcji treść. Jeżeli pusta, ostrzeżenie nie będzie włączane. Data w ostrzeżeniu ukryta jest pod zmienną '%time'. Możesz także użyć zmiennych: %B dla rzeczywistego salda klienta oraz %b dla salda bez znaku. Saldo liczone jest w chwili wykonania modułu cutoff, a nie wyświetlenia komunikatu w przeglądarce klienta. Domyślnie: 'Blocked automatically due to payment deadline override at %time".
Przykład: warning = ""
expired_warning
Włącza ostrzeżenie dla odłączanego klienta i przypisuje mu określoną w tej opcji treść. Jeżeli pusta, ostrzeżenie nie będzie włączane. Dotyczy klientów, którym wygasły zobowiązania. Data w ostrzeżeniu ukryta jest pod zmienną '%time'. Domyślnie: 'Blocked automatically due to tariff(s) expiration at %time".
Przykład: expired_warning = ""
warnings_only
Ta opcja pozwala zdecydować, czy chcemy użyć naszego modułu wyłącznie do włączania ostrzeżeń. Działa tylko w stosunku do klientów, którzy posiadają aktywne zobowiązania. Klienci, którym wygasły zobowiązania, zostaną odłączeni mimo włączenia tej opcji. Domyślnie: wyłączona.
Przykład: warnings_only = true
setnodegroup_only
Ta opcja pozwala zdecydować, czy chemy przypisać do wybranej grupy komputery klienta, zamiast zmieniać jego status lub włączać ostrzeżenie. Do grupa o podanej nazwie zostaną przypisane wszystkie komputery klienta, który przekroczył limit zadłużenia, albo posiada nierozliczone faktury (jeśli włączono check_invoices). Domyślnie: pusta.
Przykład: setnodegroup_only = ograniczony_dostep
use_nodeassignments
Jeśli stosujesz powiązywanie komputerów z zobowiązaniami powinieneś włączyć tą opcję. W przeciwnym wypadku będą sprawdzane powiązania taryf z klientami. Domyślnie: wyłączona.
Przykład: use_nodeassignments = true
use_customerassignments
Jeśli chciałbyś pominąć sprawdzanie zobowiązań klientów powinieneś włączyć tą opcję. Domyślnie: włączona.
Przykład: use_customerassignments = false
disable_suspended
Włączenie tej opcji spowoduje odłaczenie także klientów, których wszystkie obowiązujące zobowiązania są zawieszone. Domyślnie: wyłączona.
Przykład: disable_suspended = true
check_invoices
Opcja włącza dodatkowe sprawdzenie czy klient posiada nierozliczone faktury z dniem płatności starszym o określoną w opcji 'deadline' ilość dni. Domyślnie: wyłączona.
Przykład: check_invoices = true
deadline
Określa okres w dniach (licząc od terminu płatności faktury), po którym nierozliczona faktura jest brana pod uwagę przy zastosowaniu opcji 'check_invoices'. Domyślnie, klient zostanie zablokowany od razu po terminie płatności. Domyślnie: 0.
Przykład: deadline = 30
customergroups
Lista nazw grup klientów, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie grupy).
Przykład: customergroups = "grupa1 grupa2"
excluded_customergroups
Lista nazw grup klientów, które mają być pominięte. Wielkość liter nie ma znaczenia. Domyślnie: pusta (żadna).
Przykład: excluded_customergroups = "grupa3 grupa4"
networks
Lista nazw sieci, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie sieci).
Przykład: networks = "lan1 lan2"
excluded_networks
Lista nazw sieci, które mają pominięte. Wielkość liter nie ma znaczenia. Domyślnie: pusta (żadna).
Przykład: excluded_networks = "lan3 lan4"
Moduł zarządzający serwerem DHCP, tworzy plik konfiguracyjny oraz restartuje usługę. Zmienna 'command' umożliwia również wykonywanie innych czynności (programów).
Większość parametrów konfiguracyjnych odpowiada fragmentom pliku konfiguracyjnego dhcpd, które w typowych zastosowaniach nie wymagają zmiany:
file
Określa lokalizację pliku konfiguracyjnego serwera dhcp. Domyślnie: /etc/dhcpd.conf.
Przykład: file = /etc/dhcpd.conf
command
Polecenie wykonywane po utworzeniu pliku konfiguracyjnego. Domyślnie: 'killall dhcpd; /usr/sbin/dhcpd'.
Przykład: command = 'service dhcp restart'
begin
Nagłówek pliku. Domyślnie: pusty.
Przykład: begin = "authoritative;"
end
Stopka pliku. Domyślnie: pusty.
Przykład: end = ""
subnet_start
Nagłówek podsieci. '%a' - nazwa, '%m' - maska, %b - broadcast. Domyślnie: "subnet %a netmask %m {\ndefault-lease-time 86400;\nmax-lease-time 86400;".
Przykład: subnet_start = "subnet %a netmask %m {default-lease-time 3600;"
subnet_end
Stopka podsieci. Domyślnie: "}".
Przykład: subnet_end = '\t}'
subnet_gateway
Brama podsieci. '%i' zostanie zamienione na adres ip. Domyślnie: "option routers %i;".
Przykład: subnet_gateway = "option routers %i"
subnet_dns
DNS'y podsieci. '%i - adresy dns'ów. Domyślnie: "option domain-name-servers %i;".
Przykład: subnet_dns = "option domain-name-servers 192.168.0.1"
subnet_domain
Nazwa domenowa podsieci. '%n' - nazwa. Domyślnie: 'option domain-name "%n";'.
Przykład: subnet_domain = 'option domain-name "test.%n";'
subnet_wins
Serwery wins. '%i' - adres ip serwera. Domyślnie: "option netbios-name-servers %i;".
Przykład: subnet_wins = ""
subnet_range
Zakres adresów podsieci. '%s' - adres początkowy, '%e' - koniec zakresu. Domyślnie: "range %s %e;".
Przykład: subnet_range = "range %s %e;"
host
Parametry hostów, gdzie '%n' - nazwa hosta, '%m' - MAC, '%i' - adres ip. Domyślnie: "\thost %n {\n\t\thardware ethernet %m; fixed-address %i; \n\t}".
Przykład: host = "host %n {hardware ethernet %m; fixed-address %i;}"
networks
Lista nazw sieci, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie sieci).
Przykład: networks = "lan1 lan2"
customergroups
Lista nazw grup klientów, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie grupy).
Przykład: customergroups = "grupa1 grupa2"
Moduł 'hostfile' jest dość uniwersalnym narzędziem. Ponieważ wykonuje pętlę po wszystkich komputerach (oraz adresach urządzeń sieciowych) w bazie rozróżniając ich status podłączenia i ostrzeżenia, adresy prywatne i publiczne, a ponadto sieć do której są podłączone oraz grupy do których należą ich właściciele. Dzięki temu możliwe jest tworzenie np. reguł dowolnego firewalla, czy też pliku /etc/hosts. Dane zapisuje do pliku i następnie wykonuje określone polecenie powłoki.
W opcjach zawierających reguły hosta można stosować specjalne zmienne, które podczas zapisu do pliku zostaną zastąpione odpowiednimi dla danego komputera danymi:
%i - adres IP, |
%ipub - publiczny adres IP, |
%id - ID komputera, |
%m - adres MAC, |
%ms - lista adresów MAC hosta (oddzielonych przecinkiem), |
%n - nazwa komputera, |
%p - hasło, |
%port - nr portu w urządzeniu, do którego jest podłączony komputer, |
%info - opis komputera, |
%l - lokalizacja komputera, |
%devl - lokalizacja urządzenia, do którego podłączony jest komputer, |
%domain - domena, |
%net - nazwa sieci, do której należy host, |
%if - interfejs sieci, |
%addr - adres sieci, |
%mask - maska sieci, |
%prefix - maska sieci w postaci prefixu CIDR, |
%gw - adres bramy, |
%dns, %dns2 - adresy serwerów DNS, |
%dhcps, %dhcpe - początek i koniec zakresu DHCP, |
%wins - adres serwera WINS, |
%i16 - ostatni oktet adresu IP w formacie szesnastkowym, |
%i16pub - ostatni oktet publicznego adresu IP w formacie szesnastkowym. |
%domainpub - domena sieci publicznej, |
%netpub - nazwa sieci, do której należy adres publiczny, |
%ifpub - interfejs sieci publicznej, |
%addrpub - adres sieci publicznej, |
%maskpub - maska sieci publicznej, |
%prefixpub - maska sieci publicznej w postaci prefixu CIDR, |
%gwpub - adres bramy w sieci publicznej, |
%dnspub, %dns2pub - adresy serwerów DNS w sieci publicznej, |
%dhcpspub, %dhcpepub - początek i koniec zakresu DHCP w sieci publicznej, |
%winspub - adres serwera WINS w sieci publicznej, |
%customer - nazwa klienta, |
%cid - ID klienta |
Poniżej opcje udostępniane przez ten moduł:
file
Lokalizacja pliku tymczasowego. Domyślnie: /tmp/hostfile
Przykład: file = /etc/rc.d/rc.firewall
command
Polecenie powłoki wyk. po utworzeniu pliku 'file'. Domyślnie: puste
Przykład: command = '/bin/sh /etc/rc.d/rc.firewall'
begin
Nagłówek pliku tymczasowego. Domyślnie: "/usr/sbin/iptables -F FORWARD\n"
Przykład: begin = "IPT=/usr/sbin/iptables \n$IPT -F FORWARD\n"
end
Stopka pliku tymczasowego. Domyślnie: "/usr/sbin/iptables -A FORWARD -J REJECT\n"
Przykład: end = "$IPT -A FORWARD -J REJECT\n"
host_begin
Nagłówek reguły hosta. Domyślnie: ""
Przykład: host_begin = "#%n\n"
host_end
Stopka reguły hosta. Domyślnie: ""
Przykład: host_end = "\n"
grantedhost
Reguła dla hosta podłączonego. Domyślnie: "/usr/sbin/iptables -A FORWARD -s %i -m mac --mac-source %m -j ACCEPT\n"
Przykład: grantedhost = "$IPT -A FORWARD -s %i -m mac --mac-source %m -j ACCEPT\n"
deniedhost
Reguła dla hosta odłączonego. Domyślnie: "/usr/sbin/iptables -A FORWARD -s %i -m mac --mac-source %m -j REJECT\n"
Przykład: deniedhost = "$IPT -A FORWARD -s %i -m mac --mac-source %m -j REJECT\n"
public_grantedhost
Reguła dla hosta podłączonego, który posiada adres publiczny. Domyślnie reguła określona opcją 'grantedhost'.
Przykład: public_grantedhost = "$IPT -A FORWARD -s %i -m mac --mac-source %m -j ACCEPT\n$IPT -t nat -A PREROUTING -p tcp -d %ipub -j DNAT --to-destination %i\n$IPT -t nat -A POSTROUTING -s %i -j SNAT --to-source %ipub\n"
public_deniedhost
Reguła dla hosta odłączonego, który posiada adres publiczny. Domyślnie reguła określona opcją 'deniedhost'.
Przykład: public_deniedhost = ""
warnedhost
Reguła dla hosta z włączonym ostrzeżeniem. Domyślnie reguła określona opcją 'grantedhost'.
Przykład: warnedhost = "$IPT -A PREROUTING -s %i --dport 80 -p tcp -j REDIRECT --to-port 82\n"
public_warnedhost
Reguła dla hosta z włączonym ostrzeżeniem, który posiada adres publiczny. Domyślnie reguła określona opcją 'warnedhost'.
Przykład: public_warnedhost = ""
public_replace
Określa czy reguły zdefiniowane dla adresów publicznych mają nadpisać reguły główne, czy zostać dopisane do nich. Domyślnie: włączona.
Przykład: public_replace = false
warn_replace
Określa czy reguły zdefiniowane dla komputerów z ostrzeżeniem mają nadpisać reguły główne, czy zostać dopisane do nich. Domyślnie: wyłączona.
Przykład: warn_replace = true
networks
Lista nazw sieci, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie sieci).
Przykład: networks = "lan1 lan2"
customergroups
Lista nazw grup klientów, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie grupy).
Przykład: customergroups = "grupa1 grupa2"
nodegroups
Lista nazw grup komputerów, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie grupy).
Przykład: nodegroups = "grupa1 grupa2"
excluded_networks
Lista nazw sieci, które nie mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta.
Przykład: excluded_networks = "lan1 lan2"
excluded_customergroups
Lista nazw grup klientów, które nie mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta.
Przykład: excluded_customergroups = "grupa1 grupa2"
excluded_nodegroups
Lista nazw grup komputerów, które nie mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta.
Przykład: excluded_nodegroups = "grupa1 grupa2"
skip_dev_ips
Jeśli ustawiona na tak (yes, true) pominięte zostaną adresy urządzeń sieciowych. Domyślnie: tak
Przykład: skip_dev_ips = nie
skip_host_ips
Jeśli ustawiona na tak (yes, true) pominięte zostaną adresy komputerów. Uwaga: włączenie obu opcji 'skip_*_ips' spowoduje ich zignorowanie. Domyślnie: nie
Przykład: skip_host_ips = tak
multi_mac
Jeśli ustawiona na tak (yes, true) utworzony zostanie osobny rekord dla każdego adresu MAC. Tzn. jeśli komputer ma przypisanych kilka adresów MAC, będzie utworzone tyle wpisów ile tych adresów. Domyślnie: nie
Przykład: multi_mac = tak
share_netdev_pubip
Włączenie tej opcji (yes, true, 1) spowoduje, że wszystkim adresom urządzenia sieciowego, które nie posiadają zdefiniowanego adresu publicznego zostanie przypisany jeden (ten sam) ze zdefiniowanych dla danego urządzenia adresów publicznych. Domyślnie: nie
Przykład: share_netdev_pubip = tak
'Traffic' to odpowiednik perlowego lms-traffic, zapisujący do bazy statystyki wykorzystania łącza z pliku utworzonego przez użytkownika. Plik taki powinien mieć format: ip_hosta upload download . Więcej informacji (w tym jak utworzyć taki plik) można znaleźć w rozdziale dotyczącym lms-traffic.
Moduł posiada trzy opcje:
file
Lokalizacja pliku ze statystykami firewalla. Domyślnie: /var/log/traffic.log
Przykład: file = /tmp/log
begin_command
Polecenie powłoki wykonywane przed wczytaniem pliku. Domyślnie: puste
Przykład: begin_command = 'perl /usr/local/lms/bin/traffic_ipt.pl'
end_command
Polecenie powłoki wykonywane po wczytaniu pliku. Domyślnie: puste
Przykład: end_command = 'rm /var/log/traffic.log'
Moduł generujący skrypt zawierający polecenia iptables i tc służące do ograniczania przepływności i limitowania połączeń klientom. Regułki dla komputerów można dowolnie zdefiniować i wykorzystać nie tylko do "traffic control". Zasada działania skryptu przedstawia się następująco: Najpierw z bazy pobierane są dane dla wszystkich klientów. Obliczane są sumy ograniczeń (uprate, downrate, upceil, downceil, limity połączeń) dla każdego klienta Następnie wykonywana jest pętla ze sprawdzeniem przynależności do grupy klientów i sieci (jeśli określono). Jeśli wartości ograniczeń są różne od zera następuje zapis reguł do pliku z podmianą zmiennych. W regułkach można stosować następujące zmienne: %name - nazwa hosta, %i - adres IP, %m - MAC, %if - interfejs, %uprate, %downrate, %upceil, %downceil, %plimit, %climit, %o1, %o2, %o3, %o4 - kolejne oktety adresu IP, %h1, %h2, %h3, %h4 - kolejne oktety adresu IP w zapisie szesnastkowym oraz %x - licznik o wartości początkowej 100 zwiększany o jeden dla każdego komputera (lub klienta, w zależności od ustawienia opcji one_class_per_host).
Domyślna polityka tworzenia klas htb zakłada utworzenie jednej klasy dla wszystkich komputerów klienta. Może to być zmienione za pomocą opcji 'one_class_per_host'.
Konfiguracja domyślna zakłada, że twój system jest przystosowany do zastosowania htb oraz iptables z modułami limit, connlimit, mark i ipp2p. Możesz sam spatchować jądro lub skorzystać ze źródeł dostępnych na stronie www.inet.one.pl.
Masz do dyspozycji standardowe parametry takie jak customergroups, file, command, networks i dodatkowo opcje definiujące treść regułek tc i firewalla. Domyślna konfiguracja przeznaczona jest dla łącz 512/128 kbit i 100mbit.
file
Lokalizacja pliku tymczasowego. Domyślnie: /etc/rc.d/rc.htb.
Przykład: file = /tmp/rc.htb
command
Polecenie powłoki wykonywane po utworzeniu pliku. Domyślnie: "sh /etc/rc.d/rc.htb start".
Przykład: command = "chmod 700 /tmp/rc.htb; /tmp/rc.htb start"
begin
Nagłówek skryptu. Domyślnie:
"#!/bin/sh IPT=/usr/sbin/iptables TC=/sbin/tc LAN=eth0 WAN=eth1 BURST="burst 30k" stop () { $IPT -t mangle -D FORWARD -i $WAN -j LIMITS >/dev/null 2>&1 $IPT -t mangle -D FORWARD -o $WAN -j LIMITS >/dev/null 2>&1 $IPT -t mangle -F LIMITS >/dev/null 2>&1 $IPT -t mangle -X LIMITS >/dev/null 2>&1 $IPT -t mangle -F OUTPUT $IPT -t filter -F FORWARD $TC qdisc del dev $LAN root 2> /dev/null $TC qdisc del dev $WAN root 2> /dev/null } start () { stop $IPT -t mangle -N LIMITS $IPT -t mangle -I FORWARD -i $WAN -j LIMITS $IPT -t mangle -I FORWARD -o $WAN -j LIMITS # incomming traffic $IPT -t mangle -A OUTPUT -j MARK --set-mark 1 $TC qdisc add dev $LAN root handle 1:0 htb default 3 r2q 1 $TC class add dev $LAN parent 1:0 classid 1:1 htb rate 99000kbit ceil 99000kbit quantum 1500 $TC class add dev $LAN parent 1:1 classid 1:2 htb rate 500kbit ceil 500kbit $TC class add dev $LAN parent 1:1 classid 1:3 htb rate 98500kbit ceil 98500kbit prio 9 quantum 1500 $TC qdisc add dev $LAN parent 1:3 esfq perturb 10 hash dst # priorities for ICMP, TOS 0x10 and ports 22 and 53 $TC class add dev $LAN parent 1:2 classid 1:20 htb rate 50kbit ceil 500kbit $BURST prio 1 quantum 1500 $TC qdisc add dev $LAN parent 1:20 esfq perturb 10 hash dst $TC filter add dev $LAN parent 1:0 protocol ip prio 2 u32 match ip sport 22 0xffff flowid 1:20 $TC filter add dev $LAN parent 1:0 protocol ip prio 2 u32 match ip sport 53 0xffff flowid 1:20 $TC filter add dev $LAN parent 1:0 protocol ip prio 1 u32 match ip tos 0x10 0xff flowid 1:20 $TC filter add dev $LAN parent 1:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:20 # serwer -> LAN $TC filter add dev $LAN parent 1:0 protocol ip prio 4 handle 1 fw flowid 1:3 # outgoing traffic $TC qdisc add dev $WAN root handle 2:0 htb default 11 r2q 1 $TC class add dev $WAN parent 2:0 classid 2:1 htb rate 120kbit ceil 120kbit # priorities for ACK, ICMP, TOS 0x10, ports 22 and 53 $TC class add dev $WAN parent 2:1 classid 2:10 htb rate 60kbit ceil 120kbit prio 1 quantum 1500 $TC qdisc add dev $WAN parent 2:10 esfq perturb 10 hash dst $TC filter add dev $WAN parent 2:0 protocol ip prio 1 u32 match ip protocol 6 0xff \ match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 1 match u8 0x10 0xff at 33 flowid 2:10 $TC filter add dev $WAN parent 2:0 protocol ip prio 1 u32 match ip dport 22 0xffff flowid 2:10 $TC filter add dev $WAN parent 2:0 protocol ip prio 1 u32 match ip dport 53 0xffff flowid 2:10 $TC filter add dev $WAN parent 2:0 protocol ip prio 1 u32 match ip tos 0x10 0xff flowid 2:10 $TC filter add dev $WAN parent 2:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 2:10 # serwer -> Internet $TC class add dev $WAN parent 2:1 classid 2:11 htb rate 30kbit ceil 120kbit prio 2 quantum 1500 $TC qdisc add dev $WAN parent 2:11 esfq perturb 10 hash dst $TC filter add dev $WAN parent 2:0 protocol ip prio 3 handle 1 fw flowid 2:11 $TC filter add dev $WAN parent 2:0 protocol ip prio 9 u32 match ip dst 0/0 flowid 2:11
Przykład: begin = "#!/bin/bash\n$TC=/usr/local/sbin/tc\n"
end
Stopka skryptu. Domyślnie:
} case "$1" in 'start') start ;; 'stop') stop ;; 'status') echo "WAN Interface" echo "=============" $TC class show dev $WAN | grep root $TC class show dev $WAN | grep -v root | sort | nl echo "LAN Interface" echo "=============" $TC class show dev $LAN | grep root $TC class show dev $LAN | grep -v root | sort | nl ;; *) echo -e "\nUsage: rc.htb start|stop|status" ;; esac
Przykład: end = ""
one_class_per_host
Określa politykę tworzenia klas htb. W ustawieniu domyślnym wszystkie komputery klienta zostaną wrzucone do jednej klasy. Ustawienie tej opcji na 'true' spowoduje, że reguły określone w host_htb_up i host_htb_down zostaną wygenerowane dla wszystkich komputerów klienta (z inną wartością '%x'). Reguły z host_mark_down, host_mark_up, host_plimit i host_climit generowane są dla każdego komputera niezależnie od ustawień tej zmiennej. Domyślnie: false
Przykład: one_class_per_host = 1
limit_per_host
Określa politykę tworzenia limitów połączeń/pakietów dla komputerów. W ustawieniu domyślnym limit połączeń/pakietów jest dzielony przez ilość komputerów klienta. Włączenie tej opcji spowoduje, że reguły określone w host_climit i host_plimit zostaną wygenerowane dla wszystkich komputerów klienta z wartością $climit i %plimit zdefiniowaną w taryfie (nie podzieloną przez ilość komputerów). Domyślnie: false
Przykład: limit_per_host = 1
host_mark_up
Reguła markująca dla każdego komputera. Domyślnie:
# %n $IPT -t mangle -A LIMITS -s %i -j MARK --set-mark %x
Przykład: host_mark_up = ""
host_mark_down
Reguła markująca dla każdego komputera. Domyślnie:
$IPT -t mangle -A LIMITS -d %i -j MARK --set-mark %x
Przykład: host_mark_down = ""
host_htb_down
Zestaw reguł dla każdego komputera, wykonywanych gdy uprate i downrate są różne od zera. Domyślnie:
$TC class add dev $LAN parent 1:2 classid 1:%x htb rate %downratekbit ceil %downceilkbit $BURST prio 2 quantum 1500 $TC qdisc add dev $LAN parent 1:%x esfq perturb 10 hash dst $TC filter add dev $LAN parent 1:0 protocol ip prio 5 handle %x fw flowid 1:%x
Przykład: host_htb_down = ""
host_htb_up
Zestaw reguł dla każdego komputera, wykonywanych gdy uprate i downrate są różne od zera. Domyślnie:
$TC class add dev $WAN parent 2:1 classid 2:%x htb rate %upratekbit ceil %upceilkbit $BURST prio 2 quantum 1500 $TC qdisc add dev $WAN parent 2:%x esfq perturb 10 hash dst $TC filter add dev $WAN parent 2:0 protocol ip prio 5 handle %x fw flowid 2:%x
Przykład: host_htb_up = ""
host_climit
Regułka z ograniczeniem ilości równoczesnych połączeń tcp. Wykonywana gdy climit w bazie jest różny od zera. Domyślnie:
$IPT -t filter -I FORWARD -p tcp -s %i -m connlimit --connlimit-above %climit -m ipp2p --ipp2p -j REJECT
Przykład: host_climit = "$IPT -t filter -I FORWARD -p tcp -s %i -m connlimit --connlimit-above -j REJECT"
host_plimit
Regułka z ograniczeniem ilości pakietów w jednostce czasu (tutaj sekunda). Wykonywana gdy plimit w bazie jest różny od zera. Domyślnie:
$IPT -t filter -I FORWARD -p tcp -d %i -m limit --limit %plimit/s -m ipp2p --ipp2p -j ACCEPT $IPT -t filter -I FORWARD -p tcp -s %i -m limit --limit %plimit/s -m ipp2p --ipp2p -j ACCEPT
Przykład: host_plimit = ""
networks
Lista nazw sieci, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie sieci).
Przykład: networks = "lan1 lan2"
customergroups
Lista nazw grup klientów, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie grupy).
Przykład: customergroups = "grupa1 grupa2"
Moduł generujący skrypt zawierający polecenia iptables i tc służące do ograniczania przepływności i limitowania połączeń klientom. Działa podobnie do modułu 'tc', lecz obsługuje funkcjonalność pozwalającą na powiązywanie taryf z komputerami. Skrypt tworzy tzw. kanały dla komputerów klienta przypisanych do tej samej taryfy. Przykładowo: dla klienta z dwoma komputerami przypisanymi do tej samej taryfy zostaną utworzone dwie klasy (upload i download) oraz po dwa filtry dla każdego komputera. W przypadku gdy klient ma dwie taryfy i do każdej po jednym komputerze powstaną po dwie klasy dla każdej taryfy i odpowiednia ilość filtrów. Wartość początkowa liczników (%x i %h w regułach) wynosi 100.
Wartości domyślne niektórych opcją są zgodne z modułem tc.
file
Lokalizacja pliku wynikowego. Domyślnie: /etc/rc.d/rc.htb.
Przykład: file = /tmp/rc.htb
command
Polecenie powłoki wykonywane po utworzeniu pliku. Domyślnie: "sh /etc/rc.d/rc.htb start".
Przykład: command = "chmod 700 /tmp/rc.htb; /tmp/rc.htb start"
begin
Nagłówek skryptu. Domyślnie: jak w module tc
Przykład: begin = "#!/bin/bash\n$TC=/usr/local/sbin/tc\n"
end
Stopka skryptu. Domyślnie: jak w module tc
Przykład: end = ""
class_up
Definicja klasy dla uploadu, w której możemy użyć następujących zmiennych: %cid - ID klienta, %cname - nazwa klienta, %h - numer uchwytu klasy %uprate, %upceil. Domyślnie:
# %cname (ID:%cid) $TC class add dev $WAN parent 2:1 classid 2:%h htb rate %upratekbit ceil %upceilkbit $BURST prio 2 quantum 1500 $TC qdisc add dev $WAN parent 2:%h esfq perturb 10 hash dst
Przykład: class_up = "$TC class add dev $WAN parent 2:1 classid 2:%h htb rate %upratekbit ceil %upceilkbit $BURST prio 2 quantum 1500"
class_down
Definicja klasy dla downloadu, w której możemy użyć następujących zmiennych: %cid - ID klienta, %cname - nazwa klienta, %h - numer uchwytu klasy, %downrate, %downceil. Domyślnie:
$TC class add dev $LAN parent 1:2 classid 1:%h htb rate %downratekbit ceil %downceilkbit $BURST prio 2 quantum 1500 $TC qdisc add dev $LAN parent 1:%h esfq perturb 10 hash dst
Przykład: class_up = "$TC class add dev $LAN parent 1:2 classid 1:%h htb rate %downratekbit ceil %ceilceilkbit $BURST prio 2 quantum 1500"
filter_up
Definicja filtrów dla ruchu w kierunku od hosta. Dozwolone zmienne: %n - nazwa hosta, %if - nazwa interfejsu sieci, %i - adres, %m - mac, %ms - lista adresów MAC hosta (oddzielonych przecinkiem), %o1, %o2, %o3, %o4 - oktety adresu dziesiętnie, %h1, %h2, %h3, %h4 - oktety adresu w zapisie szesnastkowym, %h - uchwyt klasy, %x - uchwyt filtra (unikalny numer reguły). Domyślnie:
# %n $IPT -t mangle -A LIMITS -s %i -j MARK --set-mark %x $TC filter add dev $WAN parent 2:0 protocol ip prio 5 handle %x fw flowid 2:%h
Przykład: class_up = "%n\n$IPT -A src%o3 -s %i -j CLASSIFY --set-class 2:%h\n"
filter_down
Definicja filtrów dla ruchu w kierunku do hosta. Dozwolone zmienne: %n - nazwa hosta, %if - nazwa interfejsu sieci, %i - adres, %m - mac, %ms - lista adresów MAC hosta (oddzielonych przecinkiem), %o1, %o2, %o3, %o4 - oktety adresu dziesiętnie, %h1, %h2, %h3, %h4 - oktety adresu w zapisie szesnastkowym, %h - uchwyt klasy, %x - uchwyt filtra (unikalny numer reguły). Domyślnie:
$IPT -t mangle -A LIMITS -d %i -j MARK --set-mark %x $TC filter add dev $LAN parent 1:0 protocol ip prio 5 handle %x fw flowid 1:%h
Przykład: class_down = "%n\n$IPT -A dst%o3 -d %i -j CLASSIFY --set-class 1:%h\n"
climit
Definicja reguły dla limitu połączeń hosta. Dozwolone zmienne: %n - nazwa hosta, %if - nazwa interfejsu sieci, %i - adres, %m - mac, %ms - lista adresów MAC hosta (oddzielonych przecinkiem), %o1, %o2, %o3, %o4 - oktety adresu dziesiętnie, %h1, %h2, %h3, %h4 - oktety adresu w zapisie szesnastkowym, %climit - limit połączeń. Domyślnie:
$IPT -t filter -I FORWARD -p tcp -s %i -m connlimit --connlimit-above %climit -j REJECT
Przykład: climit = ""
plimit
Definicja reguły dla limitu pakietów dla hosta. Dozwolone zmienne: %n - nazwa hosta, %if - nazwa interfejsu sieci, %i - adres, %m - mac, %ms - lista adresów MAC hosta (oddzielonych przecinkiem), %o1, %o2, %o3, %o4 - oktety adresu dziesiętnie, %h1, %h2, %h3, %h4 - oktety adresu w zapisie szesnastkowym, %plimit - limit pakietów. Domyślnie:
$IPT -t filter -I FORWARD -d %i -m limit --limit %plimit/s -j ACCEPT $IPT -t filter -I FORWARD -s %i -m limit --limit %plimit/s -j ACCEPT
Przykład: plimit = ""
networks
Lista nazw sieci, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie sieci).
Przykład: networks = "lan1 lan2"
customergroups
Lista nazw grup klientów, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie grupy).
Przykład: customergroups = "grupa1 grupa2"
night_hours
Zakres godzin nocnych w formacie 24-godzinnym. Np. "22-5" oznacza, że podczas uruchomienia modułu w godzinach od 22:00 do 4:59 brane będą wartości taryf dla godzin nocnych. Obowiązują następujące ograniczenia dla formatu zakresu: nie może zawierać spacji, okres nie może zaczynać się przed godziną 18. Domyślnie: pusta.
Przykład: night_hours = "24-6"
night_no_debtors
Włączenie tej opcji spowoduje sprawdzenie czy klient posiada nierozliczone faktury przeterminowane. Jeśli tak, taryfa nocna nie zostanie zastosowana. Domyślnie: false.
Przykład: night_no_debtors = tak
night_deadline
Dodatkowy czas (ilość dni) po terminie płatności, zanim faktura zostanie potraktowana jako przeterminowana. Opcja działa w połączeniu z 'night_no_debtors'. Domyślnie: 0.
Przykład: night_deadline = 7
multi_mac
Jeśli ustawiona na tak (yes, true) utworzony zostanie osobny rekord dla każdego adresu MAC. Tzn. jeśli komputer ma przypisanych kilka adresów MAC, będzie utworzone tyle wpisów ile tych adresów. Domyślnie: nie
Przykład: multi_mac = tak
Moduł do konfiguracji stref serwera 'named' jest jednym z bardziej skomplikowanych. Tworzy dla każdej sieci pliki stref oraz odpowiednie wpisy w named.conf w oparciu o szablony tych plików. Przykładowe szablony znajdują się w katalogu /modules/dns/sample.
forward-patterns
Katalog z szablonami stref. Domyślnie: forward.
Przykład: forward-patterns = /dns/patterns/forward
reverse-patterns
Katalog z szablonami stref odwrotnych. Domyślnie: reverse.
Przykład: reverse-patterns = /dns/patterns/revers
generic-forward
Szablon domyślny. Zostanie wykorzystany jeśli w katalogu określonym 'forward-patterns' nie będzie pliku odpowiadającego nazwie domenowej sieci. Domyślnie: modules/dns/sample/forward/generic.
Przykład: generic-forward = /dns/patterns/forward
generic-reverse
Szablon domyślny. Zostanie wykorzystany jeśli w katalogu określonym 'reverse-patterns' nie będzie pliku odpowiadającego numerowi IP sieci. Domyślnie: modules/dns/sample/reverse/generic.
Przykład: generic-reverse = /dns/patterns/forward
forward-zones
Katalog na pliki wynikowe stref. Domyślnie: modules/dns/sample/out/forward.
Przykład: forward-zones = /dns/forward
reverse-zones
Katalog na pliki wynikowe stref odwrotnych. Domyślnie: modules/dns/sample/out/reverse.
Przykład: reverse-zones = /dns/reverse
host-reverse
Linia w pliku strefy odwr. odpowiadająca każdemu komputerowi w dane sieci. Domyślnie: "%n IN A %i\n".
Przykład: host-reverse = "\t %n IN A %i\n"
host-forward
Linia w pliku strefy odpowiadająca każdemu komputerowi w danej sieci. Domyślnie: "%c IN PTR %n.%d.\n".
Przykład: host-forward = "\t %c IN PTR %n.%d.\n"
conf-pattern
Lokalizacja szablonu głównego pliku konfiguracyjnego serwera. Domyślnie: modules/dns/sample/named.conf.
Przykład: conf-pattern = /dns/patterns/named.conf
conf-output
Lokalizacja głównego pliku konfiguracyjnego serwera. Domyślnie: /tmp/named.conf.
Przykład: conf-output = /etc/named.conf
conf-forward-entry
Wpis dla każdej strefy w głównym pliku konfiguracyjnym. Domyślnie: 'zone "%n" {\ntype master;\n file "forward/%n"; \nnotify yes; \n}; \n'.
Przykład: conf-forward-entry = 'zone "%n" { \n\ttype master; \n\tfile "forward/%n"; \n\tnotify yes; \n}; \n'
conf-reverse-entry
Wpis dla każdej strefy odwr. w głównym pliku konfiguracyjnym. Domyślnie: 'zone "%c.in-addr.arpa" { \ntype master; \nfile "reverse/%c"; \nnotify yes; \n}; \n'.
Przykład: conf-revers-entry = 'zone "%c.in-addr.arpa" { \n\ttype master; \n\tfile "reverse/%c"; \n\tnotify yes; \n}; \n'
command
Polecenie wykonywane po utworzeniu plików konf. Domyślnie: puste.
Przykład: command = ""
networks
Lista nazw sieci, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie sieci).
Przykład: networks = "lan1 lan2"
custmergroups
Lista nazw grup klientów, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie grupy).
Przykład: customergroups = "grupa1 grupa2"
Moduł tworzący konfigurację tablicy ARP systemu. Ustawiając opcję 'dummy_macs' można sprawić, aby komputerom odłączonym został przypisany mac-adres 00:00:00:00:00:00.
Tutaj są tylko standardowe opcje:
file
Lokalizacja pliku wynikowego. Domyślnie: /etc/ethers.
Przykład: file = /tmp/ethers
command
Polecenie powłoki wykonywane po wygenerowaniu konfiga. Domyślnie: 'arp -f /etc/ethers'.
Przykład: command = ""
dummy_macs
Jeśli ustawimy na 'yes', to komputerom odłączonym zostanie przypisany mac-adres '00:00:00:00:00:00'. Domyślnie: "no".
Przykład: dummy_macs = yes
networks
Lista nazw sieci, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie sieci).
Przykład: networks = "lan1 lan2"
customergroups
Lista nazw grup klientów, które mają być brane pod uwagę. Wielkość liter nie ma znaczenia. Domyślnie: pusta (wszystkie grupy).
Przykład: customergroups = "grupa1 grupa2"
Moduł do konfiguracji oidentd. W zasadzie można to zrobić modułem 'hostfile', ale tutaj masz już gotowe ustawienia domyślne.
A oto parametry modułu 'oident'
begin
Tekst wstawiany na początku pliku. Domyślnie: puste.
Przykład: begin = "#Generowany automatycznie\n"
end
Tekst wstawiany na końcu pliku. Domyślnie: puste.
Przykład: end = ""
host
Linia tekstu dla każdego komputera. Domyślnie: "%i\t%n\tUNIX".
Przykład: host = "%i %n WINDOWS"
file
Nazwa pliku konfiguracyjnego. Domyślnie: /etc/oidentd.conf.
Przykład: file = /etc/oident/identd.conf
networks
Lista nazw sieci do uwzględnienia. Domyślnie: pusta (wszystkie sieci).
Przykład: networks = 'lan1 lan2'
command
Polecenie do wykonania po utworzeniu pliku. Domyślnie: puste.
Przykład: command = "killall -HUP midentd"
Moduł pinger to odpowiednik perlowego skryptu lms-fping. Różnice są jednak zasadnicze. Nie potrzebuje zewnętrznego programu i działa przy wykorzystaniu protokołu ARP. Powodem tego jest mniej więcej dwukrotnie szybsze wykonanie skanowania sieci. Nie ma także problemów z komputerami mającymi wyłączone odpowiadanie na pingi. Po skanowaniu, wszystkim włączonym komputerom jest ustawiany w bazie danych czas skanowania, wykorzystywany do obrazowania aktywności komputerów np. na mapie sieci.
Pinger rozpoznaje interfejsy sieciowe na podstawie nazwy, dlatego (np. gdy do zakładania interfejsów wirtualnych/aliasów wykorzystujesz program ip) musisz nadawać interfejsom etykiety (ip addr add ... label ...). Pamiętaj także, żeby nie używać w nazwach kropek, ani myślników (mimo, że ip na to pozwala), gdyż pinger nie rozpozna poprawnie takiego interfejsu. |
Pinger udostępnia tylko jedną opcję konfiguracyjną:
networks
Lista nazw sieci, które mają być skanowane. Domyślnie: pusta (wszystkie sieci).
Przykład: networks = 'lan1 lan2'
Moduł parser jest oparty na skryptowym języku T-Script, którego głównym zadaniem jest generowanie plików tekstowych. Może być używany do przetwarzania szablonów z danymi pobieranymi z różnych źródeł np. baz SQL lub plików tekstowych. W naszym przypadku treść skryptu (szablon) jest przechowywany w bazie danych, dlatego istnieje możliwość jego edycji poprzez LMS-UI. W przyszłości moduł parser może zastąpić większość modułów demona.
Opis języka T-Script znajduje się w rozdziale T-Script.
Przed kompilacją modułu upewnij się, że posiadasz w systemie pakiety bison (co najmniej w wersji 1.875) oraz flex.
Parser posiada następujące opcje:
script
Zawartość skryptu (szablonu). Domyślnie: pusta.
Przykład: script = '{var=1}zmienna var={var}'
file
Lokalizacja pliku wynikowego. Domyślnie: pusta
Przykład: file = /tmp/parser.out
command
Polecenie powłoki do wykonania po kompilacji skryptu. Domyślnie: pusta
Przykład: command = "sh /tmp/parser.out"
Moduł ewx-pt służy do zarządzania urządzeniem PPPoE Terminator marki EtherWerX. Komunikacja odbywa się z wykorzystaniem protokołu SNMP.
Moduł podczas pracy tworzy własną kopię konfiguracji urządzenia. Konfiguracja urządzenia nie jest w żaden sposób weryfikowana, dlatego korzystając z modułu ewx-pt nie można dokonywać zmian bezpośrednio na urządzeniu. W celu rekonfiguracji urządzenia należy wyczyścić konfigurację na urządzeniu oraz usunąć zawartość tabeli ewx_pt_config w bazie LMSa.
Pamiętaj o włączeniu opcji konfiguracyjnej ewx_support w sekcji [phpui]. |
Moduł ewx-pt udostępnia następujące opcje:
snmp_host
Adres urządzenia EtherWerX. Domyślnie: pusty.
Przykład: snmp_host = 192.168.0.1
snmp_port
Port urządzenia dla komunikacji SNMP. Domyślnie: 161
Przykład: snmp_port = 2161
community
Nazwa community SNMP urządzenia. Domyślnie: private
Przykład: community = public
offset
Liczba całkowita o jaką będą zwiększane identyfikatory komputerów podczas zapisu na urządzeniu EtherWerX. Domyślnie: 0.
Przykład: offset = 1000
networks
Lista nazw sieci, które mają być brane pod uwagę. Uwaga: po zmianie wartości tej opcji zalecana jest rekonfiguracja urządzenia. Domyślnie: pusta (wszystkie sieci).
Przykład: networks = 'lan1 lan2'
dummy_ip_networks
Lista nazw sieci, dla których komputerom zostanie przypisany adres IP 0.0.0.0. Uwaga: po zmianie wartości tej opcji zalecana jest rekonfiguracja urządzenia. Domyślnie: pusta (żadna sieć).
Przykład: dummy_ip_networks = lan1
dummy_mac_networks
Lista nazw sieci, dla których komputerom zostanie przypisany adres MAC 00:00:00:00:00:00. Uwaga: po zmianie wartości tej opcji zalecana jest rekonfiguracja urządzenia. Domyślnie: pusta (żadna sieć).
Przykład: dummy_mac_networks = lan1
skip_disabled
Wyłączenie tej opcji spowoduje, że komputery o statusie odłączony nie będą pomijane. Należy ją wyłączyć w przypadku gdy chcemy aby zablokowani klienci mieli możliwość zalogowania się do Terminatora. Domyślnie: włączona.
Przykład: skip_disabled = false
Moduł ewx-stm służy do zarządzania urządzeniem Standalone Traffic Manager marki EtherWerX. Komunikacja odbywa się z wykorzystaniem protokołu SNMP. Do prawidłowej pracy wymagany jest firmware w wersji 1.4.x lub nowszej.
Moduł podczas pracy tworzy własną kopię konfiguracji urządzenia. Konfiguracja urządzenia nie jest w żaden sposób weryfikowana, dlatego korzystając z modułu ewx-stm nie można dokonywać zmian bezpośrednio na urządzeniu. W celu rekonfiguracji urządzenia należy wyczyścić konfigurację na urządzeniu oraz usunąć zawartość tabel ewx_stm_channels oraz ewx_stm_nodes w bazie LMSa.
Pamiętaj o włączeniu opcji konfiguracyjnej ewx_support w sekcji [phpui]. |
Moduł ewx-stm udostępnia następujące opcje:
snmp_host
Adres urządzenia EtherWerX. Domyślnie: pusty.
Przykład: snmp_host = 192.168.0.1
snmp_port
Port urządzenia dla komunikacji SNMP. Domyślnie: 161
Przykład: snmp_port = 2161
community
Nazwa community SNMP urządzenia. Domyślnie: private
Przykład: community = public
path
Numer ścieżki zdefiniowanej na urządzeniu, do której zostaną dopisane komputery i kanały z LMSa. Domyślnie: nieustawiona.
Przykład: path = 1
offset
Liczba całkowita o jaką będą zwiększane identyfikatory komputerów podczas zapisu na urządzeniu EtherWerX. Uwaga: po zmianie wartości tej opcji zalecana jest rekonfiguracja urządzenia. Domyślnie: 0.
Przykład: offset = 1000
networks
Lista nazw sieci, które mają być brane pod uwagę. Uwaga: po zmianie wartości tej opcji zalecana jest rekonfiguracja urządzenia. Domyślnie: pusta (wszystkie sieci).
Przykład: networks = 'lan1 lan2'
excluded_networks
Lista nazw sieci, które mają zostać pominięte. Uwaga: po zmianie wartości tej opcji zalecana jest rekonfiguracja urządzenia. Domyślnie: pusta.
Przykład: excluded_networks = 'lan3 lan4'
dummy_ip_networks
Lista nazw sieci, dla których komputerom zostanie przypisany adres IP 0.0.0.0. Wartość tej opcji może zawierać specjalny znak '*', oznaczający wszystkie sieci. Uwaga: po zmianie wartości tej opcji zalecana jest rekonfiguracja urządzenia. Domyślnie: pusta (żadna sieć).
Przykład: dummy_ip_networks = lan1
dummy_mac_networks
Lista nazw sieci, dla których komputerom zostanie przypisany adres MAC 00:00:00:00:00:00. Wartość tej opcji może zawierać specjalny znak '*', oznaczający wszystkie sieci. Uwaga: po zmianie wartości tej opcji zalecana jest rekonfiguracja urządzenia. Domyślnie: pusta (żadna sieć).
Przykład: dummy_mac_networks = lan1
excluded_dummy_ip_networks
Lista nazw sieci, które zostaną wyłączone z działania opcji dummy_ip_networks, w przypadku użycia w niej znaku '*'. Domyślnie: pusta (żadna sieć).
Przykład: excluded_dummy_ip_networks = lan5
excluded_dummy_mac_networks
Lista nazw sieci, które zostaną wyłączone z działania opcji dummy_mac_networks, w przypadku użycia w niej znaku '*'. Domyślnie: pusta (żadna sieć).
Przykład: excluded_dummy_mac_networks = lan7
skip_disabled
Przy domyślnym ustawieniu tej opcji (true) komputery o statusie 'odłączony' nie są brane pod uwagę. Domyślnie: włączona.
Przykład: skip_disabled = false
night_hours
Zakres godzin nocnych w formacie 24-godzinnym. Np. "22-5" oznacza, że podczas uruchomienia modułu w godzinach od 22:00 do 4:59 brane będą wartości taryf dla godzin nocnych. Obowiązują następujące ograniczenia dla formatu zakresu: nie może zawierać spacji, okres nie może zaczynać się przed godziną 18. Domyślnie: pusta.
Przykład: night_hours = "24-6"
Moduł ewx-stm-channels to odpowiednik modułu ewx-stm (służącego do zarządzania urządzeniem Standalone Traffic Manager marki EtherWerX) zawierający rozbudowaną obsługę kanałów.
Różnica w pracy tych modułów jest następująca. Moduł ewx-stm tworzy kanały automatycznie w zależności od ustawień zobowiązań klientów i ich przypisania do komputerów. Nie obsługuje kanałów zdefiniowanych w LMS-UI. Z kolei moduł ewx-stm-channels pracuje wyłącznie z kanałami zdefiniowanymi w LMS-UI. Komputery powinny być przypisane do urządzeń sieciowych, a te z kolei do kanałów o zdefiniowanych parametrach. Komputery nie przypisane do żadnego kanału są pomijane. Można to zmienić definiując parametry domyślnego kanału w konfiguracji modułu, do którego trafią wszystkie komputery bez powiązania.
Moduł ewx-stm-channels oprócz opcji dostępnych dla modułu ewx-stm udostępnia następujące opcje:
default_upceil
Wartość upceil dla domyślnego kanału. Domyślnie: 0.
Przykład: default_upceil = 10000
default_downceil
Wartość downceil dla domyślnego kanału. Domyślnie: 0
Przykład: default_downceil = 20000
Poprzedni | Spis treści | Następny |
LMS Daemon | Początek rozdziału | T-Script |