next up previous contents index
Next: Die Datei /etc/ipsec.secrets Up: Konfiguration Previous: Konfiguration

Die Konfigurationsdatei /etc/ipsec.conf

Innerhalb der Konfigurationsdatei ist eine Beispielkonfiguration enthalten, wobei man sich am besten anhand des Beispiels die einzelnen Bedeutungen klar machen kann.

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ß.


next up previous contents index
Next: Die Datei /etc/ipsec.secrets Up: Konfiguration Previous: Konfiguration
Copyright Munich Network Management Team