LMS-MGC to "magiczny" generator plików konfiguracyjnych. Przy odrobinie wysiłku można stworzyć przy jego pomocy dowolnego rodzaju plik konfiguracyjny (np. generujący odpowiednie strefy dla DNS)
Właściwa konfiguracja dotycząca generatorów poszczególnych plików konfiguracyjnych jest umieszczana w sekcji mgc i pochodnych. W samej sekcji mgc możemy użyć następującego parametru:
Teraz, każda instancja ma swoją nazwę i jej konfigruację tworzy się umieszczając sekcję o nazwie [mgc:nazwa], czyli przykładowo: [mgc:mydaemon]
-
outfile
Definiuje plik do którego ma być zapisany wynik działania bierzącej instancji (jeżeli ta zmienna zmienna będzie nie ustawiona, instancja się zakończy)
Przykład:
outfile = /etc/somefile
-
append
Pozwala ustawić aby wynik działania instancji nie nadpisywał pliku wynikowego, lecz został dopisany na jego końcu
Przykład:
append = 1
-
outfile_perm
Pozwala na ustawienie praw dostępu do pliku wyjściowego (domyślnie 600)
Przykład:
outfile_perm = 700
-
outfile_owner
Pozwala na ustawienie właściciela pliku wyjściowego (domyślnie 0)
Przykład:
outfile_owner = 0
Uwaga!:
Właściciel musi być podany numerycznie!
-
outfile_group
Pozwala na ustawienie grupy pliku wyjściowego (domyślnie 0)
Przykład:
outfile_group = 0
Uwaga!:
Grupa musi być podana numerycznie!
-
header_file
Pozwala na umieszczenie w pliku wynikowym zawarości innego pliku jako nagłówek (domyślnie nie ustawione)
Przykład:
header_file = /etc/lms/myservice_header
-
header
Pozwala na umieszczenie w pliku wynikowym zawartości zmiennej jako nagłówka (domyślnie puste)
Przykład:
header = option1 = bla\noption2 = blabla
Notatka:
Znak \n został tu użyty jako seperator linii. Końcowe \n nie jest wymagane.
-
networks
Pozwala ustalić które z naszych sieci będą uwzględniane w pliku konfiguracyjnym (domyślnie wszystkie)
Przykład:
networks = cust1-publ cust2-publ cust3-priv
Notatka:
Teraz mgc pobiera kolejne sieci i wykonuje w kółko następujące czynności:
-
network_header
Generuje nagłówek dla każdej sieci (domyślnie puste):
Przykład:
network_header = network %ADDR/%MASK { # Config section for %NAME
-
dst_networks
Pozwala ustawić sieci docelowe, czyli takie dla których będzie przetwarzany parametr: dst_network_header (domyślnie wszystkie):
Przykład:
dst_networks = main coalloc
-
dst_network_header
Pozwala ustawić nagłówek dla sieci docelowych
Przykład:
dst_network_header = \tallow to %DADDR/%DMASK;
-
network_body
Parametr jest przetwarzany po wysłaniu nagłówków dla sieci, a przed rozpoczęciem analizy adresów IP
Przykład:
network_body = \tnodes {
Notatka:
Teraz MGC rozpocznie przetwarzanie kolejnych adresów IP. Robi to w dosyć specyficzny sposób. Tj. oblicza kolejny adres IP, i kolejno sprawdza:
-
allnodes
Pozwala na ustawienie regułki przetwarzanej dla każdego kolejnego adresu IP.
Przykład:
allnodes = ??
-
allexistnodes
Pozwala na ustawienie regułki przetwarzanej dla każdego kolejnego adresu IP który jest używany.
Przykład:
allexistnodes = ??
-
ignore
Pozwala na ustawienie listy adresów w postaci adres/prefix lub adres/maska oddzielanej spacjami dla której ma być ignorowane generowanie
Przykład:
ignore = ??
-
grantednode_publ
Jest przetwarzana gdy dany adres komputer z danym adresem IP istnieje, ale w lms-ui ma status "podłączony" (regułka przetwarzana dla adresów publicznych)
Przykład:
grantednode_publ = \t\tnode %NAME (%IP/%MAC) unique %ID;
-
grantednode_prv
Jest przetwarzana gdy dany adres komputer z danym adresem IP istnieje, ale w lms-ui ma status "podłączony" (regułka przetwarzana dla adresów prywatnych)
Przykład:
grantednode_prv = \t\tnode %NAME (%IP/%MAC) unique %ID;
-
deniednode_publ
Jest przetwarzana gdy dany adres komputer z danym adresem IP istnieje, ale w lms-ui ma status "odłączony" (regułka przetwarzana dla adresów publicznych)
Przykład:
deniednode_publ = node %NAME (%IP/%MAC) unique %ID deny;
-
deniednode_prv
Jest przetwarzana gdy dany adres komputer z danym adresem IP istnieje, ale w lms-ui ma status "odłączony" (regułka przetwarzana dla adresów prywatnych)
Przykład:
deniednode_prv = node %NAME (%IP/%MAC) unique %ID deny;
-
dhcpnode_publ
Jest przetwarzana gdy dany adres IP zawiera się w klasie DHCP (regułka przetwarzana dla adresów publicznych)
Przykład:
dhcpnode_publ = node unknown (%IP) reject;
-
dhcpnode_prv
Jest przetwarzana gdy dany adres IP zawiera się w klasie DHCP (regułka przetwarzana dla adresów prywatnych)
Przykład:
dhcpnode_prv = node unknown (%IP) reject;
-
freeip_publ
Jest przetwarzana gdy dany adres IP nie jest przypisany do żadnego komputera (regułka przetwarzana dla adresów publicznych)
Przykład:
freeip_publ = node unknown (%IP) lock_as_unused;
-
freeip_prv
Jest przetwarzana gdy dany adres IP nie jest przypisany do żadnego komputera (regułka przetwarzana dla adresów prywatnych)
Przykład:
freeip_prv = node unknown (%IP) lock_as_unused;
-
default_publ
Regułka domyślna. Jest przetwarzana gdy adres nie zostanie przetworzony przez żadną regułkę grantednode lub deniednode (regułka przetwarzana dla adresów publicznych)
Przykład:
default_publ = node unknown (%IP) lock_as_intruder;
-
default_prv
Regułka domyślna. Jest przetwarzana gdy adres nie zostanie przetworzony przez żadną regułkę grantednode lub deniednode (regułka przetwarzana dla adresów prywatnych)
Przykład:
default_publ = node unknown (%IP) lock_as_intruder;
Notatka:
lms-mgc sam rozpoznaje który adres należy do klasy publicznej, a który do prywatnej.
-
network_footer
Pozwala na ustawienie stopki dla właśnie przetwarzanej sieci
Przykład:
network_footer = ??
-
footer_file
Pozwala na umieszczenie w pliku wynikowym zawarości innego pliku jako stopka (domyślnie nie ustawione)
Przykład:
footer_file = /etc/lms/myservice_footer
-
footer
Pozwala na umieszczenie w pliku wynikowym zawartości zmiennej jako stopki (domyślnie puste)
Przykład:
footer = # End.
-
post_exec
Komenda do wywołania po wygenerowaniu pliku konfiguracyjnego
Przykład:
post_exec = killall -HUP mydaemon
-
Przykład:
Oprócz tego w części opcji konfiguracyjnych możemy używać następujących zmiennych:
-
%IP - zostanie rozwinięte do adresu IP
-
%ID - ID sieci w bazie
-
%MAC - zostanie rozwinięte do adresu MAC karty sieciowej
-
%OWNER - właściciel komputera
-
%NAME - nazwa sieci dużymi znakami
-
%name - nazwa sieci małymi znakami
-
%UPRATE - limit transferu dla danych wychodzących
-
%DOWNRATE - limit transferu dla danych przychodzących
-
%1 %2 %3 %4 - kolejne oktety (od lewej) adresu IP
-
%ADDR - adres sieci
-
%GATE - brama sieci
-
%DNS - serwer DNS tej sieci
-
%DOMAIN - domena tej sieci
-
%WINS - adres serwera WINS dla tej sieci
-
%DHCPS - pierwszy adres DHCP tej sieci
-
%DHCPE - ostatni adres DHCP tej sieci
-
%DATE - data w formacie YYYYMMDD;
-
%TIME - czas w formacie HHMM;
-
%TIMES - czas w formacie HHMMSS;
-
%UTIME - czas w formacie unix timestamp;