Version 17.2 von JensGruber@sbede am 2022/05/25 09:01

Verstecke letzte Bearbeiter
jonasmayer@sbede 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.
jonasmayer@sbede 17.1 2 In diesem Artikel erfahren Sie, welche Voraussetzungen es gibt und wie ein signiertes Let's Encrypt Zertifikat generiert werden kann.
Jens Gruber 1.1 3
jonasmayer@sbede 16.1 4 {{toc start="4"/}}
Jens Gruber 1.1 5
6
jonasmayer@sbede 16.1 7 ----
8
9 ==== (% style="color:#000000" %)__Voraussetzungen__(%%) ====
10
cge@sbede 9.1 11 (% 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 12
13 {{code language="bash"}}
14 WAN (Internet) TCP-Port 80 -> auf externe IP-Adresse des logoDIDACT-Servers [http]
15 WAN (Internet) TCP-Port 443 -> auf externe IP-Adresse des logoDIDACT-Servers [https]
16 {{/code}}
17
18
cge@sbede 7.1 19 ===== __Freigabe von Kopano über rev-proxy__ =====
20
21
JensGruber@sbede 17.2 22
23 (% style="color:#000000" %)Stellen Sie zunächst sicher, dass der rev-proxy Container am Server aktiviert ist, falls Sie Kopano im Internet freischalten möchten.
24
25 (% style="color:#000000" %)Erweitern Sie die ##{{code}}/etc/logodidact/hosts/rev-proxy/revproxy.conf{{/code}}## im Puppeteer-LXC um folgende Zeilen, um Kopano im rev-proxy freizugeben. Achten Sie hierbei auf Angabe des richtigen Templates.
26
cge@sbede 7.1 27 {{code language="bash"}}
28 [ReverseProxy kopano.ShortName.logoip.de]
jonasmayer@sbede 11.1 29 Url https://kopano
cge@sbede 7.1 30 Template kopano
31 {{/code}}
32
33 (% style="color:#000000" %) Übernehmen Sie die neuen Dateien bzw. die Änderungen ins Git:
34
35 {{code language="bash"}}
36 cd /etc/logodidact/
37 git add .
38 git commit -a -m "Kopano über rev-proxy freigegeben."
39 {{/code}}
40
41
Jens Gruber 5.1 42 ===== (% style="color:#000000" %)__Split-DNS__(%%) =====
Jens Gruber 1.1 43
cge@sbede 9.1 44 (% 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 45
cge@sbede 9.1 46 (% style="color:#000000" %)Führen Sie folgende Schritte für die Einrichtung durch, falls noch nicht erfolgt.
Jens Gruber 1.1 47
Jens Gruber 5.1 48 (% style="color:#000000" %)Öffnen Sie die Datei "named.conf.local" im logosrv:
Jens Gruber 1.2 49
50 {{code language="bash"}}
51 root@logosrv:~ # vim /etc/bind/named.conf.local
52 {{/code}}
53
54
Jens Gruber 5.1 55 (% style="color:#000000" %)Bearbeiten Sie die Datei wie folgt (Ersetzen Sie "musterstadt" durch den Schul-Shortname):
Jens Gruber 1.2 56
57 {{code language="bash"}}
58 ## Externe dynamische IP intern auflösen
59 zone "musterstadt.logoip.de" {
60   type master;
Jens Gruber 2.1 61   file "/etc/bind/db.dynip";
Jens Gruber 1.2 62   check-names ignore;
63 };
64 {{/code}}
65
66
jonasmayer@sbede 11.1 67 (% style="color:#000000" %)Öffnen Sie die referenzierte Datei {{box}}db.dynip{{/box}} im logosrv:
Jens Gruber 1.2 68
69 {{code language="bash"}}
70 root@logosrv:~ # vim /etc/bind/db.dynip
71 {{/code}}
72
73
jonasmayer@sbede 11.1 74 (% 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 75
76 {{code language="bash"}}
77 $TTL 1h
78 @                IN     SOA   ns1.schule.local. postmaster.schule.local. (
79                                 2009010101 ; serial
80                                 86400      ; refresh (1 day)
81                                 900        ; retry (15 minutes)
82                                 604800     ; expire (1 week)
83                                 900        ; minimum (15 minutes)
84                                 )
85
86                  NS      ns1.schule.local.
87                  NS      ns2.schule.local.
88
jonasmayer@sbede 11.1 89 @                A       172.28.28.27
Jens Gruber 2.1 90 *                A       172.28.28.27
Jens Gruber 1.2 91 {{/code}}
92
Jens Gruber 2.1 93
Jens Gruber 5.1 94 (% style="color:#000000" %)Starten Sie nach den Anpassungen den DNS-Server im logosrv neu:
Jens Gruber 2.1 95
96 {{code language="bash"}}
97 root@logosrv:~ # /etc/init.d/bind9 restart
98 {{/code}}
99
100
jonasmayer@sbede 16.1 101 ----
Jens Gruber 2.1 102
jonasmayer@sbede 16.1 103 ==== (% style="color:#000000" %)__SSL-Zertifikat über Tool acmetool oder acme.sh anfordern__(%%) ====
104
jonasmayer@sbede 10.1 105 (% 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 106
107
Jens Gruber 5.1 108 ===== (% style="color:#000000" %)__acmetool__(%%) =====
Jens Gruber 2.1 109
Jens Gruber 5.1 110 (% style="color:#000000" %)Wechseln Sie in den puppeteer Container:
Jens Gruber 2.1 111
112 {{code language="bash"}}
113 root@ldhost:~ # lxc-ssh -n puppeteer
114 {{/code}}
115
116
Jens Gruber 5.1 117 (% style="color:#000000" %)Fordern Sie das Zertifikat mit folgendem Befehl an (Ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname):
Jens Gruber 2.1 118
119 {{code language="bash"}}
120 root@puppeteer:~ # acmetool want kopano.SCHULKUERZEL.logoip.de
121 {{/code}}
122
123
Jens Gruber 5.1 124 ===== (% style="color:#000000" %)__acme.sh__(%%) =====
Jens Gruber 2.1 125
Jens Gruber 5.1 126 (% style="color:#000000" %)Wechseln Sie in den puppeteer Container:
Jens Gruber 2.1 127
128 {{code language="bash"}}
129 root@ldhost:~ # lxc-ssh -n puppeteer
130 {{/code}}
131
132
jonasmayer@sbede 12.1 133 (% 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 134
135 {{code language="bash"}}
136 root@puppeteer:~ # sle
137 {{/code}}
138
139
jonasmayer@sbede 12.1 140 (% style="color:#000000" %)Beantragen Sie ein neues Zertifikat mit folgendem Befehl (ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname):
Jens Gruber 2.1 141
142 {{code language="bash"}}
143 le-acme@puppeteer:~ $ issue kopano.SCHULKUERZEL.logoip.de
144 {{/code}}
145
146
jonasmayer@sbede 12.1 147 (% 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 148
149 {{code language="bash"}}
150 root@puppeteer:~ # prun
151 root@rev-proxy:~ # prun
152 {{/code}}
153
154