Version 3.1 von Jonas Mayer am 2022/05/20 13:52

Verstecke letzte Bearbeiter
Michael Ecer 1.1 1 (% style="color:#000000" %)__**Voraussetzung**:__ Funktionale Kopano Einrichtung und Anbindung an die MariaDB103
2
3
4 (% style="color:#000000" %)Um Kopano im lokalen Betrieb einzurichten, muss man Anpassungen an Konfigurationsdateien im Puppeteer vornehmen. Dadurch erhalten Benutzer dann [[username@schule.local>>mailto:username@schule.local]] als lokale Mailadresse und können untereinander Nachrichten verschicken. 
5 **__Wichtig:__** Im lokalen Betrieb können keine Nachrichten an externe Mailadressen versendet werden. Die Kommunikation ist strikt auf interne Adressen beschränkt.
6
7
Jonas Mayer 2.1 8 (% style="color:#000000" %)Um die Anpassungen vorzunehmen wechselt man in den (% style="color:#3498db" %)Puppeteer (% style="color:#000000" %)und dort in das Verzeichnis(% style="color:#3498db" %) /etc/logodidact/hiera/custom.d/
Michael Ecer 1.1 9
10 (% class="box" %)
11 (((
12 (% style="color:#000000" %)##cd /etc/logodidact/hiera/custom.d/##
13 )))
14
15 (% style="color:#000000" %)Hier lassen sich diverse .yaml Konfigurationsdateien finden. Für die Einrichtung sind die Nachfolgenden von Relevanz:
16
17 (% class="box" %)
18 (((
19 (% style="color:#000000" %)##kopano-g1.yaml / rev-proxy.yaml / mariadb103.yaml / ldhost.yaml / samba4-ad.yaml##
20 )))
21
22
23 (% style="color:#000000" %)Anpassungen in der (% style="color:#3498db" %)kopano-g1.yaml(% style="color:#000000" %):
24 I.d.R. trägt man in der kopano-g1.yaml Die Maildomain und Zugangsdaten für das Catchall Postfach ein. Da wir jedoch keine externe Maildomain verwenden, bleiben diese Felder auf den Default-Wert bestehen.
25
26 (% class="box" %)
27 (((
28 (% style="color:#000000" %)##~-~--
29 ld_multidrop::ensure: absent
30 \\ld_kopano::amavisd_new::configs:
31 '@local_domains_maps': "( new_RE( qr'[@.](.*~\~\.?%{::domain})$'i ) )"
32 \\ld_kopano::postfix::configs:
33 smtp_generic_maps:
34 value: 'hash:%{dir_etc}/smtp_generic_maps.hash'
35 sender_dependent_relayhost_maps:
36 value: 'pcre:%{dir_etc}/sender_dependent_relayhost_maps_internal.pcre'
37 smtp_sender_dependent_authentication:
38 value: 'yes'
39 smtp_sasl_auth_enable:
40 value: 'yes'
41 smtp_sasl_password_maps:
42 value: 'hash:%{dir_etc}/smtp_sasl_password_maps.hash'
43 smtp_sasl_security_options:
44 value: 'noanonymous, noplaintext'
45 smtp_sasl_tls_security_options:
46 value: 'noanonymous'
47 smtp_tls_session_cache_database:
48 value: 'btree:${data_directory}/smtp_scache'
49 smtp_use_tls:
50 value: 'yes'
51 virtual_mailbox_domains:
52 value: 'pcre:%{dir_etc}/virtual_mailbox_domains_internal.pcre'
Jonas Mayer 2.1 53 # Vordefinierte Absender beim Versand an Empfänger der lokalen Maildomänen einschränken
54 smtpd_restriction_classes:
55 value: 'local_only'
56 local_only:
57 value: 'check_recipient_access pcre:%{dir_etc}/local_domains.pcre, reject'
58 smtpd_recipient_restrictions:
59 value: 'check_sender_access pcre:%{dir_etc}/restricted_senders.pcre, permit_mynetworks,permit_sasl_authenticated, reject_invalid_hostname, reject_non_fqdn_hostname, reject_non_fqdn_recipient, reject_non_fqdn_sender, reject_unknown_recipient_domain, reject_unknown_sender_domain, reject_unauth_destination, reject_unauth_pipelining, reject'
60 \\\\ld_kopano::postfix::hashes:
Michael Ecer 1.1 61 '%{dir_etc}/smtp_generic_maps.hash':
62 content: |
63 %{header}
Jonas Mayer 2.1 64 # Umschreibung der Absender-Domain bei externem Mailversand
65 # (Dummy-Eintrag, durch Empfängerfilterung nicht genutzt)
Michael Ecer 1.1 66 @%{::fqdn} @example.com
67 '%{dir_etc}/sender_dependent_relayhost_maps_external.hash':
68 content: |
69 %{header}
Jonas Mayer 2.1 70 # Bounce-Nachrichten mit Null-Sender via Relayhost versenden
Michael Ecer 1.1 71 <> smtp.example.com
Jonas Mayer 2.1 72 # Mails an externe Empfänger via Relayhost versenden
Michael Ecer 1.1 73 @example.com smtp.example.com
74 '%{dir_etc}/smtp_sasl_password_maps.hash':
75 content: |
76 %{header}
77 #user1@example.com user1@example.com:geheim
78 '%{dir_etc}/virtual_mailbox_domains_external.hash':
79 content: |
80 %{header}
81 example.com ACCEPT
Jonas Mayer 2.1 82 '%{dir_etc}/restricted_senders.pcre':
83 content: |
84 %{header}
85 # Regular Expression Format: Liste an Absendern, die beim Versand eingeschränkt werden
86 /@(.+?\.)?%{::domain}$/ local_only
87 '%{dir_etc}/local_domains.pcre':
88 content: |
89 %{header}
90 # Regular Expression Format: Liste erlaubter Empfängerdomänen (für eingeschränkte Absender)
91 /@(.+?\.)?%{::domain}$/ OK
Jonas Mayer 3.1 92 \\\\ld_kopano::postfix::verbose: false
Michael Ecer 1.1 93 \\ld_kopano::ldap_type: openldap
94 \\ld_kopano::db_server: mariadb103
95 \\# Optimierte Z-Push Webserver-Einstellungen für ActiveSync Devices
96 apache::keepalive: 'On'
97 apache::keepalive_timeout: '45'
98 apache::max_keepalive_requests: '500'
99 apache::mod::prefork::maxclients: '384'
100 apache::mod::prefork::serverlimit: '384'
101 nginx::keepalive_timeout: 3600
102 nginx::keepalive_requests: 500##
103 )))
104
105
106 (% style="color:#000000" %)Anpassungen in der (% style="color:#3498db" %)rev-proxy.yaml(% style="color:#000000" %):
107
108 (% class="box" %)
109 (((
110 (% style="color:#000000" %)##~-~--
111 # Kopano: KeepAlive Timeout erhöhen für Z-Push / ActiveSync Devices
112 nginx::keepalive_timeout: 3600
113 nginx::keepalive_requests: 500##
114 )))
115
116
117 (% style="color:#000000" %)Anpassungen in der(%%) (% style="color:#3498db" %)mariadb103.yaml(%%):
118
119 (% class="box" %)
120 (((
121 (% style="color:#000000" %)##~-~--
122 mysql::server::override_options:
123 mysqldump:
124 max_allowed_packet: '1G'
125 mysqld:
126 innodb_file_per_table: '1'
127 bind-address: '0.0.0.0'
128 skip-name-resolve: true
129 innodb_large_prefix: '1'
130 max_allowed_packet: '256M'
131 max_connections: '151'
132 query_cache_limit: '2M'
133 query_cache_size: '64M'
134 thread_stack: '512K'
135 tmp_table_size: '64M'
136 max_heap_table_size: '64M'
137 sort_buffer_size: '2M'
138 join_buffer_size: '2M'
139 table_open_cache: '500'
140 innodb_autoextend_increment: '1000'
141 innodb_buffer_pool_size: '1G'
142 # The following setting is based on the existing ibdata1 file, check current size and insert it here (rounded to MB)
143 # - Hint: Initial value after first installation = 12M
144 innodb_data_file_path: 'ibdata1:76M:autoextend'
145 innodb_flush_log_at_trx_commit: '2'
146 innodb_flush_method: 'O_DSYNC'
147 innodb_lock_wait_timeout: '120'
148 innodb_log_buffer_size: '8M'
149 innodb_log_file_size: '1G'
150 innodb_log_files_in_group: '3'
151 innodb_read_io_threads: '4'
152 innodb_write_io_threads: '4'
153 wait_timeout: '28800'##
154 )))
155
156
157 (% style="color:#000000" %)Anpassungen in der (% style="color:#3498db" %)ldhost.yaml(% style="color:#000000" %): 
158 Hier wird die Maildomain festgelegt, die Benutzer im Attribut mail unter (% style="color:#3498db" %)/var/lds/user/username/mail(% style="color:#000000" %) im (% style="color:#3498db" %)logosrv (% style="color:#000000" %)erhalten.
159
160 (% class="box" %)
161 (((
Jonas Mayer 2.1 162 (% style="color:#000000" %)##~-~--##(%%)
Jonas Mayer 3.1 163 (% style="color:#000000; font-family:~"Open Sans~",~"Helvetica Neue~",Helvetica,Arial,sans-serif" %)### Kopano: Definition einer Maildomain (abweichend zu schule.local), die Benutzer & Gruppen im LDAP-Feld 'mail' erhalten sollen##(%%)
164 (% style="color:#000000" %)###ld_legacy::mail::filters:
Michael Ecer 1.1 165 # '(zarafaaccount=1)': 'example.com'
166 # Kopano: Definition von Gruppen, die eine Mailadresse erhalten sollen und dadurch anschreibbar werden
167 ld_legacy::mail::zarafa_groups:
Jonas Mayer 3.1 168 - elehrer##
Michael Ecer 1.1 169 )))
170
171
172 (% style="color:#000000" %)Nun fehlen noch die Anpassungen in der (% style="color:#3498db" %)samba4-ad.yaml(% style="color:#000000" %):
173 Hier wird dem admin die administrativen Rechte zugeteilt. Falls noch andere Benutzer mit administrativen Rechten innerhalb von Kopano vergeben werden sollen, können diese ergänzt werden.
174
175 (% class="box" %)
176 (((
177 (% style="color:#000000" %)##~-~--
178 # Kopano: Definition von Benutzern, die administrative Rechte erhalten sollen
179 # (Einstellung wird nicht benutzt, sofern Kopano an das OpenLDAP angebunden ist, was dem Standard entspricht)
180 ld_samba4::ad::kopano::admins:
181 - 'admin'##
182 )))
183
184
185 (% style="color:#000000" %)Damit die Änderungen sauber übernommen werden, fehlt noch ein Git commit im (% style="color:#3498db" %)Puppeteer(% style="color:#000000" %).
186
187 (% class="box" %)
188 (((
189 (% style="color:#000000" %)##git add .##
190 )))
191
192 (% class="box" %)
193 (((
194 (% style="color:#000000" %)##git commit -am "Kopano für den lokalen Betrieb eingerichtet"##
195 )))
196
197
Jonas Mayer 2.1 198 (% style="color:#000000" %)und ein (% style="color:#3498db" %)prun in den jeweiligen Containern(% style="color:#000000" %) (Alle Container, die durch die .yaml Konfigurationsdateien angesprochen werden)