Wiki - Freifunk Pinneberg

Freies WLAN im Kreis Pinneberg

Benutzer-Werkzeuge

Webseiten-Werkzeuge


mail

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
mail [16.12.2016 09:04] – [Roundcube] havelockmail [01.11.2019 12:19] – [Roundcube] havelock
Zeile 10: Zeile 10:
   * policyd-weight - Gewichtete Regeln, z.B. für Blacklists   * policyd-weight - Gewichtete Regeln, z.B. für Blacklists
  
-Für Tips siehe auch: https://www.debinux.de/2015/05/mailserver-from-scratch-debian-8/+Für Tips siehe auch: https://www.debinux.de/2015/05/mailserver-from-scratch-debian-8/
 +zum Testen eignet sich auch das Programm ''swaks'' sehr gut.
 ===== Mailkonfiguration auf den Gateways ===== ===== Mailkonfiguration auf den Gateways =====
  
Zeile 116: Zeile 117:
  
 keys@freifunk-pinneberg.de osticket:osticket keys@freifunk-pinneberg.de osticket:osticket
 +</file>
 +
 +Zum eleganten Verwalten der Queue wird ''pfqueue'' verwendet.
 +Folgende Konfigurationsdatei ist manuell anzulegen:
 +<file conf /etc/pfqueue.conf>
 +# /etc/pfqueue.conf
 +#
 +backend_name=postfix2
 </file> </file>
  
Zeile 127: Zeile 136:
 Konfiguration über  Konfiguration über 
   * https://mail.pinneberg.freifunk.net/postfixadmin/setup.php   * https://mail.pinneberg.freifunk.net/postfixadmin/setup.php
-  * ''/etc/postfixadmin/config.inc.php'' +  * Datenbankkonfiguration in der Datei ''dbconfig.inc.php'' 
-    * ''%%$CONF['encrypt']%%'' muß korrekt eingestellt werden. Im Zusammenspiel  mit Dovecot sollte ''md5crypt'' funktionieren+  * Programmkonfiguration: ''/etc/postfixadmin/config.inc.php'' ist die Vorlage, geänderte Optionen werden in die neu zu erstellende Daten ''config.local.php'' eingetragen: 
 +    * ''%%$CONF['encrypt']%%'' muß korrekt eingestellt werden. Im Zusammenspiel  mit Dovecot sollte ''md5crypt'' funktionieren, als modernere Variante mit Dovecot-INtegration bietet sich ''dovecot:SHA256-CRYPT'' an. 
 +    * ''%%$CONF['welcome_text']%%'' sollte auf eine freundliche Willkommensmeldung geändert werden
  
 Prüfe Datenbankeinträge: Prüfe Datenbankeinträge:
Zeile 136: Zeile 147:
 Wenn die Adresse gefunden wurde, wird ''1'' zurückgeliefert, ansonsten nichts. Wenn die Adresse gefunden wurde, wird ''1'' zurückgeliefert, ansonsten nichts.
  
 +=== Anpassungen / Customizing ===
 +
 +Änderungen können ab Version 3 vorgenommen werden, dabei sind einige Regeln zu beachten:
 +  * Alle zusätzlichen Objekte mit dem Prefix ''x_'' kennzeichnen
 +  * In Zusatztabellen bitte die Felder ''created'', ''modified'' und ''active'' verwenden
 +  * Integration über ''*_struct_hook()'', in ''cofig.inc.php'' ist ein Beispiel dazu, Aktivierung dann mit ''$CONF[*_struct_hook]'' 
  
 ==== SPAM-Abwehr ==== ==== SPAM-Abwehr ====
Zeile 155: Zeile 172:
       * mit Socket: ''%%POSTGREY_OPTS="--unix=/var/spool/postfix/postgrey/socket"%%''       * mit Socket: ''%%POSTGREY_OPTS="--unix=/var/spool/postfix/postgrey/socket"%%''
       * mit TCP: ''%%POSTGREY_OPTS="--inet=10023"%%''       * mit TCP: ''%%POSTGREY_OPTS="--inet=10023"%%''
-    * Zeile in ''/etc/postfix/main.cf'' einfügen 
-      * mit Socket: ''check_policy_service unix:postgrey/socket'' 
-      * mit TCP: ''check_policy_service inet:127.0.0.1:10023'' 
     * Frage: ist  ein Socket besser, oder eine IP-Adresse?     * Frage: ist  ein Socket besser, oder eine IP-Adresse?
       * Antwort: Der Socket hat viel weniger Overhead. Aber Zugriffsrechte beachten.       * Antwort: Der Socket hat viel weniger Overhead. Aber Zugriffsrechte beachten.
-    * Falls mit Socket, Verzeichnis anlegen, falls noch nicht existent. TODO Klären, welche Berechtigungen für das Verzeichnis und den Socket notwendig sind.<code>+    * Falls mit Socket, Verzeichnis anlegen, falls noch nicht existent. TODO Klären, welche Berechtigungen für das Verzeichnis und den Socket notwendig sind. Im Standard sind die Einstellungen des Sockets ''srw-rw-rw-''<code>
 mkdir /var/spool/postfix/postgrey mkdir /var/spool/postfix/postgrey
-chown postfix /var/spool/postfix/postgrey+chown postfix.postgrey /var/spool/postfix/postgrey 
 +chmod 770 /var/spool/postfix/postgrey
 </code> </code>
 +      * postgrey neu starten, damit der Socket aktiviert wird
 +    * Zeile in ''/etc/postfix/main.cf'' unter ''smtpd_recipient_restrictions'' einfügen
 +      * mit Socket: ''check_policy_service unix:postgrey/socket''
 +      * mit TCP: ''check_policy_service inet:127.0.0.1:10023''
   * **policyd-weight**   * **policyd-weight**
  
Zeile 172: Zeile 191:
  
   * IMAP-Server   * IMAP-Server
-  * Benutzerverweltung auch für Postfix+  * Benutzerverwaltung auch für Postfix
   * Filterregeln mit Sieve   * Filterregeln mit Sieve
  
Zeile 183: Zeile 202:
 CREATE USER 'dovecot'@'localhost' IDENTIFIED BY 'DOVECOTPASS'; CREATE USER 'dovecot'@'localhost' IDENTIFIED BY 'DOVECOTPASS';
 GRANT SELECT ON postfixadmin.mailbox TO 'dovecot'@'localhost'; GRANT SELECT ON postfixadmin.mailbox TO 'dovecot'@'localhost';
-GRANT ALL ON postfixadmin.quota2 TO 'dovecot'@'localhost';+GRANT SELECT,INSERT,UPDATE,DELETE ON postfixadmin.quota2 TO 'dovecot'@'localhost';
 </code> </code>
  
Zeile 189: Zeile 208:
 Die Aufstellung ist momentan nicht endgültig  überprüft und vermutlich auch Die Aufstellung ist momentan nicht endgültig  überprüft und vermutlich auch
 noch unvollständig. noch unvollständig.
 +
 +Mit dem Plugin ''last_login'' kann der letzte Anmeldezeitpunkt gespeichert
 +werden. Zu beachten, daß der Zugriff über das Dict-Modul läuft, welches 
 +auf Datenbanktabellen INSERT- und UPDATE-berechtigungen benötigt 
 +  
 +  alter table mailbox add column x_last_login int(11) default NULL;
 +  grant insert (username, x_last_login), update (username, x_last_login) on postfixadmin.mailbox to 'dovecot'@'localhost';
  
 ++++ Dovecot Konfigurationdsdateien |  ++++ Dovecot Konfigurationdsdateien | 
Zeile 207: Zeile 233:
  
 <file conf 10-master.conf> <file conf 10-master.conf>
 +service imap-login {  
 +  inet_listener imap {  
 +    port = 143  
 +    address = 127.0.0.1  
 +  }  
 +  inet_listener imaps {  
 +    port = 993  
 +    ssl = yes  
 +  }  
 +}
 +
 service lmtp { service lmtp {
   unix_listener /var/spool/postfix/private/dovecot-lmtp {   unix_listener /var/spool/postfix/private/dovecot-lmtp {
Zeile 337: Zeile 374:
  
 ++++ ++++
 +
 +==== Protokollierung ====
 +
 +Über ''local5'' in das syslog:
 +
 +<file conf 10-logging.conf>
 +log_path = syslog
 +syslog_facility = local5
 +auth_verbose = yes
 +auth_verbose_passwords = no
 +</file>
 +
 +Local5 facility in spezielle Dateien umleiten
 +<file conf /etc/rsyslog.conf>
 +*.*;auth,authpriv,local5.none              -/var/log/syslog
 +
 +# Dovecot
 +local5.*                                        -/var/log/dovecot.log
 +local5.warning;local5.error;local5.crit         -/var/log/dovecot-errors.log
 +</file>
 +
 +Logfile rotieren (vermutlich noch optimierungsfähig
 +<file conf /etc/logrotate.d/dovecot>
 +/var/log/dovecot*.log {
 +  missingok
 +  notifempty
 +  compress
 +  delaycompress
 +  sharedscripts
 +  postrotate
 +    doveadm log reopen
 +  endscript
 +}
 +</file>
 +
 +==== Tests ====
 +
 +Prüfe, ob ein Benutzer existiert
 +  doveadm auth lookup mustermann@example.com
 +  doveadm auth lookup -x service=imap mustermann@example.com
  
 Prüfe, ob die Kennwortabfrage mit der MySQL-Datenbank funktioniert: Prüfe, ob die Kennwortabfrage mit der MySQL-Datenbank funktioniert:
   doveadm auth test mustermann@example.com   doveadm auth test mustermann@example.com
 +
 Einen Passwort-Hash kann man erzeugen mit Einen Passwort-Hash kann man erzeugen mit
   dovecot pw -s MD5-CRYPT   dovecot pw -s MD5-CRYPT
  
 +Informationen aus der Benutzerdatenbank abfragen
 +  doveadm user mustermann@example.com
 ==== Roundcube ==== ==== Roundcube ====
  
 +  * Homepage: https://roundcube.net/
   * Web-Frontend   * Web-Frontend
   * Nützliche Pakete<code>   * Nützliche Pakete<code>
Zeile 368: Zeile 449:
   * Einstellungen in der Konfigurationsdatei ''config.inc.php'' vornehmen   * Einstellungen in der Konfigurationsdatei ''config.inc.php'' vornehmen
     * ''$config['smtp_log'] = false;'', Datensparsamkeit, ''logs/sendmail'' soll nicht geschrieben werden     * ''$config['smtp_log'] = false;'', Datensparsamkeit, ''logs/sendmail'' soll nicht geschrieben werden
 +
 +=== Plugin:password ===
 +Der Roundcube-Benutzer benötigt die Berechtigung die Mailboxtabelle zu lesen und das Password-Feld zu schreiben:
 +  GRANT SELECT, UPDATE (password) ON `postfixadmin`.`mailbox` TO 'roundcube'@'localhost'
 +
 +Das Plugin wird aktiviert in der zentralen Konfigurationsdatei ''config.inc.php''.
 +in das Array ''$config['plugins']'' wird das Plugin mit seinem Namen eingetragen.
 +
 +Im Plugin-Verzeichnis wird ebenfalls eine ''config.inc.php'' angelegt. Dazu wird die ''.dist''-Datei kopiert.
 +
 +=== Plugin:managesieve ===
 +
 +Kopieren die Vorlage der Konfigurationsdatei ''config.inc.php.dist'' nach ''config.inc.php''.
 +<file php config.inc.php>
 +$config['managesieve_port'] = 4109;
 +$config['managesieve_host'] = 'localhost';
 +</file>
 +
 +
 +
  
 TODO Quotas, auch ein Dovecot-Thema TODO Quotas, auch ein Dovecot-Thema
Zeile 380: Zeile 481:
   tar xzf roundcubemail-1.2.3-complete.tar.gz   tar xzf roundcubemail-1.2.3-complete.tar.gz
   cd roundcubemail-1.2.3   cd roundcubemail-1.2.3
-  bin/installto.sh <Installationspfad>+  bin/installto.sh /var/www/vhosts/mail.pinneberg.freifunk.net
 Nach der dem Update sind Aufräumarbeiten notwending Nach der dem Update sind Aufräumarbeiten notwending
   * Berechtigungen korrigieren   * Berechtigungen korrigieren
-    * Benutzer einstellen: ''root.www-data'', ''www-data'' hat auch nur Leserechte, bis auf die Verzeichnisse ''temp'' und ''log''+    * Benutzer einstellen: ''root.www-data'', ''www-data'' hat auch nur Leserechte, bis auf die Verzeichnisse ''temp'' und ''log''<code> 
 +chown -R root.www-data /var/www/vhosts/mail.pinneberg.freifunk.net 
 +</code>
     * Dateien im config-Verzeichnis     * Dateien im config-Verzeichnis
  
Zeile 392: Zeile 495:
   * Zentraler Speicher für Adressen und Kalender   * Zentraler Speicher für Adressen und Kalender
   * soll unter ''baikal.pinneberg.freifunk.net'' laufen   * soll unter ''baikal.pinneberg.freifunk.net'' laufen
 +  * ''php-dom'' (''php7.0-xml'') benötigt
  
  
  
mail.txt · Zuletzt geändert: 04.01.2021 19:24 von havelock