orm@doc-tcpip.org | Erstellt: August 2003 - Letzte Modifikation: Dezember 2003 |
Wenn man die zu IPsec gehörenden Filesets (bos.net.ipsec.*) installiert, dann taucht ein neues Device auf; und zwar für jede installierte IP Version (IPv4 und IPv6). Das sieht dann so aus:
root # lsdev -Cc ipsec ipsec_v4 Available IP Version 4 Security Extension
Ist dieses Device nicht vorhanden, so muß es angelegt werden (was bei der Installation automatisch erfolgt). Direkt darauf sollte man die Filterregeln initialisieren, entweder indem man alles verbietet oder alles erlaubt:
root # mkdev -l ipsec -t 4 root # mkfilt -v 4 -u -z P
Ob es richtig installiert ist, kann mit dem Kommando ipsecstat geprüft werden. Als Ausgabe erhält man die angelegten Devices, die vorhandenen Kryptografischen Algorithmen sowie die aktuelle Statistik. Sollte IPSec noch nicht konfiguriert sein, dann erscheint statt der Statistik eine entsprechende Nachricht.
root # ipsecstat IPSec Devices: ipsec_v4 Available ipsec_v6 Not Found Authentication Algorithm: HMAC_MD5 -- Hashed MAC MD5 Authentication Module HMAC_SHA -- Hashed MAC SHA Hash Authentication Module KEYED_MD5 -- Keyed MD5 Hash Authentication Module Encryption Algorithm: NULL -- Null Encryption Algorithm module IPSec Statistics - Total incoming packets: 19011 Incoming AH packets: 0 ...... gekürzt ...... Tunnel cache entries deleted: 0
Die Filterregeln und ihren Status sieht man mit dem lsfilt-Befehl:
root # lsfilt -v 4 -a -OHier werden alle Regeln, die IPv4 betreffen und als active geflaggt sind, angezeigt. Es können einzelne Regelen definiert sein, ohne zugleich aktiv zu sein. Diese sieht man mit folgendem Befehl:
Die Filterregeln haben einen Status (active/inactive) und können entsprechend des Status aktiviert oder deaktiviert werden. Das geschieht mit dem mkfilt-Befehl. Hier werden alle aktiven Filterregeln deaktiviert:
root # mkfilt -v 4 -d Filter support deactivated at 08:28:08 on 03/21/03
Damit verhält sich die Maschine wieder wie vor der Installation der IPSec Filter. Will man den Filter-Support wieder starten, nutzt man das Flag -u: /usr/sbin/mkfilt -v 4 -u.
Es ist auch möglich, die Aktion der Default-Filterregel zu ändern, also permit/deny zu tauschen. Das wird durch den Schalter -z veranlasst.
Das Logging wird mit dem Schalter -g
geschaltet:
/usr/sbin/mkfilt -g start/stop
Dazu muß allerdings die Filterregel entsprechend
eingerichtet worden sein (Log-Flag auf yes).
Die Filterregeln können einzeln oder zusammen gelöscht werden (Kommando rmfilt).
# Löschen der Regel Nummer 3 /usr/sbin/rmfilt -v 4 -n '3' # Löschen aller Regeln /usr/sbin/rmfilt -v 4 -n 'all'Die vom System eingerichtenen Filter werden dabei nicht gelöscht.
Die Filterregeln können in ein File exportiert und aus diesem wieder importiert werden. Das File kann man editieren.
Standard Regeln werden nicht exportiert. Es muß also eine neue DENY Regel eingerichtet werden. Man kann beim Export die IP-Adressen und Ports von Quelle und Ziel vertauschen lassen - das ist sehr praktisch, wenn man Tunnels einrichtet.
Der Export aller Filter ohne Vertauschen
wird so gemacht: expfilt -v 4 -f '/tmp' -r .
Es ist natürlich auch möglich, gezielt Regeln
(z.B. für einen Tunnel zu exportieren:
/usr/sbin/expfilt -v 4 -f '/tmp' -l '3,4,9'
Hier werden die Regeln 3, 4 und 9 der IPv4-Regeln nach /tmp exportiert. Möchte man alle Regeln exportieren (z.B. zur Sicherung), dann muß der Schalter -l weggelassen werden.
Der Import erfolgt in der Regel pro Filterregel: impfilt -v 4 -f '/tmp' -l '3 4 5 6 7 8 9 10 11 12'.
Die Regeln werden per Default im File ipsec_fltr_rule.exp abgelegt. Die Syntax ist leicht verständlich:
#IPver:flt_id:act:src_addr:src_mask:dst_addr:dst_mask:src_rte:proto:src_p_op:src_p:dst_p_op:dst_p:if:scope:dir:log:frag:tun_id:auto_gen 4 3 permit 10.55.17.0 255.255.128.0 10.55.17.115 255.255.255.255 y udp gt 1023 eq 53 tr0 local inbound no yes 0 no ....... gekürzt ...... 4 22 permit 10.55.17.115 255.255.255.255 10.55.17.0 255.255.128.0 y tcp gt 1023 eq 23 tr0 both outbound no yes 0 no
Die Filter werden mit dem Kommando genfilt erzeugt, mit dem Kommando mvfilt werden sie im Filterwerk bewegt, und das Kommando chfilt erlaubt es, die Filter zu modifizieren. Zur Syntax der Kommandos sei auf die man-Pages verwiesen.
In folgendem Beispiel wird eine Regel erzeugt, die alle Pakete aus dem internen Netz (10.55.17/17) von Ports größer 1023 auf die lokale IP (10.55.17.115) des Token-Ring Adapters (tr0) auf dem Port 53 per UDP zuläßt:
genfilt -v 4 -a P -s 10.55.17.0 -m 255.255.128.0 -d 10.55.17.115 -M 255.255.255.255 -c udp -o gt -p 1023 -O eq -P 53 -r L -w I -i tr0 ##-D "DNS anfrage udp"Die Schalter sind in der Man-Page erklärt (und werden dauernd erweitert - der Schalter -D gilt z.B. ab AIX 5.2). Wichtig ist, das jede Regel eine Aktion (PERMIT oder DENY) braucht, und Ziel- sowie Quell-Port neben der Portnummer einen logischen Operator (gleich, kleiner, größer ...) brauchen. Zusätzlich kann man eine Richtung des Flußes (Inbound/Outbound), das Interface sowie ein Logflag festlegen.
Eine einfache Anwendung des chfilt-Kommandos
wäre das Ändern der
Aktion pro Regel - hier für die
Filterregel Nummer 0 von PERMIT auf DENY:
/usr/sbin/chfilt -v 4 -n '0' -a 'D'
Für Tunnel stehen analoge Kommandos (gentun, chtun, rmtun, exptun, imptun, lstun, mktun) zur Verfügung.
Generell wird ein Tunnel zuerst auf dem einen Tunnelende eingerichtet, dort dann Exportiert und nach Übertragen der entsprechenden Files auf dem anderen Tunnelende importiert.
Benutzt man die speziellen Tunnel-Kommandos, so werden auch die entsprechenden Regeln generiert.
Die mit IPsec verbundenen Files finden sich alle im Verzeichnis /etc/security:
-rw-r--r-- 1 root system 19 Mar 21 08:26 .ipsec_sm_key -rw------- 1 root system 404 Mar 21 08:26 .ipsec_seed -rw-rw-r-- 1 root system 4096 Mar 21 08:26 ipsec_tunnel_manual.vc -rw-rw-r-- 1 root system 8192 Mar 21 08:26 ipsec_tunnel_manual -rw-rw-r-- 1 root system 4096 Mar 21 08:26 ipsec_tunnel_IBM.vc -rw-rw-r-- 1 root system 4096 Mar 21 08:26 ipsec_tunnel_IBM -rw-rw-r-- 1 root system 4096 Mar 21 08:39 ipsec_filter.vc -rw-rw-r-- 1 root system 4096 Mar 21 08:39 ipsec_filter -rwsrwsr-- 1 root system 6 Mar 21 08:41 ipsec_logd.pid
[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | RPi | SMTP | Tracing | GPS | LW ]
Copyright 2001-2021 by Orm Hager - Es gilt die GPL