Diese Dokumentation beschreibt die Konfiguration unseres Tunnel Servers. Details zu unseren Funkinsel-Setup können auf der Seite FunkInsel gefunden werden. Informationen zu allen anderen Servern/Routern kann auf der Seite ServerDokumentation gefunden werden.
Installation und Konfiguration
Unser Tunnel Server ist eine virtuelle Maschine am KVM-Wirt im Spektral Housing auf dem openvpn installiert und als Server eingerichtet ist. Weiters ist es notwendig das mittels eines NTP Clients beim Booten die richtige Zeit und das richtige Datum gesetzt wird damit die Zertifikats Gültigkeitsüberprüfung nicht fehlschlägt. Zu guter letzt läuft darauf noch snmpd der dazu benützt wird um mit mrtg Statistiken zu führen. Die Konfiguration von snmpd ist unter /etc/snmp/snmpd.conf zu finden und erlaubt Read-Only Zugriff von stats.ffgraz.net aus. Die ntpd Konfiguration ist standard. Die Konfiguration von openvpn ist unter /etc/openvpn zu finden. Folgende Konfiguration findet sich in der Datei server.conf:
local 217.29.149.73 port 1194 proto udp dev tap0 ca server-keys/ca.crt cert server-keys/server.crt key server-keys/server.key dh server-keys/dh1024.pem ifconfig 10.12.11.1 255.255.255.0 mode server tls-server client-config-dir server-ccd/ cipher none persist-key persist-tun verb 3 management localhost 7505 user openvpn group openvpn daemon ovpn-server
Die Zeritifikate und Key-Files liegen unnerhalb von /etc/openvpn/server-keys/. Ausserdem muss für jeden Client die dafür vorgesehne IP Adresse konfiguriert werden. Hierzu muss unterhalb von /etc/openvpn/server-ccd/ eine Datei mit demselben Namen angelegt werden der beim erstellen des Client Zertifikats (siehe unten) angegeben wurde. Im Normalfall ist dies der Name des Standorts an dem der Tunnelendpunkt aufgebaut wird. Die Datei muss die folgende Zeile beeinhalten:
ifconfig-push 10.12.11.x 255.255.255.0
x muss natürlich durch die zugewiesene Adresse erstezt werden.
neuen Client anlegen
Um das Anlegen ein wenig zu erleichtern gibt es unterhalb von /srv/certs/server einen Script (create-client.sh) der die obigen Schritte automatisch durchführt. Um einen neuen Client anzulegen muss eine freie Tunnel IP (aus dem Berich 10.12.11.0/24) dem Standort zugewiesen werden bei dem der neue Tunnelknoten läuft. Der Script erwartet neben den Namen des Standorts noch die letzte Stelle der Tunnel IP. Soll also ein Client für den Standort test mit der IP 10.12.11.42 angeleget werden muss der Script wie folgt aufgerufen werden:
sudo /srv/certs/server/create-client.sh test 42
Es entsteht dabei eine Datei mit dem Namen <standort>.tar.gz unterhalb von /srv/certs/server. Dieses Archiv enthält alle Dateien die am Client benötigt werden.
Zertifikate manuell erstellen
Die Zertifikate liegen samt aller Scripte im Verzeichnis /srv/certs/server. Alle Scripte zum erstellen eines Zertifikates sind unter easy-rsa und die crt und key Files sind im Verzeichnis key zu finden. Um ein neues Zeritifikat zu erstellen sind die folgenden Schritte notwendig:
# cd /srv/certs/server/easy-rsa # . ./vars # ./build-key <common-name>
Das Script stellt ein paar Fragen von denen die meisten einfach mit Enter quitiert werden müssen (default Werte) die einzige Ausnahmen bilden 2 Fragen ob das Zertifikat unterschieben werden soll hier muss y gedrückt werden. Danach ist das neu erstellte Zeritifikat im key Verzeichnis zu finden. Als Konvention sollte für den common name immer der Name des Standorts verwendet werden.