Strongswan IPSEC Linux CRT - Security und Firewall Labor

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

IPsec Site-to-Site aufbauen mit Zertifikat

  • Partner 1 wartet auf eine eingehende Verbindung mit passenden Zertifikat, wobei die IP egal sein darf
  • Commonname/FQDN im Zertifikat sollte fw1xx bzw. fw1yy sein
  • Austausch der Zertifikate und der Anträge über den SFTP Server
  • PSK-VPN-Verbindung abbauen
  • ipsec down site2site-psk

Partner 1

  • Zertifizierungsstelle erstellen
  • mkdir ~/ca
  • cd ~/ca
  • openssl genrsa -aes256 -out ca.key 4096
  • openssl req -new -key ca.key -x509 -days 3650 -out ca.crt
...
Common Name (e.g. server FQDN or YOUR name) []:vpn-ca
...
  • IPsec-Zertifikat erstellen und signieren
  • openssl genrsa -out fw1xx.key 4096
  • Einen Certificate Signing Request erstellen
  • openssl req -new -key fw1xx.key -out fw1xx.csr
...
Common Name (e.g. server FQDN or YOUR name) []:fw1xx 
...
  • openssl x509 -req -days 730 -in fw1xx.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out fw1xx.crt
  • Zertifikat der Zertifizierungsstelle Partner 2 zukommen lassen (ca.crt)

Partner 2

  • Erstellt Zertifizierungsantrag...
  • mkdir ~/cert
  • cd ~/cert
  • openssl genrsa -out fw1yy.key 4096
  • openssl req -new -key fw1yy.key -out fw1yy.csr
...
Common Name (e.g. server FQDN or YOUR name) []:fw1yy 
...
  • ... und lässt es Partner 1 zukommen (fw1yy.csr)
  • Konfigurieren der Verbindung
  • vim /etc/ipsec.conf
conn site2site-cert
     authby=rsasig
     keyexchange=ikev2
     left=192.168.3.1yy
     leftcert="fw1yy.crt"
     leftsubnet=172.16.1yy.0/24
     right=192.168.3.1xx
     rightid="CN=fw1xx"
     rightsubnet=172.16.1xx.0/24
     ike=aes256-sha256-modp4096!
     esp=aes256-sha256-modp4096!
     auto=start

Partner 1

  • Signiert den Antrag
  • openssl x509 -req -days 730 -in fw1yy.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out fw1yy.crt
  • Schickt diesen zurück bzw. hinterlegt ihn auf dem SFTP Server (fw1yy.crt) zusammen mit dem Zertifikat der Zertifizierungsstelle (ca.crt)
  • Konfigurieren der Verbindung
  • vim /etc/ipsec.conf
conn site2site-cert
     authby=rsasig
     keyexchange=ikev2
     left=192.168.3.1xx
     leftcert="fw1xx.crt"
     leftsubnet=172.16.1xx.0/24
     right=0.0.0.0 # Egal welche IP,...
     rightid="CN=fw1yy" # ...aber der Commonname muss stimmen
     rightsubnet=172.16.1yy.0/24
     ike=aes256-sha256-modp4096!
     esp=aes256-sha256-modp4096!
     auto=add

Beide

  • Damit Strongswan die Zertifikate findet, müssen diese an genau diesen Stellen liegen...
  • find /etc/ipsec.d/ -type f
/etc/ipsec.d/private/fw1xx.key # bzw. f1yy.key
/etc/ipsec.d/certs/fw1xx.crt # bzw. f1yy.crt
/etc/ipsec.d/cacerts/ca.crt
  • ...und in der ipsec.secrets Datei zur Verbindung zugewiesen werden
  • vim /etc/ipsec.secrets
192.168.3.1xx : RSA fw1xx.key
  • Diese müssen von Strongswan neu eingelesen werden
  • ipsec reload
  • ipsec rereadall
  • Ob die Zertifikate erfolgreich geladen wurden lässt sich folgendermaßen überprüfen
  • ipsec listcerts
  • Ansonsten muss Strongswan neugestartet/geladen werden, falls der letzte Befehl nichts ausgibt
  • systemctl restart strongswan-starter
  • ipsec restart

Partner 2

  • Nur von dieser Firewall aus kann die Verbindung gestartet werden, da die andere Seite die IP nicht kennt
  • ipsec up site2site-cert