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.
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/
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:
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. Domyślnie: pusta
Przykład: debtors_template = /etc/lms/debtors.txt
debtors_subject (opcjonalny)
Temat wiadomości o zadłużeniu. Domyślnie: 'Debtors notification'
Przykład: 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. Domyślnie: pusta
Przykład: invoices_template = /etc/lms/new_invoice.txt
invoices_subject (opcjonalny)
Temat wiadomości o nowej fakturze. Domyślnie: 'New invoice notification'
Przykład: 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. Domyślnie: pusta
Przykład: notes_template = /etc/lms/new_note.txt
notes_subject (opcjonalny)
Temat wiadomości o nowej nocie obciążeniowej. Domyślnie: 'New debit note notification'
Przykład: 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. Domyślnie: pusta
Przykład: deadline_template = /etc/lms/deadline.txt
deadline_subject (opcjonalny)
Temat wiadomości o przeterminowanych fakturach. Domyślnie: 'Invoice deadline notification'
Przykład: 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. Domyślnie: 0
Przykład: limit = -20
Poniżej przedstawiono opcje dotyczące wyłącznie wiadomości e-mail.
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. Domyślnie: pusta.
Przykład: mailfrom = staff@domain.pl
mailfname
Nazwa nadawcy maila. Domyślnie: pusta.
Przykład: mailfname = Administratorzy
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 = lexx@domain.pl
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:
service (opcjonalny)
Pozwala na wybranie usługi SMS niezależnie od tej, którą podano w sekcji [sms]. Domyślnie: pusta
Przykład: service = smstools
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].
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:
limit (opcjonalny)
Pozwala na ustalenie limitu bilansu poniżej którego do bazy danych zostanie zapisany stan odłączony. Domyślnie: 0
Przykład: limit = -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. Domyślnie: 'Automatic cutoff caused by exceeding of liabilities limit on %now'
Przykład: message = ''
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:
deadline (opcjonalny)
Pozwala na ustalenie terminu płatności w dniach. Domyślnie: 14
Przykład: deadline = 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). Domyślnie: 2 (przelew)
Przykład: paytype = 1
comment (opcjonalny)
Opis pozycji na fakturze za naliczane zobowiązanie
Domyślnie: 'Tariff %tariff subscription for period %period'
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
%prev_period - poprzedni miesiąc w formacie MM/RRRR
%desc - opis taryfy
Przykład: comment = 'Abonament za %current_month w/g taryfy %tariff'
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.
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'.
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. |
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
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 = 3600Moż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
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
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
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
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
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
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
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
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
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
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 -flags=Rq user=nobody argv=/path/to/lms-rtparserPowyż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
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
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
Poprzedni | Spis treści | Następny |
Lista dostępnych skryptów | Początek rozdziału | Generator plików konfiguracyjnych (lms-mgc) |