Openswan-VPN mit RSA-Signaturen

Aus Knowledgebase
Zur Navigation springen Zur Suche springen

Anstatt mit Pre-shared-keys zu arbeiten, besteht auch die Möglichkeit, die Authentifizierung der VPN-Verbindung über RSA-Signaturen durchzuführen. Dies ist kryptographisch sicherer, siehe Erklärung in der Wikipedia.

Statt einem gemeinsamen Key hat nun jeder Host ein Schlüsselpaar aus privatem und öffentlichem Schlüssel, was ihn gleichzeitig eindeutig gegenüber einem Peer identifiziert. Der öffentliche Schlüssel muss bei beiden Peers jeweils zur richten Adresse hin hinterlegt werden:

  • Der eigene Key zur Seite, die auf %defaultroute zeigt (z. B. left),
  • der fremde Key zur Seite, auf z. B. right.

Generieren der Keys

Das Einfachste ist, dpkg-reconfigure openswan aufzurufen, falls bereits installiert. Folgende Fragen werden gestellt und sollten entsprechend beantwortet werden:

At which level do you wish to start Openswan?
→ after PCMCIA
Do you wish to restart Openswan?
→ No
Do you wish to enable opportunistic encryption in Openswan?
→ No
Do you want to create a RSA public/private keypair for this host?
→ Yes
Which type of RSA keypair do you want to create?
→ plain
Which length should the created RSA key have?
→ 2048

Der Key wird nach der Generierung (die je nach dem auch mal einige Minuten dauern kann, falls zu wenig Zufallszahlen vom Betriebssystem generiert werden) in /etc/ipsec.secrets eingetragen. Danach sollte die Secrets-Datei nochmal eingelesen werden:

ipsec auto --rereadsecrets

Dies muss bei beiden VPN-Peers erledigt werden.

Änderungen der Konfiguration

Die Keys lassen sich copy-paste-fertig mit

ipsec showhostkey --left

ausgeben. Statt --left kann auch --right verwendet werden, dann wird der Key mit rightrsasigkey ausgegeben statt leftrsasigkey.

conn bla
   authby=rsasig
   leftrsasigkey=0sAQNojnnpByTCK5SbXWXb…

Nun kann die bestehende Verbindung neu aufgebaut werden auf rsasig:

ipsec auto --replace bla
ipsec auto --up bla
104 "bla" #145: STATE_MAIN_I1: initiate
003 "bla" #145: received Vendor ID payload [Openswan (this version) 2.4.12  LDAP_V3 PLUTO_SENDS_VENDORID PLUTO_USES_KEYRR]
003 "bla" #145: received Vendor ID payload [Dead Peer Detection]
106 "bla" #145: STATE_MAIN_I2: sent MI2, expecting MR2
108 "bla" #145: STATE_MAIN_I3: sent MI3, expecting MR3
004 "bla" #145: STATE_MAIN_I4: ISAKMP SA established {auth=OAKLEY_RSA_SIG cipher=aes_256 prf=oakley_sha group=modp1536}
117 "bla" #146: STATE_QUICK_I1: initiate
004 "bla" #146: STATE_QUICK_I2: sent QI2, IPsec SA established {ESP=>0xd9229f4b <0xd8ee0d09 xfrm=AES_256-HMAC_SHA1 IPCOMP=>0x00003925 <0x00007ec9 NATD=none DPD=none}