Samstag, 26. Januar 2019

Swisscom CentroBusiness 2.0 IPSec Site2Site

Swisscom CentroBusiness 2.0 IPSec Site2Site

Übersicht

Der Business-Router von Swisscom CentroBusiness 2.0 hat standardmässig die Funktion um Site-to-Site IPSec Tunnels aufzubauen. Damit kann mal also zwei entfernte Netze miteinander verbinden oder aber einen Cloud-Server nahtlos ins eigene Netz integrieren.
Die Lösung ist rudimentär und basic, funktioniert aber. Ausserdem bietet sie den Vorteil, dass man keine zusätzlichen Geräte betreiben muss.

In dieser Anleitung zeige ich Euch, wie man vom CentroBusiness 2.0 einen IPSec Tunnel zu einem Cloudserver (Cloudsigma, AWS EC2, ...) erstellt, um diesen im internen Netz verfügbar zu machen.

Ausganslage


Lokales Netz


  • Swisscom CentroBusiness 2.0 Firmware 9.02.14
  • öffentliche IP-Adresse 178.195.222.159
  •  IP-Range 192.168.1.0/24

Cloudserver

  • Ubuntu 18.04 LTS
  • öffentliche IP-Adresse 194.209.193.138
  • IP-Range 172.16.1.0/30

Konfiguration

Swisscom-Router

  1. Auf's Webinterface einloggen
  2. Unter [Netzwerk] auf [Peer-to-Peer VPN] klicken
  3. [VPN-Standort hinzufügen] klicken
  4. Peer IP-Adresse/DNS: 194.209.193.138 (öffentliche IP vom Cloudserver)
  5. Peer IP-Subnetz: 172.16.1.0/30 (IP-Range vom Cloudserver)
  6. Passwort: {Mindestens 20 Zeichen, Gross/Klein/Sonderzeichen}
  7. [Hinzufügen] klicken, aktivieren und speichern
Der Status wird noch rot sein, da wir die Gegenseite noch nicht konfiguriert haben.

Cloudserver

  1. Zuerst müssen wir die Software installieren:
  2. $ sudo apt-get update
  3. $ sudo apt-get install racoon
  4. Folgende Ports öffnen: UDP/500 und UDP/4500
  5. Konfig-Feils editieren (Beispiele siehe unten):
  6. /etc/racoon/racoon.conf
  7. /etc/racoon/psk.txt
  8. Tunnel-Adresse und Routing auf dem Netzwerk-Interface erstellen:
  9. $ sudo ip addr add 172.16.1.1/30 dev eth0
  10. $ sudo ip route add to 192.168.1.0/24 via 172.16.1.1 src 172.16.1.1
  11. Nun kann Racoon testweise gestartet werden um zu sehen, ob der Tunnel aufgebaut wird. Die Option -F lässt racoon auf die Konsole loggen. Somit lassen sich allfällige Fehler sehen und beheben:
  12. $ sudo racoon -f /etc/racoon/racoon.conf -F
  13. Nun von einem Netz das andere pingen (Beispiel vom Cloudserver ins lokale Netz):
  14. $ ping 192.168.1.1
  15. Der Tunnel wird aufgebaut und der Ping sollte erfolgreich sein.
  16. Wenn alles zufriedenstellend funktioniert, Racoon im Systemd aktivieren:
  17. $ sudo systemctl enable racoon.service
Bemerkungen:
  •  Der Tunnel wirst erst aufgebaut, wenn Traffic darüber angefordert wird, also zum Beispiel ein Ping abgesetzt wird
  • Falls es in eine Richtung nicht funktioniert, dann einmal in die andere Richtung probieren - manchmal funktioniert eine Richtung erst nachdem die andere Richtung die Verbindung anfordert
racoon.conf

#
# NOTE: This file will not be used if you use racoon-tool(8) to manage your
# IPsec connections. racoon-tool will process racoon-tool.conf(5) and
# generate a configuration (/var/lib/racoon/racoon.conf) and use it, instead
# of this file.
#
# Simple racoon.conf
#
#
# Please look in /usr/share/doc/racoon/examples for
# examples that come with the source.
#
# Please read racoon.conf(5) for details, and alsoread setkey(8).
#
#
# Also read the Linux IPSEC Howto up at
# http://www.ipsec-howto.org/t1.html
#
log info;
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
#
remote anonymous {
        exchange_mode main,aggressive;
        proposal {
                encryption_algorithm 3des;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group modp2048;
        }
        generate_policy on;
}
#
sainfo anonymous {
    encryption_algorithm 3des;
    authentication_algorithm hmac_sha1;
    compression_algorithm deflate;
}
#


psk.txt

# IPv4/v6 addresses
178.195.222.159   
{Mindestens 20 Zeichen, Gross/Klein/Sonderzeichen}

Zusammenfassung

Der Cloudserver ist nun aus dem lokalen Netz unter der IP 172.16.1.1 erreichbar. Nun können dort beliebige Dienste gehostet werden.