Under Construction
Filter-Regel-Tabelle und aktive Filter-Regeln
Das Filtern von IP-Paketen erfolgt durch zwei Kernel-Module:
- /usr/lib/drivers/filter4 für IPv4
- /usr/lib/drivers/filter6 für IPv6
 
Die von IPsec zu verwendenden aktiven Filter-Regeln müssen im Kernel eines AIX-Systems abgelegt sein, damit die Kernel-Module auch Zugriff auf diese aktiven Regeln haben. Wird die Filterung deaktiviert oder das System rebootet, dann müssen die Filter-Regeln zwingend an einer anderen Stelle persistent abgelegt sein, damit sie bei Reaktivierung der Filterung wieder in den Kernel geladen werden können. Diese persistente Stelle ist die sogenannte Filter-Regel-Tabelle, sie ist im Dateisystem eines jeden AIX-Systems in Form der ODM ipsec_filter im Verzeichnis /etc/security abgelegt:
# ls -l /etc/security/ipsec_filter*
-rw-rw-r-- 1 root system 24576 Oct 30 14:43 /etc/security/ipsec_filter
-rw-rw-r-- 1 root system 4096 Oct 30 14:43 /etc/security/ipsec_filter.vc
#
Da es sich bei der Filter-Regel-Tabelle um eine ODM handelt, können natürlich auch alle ODM-Kommandos auf diese angewendet werden, hier als Beispiel odmshow:
# ODMDIR=/etc/security odmshow ipsec_filter
class ipsec_filter {
ulong fltr_src_addr1; /* offset: 0xc ( 12) */
ulong fltr_src_addr2; /* offset: 0x10 ( 16) */
ulong fltr_src_addr3; /* offset: 0x14 ( 20) */
ulong fltr_src_addr4; /* offset: 0x18 ( 24) */
ulong fltr_src_mask1; /* offset: 0x1c ( 28) */
ulong fltr_src_mask2; /* offset: 0x20 ( 32) */
ulong fltr_src_mask3; /* offset: 0x24 ( 36) */
ulong fltr_src_mask4; /* offset: 0x28 ( 40) */
ulong fltr_dst_addr1; /* offset: 0x2c ( 44) */
ulong fltr_dst_addr2; /* offset: 0x30 ( 48) */
ulong fltr_dst_addr3; /* offset: 0x34 ( 52) */
ulong fltr_dst_addr4; /* offset: 0x38 ( 56) */
ulong fltr_dst_mask1; /* offset: 0x3c ( 60) */
ulong fltr_dst_mask2; /* offset: 0x40 ( 64) */
ulong fltr_dst_mask3; /* offset: 0x44 ( 68) */
ulong fltr_dst_mask4; /* offset: 0x48 ( 72) */
short fltr_id; /* offset: 0x4c ( 76) */
binary fltr_action[1]; /* offset: 0x4e ( 78) */
binary fltr_protocol[1]; /* offset: 0x4f ( 79) */
binary fltr_src_port_op[1]; /* offset: 0x50 ( 80) */
short fltr_src_port; /* offset: 0x52 ( 82) */
binary fltr_dst_port_op[1]; /* offset: 0x54 ( 84) */
short fltr_dst_port; /* offset: 0x56 ( 86) */
binary fltr_rule_scope[1]; /* offset: 0x58 ( 88) */
binary fltr_direction[1]; /* offset: 0x59 ( 89) */
long fltr_tunnel_id; /* offset: 0x5c ( 92) */
short fltr_auto_gen; /* offset: 0x60 ( 96) */
short fltr_flags; /* offset: 0x62 ( 98) */
short fltr_ver; /* offset: 0x64 ( 100) */
short fltr_predef; /* offset: 0x66 ( 102) */
short fltr_activ; /* offset: 0x68 ( 104) */
char fltr_interface[16]; /* offset: 0x6a ( 106) */
vchar fltr_dst_host[2048]; /* offset: 0x7c ( 124) */
binary fltr_desc[80]; /* offset: 0x80 ( 128) */
long fltr_exp_time; /* offset: 0xd0 ( 208) */
short fltr_patt_type; /* offset: 0xd4 ( 212) */
binary fltr_patt[2048]; /* offset: 0xd6 ( 214) */
};
/*
descriptors: 37
structure size: 0x8d8 (2264) bytes
data offset: 0x924
population: 9 objects (9 active, 0 deleted)
*/
#
Hinweis: Da die ODM nicht unter /etc/objrepos liegt, muss das Verzeichnis /etc/security über die Variable ODMDIR mitgegeben werden.
Die Verwendung von ODM-Kommandos ist aber typischerweise nicht nötig, da es eine Reihe von High-Level Kommandos für die Administration von Filter-Regeln gibt (lsfilt, genfilt, mkfilt, …).
Manuelle Änderungen von Filter-Regeln werden immer auf der Filter-Regel-Tabelle (ipsec_filter) durchgeführt, nicht an den aktiven Filter-Regeln im Kernel.
