orm@doc-tcpip.org

Erstellt: August 2003 - Letzte Modifikation: Dezember 2003

[ Main | Local ]


Schnelleinstieg IPsec

Auf AIX, natürlich.

Installation

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

Die Filterregeln und ihren Status sieht man mit dem lsfilt-Befehl:

 
root # lsfilt -v 4 -a -O  
Hier 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:
/usr/sbin/lsfilt -s -v 4 -O

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.

Export und Import von Filterregeln

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

Erzeugen von Filterregeln

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'

Einrichten eines Tunnel

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.

Wo liegen die Files?

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


[ Main | Local ]

[ 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
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )