Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:postfix_centos_7

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:postfix_centos_7 [2015/10/05 16:08] – [plaintext_reject_code] klaustachtler:postfix_centos_7 [2024/01/09 11:41] (aktuell) – [smtpd_discard_ehlo_keyword_address_maps] klaus
Zeile 108: Zeile 108:
  
 ==== Paket postfix installieren ==== ==== Paket postfix installieren ====
 +
 +Nach erfolgreicher Einbindung des **Drittanbieter-Repository**
 +  * [[tachtler:mailserver.guru_centos_7|mailserver.guru CentOS 7]]
 +sind nachfolgende Anpassungen in den Konfigurationsdateien 
 +  * ''/etc/yum.repos.d/CentOS-Base.repo''
 +noch erforderlich, um die Installation des [[http://www.postfix.org/|Postfix]] aus dem ''mailserver.guru''-Repository durchführen zu können.
 +
 +=== /etc/yum.repos.d/CentOS-Base.repo ===
 +
 +(**__Nur relevanter Ausschnitt__**)
 +<code bash>
 +[base]
 +name=CentOS-$releasever - Base
 +mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
 +#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
 +gpgcheck=1
 +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
 +priority=1
 +exclude=postfix,postfix-*,dovecot
 +</code>
 +
 +**__Erklärungen zur Anpassung__**:
 +
 +  * <code>exclude=postfix,postfix-*</code>
 +
 +Herausnehmen des Pakets ''postfix'' und alle damit Verbundenen Pakete aus dem ''CentOS-Base''-Repository.
  
 Nachdem das **Drittanbieter-Repository** Nachdem das **Drittanbieter-Repository**
   * [[tachtler:mailserver.guru_centos_7|mailserver.guru CentOS 7]]   * [[tachtler:mailserver.guru_centos_7|mailserver.guru CentOS 7]]
-erfolgreich eingebunden wurde, kann mit nachfolgendem Befehl, das **__neuere__** ''rpm''-Paket - **''postfix''** installiert werden:+erfolgreich eingebunden und konfiguriert wurde, kann mit nachfolgendem Befehl, das **__neuere__** ''rpm''-Paket - **''postfix''** installiert werden:
 <code> <code>
 # yum install postfix # yum install postfix
Zeile 467: Zeile 493:
   * <code>-A INPUT -p tcp --dport 465 -j ACCEPT</code>   * <code>-A INPUT -p tcp --dport 465 -j ACCEPT</code>
   * <code>-A INPUT -p tcp --dport 587 -j ACCEPT</code>   * <code>-A INPUT -p tcp --dport 587 -j ACCEPT</code>
 +  * <code>-A INPUT -p tcp --dport 10025 -j ACCEPT</code>
 und hier der Befehl: und hier der Befehl:
 <code> <code>
Zeile 472: Zeile 499:
 # iptables -I INPUT 6 -p tcp --dport 465 -j ACCEPT # iptables -I INPUT 6 -p tcp --dport 465 -j ACCEPT
 # iptables -I INPUT 7 -p tcp --dport 587 -j ACCEPT # iptables -I INPUT 7 -p tcp --dport 587 -j ACCEPT
 +# iptables -I INPUT 8 -p tcp --dport 10025 -j ACCEPT
 </code> </code>
  
Zeile 486: Zeile 514:
 6        0     0 ACCEPT     tcp  --  eth0         0.0.0.0/           0.0.0.0/          tcp dpt:465 state NEW 6        0     0 ACCEPT     tcp  --  eth0         0.0.0.0/           0.0.0.0/          tcp dpt:465 state NEW
 7        0     0 ACCEPT     tcp  --  eth0         0.0.0.0/           0.0.0.0/          tcp dpt:587 state NEW 7        0     0 ACCEPT     tcp  --  eth0         0.0.0.0/           0.0.0.0/          tcp dpt:587 state NEW
-8        0     0 REJECT     all  --  *      *       0.0.0.0/           0.0.0.0/          reject-with icmp-host-prohibited +           0 ACCEPT     tcp  --  eth0         0.0.0.0/           0.0.0.0/          tcp dpt:10025 state NEW 
 +           0 REJECT     all  --  *      *       0.0.0.0/           0.0.0.0/          reject-with icmp-host-prohibited 
  
 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
Zeile 496: Zeile 525:
 </code> </code>
  
-Die neuen Zeilen sind an **Position 5 (INPUT)** bis **Position (INPUT)** zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (**nur relevanter Ausschnitt**):+Die neuen Zeilen sind an **Position 5 (INPUT)** bis **Position (INPUT)** zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (**nur relevanter Ausschnitt**):
 <code> <code>
 ... ...
Zeile 502: Zeile 531:
 6        0     0 ACCEPT     tcp  --  eth0         0.0.0.0/           0.0.0.0/          tcp dpt:465 state NEW 6        0     0 ACCEPT     tcp  --  eth0         0.0.0.0/           0.0.0.0/          tcp dpt:465 state NEW
 7        0     0 ACCEPT     tcp  --  eth0         0.0.0.0/           0.0.0.0/          tcp dpt:587 state NEW 7        0     0 ACCEPT     tcp  --  eth0         0.0.0.0/           0.0.0.0/          tcp dpt:587 state NEW
 +8        0     0 ACCEPT     tcp  --  eth0         0.0.0.0/           0.0.0.0/          tcp dpt:10025 state NEW
 ... ...
 </code> </code>
Zeile 657: Zeile 687:
 </code> </code>
  
-[[http://www.postfix.org|Postfix]] wird sich an alle unter **''mydestination''** aufgelisteten Domains bzw. (**FQDN**) als final zuständig füheln und e-Mails annehmen, ohne diese an andere Mail-Server weiterzuleiten.+[[http://www.postfix.org|Postfix]] wird sich an alle unter **''mydestination''** aufgelisteten Domains bzw. (**FQDN**) als final zuständig fühlen und e-Mails annehmen, ohne diese an andere Mail-Server weiterzuleiten.
  
 ==== myorigin ==== ==== myorigin ====
  
-Ergänzung für lokal erzeugte e-Mails, welche nur an eine User-ID adressiert sind z.B. ''root''Dies es-M;ail werden z.B. via ''cron''-job erstellt. Dies ist immer dann problematisch, wenn **local erzeugte e-Mail, __nicht__ lokal zugestellt/weitergeleitet** werden!+Ergänzung für lokal erzeugte e-Mails, welche nur an eine User-ID adressiert sind z.B. ''root''Diese e-Mail'werden z.B. via ''cron''-job erstellt. Dies ist immer dann problematisch, wenn **local erzeugte e-Mail, __nicht__ lokal zugestellt/weitergeleitet** werden!
  
 ^ Defaultwert                   ^ Neuer Wert                  ^ ^ Defaultwert                   ^ Neuer Wert                  ^
-| $mydomain = mx1.tachtler.net | **server60.idmz.$mydomain** |+| $myorigin = mx1.tachtler.net | **server60.idmz.$mydomain** |
  
 Hier sollen **lokal erzeuge e-Mails**, **nicht** pauschal um $mydomain = mx1.tachtler.net erweitert werden, sondern es soll der **interne Servername**, hier ''server60.idmz.tachtler.net'' verwendet werden.  Hier sollen **lokal erzeuge e-Mails**, **nicht** pauschal um $mydomain = mx1.tachtler.net erweitert werden, sondern es soll der **interne Servername**, hier ''server60.idmz.tachtler.net'' verwendet werden. 
Zeile 1885: Zeile 1915:
 nausch.org              reject_plaintext_session nausch.org              reject_plaintext_session
 </code> </code>
 +
 +:!: **ERKLÄRUNG** - **''reject_plaintext_session'' verhindert den Aufbau von unverschlüsselten Verbindungen, bei __eingehenden e-Mails__**
  
 :!: **HINWEIS** - Als Trennzeichen zwischen den beiden Einträgen, sollte am besten die **[TAB]**-Taste verwendet werden, es ist aber auch die Trennung durch **[Leerzeichen]** möglich! :!: **HINWEIS** - Als Trennzeichen zwischen den beiden Einträgen, sollte am besten die **[TAB]**-Taste verwendet werden, es ist aber auch die Trennung durch **[Leerzeichen]** möglich!
Zeile 1940: Zeile 1972:
 ^ Information    ^ Beschreibung                                              ^ ^ Information    ^ Beschreibung                                              ^
 | Dokumentation  | [[http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions]] \\ [[http://www.postfix.org/SMTPD_ACCESS_README.html]] | | Dokumentation  | [[http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions]] \\ [[http://www.postfix.org/SMTPD_ACCESS_README.html]] |
-| Defaultwert    | <code>smtpd_relay_restrictions = </code> |+| Defaultwert    | <code>smtpd_recipient_restrictions = </code> |
 | **Neuer Wert** | <code bash>smtpd_recipient_restrictions = | **Neuer Wert** | <code bash>smtpd_recipient_restrictions =
 # RFC or important ROLE-Accounts - Whitelisting - like: postmaster, abuse. # RFC or important ROLE-Accounts - Whitelisting - like: postmaster, abuse.
Zeile 1957: Zeile 1989:
 # Permit all SASL authenticated users, or clients from mynetworks. # Permit all SASL authenticated users, or clients from mynetworks.
         # Tachtler - disabled - permit_sasl_authenticated,         # Tachtler - disabled - permit_sasl_authenticated,
-        # Tachtler - disabled - permit_mynetworks,+        permit_mynetworks,
 # RBL and RHSBL checks. # RBL and RHSBL checks.
         reject_rbl_client zen.spamhaus.org=127.0.0.10,         reject_rbl_client zen.spamhaus.org=127.0.0.10,
Zeile 2044: Zeile 2076:
 Fortfahren mit der Annahme der e-Mail, wenn der Client erfolgreich über das RFC-4954 (AUTH) Protokoll authentifiziert ist. Fortfahren mit der Annahme der e-Mail, wenn der Client erfolgreich über das RFC-4954 (AUTH) Protokoll authentifiziert ist.
  
-  * <code># Tachtler - disabled - permit_mynetworks</code>+  * <code>permit_mynetworks</code>
  
-:!: **HINWEIS** - Abgedeckt durch die ''smtpd_relay_restrictions''.+:!: **HINWEIS** - Abgedeckt durch die ''smtpd_relay_restrictions'', ausser bei lokaler Einlieferung!
  
 Fortfahren mit der Annahme der e-Mail, wenn die IP-Adresse des Clients in ''mynetworks'' enthalten ist. Fortfahren mit der Annahme der e-Mail, wenn die IP-Adresse des Clients in ''mynetworks'' enthalten ist.
Zeile 2384: Zeile 2416:
  
 :!: **WICHTIG** - **Damit Änderungen allen Konfigurationsdateien wirksam werden, ist ein [[http://www.postfix.org|Postfix]] ''restart'' erforderlich!** :!: **WICHTIG** - **Damit Änderungen allen Konfigurationsdateien wirksam werden, ist ein [[http://www.postfix.org|Postfix]] ''restart'' erforderlich!**
 +
 +:!: **WICHTIG** - **Nachfolgende beide Befehle können bzw. sollten nicht im __laufenden Betrieb__ ausgeführt werden!** (Evtl. zur Inhalt Einsicht die Datei vorher an einen anderen Speicherort kopieren)
  
 Um den Inhalt der ''address_verify_map'' **einsehen zu können**, kann nachfolgender Befehl genutzt werden: Um den Inhalt der ''address_verify_map'' **einsehen zu können**, kann nachfolgender Befehl genutzt werden:
Zeile 3652: Zeile 3686:
 | Defaultwert    | <code>smtpd_tls_CAfile = </code><code>smtp_tls_CAfile = </code><code>lmtp_tls_CAfile = </code> | | Defaultwert    | <code>smtpd_tls_CAfile = </code><code>smtp_tls_CAfile = </code><code>lmtp_tls_CAfile = </code> |
 | **Neuer Wert** | <code>smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt</code><code>smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt</code><code>lmtp_tls_CAfile = $smtp_tls_CAfile</code> | | **Neuer Wert** | <code>smtpd_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt</code><code>smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt</code><code>lmtp_tls_CAfile = $smtp_tls_CAfile</code> |
-| Beschreibung   | Eine Datei mit im (PEM-Format) abgelegten ROOT-CA-Zertifikate der vertrauenswürdigen Stammzertifizierungsstellen, entweder Remote-SMTP-Client-Zertifikate oder Zwischen ROOT-CA-Zertifikate. \\ \\ :!: **HINWEIS** - **Hier können auch eigene ROOT-Zeritifikate hinterlegt werden!** |+| Beschreibung   | Eine Datei mit im (PEM-Format) abgelegten ROOT-CA-Zertifikate der vertrauenswürdigen Stammzertifizierungsstellen, entweder Remote-SMTP-Client-Zertifikate oder Zwischen ROOT-CA-Zertifikate. |
  
 ==== smtpd_tls_cert_file ==== ==== smtpd_tls_cert_file ====
Zeile 3669: Zeile 3703:
 | **Neuer Wert** | <code>smtpd_tls_key_file = /etc/pki/postfix/private/mail.tachtler.net.key</code> | | **Neuer Wert** | <code>smtpd_tls_key_file = /etc/pki/postfix/private/mail.tachtler.net.key</code> |
 | Beschreibung   | Die Datei mit dem Schlüssel im PEM-Format. | | Beschreibung   | Die Datei mit dem Schlüssel im PEM-Format. |
 +
 +==== (l|s)mtp(d)_tls_ciphers ====
 +
 +^ Information    ^ Beschreibung                                              ^
 +| Dokumentation  | [[http://www.postfix.org/postconf.5.html#smtpd_tls_ciphers]] \\ [[http://www.postfix.org/postconf.5.html#smtp_tls_ciphers]] \\ [[http://www.postfix.org/postconf.5.html#lmtp_tls_ciphers]] |
 +| Defaultwert    | <code>smtpd_tls_ciphers = medium</code><code>smtp_tls_ciphers = medium</code><code>lmtp_tls_ciphers = medium</code> |
 +| **Neuer Wert** | <code>smtpd_tls_ciphers = high</code><code>smtp_tls_ciphers = high</code><code>lmtp_tls_mandatory_ciphers = $smtp_tls_ciphers</code>  |
 +| Beschreibung   | Der Standard TLS Verschlüsselungsgrad. |
 +
 +Nachfolgende Tabelle spezifiziert die einzelnen Verschlüsselungsgrad Einstellungen:
 +
 +^ Verschlüsselungsgrad ^ Parameter ^
 +| ''export''           | ''tls_export_cipherlist = aNULL:-aNULL:ALL:+RC4:@STRENGTH'' |
 +| ''low''              | ''tls_low_cipherlist = aNULL:-aNULL:ALL:!EXPORT:+RC4:@STRENGTH'' |
 +| ''medium''           | ''tls_medium_cipherlist = aNULL:-aNULL:ALL:!EXPORT:!LOW:+RC4:@STRENGTH''|
 +| ''high''             | ''tls_high_cipherlist = aNULL:-aNULL:ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH''|
 +| ''null''             | ''tls_null_cipherlist = eNULL:!aNULL''|
 +
 +Alle Verschlüsselungsgrad Einstellungen haben eine Parameter in dem die verschiedenen Verschlüsselungsarten festgelegt werden können, **diese sollten jedoch __nicht__ abgeändert werden**!
  
 ==== smtpd_tls_dh512_param_file smtpd_tls_dh1024_param_file  ==== ==== smtpd_tls_dh512_param_file smtpd_tls_dh1024_param_file  ====
Zeile 3692: Zeile 3745:
 | ''strong'' | Verwenden EECDH mit 128 Bit. Dies ist der "Best-Practice"-Kompromiss zwischen Sicherheit und Recheneffizienz. | | ''strong'' | Verwenden EECDH mit 128 Bit. Dies ist der "Best-Practice"-Kompromiss zwischen Sicherheit und Recheneffizienz. |
 | ''ultra''  | Verwenden EECDH mit 192 Bit. Der Rechenaufwand beträgt etwa das doppelte wie bei 128 Bit. Abgesehen von den erheblichen Fortschritten, bei Angriffen auf elliptischen Kurven Kryptosysteme, ist die "starke" Kurve ausreichend, für die meisten Anwender. | | ''ultra''  | Verwenden EECDH mit 192 Bit. Der Rechenaufwand beträgt etwa das doppelte wie bei 128 Bit. Abgesehen von den erheblichen Fortschritten, bei Angriffen auf elliptischen Kurven Kryptosysteme, ist die "starke" Kurve ausreichend, für die meisten Anwender. |
 +
 +==== (l|s)mtp(d)_tls_exclude_ciphers ====
 +
 +^ Information    ^ Beschreibung                                              ^
 +| Dokumentation  | [[http://www.postfix.org/postconf.5.html#smtpd_tls_exclude_ciphers]] \\ [[http://www.postfix.org/postconf.5.html#smtp_tls_exclude_ciphers]] \\ [[http://www.postfix.org/postconf.5.html#lmtp_tls_exclude_ciphers]] |
 +| Defaultwert    | <code>smtpd_tls_exclude_ciphers = </code><code>smtp_tls_mandatory_exclude_ciphers = </code><code>lmtp_tls_mandatory_exclude_ciphers = </code> |
 +| **Neuer Wert** | <code>smtpd_tls_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDB3-SHA, KRB5-DES, CBC3-SHA</code><code>smtp_tls_mandatory_exclude_ciphers = aNULL, eNULL, EXPORT, DES, RC4, MD5, PSK, aECDH, EDH-DSS-DES-CBC3-SHA, EDH-RSA-DES-CDB3-SHA, KRB5-DES, CBC3-SHA</code><code>lmtp_tls_mandatory_exclude_ciphers = $smtp_tls_exclude_ciphers</code> |
 +| Beschreibung   | Liste der Chiffren oder Verschlüsselungstypen die von den SMTP-Server Sicherheitsstufen auszuschließen sind. |
 +
 +:!: **HINWEIS** - Siehe auch nachfolgenden externen Link:
 +  * [[https://weakdh.org/sysadmin.html|Guide to Deploying Diffie-Hellman for TLS]]
  
 ==== (l|s)mtp(d)_tls_loglevel ==== ==== (l|s)mtp(d)_tls_loglevel ====
Zeile 3871: Zeile 3935:
 # openssl s_client -starttls smtp -connect mx01.nausch.org:25 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin # openssl s_client -starttls smtp -connect mx01.nausch.org:25 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin
 SHA1 Fingerprint=F6:A2:58:4C:CA:1F:52:68:69:FF:87:73:CF:62:40:80:87:AC:21:B2 SHA1 Fingerprint=F6:A2:58:4C:CA:1F:52:68:69:FF:87:73:CF:62:40:80:87:AC:21:B2
 +</code>
 +
 +==== (l|s)mtp_dns_support_level ====
 +
 +^ Information    ^ Beschreibung                                              ^
 +| Dokumentation  | [[http://www.postfix.org/postconf.5.html#smtp_dns_support_level]] \\ [[http://www.postfix.org/postconf.5.html#smtp_dns_support_level]] |
 +| Defaultwert    | <code>smtp_dns_support_level =</code><code>lmtp_dns_support_level =</code> |
 +| **Neuer Wert** | <code>smtp_dns_support_level = dnssec</code><code>lmtp_dns_support_level = dnssec</code> |
 +| Beschreibung   | Legt für die Kommunikation von [[http://www.postfix.com|Postfix]] mit anderen Clients/Host fest, ob die Verschlüsselung **''dane, dane-only''**, die für diesen Client/Host geprüft werden kann. |
 +| interner Link  | [[tachtler:postfix_centos_7#l_s_mtp_tls_policy_maps|Postfix CentOS 7 - TLS-Policy-Konfigurieren - (l|s)mtp_tls_policy_maps]] \\ [[tachtler:postfix_centos_7#l_s_mtp_tls_fingerprint_digest|Postfix CentOS 7 - TLS-Policy-Konfigurieren - (l|s)mtp_tls_fingerprint_digest]] |
 +
 +Falls in den **neue Konfigurationsdateien** 
 +  * ''/etc/postfix/smtp_tls_policy_maps'' 
 +  * ''/etc/postfix/lmtp_tls_policy_maps'' 
 +ein Eintrag mit
 +  * **''dane''** oder
 +  * **''dane-only''**
 +enthalten ist, wie nachfolgend dargestellt (**hier nur ''/etc/postfix/smtp_tls_policy_maps''**):
 +<code>
 +# nausch.org    fingerprint     match=F6:A2:58:4C:CA:1F:52:68:69:FF:87:73:CF:62:40:80:87:AC:21:B2
 +nausch.org      dane-only
 +</code>
 +
 +**MUSS zwingend** auch 
 +  * ''smtp_dns_support_level = dnssec'' bzw. 
 +  * ''lmtp_dns_support_level = dnssec''
 +gesetzt werden, da sonst nachfolgende Fehlermeldung im LOG erscheint (**nur relevanter Ausschnitt**):
 +<code>
 +...
 +...warning: nausch.org: dane-only configured with dnssec lookups disabled
 +...warning: TLS policy lookup for nausch.org/mx01.nausch.org: client TLS configuration problem
 +...
 </code> </code>
  
Zeile 4595: Zeile 4691:
  
 ^ Eintrag                     ^ Bedeutung ^ ^ Eintrag                     ^ Bedeutung ^
 +| <code>chunking</code>       | Die CHUNKING-Serviceerweiterung ermöglicht die Verwendung des BDAT-Befehls, alternativ zum DATA-Befehl. |
 | <code>silent-discard</code> | Verhindert die Schreibung von LOG-Einträgen  | <code>silent-discard</code> | Verhindert die Schreibung von LOG-Einträgen 
 | <code>dsn</code>            | Verschweigt im SMTP-Dialog die DSN-Fähigkeit | | <code>dsn</code>            | Verschweigt im SMTP-Dialog die DSN-Fähigkeit |
Zeile 4600: Zeile 4697:
 Nachfolgend können hier Einträge in die **''cidr''**-Map nach nachfolgendem Muster eingetragen werden: Nachfolgend können hier Einträge in die **''cidr''**-Map nach nachfolgendem Muster eingetragen werden:
 <code> <code>
-192.168.0.0/24     silent-discard +192.168.0.0/24     chunking, silent-discard 
-192.168.1.0/24     silent-discard +192.168.1.0/24     chunking, silent-discard 
-0.0.0.0/         silent-discard, dsn+0.0.0.0/         chunking, silent-discard, dsn
 </code> </code>
  
Zeile 4795: Zeile 4892:
  
   * Interner **Link** zu: [[tachtler:postfix_centos_7_-_postscreen_einsetzen|Postfix CentOS 7 - Postscreen einsetzen]]   * Interner **Link** zu: [[tachtler:postfix_centos_7_-_postscreen_einsetzen|Postfix CentOS 7 - Postscreen einsetzen]]
 +
 +==== Postfix CentOS 7 - AMaViS anbinden (amavisd-milter) ====
 +
 +  * Interner **Link** zu: [[tachtler:postfix_centos_7_-_amavis_anbinden_amavisd-milter|Postfix CentOS 7 - AMaViS anbinden (amavisd-milter)]]
  
tachtler/postfix_centos_7.txt · Zuletzt geändert: 2024/01/09 11:41 von klaus