= Infos zum Mailserver der paedml == DNS-Einträge Damit der Server auch über OpenVPN über eine Adresse erreichbar ist, ist auf allen DNS-Servern (auch bei BelWUE) der Name emails.kg-fds.de eingerichtet, der zeigt auf: * Lehrernetz (grau) 10.16.112.4 * Schülernetz (grün) 10.32.1.1 * Internet (BelWUE) 10.32.1.1 Die Adresse ist also nicht öffentlich gebrauchbar. Von außen ist der Server über die Adresse paedml.kg-fds.de zugänglich: * Lehrernetz (grau) 10.16.112.4 * Schülernetz (grün) 10.32.1.1 * Internet (BelWUE) 141.10.54.243 == Im Einsatz sind - das HORDE-Framework - !Cyrus/Postfix als MTA [[BR]] - /etc/cyrus.conf Cyrus-Konfiguration - /etc/postfix/main.cf Postfix-Konfiguration - /var/spool/cyrus/mail/ Hier liegen die eMails der User - /etc/sieve/ Hier liegen die Weiterleitungsscripte (cyrus-sieve, Horde-Ingo) == Anpassungen === TLS auf dem SMTP Nach [https://www.bekawe-systems.de/howto-postfix-mit-tls-ssl-einrichten/ Anleitung] mit Hintergrundinformation [http://www.postfix.org/TLS_README.html TLSReadme] wurde dem SMTP TLS beigebracht: {{{ #TLS Support smtpd_tls_security_level = may smtpd_tls_auth_only = no smtp_use_tls = yes smtpd_use_tls = yes smtp_tls_note_starttls_offer = yes smtpd_tls_key_file = /etc/ssl/private/server.pem smtpd_tls_cert_file = /etc/ssl/private/server.pem smtpd_tls_CAfile = /etc/ssl/private/ca.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom }}} und getestet nach [https://www.heise.de/security/artikel/StartTLS-785453.html Heise]. Das Zertifikat wird mit Let'sEncrypt alle drei Monate neu erzeugt, dir Dienste (auch Postfix) anschließend neu gestartet === Cyrus-SASL-Auth für den SMTP Für das sichere Relaying darf der SMTP in den internen Netzen nicht einfach auf Port 25 offen sein - sonst könnte jede/r einfach beliebige eMails mit beliebigen Absendern losschicken. Nach [https://www.df.eu/de/support/df-faq/cloudserver/anleitungen/smtp-authentifizierung-mit-postfix-debian/ Anleitung] vorgegangen, in /etc/postfix/main.cf eingefügt: {{{ # SASL Auth smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_security_options = noanonymous disable_vrfy_command = yes }}} zwei kleinere Stolpersteine: {{{ # Diese Netzwerke dürfen ohne Authentifikation senden # in 10.16.112.X stehen unsere Server mynetworks = 10.16.112.0/23 127.0.0.1 # Clients werden ansonsten rausgeblockt # außer sie stehen in der /etc/postfix/check_clients smtpd_client_restrictions = permit_sasl_authenticated, permit_mynetworks check_client_access hash:/etc/postfix/client_checks, reject #damit wuerden Empfaenger geblockt #smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination #damit wuerden Sender geblockt #smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unlisted_sender, reject_unknown_sender_domain }}} Aktuell wird kein TLS erzwungen (s.o.), es wird die Authentifizierung PLAIN LOGIN angeboten aber auch verlangt (noanonymous). Testen mit Thunderbird oder nach [http://www.linuxtopia.org/online_books/mail_systems/postfix_documentation/SASL_README_009.html Anleitung]. Auch die eMail-Systeme unserer Server und Clients müssen nun Verifizieren, damit sie einliefern dürfen. Für die Server kann laut [http://www.linuxtopia.org/online_books/mail_systems/postfix_documentation/SASL_README_009.html Anleitung] IP bezogen eine Ausnahme aufgenommen werden == Weiterleitungsscripte bearbeiten == Datei ingo.script unter /etc/sieve im Userverzeichnis bearbeiten[[BR]] {{{ /usr/lib/cyrus/bin/sievec ingo.script ingo.bc }}} == Eine Mailbox reparieren == {{{ su cyrus /usr/sbin/cyrreconstruct -rf user.username }}} Die Mailboxen können mit dem Befehl {{{ cyradm --user cyrus --server localhost }}} bearbeitet werden. Das Passwort von cyradmin steht in /etc/imap.secret. (cyrus ist der Admin des IMAP-Servers) Die wichtigsten Befehle sind dabei * lm - list mailboxes z.B. lm user.[Name].* * dm - delete mailbox * cm - create mailbox z.B. cm user.[Name].backup == Mailbox aus einem Backup wiederherstellen == * Backup unter /var/backup/mail/ nach /var/spool/cyrus/mail/[Buchstabe]/user/[Name]/ zurücksichern (tar -xzf [Filename] * /var/spool/cyrus/mail/[Buchstabe]/user/[Name]/[Name] nach /var/spool/cyrus/mail/[Buchstabe]/user/[Name]/backup umbenennen * chown cyrus.mail /var/spool/cyrus/mail/[Buchstabe]/user/[Name]/backup -R * Mit dem Passwort aus /etc/imap.secret: {{{ cyradm --user cyrus --server localhost cm user.[Name].backup lm user.[Name].* exit }}} * sudo -u cyrus /usr/sbin/cyrreconstruct -rf user.[Name] === einzelne Mails in einem Unterordner wiederherstellen === Es können auch nur einzelne Mails wiederhergestellt werden. Dazu z.B. das Backup irgendwo entpacken. Die Mails sind Dateien mit einfachen Nummern, die können irgendwohin kopiert werden. * Ordner als User in dessen Account anlegen:[[BR]] {{{ cyradm --user cyrus --server localhost cm user.[Name].Backup }}} * Files dorthin kopieren (Achtung: Müssen dem User cyrus.mail gehören) * sudo -u cyrus /usr/sbin/cyrreconstruct -rf user.username == Quota anzeigen / anpassen == {{{ cyradm localhost --user cyrus # Passwort aus /etc/imap.secret listquota user.[NAME] /usr/lib/cyrus/bin/quota user.wangyiwen # Quota fixen /usr/lib/cyrus/bin/quota -f user.wangyiwen # Quota auf 160MB erhöhen setquota user.[NAME] 160000 }}} == Admin-Programm aufrufen == {{{ cyradm localhost --user cyrus #Passwort aus /etc/imap.secret help }}} == Scripte in /usr/local/sbin/: == - Einen mailalias herausfinden[[BR]] /root/scripte/mailalias.sh xyz.gmx.de - Ein überlaufendes Mailpostfach sichern und dann leeren[[BR]] /root/scripts/maildel.sh username[[BR]] [[BR]] Wiederherstellen einzelner Mails: - Sicherung unter /var/backup/mail suchen und entpacken (Unterverzeichnis wird automatisch erstellt) - Gewünschte Mails (das sind Dateien mit einer Nummer und einem Punkt) in das Spool-Verzeichnis des Users schieben (unter /var/spool/cyrus/mail) - Mailbox wie oben beschrieben reparieren (cyrusreconstruct) - Mailquota der User checken[[BR]] /root/scripts/mailquota.sh[[BR]] erzeugt die Datei /root/scripts/mailquota die vom php-Script /root/scripts/mailquota.php ausgewertet wird == Mailqueue == {{{ mailq }}} zeigt die Queue an {{{ postsuper -d ALL }}} löscht alle festhängenden Mails des Queue {{{ postqueue -f }}} liefert alles, was auf Halde liegt aus.