Version 15.1 von Jonas Mayer am 2022/05/24 23:53

Verstecke letzte Bearbeiter
Jonas Mayer 15.1 1 (% style="color:#000000" %)Damit Webzugriffe auf Kopano über ein Zertifikat abgesichert sind, muss dieses zunächst auf dem LogoDIDACT-Server beantragt werden. Dies ist insbesondere für die Nutzung von Z-Push (ActiveSync-Protokoll) von hoher Relevanz.
Jonas Mayer 13.1 2 In diesem Artikel erfahren Sie, welche für Voraussetzungen es gibt und wie ein signiertes Let's Encrypt Zertifikat generiert werden kann.
Jens Gruber 1.1 3
4
Christian Germann 9.1 5 ===== (% style="color:#000000" %)__Voraussetzungen__(%%) =====
Jens Gruber 1.1 6
Christian Germann 9.1 7 (% style="color:#000000" %)Damit ein Zertifikat generiert werden kann, müssen folgende Ports vom vorgeschalteten Router (WAN) an den logoDIDACT-Server weitergeleitet werden:
Jens Gruber 1.1 8
9 {{code language="bash"}}
10 WAN (Internet) TCP-Port 80 -> auf externe IP-Adresse des logoDIDACT-Servers [http]
11 WAN (Internet) TCP-Port 443 -> auf externe IP-Adresse des logoDIDACT-Servers [https]
12 {{/code}}
13
Christian Germann 8.1 14 ==== ====
Jens Gruber 1.1 15
Christian Germann 9.1 16 ===== =====
17
Christian Germann 8.1 18 ===== =====
19
Christian Germann 7.1 20 ===== __Freigabe von Kopano über rev-proxy__ =====
21
22 (% style="color:#000000" %)Erweitern Sie die ##{{code}}/etc/logodidact/hosts/rev-proxy/revproxy.conf{{/code}}## im Puppeteer-LXC um folgende Zeilen, um Kopano über den rev-proxy freizugeben, falls dies noch nicht erfolgt ist.
23
24 {{code language="bash"}}
25 [ReverseProxy kopano.ShortName.logoip.de]
Jonas Mayer 11.1 26 Url https://kopano
Christian Germann 7.1 27 Template kopano
28 {{/code}}
29
30 (% style="color:#000000" %) Übernehmen Sie die neuen Dateien bzw. die Änderungen ins Git:
31
32 {{code language="bash"}}
33 cd /etc/logodidact/
34 git add .
35 git commit -a -m "Kopano über rev-proxy freigegeben."
36 {{/code}}
37
38
Jens Gruber 5.1 39 ===== (% style="color:#000000" %)__Split-DNS__(%%) =====
Jens Gruber 1.1 40
Christian Germann 9.1 41 (% style="color:#000000" %)Hintergrund für Split-DNS ist ein oftmals fehlerhaftes NAT-Loopback am Router. Dies stellt sicher, dass externe Adressen wie z.b. kopano.shortname.logoip.de nicht zum Router geschickt werden, sondern zum internen rev-proxy weitergeleitet werden. Dadurch wird der Router als Fehlerquelle ausgeschlossen und alle Benutzer können im Schulnetz wie auch Zuhause die gleiche URL für den Zugriff verwenden.
Jens Gruber 1.1 42
Christian Germann 9.1 43 (% style="color:#000000" %)Führen Sie folgende Schritte für die Einrichtung durch, falls noch nicht erfolgt.
Jens Gruber 1.1 44
Jens Gruber 5.1 45 (% style="color:#000000" %)Öffnen Sie die Datei "named.conf.local" im logosrv:
Jens Gruber 1.2 46
47 {{code language="bash"}}
48 root@logosrv:~ # vim /etc/bind/named.conf.local
49 {{/code}}
50
51
Jens Gruber 5.1 52 (% style="color:#000000" %)Bearbeiten Sie die Datei wie folgt (Ersetzen Sie "musterstadt" durch den Schul-Shortname):
Jens Gruber 1.2 53
54 {{code language="bash"}}
55 ## Externe dynamische IP intern auflösen
56 zone "musterstadt.logoip.de" {
57   type master;
Jens Gruber 2.1 58   file "/etc/bind/db.dynip";
Jens Gruber 1.2 59   check-names ignore;
60 };
61 {{/code}}
62
63
Jonas Mayer 11.1 64 (% style="color:#000000" %)Öffnen Sie die referenzierte Datei {{box}}db.dynip{{/box}} im logosrv:
Jens Gruber 1.2 65
66 {{code language="bash"}}
67 root@logosrv:~ # vim /etc/bind/db.dynip
68 {{/code}}
69
70
Jonas Mayer 11.1 71 (% style="color:#000000" %)Passen Sie gegebenenfalls die IP-Adresse in den letzten beiden Zeilen an, als Ziel muss auf den Rev-Proxy Container verwiesen werden. Im Standard lautet dessen IP-Adresse "172.28.28.27":
Jens Gruber 1.2 72
73 {{code language="bash"}}
74 $TTL 1h
75 @                IN     SOA   ns1.schule.local. postmaster.schule.local. (
76                                 2009010101 ; serial
77                                 86400      ; refresh (1 day)
78                                 900        ; retry (15 minutes)
79                                 604800     ; expire (1 week)
80                                 900        ; minimum (15 minutes)
81                                 )
82
83                  NS      ns1.schule.local.
84                  NS      ns2.schule.local.
85
Jonas Mayer 11.1 86 @                A       172.28.28.27
Jens Gruber 2.1 87 *                A       172.28.28.27
Jens Gruber 1.2 88 {{/code}}
89
Jens Gruber 2.1 90
Jens Gruber 5.1 91 (% style="color:#000000" %)Starten Sie nach den Anpassungen den DNS-Server im logosrv neu:
Jens Gruber 2.1 92
93 {{code language="bash"}}
94 root@logosrv:~ # /etc/init.d/bind9 restart
95 {{/code}}
96
97
Jonas Mayer 6.1 98 ==== (% style="color:#000000" %)**__SSL-Zertifikat über Tool acmetool oder acme.sh anfordern__**(%%) ====
Jens Gruber 2.1 99
Jonas Mayer 10.1 100 (% style="color:#000000" %)Nach Schaffung der technischen Voraussetzungen können Sie das Let's Encrypt-Zertifikat anfordern. Je nach verwendeter Software/Serverstand können Sie die folgenden 2 Wege nutzen:
Jens Gruber 2.1 101
102
Jens Gruber 5.1 103 ===== (% style="color:#000000" %)__acmetool__(%%) =====
Jens Gruber 2.1 104
Jens Gruber 5.1 105 (% style="color:#000000" %)Wechseln Sie in den puppeteer Container:
Jens Gruber 2.1 106
107 {{code language="bash"}}
108 root@ldhost:~ # lxc-ssh -n puppeteer
109 {{/code}}
110
111
Jens Gruber 5.1 112 (% style="color:#000000" %)Fordern Sie das Zertifikat mit folgendem Befehl an (Ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname):
Jens Gruber 2.1 113
114 {{code language="bash"}}
115 root@puppeteer:~ # acmetool want kopano.SCHULKUERZEL.logoip.de
116 {{/code}}
117
118
Jens Gruber 5.1 119 ===== (% style="color:#000000" %)__acme.sh__(%%) =====
Jens Gruber 2.1 120
Jens Gruber 5.1 121 (% style="color:#000000" %)Wechseln Sie in den puppeteer Container:
Jens Gruber 2.1 122
123 {{code language="bash"}}
124 root@ldhost:~ # lxc-ssh -n puppeteer
125 {{/code}}
126
127
Jonas Mayer 12.1 128 (% style="color:#000000" %)Wechseln Sie im puppeteer Container in die Umgebung des Benutzers le-acme zur Verwaltung der Let's Encrypt Zertifikate:
Jens Gruber 2.1 129
130 {{code language="bash"}}
131 root@puppeteer:~ # sle
132 {{/code}}
133
134
Jonas Mayer 12.1 135 (% style="color:#000000" %)Beantragen Sie ein neues Zertifikat mit folgendem Befehl (ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname):
Jens Gruber 2.1 136
137 {{code language="bash"}}
138 le-acme@puppeteer:~ $ issue kopano.SCHULKUERZEL.logoip.de
139 {{/code}}
140
141
Jonas Mayer 12.1 142 (% style="color:#000000" %)Um das Verteilen der Zertifikate zu beschleunigen, können Sie nacheinander einen {{box}}prun{{/box}} im puppeteer und rev-proxy Container durchführen:
Jens Gruber 2.1 143
144 {{code language="bash"}}
145 root@puppeteer:~ # prun
146 root@rev-proxy:~ # prun
147 {{/code}}
148
149