6.2.8. Hostfile
6.2.8.1. Opis
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.
6.2.8.2. Konfiguracja
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