Narzędzia użytkownika

Narzędzia witryny


skrypty

To jest stara wersja strony!


4.1. Instalacja

Jeśli chcesz ustawić konfigurację któregoś ze skryptów, robi się to w odpowiedniej sekcji lms.ini. Same skrypty przenieś z katalogu /lms/bin/ do katalogu /usr/sbin. Po przeniesieniu musisz je jeszcze dopisać do crontaba tak, aby były uruchamiane automatycznie, właśnie wtedy kiedy tego chcesz. Przykładowo, wpis w crontabie dla skryptu lms-payments (wykonywanego codziennie o godzinie 00:01) powinien wyglądać następująco:

1 0 * * *       /usr/sbin/lms-payments 1 > /dev/null

Po więcej informacji możesz sięgnąć do man crontab

Większość lms'owych skryptów posiada dodatkowe opcje uruchomieniowe:

-C plik     położenie i nazwa alternatywnego pliku lms.ini, domyślnie /etc/lms/lms.ini
-q          wykonanie skryptu bez wyświetlania komunikatów               
-h          pomoc (a w zasadzie to tylko listing opcji)
-v          informacja o wersji skryptu

4.2. Lista dostępnych skryptów

Nazwa Opis
lms-notify Powiadamianie klientów pocztą internetową o zaległościach, wystawionych fakturach, przekroczeniu terminu płatności
lms-notify-sms Odpowiednik lms-notify do wysyłania smsów
lms-notify-messages Odpowiednik lms-notify do ustawiania powiadomień http
lms-cutoff Odłączanie klientów zadłużonych
lms-etherdesc Generowanie pliku dla iptraf zawierającego pary MAC adres - nazwa hosta
lms-payments Naliczanie opłat okresowych (abonamentowych) z fakturowaniem
lms-traffic Zapis statystyk wykorzystania łącza
lms-traffic-logiptables Statystyki łącza dla iptables
lms-makearp Tworzenie tablicy ARP (/etc/ethers)
lms-makedhcpconf Konfiguracja serwera DHCP (dhcpd.conf)
lms-makeiptables Konfiguracja firewalla iptables
lms-makeipchains Konfiguracja firewalla ipchains
lms-makeopenbsdpf Konfiguracja firewalla dla systemu OpenBSD
lms-makeoidentconf Konfiguracja oident
lms-sendinvoices Wysyłanie faktur do klientów
lms-makemacs Filtrowanie ruchu na bazie adresów źródłowych MAC
lms-makehosts Generuje plik /etc/hosts
lms-makewarnings Generuje regułki przekierowujące ruch klientów zadłużonych
lms-makemessages Generuje regułki przekierowujące ruch klientów, którym ustawiono wiadomość administracyjną
lms-fping Badanie aktywności komputerów
lms-reminder Przypominanie o zaplanowanych zadaniach z Terminarza
lms-rtparser Backend do Helpdesk'a
lms-teryt Import bazy TERYT

4.3. Opis i konfiguracja

4.3.1. lms-notify

lms-notify jest dobrym sposobem przypominania ludziom o tym że do pracy sieci i łącz konieczne są ich pieniążki. Pozwala on na napisanie kilku[-nastu] plików tekstowych i traktowania ich jako szablonów do mailingu. Skrypt jest wielofunkcyjny, włączenie określonego zadania następuje poprzez zdefiniowanie lokalizacji pliku z szablonem wiadomości. Do wysyłania poczty został zastosowany moduł Mail::Sender.

4.3.1.1. Szablony

W szablonach można używać następujących zmiennych:

  • %date-m - zostanie zastąpione aktualnym miesiącem, licząc od 1 poprzedzone 0, np. 02
  • %date-y - zostanie zastąpione aktualnym rokiem, np. 2003
  • %date_month_name - zostanie zastąpione nazwą bieżącego miesiąca, np. marzec
  • %saldo - zostanie zastąpione aktualnym saldem klienta, np. 535
  • %abonament - zostanie zastąpione kwotą abonamentu jaka jest do danego klienta przypisana, np. 107
  • %b - saldo z zanegowanym znakiem, np. 107
  • %B - saldo z prawdziwym znakiem, np. -107
  • %pin - numer PIN klienta
  • %cid - ID klienta
  • %number - numer dokumentu (tylko w powiadomieniu o fakturze lub nocie obciążeniowej)
  • %value - wartość brutto na fakturze (tylko w powiadomieniu o fakturze)
  • %last_10_in_a_table - wyciąg ostatnich 10 operacji kasowych na koncie klienta (tylko wiadomości e-mail), np.:

Przykład 4-1. Lms-notify: Przykładowy wyciąg 10 ostatnich operacji kasowych

-----------+------------------------------------------------------+---------
2003-02-02 | Abonament za miesiąc 2003/02                         |  107.00
2003-02-01 | Wpłata                                               | -107.00
2003-02-01 | Abonament za miesiąc 2003/02                         |  107.00
2003-02-01 | Wpłata                                               | -321.00
2003-01-31 | Abonament za miesiąc 2003/01                         |  107.00
2003-01-31 | Abonament za miesiąc 2003/01                         |  107.00
2003-01-31 | Abonament za miesiąc 2003/01                         |  107.00
-----------+------------------------------------------------------+---------

Przykład 4-2. Lms-notify: Przykład szablonu

UWAGA! Ta wiadomość została wygenerowana automatycznie.

Uprzejmie informujemy iż na Pani/Pana koncie figuruje zaległość w opłatach za
internet w wysokości %B zł.

Jeżeli porozumieli się już Państwo z administratorami w kwestii opłaty za
bieżący miesiąc czyli %date-m %date-y roku, prosimy o
zignorowanie tej wiadomości.

W wypadku gdy uważają Państwo iż zaległość ta jest nieporozumieniem prosimy o
jak najszybszy kontakt.

Wszelkie informacje na temat Państwa rozliczeń mogą Państwo znaleźć pod
adresem http://www.naszasiec.pl/mojekonto/

Jeżeli chcieliby Państwo uregulować zaległości prosimy o kontakt:

Dział Rozliczeń ASK NaszaSiec

Gwidon Mniejważny
telefon: 0-606666666
e-mail: gwidonm@naszasiec.pl

ps. załączamy ostatnie 10 operacji jakie zostało zarejestrowane przez nasz
system billingowy na Państwa koncie:

Data       | Opis                                                 | Wartość
%last_10_in_a_table

--
Amatorska Sieć Komputerowa NaszaSiec
http://www.naszasiec.pl/
4.3.1.2. Konfiguracja

Konfigurację dla lms-notify można ustalić w pliku lms.ini w sekcji [notify]. Możesz tam ustawić następujące parametry, które mają zastosowanie również dla skryptów lms-notify-sms i lms-notify-messages:

Nazwa Opis Wartość domyślna Przykład
debtors_template (opcjonalny)Lokalizacja pliku z szablonem wiadomości wysyłanej do zadłużonych klientów. Pozostawienie tej opcji pustej wyłączy powiadomienia o zadłużeniu.pustedebtors_template = /etc/lms/debtors.txt
debtors_subject (opcjonalny)Temat wiadomości o zadłużeniu.'Debtors notification'debtors_subject = 'Powiadomienie o zadłużeniu'
invoices_template (opcjonalny)Lokalizacja pliku z szablonem wiadomości z informacją o wystawieniu faktury. Pod uwagę brane są faktury wystawione w ciągu ostatnich 24 godzin od uruchomienia skryptu. Pozostawienie tej opcji pustej wyłączy powiadomienia o nowych fakturach.pusteinvoices_template = /etc/lms/new_invoice.txt
invoices_subject (opcjonalny)Temat wiadomości o nowej fakturze.'New invoice notification'invoices_subject = 'Powiadomienie o wystawieniu faktury'
notes_template (opcjonalny)Lokalizacja pliku z szablonem wiadomości z informacją o wystawieniu noty obciążeniowej. Pod uwagę brane są noty wystawione w ciągu ostatnich 24 godzin od uruchomienia skryptu. Pozostawienie tej opcji pustej wyłączy powiadomienia o nowych notach.pustanotes_template = /etc/lms/new_note.txt
notes_subject (opcjonalny)Temat wiadomości o nowej nocie obciążeniowej.'New debit note notification'notes_subject = 'Powiadomienie o wystawieniu noty obciążeniowej'
deadline_template (opcjonalny)Lokalizacja pliku z szablonem wiadomości wysyłanej do zadłużonych klientów, posiadających przeterminowane (nierozliczone) faktury. Pozostawienie tej opcji pustej wyłączy powiadomienia.pustadeadline_template = /etc/lms/deadline.txt
deadline_subject (opcjonalny)Temat wiadomości o przeterminowanych fakturach.'Invoice deadline notification'deadline_subject = 'Powiadomienie o zaległości'
limit (opcjonalny)Pozwala na ustalenie limitu bilansu poniżej którego do klienta zostanie wysłana wiadomość z informacją o zadłużeniu.0limit = -20

Poniżej przedstawiono opcje dotyczące wyłącznie wiadomości e-mail.

Nazwa Opis Wartość domyślna Przykład
mailfrom (wymagana)Adres e-mail z którego zostanie wysłany e-mail. Proszę pamiętać, że na niektórych MTA (np. exim) konto to musi istnieć w systemie.pustamailfrom = staff@domain.pl
mailfnameNazwa nadawcy maila.pustamailfname = Administratorzy
smtp_hostSerwer SMTP, przez który ma zostać wysłana wiadomość.localhostsmtp_host = smtp.mydomain.pl
smtp_authSposób autoryzacji. Dozwolone wartości: LOGIN, PLAIN, CRAM-MD5, NTLM.pusta (brak autoryzacji)smtp_auth = LOGIN
smtp_userLogin do autoryzacji SMTP.pustysmtp_user = admin
smtp_passHasło do konta zdefiniowanego w opcji smtp_user.pustesmtp_pass = password
debug_email (opcjonalny)Adres e-mail do debugowania. Gdy ustawiony, cała poczta zostaje wysłana na dany email zamiast do klientów. Przydatne do debugowania i sprawdzania czy wszystko działa OK.nie ustawionydebug_email = lexx@domain.pl

4.3.2. lms-notify-sms

lms-notify-sms to odpowiednik lms-notify, służący do wysyłania smsów. Obecnie skrypt wspiera dwie usługi, smstools oraz gnokii. Wyboru usługi dokonuje się w sekcji [sms]. Skrypt jest wielofunkcyjny, włączenie określonego zadania następuje poprzez zdefiniowanie lokalizacji pliku z szablonem wiadomości.

Konfigurację dla lms-notify-sms można ustalić w pliku lms.ini w sekcji [notify-sms], oprócz opcji dostępnych w lms-notify masz do dyspozycji następujące opcje:

Nazwa Opis Wartość domyślna Przykład
service (opcjonalny)Pozwala na wybranie usługi SMS niezależnie od tej, którą podano w sekcji [sms].pustaservice = smstools

4.3.3. lms-notify-messages

lms-notify-messages to odpowiednik lms-notify, służący do ustawiania powiadomień, które będą pojawiać się w przeglądarkach internetowych klientów. Skrypt jest wielofunkcyjny, włączenie określonego zadania następuje poprzez zdefiniowanie lokalizacji pliku z szablonem wiadomości.

Konfigurację dla lms-notify-messages przeprowadza się w pliku lms.ini w sekcji [notify-messages].

4.3.4. lms-cutoff

Skrypt pozwala na odłączenie (a raczej zmianę w bazie danych stanu komputerów na wyłączony) klientów których bilans jest poniżej zadanej wartości. Właściwe odłączanie powinno być realizowane przez generator plików konfiguracyjnych.

Konfigurację dla lms-cutoff możemy ustalić w pliku lms.ini w sekcji [cutoff]. Możemy tam ustawić następujące parametry:

Nazwa Opis Wartość domyślna Przykład
limit (opcjonalny)Pozwala na ustalenie limitu bilansu poniżej którego do bazy danych zostanie zapisany stan odłączony.0limit = -20
message (optional)Jeśli nie jest pusta, wiadomość ta po dołączeniu użytkownika zostanie zapisana do jego rekordu w polu wiadomości administracyjnej. W treści wiadomości można użyć zmiennej %now, która zostanie zamieniona na bieżącą datę oraz zmiennych %b i %B tak jak w skrypcie lms-notify.'Automatic cutoff caused by exceeding of liabilities limit on %now'message = ' '

4.3.5. lms-payments

Skrypt służący do naliczania opłat abonamentowych przypisanych klientom oraz opłat stałych. Ponadto zapisuje dane do faktur. Aby działał poprawnie powinien być uruchamiany codziennie.

Skrypt ten udostępnia trzy opcje do fakturowania, które można ustawić w sekcji [payments] pliku lms.ini:

Nazwa Opis Wartość domyślna Przykład
deadline (opcjonalny)Pozwala na ustalenie terminu płatności w dniach.14deadline = 7
paytype (opcjonalny)Identyfikator rodzaju płatności (1-gotówka, 2-przelew, 3-przelew/gotówka, 4-karta, 5-kompensata, 6-barter, 7-umowa).2 (przelew)paytype = 1

comment (opcjonalny) - Opis pozycji na fakturze za naliczane zobowiązanie.|'Tariff %tariff subscription for period %period'|Przykład: comment = 'Abonament za %current_month w/g taryfy %tariff' Niektóre ze słów kluczowych są zastępowane: * %tariff - nazwa taryfy %period - okres (liczony od dziś do ostatniego dnia cyklu rozliczeniowego, w formacie RRRR/MM/DD) %current_month - okres od pierwszego dnia bieżącego miesiąca do jego końca %current_period - bieżący miesiąc w formacie MM/RRRR %next_period - następny miesiąc w formacie MM/RRRR %desc - opis taryfy

  • settlement_comment (opcjonalny)

Opis pozycji z tytułu wyrównania niepełnego okresu zobowiązania. Domyślnie odpowiada opcji comment Przykład: settlement_comment = 'Wyrównanie za okres %period'

  • suspension_description (opcjonalny)

Tekst dodawany na końcu opisu operacji dla obciążeń zawieszonych. Domyślnie: ' ' Przykład: suspension_description = (zawieszenie)

  • saledate_next_month (opcjonalny)

Włączenie tej opcji spowoduje, że data sprzedaży na fakturze zostanie ustawiona na pierwszy dzień następnego miesiąca. Domyślnie: 0 Przykład: saledate_next_month = 1 Ponadto mamy do dyspozycji jeden przydatny parametr wiersza poleceń –fakedate (-f). Przy jego użyciu można sprawić, aby skrypt działał z podmienioną datą systemową (w formacie YYYY/MM/DD), na przykład –fakedate=2004/10/10.

4.3.6. lms-traffic

Skrypt służy do logowania informacji o ilości danych pobranych i wysłanych przez każdy komputer w sieci lokalnej. W bazie danych zapisywana jest ilość danych w bajtach, numer komputera z bazy lms i znacznik czasu. Od klienta zależy w jakich odstępach dane będą odczytywane. Ponieważ dane odczytywane są z pliku utworzonego przez klienta, nie ma znaczenia z jakiego źródła pochodzą, może to być iptables, ipchains lub program zewnętrzny np. ipfm. Przeglądanie wykresów wykorzystania łącza oraz definiowanie filtrów dostępne jest z głównego menu 'Statystyki'.

4.3.6.1. Instalacja

Przed uruchomieniem lms-traffic należy zadbać o utworzenie pliku z danymi. Zawartość pliku powinna mieć następujący format:

<adres IP> <n_spacji> <upload> <n_spacji> <download>
<adres IP> <n_spacji> <upload> <n_spacji> <download>
...

Skrypt tworzący statystyki należy uruchamiać z taką samą częstotliwością co lms-traffic.

Przykład takiego skryptu dla iptables znajduje się w pliku /sample/traffic_ipt.pl.

Następnie instalujemy skrypt dopisując do crontaba. Oprócz standardowych opcji wiersza poleceń możliwe jest zdefiniowanie lokalizacji pliku z logiem

-f=/plik        położenie i nazwa pliku ze statystykami domyślnie /var/log/traffic.log

Częstotliwość zapisywania danych do bazy ustala użytkownik. Ustawienie jej poniżej 10 minut, może spowodować szybki przyrost ilości rekordów w bazie danych, a co za tym idzie zwiększyć czas oczekiwania na wyświetlenie wyników.

4.3.7. lms-traffic-logiptables

Skrypt służy do logowania informacji o ilości danych pobranych i wysłanych przez każdy komputer z sieci lokalnej, na podstawie liczników iptables. Dane sczytuje z firewalla, tworząc jednocześnie odpowiednie reguły. Zatem, nie jest konieczne ręczne tworzenie reguł iptables, ani wywoływanie skryptu lms-traffic. Konfigurację należy umieścić w sekcji [traffic-logiptables]:

  • outfile

Lokalizacja skryptu z regułami iptables. Domyślnie: /etc/rc.d/rc.stat Przykład: outfile = /etc/rc.d/rc.stat

  • iptables_binary

Lokalizacja programu iptables. Domyślnie: /usr/sbin/iptables Przykład: iptables_binary = /usr/local/sbin/iptables

  • wan_interfaces

Nazwy interfejsów, na których dane mają być zliczane. Domyślnie: niezdefiniowane. Przykład: wan_interfaces = eth0

  • local_ports

Lista portów (źródłowych i docelowych) dla zliczanych pakietów. Domyślnie: niezdefiniowane. Przykład: local_ports = 80

  • script_owneruid

UID właściciela skryptu określonego w 'outfile'. Domyślnie: 0 (root). Przykład: script_owneruid = 0

  • script_ownergid

GID właściciela skryptu określonego w 'outfile'. Domyślnie: 0 (root). Przykład: script_ownergid = 0

  • script_permission

Uprawnienia skryptu określonego w 'outfile'. Domyślnie: 700 (rwx——). Przykład: script_permission = 700

  • networks

Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania pliku. Jeśli nie ustawiono, zostanie stworzony konfig dla wszystkich sieci. Przykład: networks = public-custa public-custb

4.3.8. lms-makedhcpconf

Tworzenie pliku konfiguracyjnego serwera DHCP - dhcpd.conf. Konfigurację skryptu umieszcza się w sekcji [dhcp]:

  • config_file

Lokalizacja pliku wynikowego. Domyślnie: /etc/dhcpd.conf Przykład: config_file = /tmp/dhcpd.conf

  • networks

Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania pliku. Jeśli nie ustawiono, zostanie stworzony konfig dla wszystkich sieci. Przykład: networks = public-custa public-custb

  • customergroups

Lista nazw grup (oddzielonych spacjami), które mają być uwzględnione podczas generowania pliku. Jeśli nie ustawiono, zostanie stworzony konfig dla wszystkich grup. Przykład: customergroups = grupa1 grupa2

  • default_lease_time

Domyślny czas dzierżawy. Domyślnie: 86400. Przykład: default_lease_time = 43200

  • max_lease_time

Maksymalny czas dzierżawy. Domyślnie: 86400. Przykład: max_lease_time = 43200

  • ignore_ddns

Nie generuj wpisu 'ddns-update-style none;' na początku pliku. Przydatne przy starszych (2.2) wersjach demona dhcpd. Domyślnie: wyłączone. Przykład: ignore_ddns = 1

  • log_facility

Ustawienie trybu logowania daemona dhcp. Jeżeli puste to tryb domyślny. Przykład: log_facility = 7

  • authoritative

Dodanie wpisu 'authoritative;' na początku pliku. Domyślnie: wyłączone. Przykład: authoritative = 1

  • script_owneruid

UID właściciela skryptu określonego w 'config_file'. Domyślnie: 0 (root). Przykład: script_owneruid = 0

  • script_ownergid

GID właściciela skryptu określonego w 'config_file'. Domyślnie: 0 (root). Przykład: script_ownergid = 0

  • script_permission

Uprawnienia skryptu określonego w 'config_file'. Domyślnie: 600 (rwx——). Przykład: script_permission = 700

Możesz podać czasy dzierżawy dla konkretnych sieci poprzez stworzenie sekcji [dhcp:nazwasieci] np.:

[dhcp:public-custa] # nazwa sieci małymi literami!
default_lease_time = 3600
max_lease_time     = 3600

Możesz podać gateway, serwer dns, nazwę domeny i wins dla konkretnego hosta poprzez stworzenie sekcji [dhcp:adresip] np.:

[dhcp:213.25.209.216]
domain  = anotherdomain.pl
gateway = 213.25.209.251
dns     = 213.25.209.8
wins    = 213.25.209.10

4.3.9. lms-makeiptables, lms-makeipchains

Para skryptów służących do generowania plików zawierających reguły firewalla. Do utworzonego pliku możesz dołączyć inne wcześniej utworzone pliki, a w końcu nadać mu odpowiednie uprawnienia. Skrypty nie uruchamiają wygenerowanych plików.

Konfigurację dla tych skryptów możesz ustalić w pliku lms.ini w sekcji [iptables] (i odpowiednio [ipchains]). Oba skrypty posiadają te same opcje:

  • networks

Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania pliku firewalla. Jeśli nie ustawiono, zostanie stworzony konfig dla wszystkich sieci. Przykład: networks = public-custa public-custb

  • iptables_binary (ipchains_binary)

Lokalizacja programu iptables (ipchains). Domyślnie: /usr/sbin/iptables (/usr/sbin/ipchains) Przykład: iptables_binary = /usr/local/sbin/iptables

  • script_file

Plik, do którego zapisujemy reguły firewalla. Domyślnie: /etc/rc.d/rc.masq Przykład: script_file = /etc/rc.d/rc.firewall

  • pre_script

Plik wykonywany PO wyczyszczeniu regułek, ale PRZED ustawieniem nowych. Domyślnie: niezdefiniowany. Przykład: pre_script = /etc/rc.d/rc.masq-pre

  • post_script

Plik wykonywany PO ustawieniu regułek. Domyślnie: niezdefiniowany. Przykład: post_script = /etc/rc.d/rc.masq-post

  • forward_to

Lista sieci, dla których włączamy forwarding. Możliwe wartości: „” - pełny forward, „dowolny ciąg” - wyłącz forward, „siec1 siec2” - lista sieci z włączonym forwardingiem. Domyślnie: pełny forward. Przykład: forward_to = public-custa public-custb

  • script_owneruid

UID właściciela pliku. Domyślnie: 0 (root). Przykład: script_owneruid = 0

  • script_ownergid

GID właściciela pliku. Domyślnie: 0 (root). Przykład: script_ownergid = 0

  • script_permission

Uprawnienia pliku skryptu. Domyślnie: 700 (rwx——). Przykład: script_permission = 700

  • snat_address

Adres SNAT. Jeśli nie ustawiono, dla hostów z adresami publicznymi będzie użyte „-j MASQUERADE”. Jeśli ustawiono zostanie użyte „-j SNAT –to xxx.xxx.xxx.xxx”. Dotyczy lms-makeiptables. Domyślnie: nie ustawiony. Przykład: snat_address = 123.123.123.123

  • tcp_redirect_ports (udp_redirect_ports)

Konfiguracja przekierowań w formie port_źródłowy:port_docelowy dla przekierowań na lokalną maszynę dla połączeń wychodzących. Dotyczy lms-makeipchains. Domyślnie: nie ustawione. Przykład: tcp_redirect_ports = 80:3128 25:25

4.3.10. lms-etherdesc

Skrypt służący do generowania pliku zawierającego MAC adresy oraz nazwy hostów pobierane z bazy lms'a. Adresy zapisywane są w formacie 'stripped mac', czyli bez „:”. Tego typu plik wykorzystywany jest przez pakiet iptraf.

Konfigurację tego skryptu zawiera sekcja [ether] w pliku lms.ini:

  • networks

Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania pliku. Jeśli nie ustawiono, zostanie stworzony konfig dla wszystkich sieci. Przykład: networks = public-custa public-custb

  • etherdesc_owneruid

UID właściciela pliku. Domyślnie: 0 (root). Przykład: etherdesc_owneruid = 0

  • etherdesc_file

Lokalizacja pliku. Domyślnie: /var/lib/iptraf/ethernet.desc. Przykład: etherdesc_file = /etc/ethernet.desc

  • etherdesc_ownergid

GID właściciela pliku. Domyślnie: 0 (root). Przykład: etherdesc_ownergid = 0

  • etherdesc_permission

Uprawnienia pliku skryptu. Domyślnie: 600 (rw——-). Przykład: etherdesc_permission = 600

4.3.11. lms-sendinvoices

Skrypt służy do wysyłania pocztą elektroniczną faktur, jako załączników do wiadomości. Faktury generowane są na podstawie szablonu dostępnego w lms-ui, dlatego wymagane jest podanie klienta i hasła do interfejsu www lms-ui.

W odróżnieniu od pozostałych skryptów ten wymaga dodatkowych modułów perla: LWP::UserAgent, MIME::QuotedPrint oraz Mail::Sender.

Konfigurację należy umieścić w sekcji [sendinvoices]:

  • lms_url

Adres do lms-ui. Domyślnie: http://localhost/lms/ Przykład: lms_url = http://lms.mynet.pl

  • lms_user

Login użytkownika. Domyślnie: pusty Przykład: lms_user = admin

  • lms_password

Hasło do lms-ui. Domyślnie: puste Przykład: lms_password = moje_hasło

  • debug_email

Konto pocztowe do testów. Domyślnie: niezdefiniowane. Przykład: debug_email = admin@mynet.pl

  • sender_name

Nadawca listu. Domyślnie: niezdefiniowany. Przykład: sender_name = ASK MyNet

  • sender_email

Adres nadawcy listu. Domyślnie: niezdefiniowany. Przykład: sender_email = admin@mynet.pl

  • mail_subject

Temat wiadomości. Można użyć zmiennej %invoice zastępowanej numerem faktury. Domyślnie: 'Invoice No. %invoice'. Przykład: mail_subject = 'Nowa faktura'

  • mail_body

Treść wiadomości. Można użyć zmiennej %invoice, która zostanie zastąpiona numerem faktury. Domyślnie: 'Attached file with Invoice No. %invoice'. Przykład: mail_body = ''

  • customergroups

Lista nazw grup (oddzielonych spacjami), które mają być uwzględnione podczas wysyłki. Domyślnie: nie ustawiona - wszystkie grupy. Przykład: customergroups = grupa1 grupa2

  • smtp_host

Serwer SMTP, przez który ma zostać wysłana wiadomość. Domyślnie: localhost Przykład: smtp_host = smtp.mydomain.pl

  • smtp_auth

Sposób autoryzacji. Dozwolone wartości: LOGIN, PLAIN, CRAM-MD5, NTLM. Domyślnie: pusta (brak autoryzacji) Przykład: smtp_auth = LOGIN

  • smtp_user

Login do autoryzacji SMTP. Domyślnie: pusty Przykład: smtp_user = admin

  • smtp_pass

Hasło do konta zdefiniowanego w opcji smtp_user. Domyślnie: puste Przykład: smtp_pass = password

Ponadto mamy do dyspozycji jeden przydatny parametr wiersza poleceń –fakedate (-f). Przy jego użyciu można sprawić, aby skrypt działał z podmienioną datą systemową (w formacie YYYY/MM/DD), na przykład –fakedate=2004/10/10.

4.3.12. lms-makemacs

Skrypt służący do generowania pliku zawierającego reguły netfiltra filtrujące ruch klientów na bazie testu adresu źródłowego MAC. Dla każdego komputera generowana jest jedna reguła dla tablicy nat, zadanego łańcucha, testująca adres źródłowy IP pakietu oraz adres źródłowy MAC ramki. Jeśli testy zakończą się pozytywnie następuje powrót do łańcucha nadrzędnego za pomocą decyzji RETURN. Na końcu listy reguł dodawane są 2 reguły przekierowujące ruch http oraz webcache na podany w konfiguracji adres IP oraz port (z wykorzystaniem decyzji DNAT). Przekierowanie może odbywać się na wirtualny host www z zawiadomieniem klienta o zaległościach finansowych bez możliwości wyłączenia zawiadomienia. Na końcu dodawana jest reguła blokująca jakikolwiek inny ruch.

Konfigurację tego skryptu zawiera sekcja [macs] w pliku lms.ini:

  • networks

Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich sieci. Przykład: networks = public-custa public-custb

  • customergroups

Lista nazw grup klientów (oddzielonych spacjami), które mają być uwzględnione podczas generowania pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich grup klientów. Przykład: customergroups = osiedle1 osiedle2

  • iptables_binary

Lokalizacja programu iptables. Domyślnie: /sbin/iptables Przykład: iptables_binary = /usr/local/sbin/iptables

  • config_owneruid

UID właściciela pliku. Domyślnie: 0 (root). Przykład: config_owneruid = 0

  • config_file

Lokalizacja pliku. Domyślnie: /etc/rc.d/rc.macs. Przykład: config_file = /etc/conf.d/rc.macs

  • config_ownergid

GID właściciela pliku. Domyślnie: 0 (root). Przykład: config_ownergid = 0

  • config_permission

Uprawnienia pliku skryptu. Domyślnie: 700 (rwx——). Przykład: config_permission = 700

  • chain

Łańcuch do którego będą dodawane generowane reguły. Domyślnie: MACS. Przykład: chain = TESTY_MACOW

  • redirect_address

Adres IP + port na który będzie przekierowywany niesklasyfikowany ruch http i webcache. Domyślnie: 127.0.0.1:80. Przykład: redirect_address = 192.168.1.1:3000

  • lock_noaccess

Czy generować regułki testujące z decyzją RETURN dla komputerów, które są odłączone. Domyślnie: 0 (reguły są generowane) Przykład: lock_noaccess = 1

4.3.13. lms-makehosts

Skrypt służący do generowania pliku /etc/hosts zawierającego odwzorowania nazw komputerów na adresy IP.

Konfigurację tego skryptu zawiera sekcja [hosts] w pliku lms.ini:

  • networks

Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich sieci. Przykład: networks = public-custa public-custb

  • customergroups

Lista nazw grup klientów (oddzielonych spacjami), które mają być uwzględnione podczas generowania pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich grup klientów. Przykład: customergroups = osiedle1 osiedle2

  • config_owneruid

UID właściciela pliku. Domyślnie: 0 (root). Przykład: config_owneruid = 0

  • config_file

Lokalizacja pliku. Domyślnie: /etc/hosts. Przykład: config_file = /etc/hosts

  • config_ownergid

GID właściciela pliku. Domyślnie: 0 (root). Przykład: config_ownergid = 0

  • config_permission

Uprawnienia pliku skryptu. Domyślnie: 644 (rw-r–r–). Przykład: config_permission = 600

  • config_header

Pierwsza linia w pliku /etc/hosts. Domyślnie: 127.0.0.1 localhost localhost.localdomain. Przykład: config_header = 192.168.1.1 serwer serwer.nasza-siec

4.3.14. lms-makewarnings

Skrypt służący do generowania pliku zawierającego reguły netfiltra przekierowujące ruch http i webcache klientów o saldzie mniejszym lub równym od zadanego na zadany adres IP i port (wykorzystywana jest tablica nat, testy adresów źródłowych IP oraz decyzja DNAT).

Konfigurację tego skryptu zawiera sekcja [warnings] w pliku lms.ini:

  • networks

Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich sieci. Przykład: networks = public-custa public-custb

  • customergroups

Lista nazw grup klientów (oddzielonych spacjami), które mają być uwzględnione podczas generowania pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich grup klientów. Przykład: customergroups = osiedle1 osiedle2

  • iptables_binary

Lokalizacja programu iptables. Domyślnie: /sbin/iptables Przykład: iptables_binary = /usr/local/sbin/iptables

  • config_owneruid

UID właściciela pliku. Domyślnie: 0 (root). Przykład: config_owneruid = 0

  • config_file

Lokalizacja pliku. Domyślnie: /etc/rc.d/rc.warnings. Przykład: config_file = /etc/conf.d/rc.warnings

  • config_ownergid

GID właściciela pliku. Domyślnie: 0 (root). Przykład: config_ownergid = 0

  • config_permission

Uprawnienia pliku skryptu. Domyślnie: 700 (rwx——). Przykład: config_permission = 700

  • chain

Łańcuch do którego będą dodawane generowane reguły. Domyślnie: WARNINGS. Przykład: chain = OSTRZEZENIA

  • redirect_address

Adres IP + port na który będzie przekierowywany ruch http i webcache pochodzący z hostów dla których ma być włączone ostrzeżenie o zaległościach finansowych. Domyślnie: 127.0.0.1:80. Przykład: redirect_address = 192.168.1.1:3001

  • limit

Saldo klienta przy którym dla wszystkich komputerów klienta generowane są regułki przekierowujące ruch. Domyślnie: 0 Przykład: limit = -85

4.3.15. lms-makemessages

Skrypt służący do generowania pliku zawierającego reguły netfiltra przekierowujące ruch http i webcache klientów dla których zostało włączone przekazywanie wiadomości administracyjnej (ostrzeżenia) na zadany adres IP i port (wykorzystywana jest tablica nat, testy adresów źródłowych IP oraz decyzja DNAT). Konfigurację tego skryptu zawiera sekcja [messages] w pliku lms.ini: networks Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas generowania pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich sieci. Przykład: networks = public-custa public-custb customergroups Lista nazw grup klientów (oddzielonych spacjami), które mają być uwzględnione podczas generowania pliku. Jeśli nie ustawiono, zostanie stworzony plik konfiguracyjny dla wszystkich grup klientów. Przykład: customergroups = osiedle1 osiedle2 iptables_binary Lokalizacja programu iptables. Domyślnie: /sbin/iptables Przykład: iptables_binary = /usr/local/sbin/iptables config_owneruid UID właściciela pliku. Domyślnie: 0 (root). Przykład: config_owneruid = 0 config_file Lokalizacja pliku. Domyślnie: /etc/rc.d/rc.messages. Przykład: config_file = /etc/conf.d/rc.messages config_ownergid GID właściciela pliku. Domyślnie: 0 (root). Przykład: config_ownergid = 0 config_permission Uprawnienia pliku skryptu. Domyślnie: 700 (rwx——). Przykład: config_permission = 700 chain Łańcuch do którego będą dodawane generowane reguły. Domyślnie: MESSAGES. Przykład: chain = WIADOMOSCI redirect_address Adres IP + port na który będzie przekierowywany ruch http i webcache pochodzący z hostów dla których ma być włączona wiadomość administracyjna. Domyślnie: 127.0.0.1:80. Przykład: redirect_address = 192.168.1.1:3002 4.3.16. lms-fping Skrypt zapisuje do bazy informacje o aktywności komputerów. Do skanowania wykorzystywany jest szybki program fping (z opcjami -ar1). Najpierw tworzona jest lista hostów, a następnie, po wywołaniu fping'a, komputerom włączonym zostaje przypisana data i czas skanowania. Dzięki temu mamy w bazie informacje kiedy dany komputer był ostatnio włączony. Konfigurację tego skryptu zawiera sekcja [fping] w pliku lms.ini: networks Lista nazw sieci (oddzielonych spacjami), które mają być uwzględnione podczas skanowania. Jeśli nie ustawiono przeskanowane zostaną wszystkie komputery. Przykład: networks = public-custa public-custb fping_binary Lokalizacja programu fping. Domyślnie: /usr/sbin/fping Przykład: fping_binary = /usr/local/sbin/fping temp_file Lokalizacja pliku tymczasowego na listę hostów, który po wykonaniu skryptu zostaje usunięty. Domyślnie: /tmp/fping_hosts. Przykład: temp_file = /tmp/hosts 4.3.17. lms-reminder Skrypt służy do przypominania klientom o zaplanowanych na dany dzień zadaniach. Lista zdarzeń przypisanych w Terminarzu danemu klientowi w bieżącym dniu zostaje wysłana na jego adres e-mail. Konfigurację dla lms-reminder umieszcza się w pliku lms.ini w sekcji [reminder]. Możesz tam ustawić następujące parametry: mailsubject (wymagany) Pozwala na ustalenie tematu e-maila wysyłanego do klienta. Domyślnie: nie ustawione. Przykład: mailsubject = 'Terminarz z LMSa' mailfrom (wymagany) Adres e-mail z którego zostanie wysłany e-mail. Proszę pamiętać, że na niektórych MTA (np. exim) konto to musi istnieć w systemie. Domyślnie nieustawione. Przykład: mailfrom = staff@domain.pl mailfname (wymagany) Nazwa nadawcy maila. Przykład: mailfname = LMS smtp_host Serwer SMTP, przez który ma zostać wysłana wiadomość. Domyślnie: localhost Przykład: smtp_host = smtp.mydomain.pl smtp_auth Sposób autoryzacji. Dozwolone wartości: LOGIN, PLAIN, CRAM-MD5, NTLM. Domyślnie: pusta (brak autoryzacji) Przykład: smtp_auth = LOGIN smtp_user Login do autoryzacji SMTP. Domyślnie: pusty Przykład: smtp_user = admin smtp_pass Hasło do konta zdefiniowanego w opcji smtp_user. Domyślnie: puste Przykład: smtp_pass = password debug_email (opcjonalny) Adres e-mail do debugowania. Gdy ustawiony, cała poczta zostaje wysłana na dany email zamiast do klientów. Przydatne do debugowania i sprawdzania czy wszystko działa OK. Domyślnie: nie ustawiony. Przykład: debug_email = alec@domain.pl 4.3.18. lms-rtparser Jest to tzw. backend dla systemu Helpdesk, czyli skrypt który współpracując z serwerem pocztowym zapisuje do bazy danych wszystkie wiadomości skierowane na adresy Helpdesk'a. Skrypt pobiera z wejścia wiadomość pocztową, parsuje zawartość i umieszcza zgłoszenie w kolejce, wysyłając do zgłaszających potwierdzenie przyjęcia wiadomości. W temacie potwierdzenia znajduje się symbol zgłoszenia. Podczas parsowania wiadomości następuje, na podstawie tematu wiadomości, próba rozpoznania czy wiadomość nie jest odpowiedzią na inną wiadomość z już przypisanym numerem zgłoszenia. Od wiadomości zostają odłączone załączniki i umieszczone w katalogu zdefiniowanym w opcji mail_dir. Oprócz modułów Perla standardowo wymaganych przez resztę skryptów, należy zainstalować także moduły MIME::Parser i MIME::Words z pakietu MIME-Tools oraz Mail::Sender i Text::Iconv. Skrypt można uruchamiać na wiele sposobów. Jednym z nich jest stworzenie skryptu powłoki, który odczytując skrzynkę pocztową wywoła lms-rtparser dla każdego maila. Wygodniejszym zastosowaniem jest jednak zintegrowanie go z serwerem pocztowym. Poniżej przedstawiono sposób podłączenia go do postfixa przy użyciu opcji header_checks. # plik main.cf: header_checks = regexp:/etc/postfix/header_checks

# plik header_checks /^To:.*adres@domena.*/ FILTER filter:dummy

# plik master.cf: filter unix - n n - 10 pipe

  1. flags=Rq user=nobody argv=/path/to/lms-rtparser

Powyższy sposób działa dla postfixa w wersjach nowszych od 2.0. Wcześniejsze wersje nie obsługują FILTER w header_checks. Z tym problemem można sobie poradzić używając procmaila: # plik main.cf mailbox_command = /usr/bin/procmail

# w katalogu domowym klienta, którego maile mają być obsługiwane przez HelpDesk: # plik .forward „|IFS=' ' && exec /usr/bin/procmail -f - || exit 75 #YOUR_USERNAME”

# plik .procmailrc :0 c

  • ^To.*adres@domena

| /bin/lms-rtparser

:0 A $DEFAULT Kolejny listing to przykład podłączenia parsera do Exima przy użyciu filtrów systemowych: # plik exim.conf

system_filter_pipe_transport = address_pipe

# plik system_filter.txt

if $recipients is „adres_kolejki@domena.pl” then

   pipe "/sciezka/do/lms-rtparser -q id_kolejki"

endif Notatka Jeżeli chcesz aby wiadomości wprowadzane poprzez lms-ui były kierowane do parsera, zamiast bezpośrednio zapisywane do bazy, powinieneś włączyć opcję konfiguracyjną helpdesk_backend_mode w sekcji [phpui]. Konfigurację tego skryptu zawiera sekcja [rt] w pliku lms.ini: default_queue Numer ID kolejki, do której trafią zgłoszenia. Jeśli nie podano, Kolejka zostanie odszukana na podstawie adresu odbiorcy maila. Opcja ta może zostać nadpisana przy pomocy parametru -q przy uruchomieniu skryptu. Domyślnie: niezdefiniowana. Przykład: default_queue = mail_from Nadawca potwierdzenia (adres). Jeśli nie zdefiniowano, zostanie użyty adres kolejki do której zapisano zgłoszenie. Domyślnie: pusty. Przykład: mail_from = rt@net.pl mail_from_name Nadawca potwierdzenia (nazwa). Domyślnie: niezdefiniowana. Przykład: mail_from_name = 'BOK SuperLAN' autoreply_subject Temat potwierdzenia. Tu można korzystać ze zmiennych %tid - identyfikator zgłoszenia i %subject - temat zgłoszenia. Domyślnie: „[RT#%tid] Receipt of request '%subject'”. Przykład: autoreply_subject = „[RT#%tid] Potwierdzenie odbioru zgłoszenia o temacie '%subject'” autoreply_body Treść potwierdzenia. Tu można korzystać ze zmiennych: %tid - identyfikator zgłoszenia i %subject - temat zgłoszenia. Domyślnie: „Your request was registered in our system.\nTo this request was assigned ticket identifier RT#%tid.\nPlease, place string [RT#%tid] in subject field of any\nmail relating to this request.\n.” Example: autoreply_body = „Państwa zgłoszenie zostało zarejestrowane w naszym systemie.\nZgłoszeniu został nadany numer: RT#%tid.\nW korespondencji związanej z tym zgłoszeniem prosimy podawać w temacie ciąg znaków [RT#%tid].\n” smtp_host Serwer SMTP, przez który ma zostać wysłana wiadomość. Domyślnie: localhost Przykład: smtp_host = smtp.mydomain.pl smtp_auth Sposób autoryzacji. Dozwolone wartości: LOGIN, PLAIN, CRAM-MD5, NTLM. Domyślnie: pusta (brak autoryzacji) Przykład: smtp_auth = LOGIN smtp_user Login do autoryzacji SMTP. Domyślnie: pusty Przykład: smtp_user = admin smtp_pass Hasło do konta zdefiniowanego w opcji smtp_user. Domyślnie: puste Przykład: smtp_pass = password mail_dir Katalog w którym zostaną zapisane załączniki. Katalog ten powinien być dostępny dla apache'a i klienta uruchamiającego lms-rtparser. Gdy nie ustawiono, załączniki zostaną utracone. Domyślnie: niezdefiniowany. Przykład: mail_dir = /usr/local/lms/mail tmp_dir Katalog tymczasowy. Domyślnie zostanie użyty katalog zdefiniowany w zmiennej systemowej lub /tmp. Przykład: tmp_dir = /home/user/tmp auto_open Włączenie tej opcji spowoduje, że w momencie odebrania wiadomości dotyczącej zgłoszenia zamkniętego (lub martwego) zgłoszenie to zostanie otwarte. Domyślnie: wyłączone. Przykład: auto_open = 1 newticket_notify Włączenie tej opcji spowoduje wysyłanie powiadomień o nowych zgłoszeniach do użytkowników którzy mają prawa do konkretnej kolejki. Domyślnie: wyłączone. Przykład: newticket_notify = 1 lms_url Do powiadomienia o nowym zgłoszeniu zostaje załączony link do tego zgłoszenia w LMS-UI, aby użytkownik mógł szybko przejść do tego zgłoszenia. Domyślnie: http://localhost/lms/. Przykład: lms_url = https://lms.domena.pl/ include_customerinfo Do powiadomienia o nowym zgłoszeniu zostają załączone podstawowe dane klienta, jeżeli został on rozpoznany po adresie mailowym. Domyślnie: włączona. Przykład: include_customerinfo = 0 4.3.19. lms-teryt Skrypt służący do importu i aktualizacji danych bazy TERYT. Zawiera również możliwość pobrania plików bazy z Internetu, a także procedurę przypisywania identyfikatorów TERYT do istniejących komputerów, które mają zdefiniowany adres ale nie mają przypisanego TERYTu. Skrypt zawiera następujące opcje uruchomieniowe, które można łączyć: -f, –fetch Włącza procedurę pobierania (i rozpakowania) plików bazy TERYT z Internetu. Wymagane jest umożliwienie połączenia HTTP z serwerem określonych w opcji 'url' oraz zainstalowanie programu unzip. -l, –list=<lista> Zawęża działanie opcji importu/aktualizacji do określonych województw. Podobnie jak w opcji konfiguracyjnej 'state_list' podajemy tutaj numeryczne identyfikatory oddzielone przecinkami. Ze względu na duży rozmiar całej bazy, wskazane jest ograniczenie się tylko do wybranych województw. Identyfikatory można znaleźć w pliku TERC.xml. 2 - dolnośląskie

4 - kujawsko-pomorskie
6 - lubelskie
8 - lubuskie
10 - łódzkie
12 - małopolskie
14 - mazowieckie
16 - opolskie
18 - podkarpackie
20 - podlaskie
22 - pomorskie
24 - śląskie
26 - świętokrzyskie
28 - warmiśko-mazurskie
30 - wielkopolskie
32 - zachodniopomorskie

-u, –update Import danych do bazy LMSa. Jeśli baza była już wcześniej importowana, nastąpi aktualizacja bazy. -m, –merge Przypisanie identyfikatorów TERYT dla komputerów/urządzeń, które nie zostały jaszcze przypisane, ale posiadają wpisany adres lokalizacji. Algorytm jest dość prosty i nie ma pewności, że wszystkie adresy zostaną rozpoznane. Konfigurację tego skryptu zawiera sekcja [teryt] w pliku lms.ini: url Adres strony pobierania plików bazy TERYT. Domyślnie zawiera poniższy link. Przykład: url = http://www.stat.gov.pl/broker/access/prefile/listPreFiles.jspa dir Katalog w którym, są przechowywane rozpakowane pliki (xml) bazy TERYT. W tym katalogu zostaną też zapisane pobrane pliki. Domyślnie: katalog uruchomienia skryptu. Przykład: dir = /var/lib/teryt unzip_binary Lokalizacja programu unzip. Domyślnie: /usr/bin/unzip. Przykład: unzip_binary = /sbin/unzip state_list Lista identyfikatorów województw, oddzielonych przecinkami, które będą brane pod uwagę podczas importu. W celu minimalizacji rozmiaru bazy danych i czasu działania skryptu najlepiej ograniczyć się do wybranych województw. Przykład: state_list = 2

skrypty.1354702123.txt.gz · ostatnio zmienione: 2012/12/05 00:00 (edycja zewnętrzna)