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
mail [16.12.2016 09:12] – [SPAM-Abwehr] havelockmail [04.01.2021 19:24] (aktuell) – [Postfixadmin] 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 ''config.inc.php'' ist ein Beispiel dazu, Aktivierung dann mit ''$CONF[*_struct_hook]'' 
  
 ==== SPAM-Abwehr ==== ==== SPAM-Abwehr ====
Zeile 157: Zeile 174:
     * 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       * postgrey neu starten, damit der Socket aktiviert wird
-    * Zeile in ''/etc/postfix/main.cf'' einfügen+    * Zeile in ''/etc/postfix/main.cf'' unter ''smtpd_recipient_restrictions'' einfügen
       * mit Socket: ''check_policy_service unix:postgrey/socket''       * mit Socket: ''check_policy_service unix:postgrey/socket''
       * mit TCP: ''check_policy_service inet:127.0.0.1:10023''       * mit TCP: ''check_policy_service inet:127.0.0.1:10023''
Zeile 173: Zeile 191:
  
   * IMAP-Server   * IMAP-Server
-  * Benutzerverweltung auch für Postfix+  * Benutzerverwaltung auch für Postfix
   * Filterregeln mit Sieve   * Filterregeln mit Sieve
  
Zeile 184: 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 190: 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 208: 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 338: 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 369: 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 381: 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 393: 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.1481875922.txt.gz · Zuletzt geändert: 16.12.2016 09:12 von havelock