VPN
Auf einen Blick
| Thema | Beschreibung |
|---|---|
| URL | https://access.prod.az.automit.de/ |
| Hauptverantwortlicher | Michael Kamleiter |
| Terraform Modul | module-vpn |
| Terraform code | prod-vpn |
1. Beschreibung der Anwendung
1.1 Hauptzielsetzung und Funktionen im Überblick
Als VPN Zugang wird wireguard eingesetzt. Es dient hauptsächlich dazu, Arbeitsendgeräte mit dem Firmen Azure Netzwerk zu verbinden.
1.2 Verantwortlichkeiten
| Thema | Verantwortlicher |
|---|---|
| Aufbau | Michael Kamleiter |
| Betriebs u. Updatemanagement | Michael Kamleiter |
| Backup u. Recovery | Michael Kamleiter |
1.3 Ansprechpartner / Hersteller
Wireguard ist eine opensource vpn Lösung, entwickelt von Edgesecurity https://www.edgesecurity.com/
Zum Hosting wird eine Virtuelle Maschine der Azure Cloud verwendet. https://azure.microsoft.com/de-de/services/virtual-machines/
2. Systemarchitektur
GDrive: INT_2022_automIT/Architektur/automit-prod-vpn.png3. Installation und Konfiguration
Zur Installation der Infrastruktur wird Terraform (https://www.terraform.io/) mithilfe des Azure Providers (https://registry.terraform.io/providers/hashicorp/azurerm/) verwendet.
Die benötigten Konfigurationen sind hierbei auf 2 unterschiedliche GIT repositories aufgeteilt.
- module-vpn: Terraformmodul welches die Objekte + Logik enthält
- prod-vpn: Instanziierung des Moduls für die Produktive Subscription.
Die Entscheidung für diese Trennung wurde getroffen, damit das Setup jederzeit in einer anderen Subscription ausgerollt und getestet werden kann
Um den VPN Server zu konfigurieren muss wie folgt vorgegangen werden:
git clone https://automITde@dev.azure.com/automITde/automIT/_git/module-vpn
git clone https://automITde@dev.azure.com/automITde/automIT/_git/prod-vpn
cd prod-vpn/tf
terraform init
terraform plan
terraform apply
Zur Installation und Konfiguration vom VPN Gateway auf der bereitgestellten Infrastruktur, wird ansible verwendet (https://www.ansible.com/) Hierfür wurde ein Ansible Playbook erstellt und dieses ebenfalls im Git abgelegt:
git clone https://automITde@dev.azure.com/automITde/automIT/_git/wireguard
git checkout main
cd wireguard/ansible
ansible-playbook wireguard.yaml -i inventory/hosts.yaml --vault-id=@prompt
4. Verfügbarkeit
4.1 Betriebszeiten und Wartungsfenster
Die VPN Erreichbarkeit wird unter der Woche werktätig zwischen 06:00 und 22:00 sichergestellt Hierbei wird eine Verfügbarkeit von 99,9% garantiert. Vorhandene Wartungsfenster:
- Mittwochs, 06:00 - 09:00
Sollte eine Wartung in einem dieser Zeiträume geschehen, so wird dies im vorraus angekündigt.
5. System-/Anwendungsbetrieb
5.1 Rollen und Aufgaben
Folgende spezielle Rollen sind für VPN vorgesehen. Jeder nicht erwähnte Mitarbeiter findet sich in der Rolle “User” wieder.
| Rolle | Mitarbeiter |
|---|---|
| Systemadmin | Michael Kamleiter |
5.2 Datensicherung
Der Server selbst ist in einmal täglichen Backup seitens Azure integriert und hier werden jeweils die letzten 7 stände aufbewahrt
5.3 Systemspezifische Tätigkeiten
5.3.1 Anlage von neuen clients
Zur anlage neuer Clients muss der Public Key des Clients mit der geplanten IP Adresse im Playbook hinterlegt werden: https://dev.azure.com/automITde/automIT/_git/wireguard?path=/ansible/inventory/prod-automit/group_vars/all/clients.yaml
Anschließend können die Schritte zur Installation wiederholt werden.
5.5 Updatemanagement
Updates werden jeder Woche automatisiert vom Azure Update Management eingespielt. Dies betrifft sowohl die Betriebssystemupdates als auch die verwendete Software
6. Sicherheit
6.1 Berechtigungskonzept und Berechtigungen
6.1.2 Auf den VPN Server
Auf dem Server ist ein User “automit” Berechtigt. Der Privatekey + das dazugehörige Passwort findet sich im Bitwarden.
6.1.3 Auf das VPN Netzwerk
Jedes Endgerät der Firma kann, nach erfolgter Konfiguration (Siehe 5.3.1), mithilfe des Clients “Wireguard” auf das VPN zugreifen. Mithilfe des VPN’s kann dann auf die Infrastruktur in der Azure zugegriffen werden.
7. Störungsmanagement
7.1 Restart und Wiederanlauf
Zum neustarten des VPN’s kann das Playbook ausgeführt werden:
git clone https://automITde@dev.azure.com/automITde/automIT/_git/wireguard
git checkout main
cd wireguard/ansible
ansible-playbook wireguard.yaml -i inventory/hosts.yaml --vault-id=@prompt