Version 14.1 von Jonas Mayer am 2022/05/24 23:52

Zeige letzte Bearbeiter
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 besonderer Relevanz.
2 In diesem Artikel erfahren Sie, welche für Voraussetzungen es gibt und wie ein signiertes Let's Encrypt Zertifikat generiert werden kann.
3
4
5 ===== (% style="color:#000000" %)__Voraussetzungen__(%%) =====
6
7 (% style="color:#000000" %)Damit ein Zertifikat generiert werden kann, müssen folgende Ports vom vorgeschalteten Router (WAN) an den logoDIDACT-Server weitergeleitet werden:
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
14 ==== ====
15
16 ===== =====
17
18 ===== =====
19
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]
26 Url https://kopano
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
39 ===== (% style="color:#000000" %)__Split-DNS__(%%) =====
40
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.
42
43 (% style="color:#000000" %)Führen Sie folgende Schritte für die Einrichtung durch, falls noch nicht erfolgt.
44
45 (% style="color:#000000" %)Öffnen Sie die Datei "named.conf.local" im logosrv:
46
47 {{code language="bash"}}
48 root@logosrv:~ # vim /etc/bind/named.conf.local
49 {{/code}}
50
51
52 (% style="color:#000000" %)Bearbeiten Sie die Datei wie folgt (Ersetzen Sie "musterstadt" durch den Schul-Shortname):
53
54 {{code language="bash"}}
55 ## Externe dynamische IP intern auflösen
56 zone "musterstadt.logoip.de" {
57   type master;
58   file "/etc/bind/db.dynip";
59   check-names ignore;
60 };
61 {{/code}}
62
63
64 (% style="color:#000000" %)Öffnen Sie die referenzierte Datei {{box}}db.dynip{{/box}} im logosrv:
65
66 {{code language="bash"}}
67 root@logosrv:~ # vim /etc/bind/db.dynip
68 {{/code}}
69
70
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":
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
86 @                A       172.28.28.27
87 *                A       172.28.28.27
88 {{/code}}
89
90
91 (% style="color:#000000" %)Starten Sie nach den Anpassungen den DNS-Server im logosrv neu:
92
93 {{code language="bash"}}
94 root@logosrv:~ # /etc/init.d/bind9 restart
95 {{/code}}
96
97
98 ==== (% style="color:#000000" %)**__SSL-Zertifikat über Tool acmetool oder acme.sh anfordern__**(%%) ====
99
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:
101
102
103 ===== (% style="color:#000000" %)__acmetool__(%%) =====
104
105 (% style="color:#000000" %)Wechseln Sie in den puppeteer Container:
106
107 {{code language="bash"}}
108 root@ldhost:~ # lxc-ssh -n puppeteer
109 {{/code}}
110
111
112 (% style="color:#000000" %)Fordern Sie das Zertifikat mit folgendem Befehl an (Ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname):
113
114 {{code language="bash"}}
115 root@puppeteer:~ # acmetool want kopano.SCHULKUERZEL.logoip.de
116 {{/code}}
117
118
119 ===== (% style="color:#000000" %)__acme.sh__(%%) =====
120
121 (% style="color:#000000" %)Wechseln Sie in den puppeteer Container:
122
123 {{code language="bash"}}
124 root@ldhost:~ # lxc-ssh -n puppeteer
125 {{/code}}
126
127
128 (% style="color:#000000" %)Wechseln Sie im puppeteer Container in die Umgebung des Benutzers le-acme zur Verwaltung der Let's Encrypt Zertifikate:
129
130 {{code language="bash"}}
131 root@puppeteer:~ # sle
132 {{/code}}
133
134
135 (% style="color:#000000" %)Beantragen Sie ein neues Zertifikat mit folgendem Befehl (ersetzen Sie "SCHULKUERZEL" mit dem jeweiligen Shortname):
136
137 {{code language="bash"}}
138 le-acme@puppeteer:~ $ issue kopano.SCHULKUERZEL.logoip.de
139 {{/code}}
140
141
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:
143
144 {{code language="bash"}}
145 root@puppeteer:~ # prun
146 root@rev-proxy:~ # prun
147 {{/code}}
148
149