In der Basiskonfiguration gibt man das IPSec Interface an. Desweiteren kann man noch Einstellungen vornehmen ob z.B. Debugging-Informationen mitgeloggt werden sollen. Dies ist für eine spätere Fehlersuche sinnvoll, jedoch für den regulären Gebrauch nicht anzuraten, da z.B. bei der Option ``all'' sehr viel Text anfällt. Zusätzlich können hier noch Einstellungen in Bezug auf automatischer Verbindungsaufnahme beim Start und PLUTO-Optionen eingestellt werden (Optionale Parameter sind ohne Anführungszeichen dargestellt).
Mögliche Einträge in der CONFIG SECTIONS:
interfaces
das Interface das IPSec verwenden soll.
forwardcontrol
soll nach dem IPSec-Start setup IP forwarding gestartet und vor dem
Ende gestoppt werden? ([default] no, yes)
syslog
syslog-Einstellungen für startup/shutdown log messages. ([default]
daemon.error)
klipsdebug
KLIPS Debugging Output. ([default] none, all)
plutodebug
Pluto Debugging Output. ([default] none, all)
dumpdir
in welchem Directory sollen dump cores erlaubt werden?
manualstart
welche Manuelle-Verbindung soll beim Start gestartet werden?
pluto
soll Pluto gestartet werden? (no, yes)
plutoload
welche Verbindung soll beim Start in die Pluto DB geladen werden?
plutostart
welche Verbindung soll beim Start initialisiert werden?
plutowait
soll beim Start auf jede plutostart-Initialisierung gewartet werden?
([default] yes, no)
Beispiel für den config-Abschnitt:
# basic configuration config setup # virtuelles und physikalische Interface f"ur IPSEC interfaces="ipsec0=eth1" # IP forwarding beim Start an und beim Stop ausschalten forwardcontrol=no # KLIPS debugging text (all f"ur viele Ausgaben) klipsdebug=all # Pluto debugging text plutodebug=all # manually-keyed connections to set up at startup manualstart= # connections to load into Pluto's internal database at startup plutoload= # connections for Pluto to try to negotiate at startup plutostart= # should Pluto wait for each negotiation to finish before proceeding? plutowait=yes
In einem weiteren Abschnitt in der ipsec.conf Datei werden die einzelnen
Optionen einer Verbindung festgelegt. Jeder Verbindung muß ein Name
zugeordnet werden (z.B. conn pc2-pc3). Dann muß der Typ der Verbindung
eingetragen werden.
Die Rechner der Verbindung, die zum nicht vertrauenswürdigen Netz führen,
werden durch ihre IP-Adresse eingetragen. Hierbei ist ein Rechner der
linke und der andere der rechte (left, right). Jetzt müssen noch die Netze,
die erreicht werden sollen, eingetragen werden (rightsubnet, leftsubnet).
Zuletzt bestimmt man noch die einzusetzenden Verschlüsselungs- und
Authentifikationsalgorithmen.
Relevante Einträge für die automatische und die manuelle Schlüsselverteilung:
type
bezeichnet den Typ der Verbindung (tunnel, transport)
auto
welche Operation automatisch beim Start von IPSec ausgeführt werden soll (add,
start, ignore)
left
gibt die IP-Adresse des linken Partners an (aaa.bbb.ccc.ddd)
leftsubnet
hier steht das private Subnetz des linken Partners
(network/netmask)
leftnexthop
next-hop Gateway IP-Adresse für den linken Partner
([default] right)
leftupdown
welches updown Skript ausgeführt werden soll, wenn
der Status der Verbindung sich ändert ([default] ipsec_updown).
leftfirewall
setzt der linke Partner Forwarding-Firewalling
(beinhaltet Masquerading) ein? (yes, no)
Relevante Einträge für die automatische Schlüsselverteilung:
keyexchange
gibt die Methode des Schlüsselaustausches an (ike)
auth
Authentifikation mittels ESP-Verschlüsselung oder seperat
mithilfe des AH-Protokolls (esp, ah)
authby
wie sich die Sicherheits-Gateways authentifizieren
sollen. Möglich ist hier shared secrets oder rsasig für eine RSA
digital signatures ([default] secret, rsasig)
leftid
wie der linke Partner zur Authentifikation identifiziert
werden soll. ([default] left, aaa.bbb.ccc.ddd)
leftrsasigkey
der öffentliche Schlüssel für RSA signature
authentication (im RFC 2537 Format)
pfs
ob Perfect Forward Secrecy für die Verbindung erwünscht
ist. Mit PFS ist bei einem Verlust des Geheimnises die Sicherheit der
Verbindung nicht gefährdet. (yes, no)
keylife
wie lange die SAs und die Schlüssel verwendet werden
sollen. ([default] 8.0h, maximum 24h)
rekeymargin
wie lange Pluto versuchen soll, eine (gewechselte) SAs Verbindung
aufzubauen,
bevor abgebrochen werden soll. ([default] 9m,
(s. keylife))
keyingtries
wieviele Versuche gemacht werden sollen, um eine
Verbindung aufzubauen. ([default] 3, (ganze Zahl))
ikelifetime
wie lange die Verbindung zum anderen
Key-Management Deamon höchstens bestehen soll, bevor sie neu
aufgebaut werden soll.
Relevant Einträge für die manuelle Schlüsselverteilung:
spi
SPI Nummer für die Verbindung. (0xhex)
spibas
Basis Nummer für SPIs. (0xhex0)
esp
eingesetzter ESP-Algorithmus. ([default] (not to use), 3des-md5-96)
espenchkey
ESP Encryption Key
espauthkey
ESP Authentication Key
espreplay_window
ESP-Replay-Window-Einstellungen. Nur relevant
beim Einsatz von ESP Authentication. (0,..,64)
leftespspi
zu benützende SPI für die ESP SA
ah
AH Authentication Algorithmus. ([default] (not to use),
hmac-md5-96)
ahkey
AH Authentication Key.
leftahspi
Security Parameter Index der AH-Security-Assosiation.
Beispiel für den conn-Abschnitt:
# connection specifications # Beispiel f"ur einen Tunnel (mit manuellen oder automatischen Schl"ussel) # ESP f"ur Verschl"usselung und Authentifikation conn pc2-pc3 type=tunnel # left security gateway (public-network address) left=10.0.30.254 # next hop to reach right # subnet behind left (omit if left end of the tunnel is just the s.g.) leftsubnet=10.0.40.0/24 # right s.g., subnet behind it, and next hop to reach left right=10.0.30.1 rightsubnet=10.0.20.0/24 # (manual) base for SPI numbering; must end in 0 spibase=0x200 # (manual) encryption/authentication algorithm and parameters to it esp=3des-md5-96 espenckey=0x32c03fb3_0f5fddc7_208f6baa_bee3fde9_ec34b1f7_bc1cb9dc espauthkey=0xd0fa0fad_cb3ea576_7879bc69_1b4aad45 # (auto) key-exchange type keyexchange=ike # (auto) key lifetime (before automatic rekeying) keylife=8h
Die jeweils kommunizierenden Rechner müssen ein und dieselbe ``ipsec.conf''-Datei
besitzen. Der einzige Unterschied der Dateien kann der Interface-Eintrag sein.
Um Fehler zu vermeiden, kopiert man am besten die Konfigurationsdatei und
überprüft dann noch den Interface-Eintrag.
Man kann im allgemeinen natürlich mehrere Verbindungen angeben,
wobei eine neue Verbindung
nach dem gleichen Prinzip eingetragen werden muß.