Postfix (Ubuntu 18.04): Unterschied zwischen den Versionen

Aus Tutorials
Zur Navigation springen Zur Suche springen
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Voraussetzungen ==
[[Redis-Server (Ubuntu)|Redis-Server]]
== Installation ==
== Installation ==


Zeile 52: Zeile 48:


Hilfe zu Erstellung eines SSL-Zertifikates siehe [[SSL Zertifikat]]
Hilfe zu Erstellung eines SSL-Zertifikates siehe [[SSL Zertifikat]]
==== OHNE Server-zu-Server-Verschlüsselung ====


In der Datei ''/etc/postfix/main.cf'' folgende Zeilen hinzufügen:
In der Datei ''/etc/postfix/main.cf'' folgende Zeilen hinzufügen:
Zeile 67: Zeile 65:
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
</pre>
</pre>
==== MIT Server-zu-Server-Verschlüsselung ====
<pre>
##### TLS parameters ######
## TSL - outgoing mails ##
smtp_tls_security_level = may
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_loglevel = 1
## TSL - incoming mails ##
smtpd_use_tls=yes
smtpd_tls_security_level = may
smtpd_tls_cert_file=/etc/letsencrypt/live/mail1.kirner.or.at/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail1.kirner.or.at/privkey.pem
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_loglevel = 1
</pre>
<code>smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt</code> enthält die vertrauenswürdigen Zertifizierungsstellen  und wird mittels <code>update-ca-certificates</code> aktualisiert.
===== Links =====
[https://kofler.info/postfix-tls-optionen/ https://kofler.info/postfix-tls-optionen/]
[https://manuals.gfi.com/en/kerio/connect/content/server-configuration/ssl-certificates/adding-trusted-root-certificates-to-the-server-1605.html https://manuals.gfi.com/en/kerio/connect/content/server-configuration/ssl-certificates/adding-trusted-root-certificates-to-the-server-1605.html]


=== SASL Auth und Submission aktivieren ===
=== SASL Auth und Submission aktivieren ===
Zeile 123: Zeile 149:
<pre>
<pre>
##### Only allow mail transport if client is authenticated or in own network (PHP Scripts, ...) ######
##### Only allow mail transport if client is authenticated or in own network (PHP Scripts, ...) ######
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_recipient_restrictions =  
    permit_mynetworks,  
    permit_sasl_authenticated,  
    reject_unauth_destination
</pre>
</pre>


Zeile 168: Zeile 197:


<pre>
<pre>
sudo chown postfix:postfix /etc/postfix/sql/*.cf
sudo chown root:root /etc/postfix/sql/*.cf
sudo chmod 660 /etc/postfix/sql/*.cf
sudo chmod 600 /etc/postfix/sql/*.cf
</pre>
</pre>


Zeile 175: Zeile 204:


<pre>
<pre>
sudo service postfix restart
sudo systemctl restart postfix  
</pre>
</pre>
== Probleme ==
=== postfix/cleanup[7310]: 20B4C9D4B0: milter-reject: END-OF-MESSAGE ===
=> Grey-Listing deaktivieren, siehe dazu [[Rspamd (Ubuntu 18.04)#Grey-Listing deaktvieren|Rspamd#Grey-Listing deaktvieren]]
==== Links ====
[https://github.com/rspamd/rspamd/issues/1776 https://github.com/rspamd/rspamd/issues/1776]


== Links ==
== Links ==

Aktuelle Version vom 8. August 2020, 09:18 Uhr

Installation

sudo apt-get install postfix postfix-mysql

Beim sich öffnenden Menü Keine Konfiguration auswählen.

Konfiguration

Eine neue Datei main.cf erstellen und mit folgenden Inhalt befüllen (<local domain> durch den entsprechenden Wert ersetzen):

sudo vi /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

append_dot_mydomain = no

readme_directory = no

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mydestination =
mailbox_size_limit = 51200000
message_size_limit = 51200000
recipient_delimiter = localhost.$mydomain, localhost, mail.$mydomain
inet_interfaces = all
myorigin = <local domain>
myhostname = mail.<domain name>
inet_protocols = all

In der Datei master.cf folgende Zeile hinzufügen:

sudo vi /etc/postfix/master.cf
submission inet n       -       -       -       -       smtpd -v
  ...
  -o smtp_bind_address=<ip address>
  ...

SSL Zertifikat

Hilfe zu Erstellung eines SSL-Zertifikates siehe SSL Zertifikat

OHNE Server-zu-Server-Verschlüsselung

In der Datei /etc/postfix/main.cf folgende Zeilen hinzufügen:

sudo vi /etc/postfix/main.cf
##### TLS parameters ######
smtpd_tls_cert_file=/etc/ssl/certs/postfix.crt
smtpd_tls_key_file=/etc/ssl/private/apache.key
smtpd_use_tls=yes
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

MIT Server-zu-Server-Verschlüsselung

##### TLS parameters ######
## TSL - outgoing mails ##
smtp_tls_security_level = may
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_loglevel = 1

## TSL - incoming mails ##
smtpd_use_tls=yes
smtpd_tls_security_level = may
smtpd_tls_cert_file=/etc/letsencrypt/live/mail1.kirner.or.at/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail1.kirner.or.at/privkey.pem
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_loglevel = 1

smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt enthält die vertrauenswürdigen Zertifizierungsstellen und wird mittels update-ca-certificates aktualisiert.

Links

https://kofler.info/postfix-tls-optionen/

https://manuals.gfi.com/en/kerio/connect/content/server-configuration/ssl-certificates/adding-trusted-root-certificates-to-the-server-1605.html

SASL Auth und Submission aktivieren

Postfix soll bei Dovecot per SASL Authentifizierung nachfragen, ob für die akutellen Benutzer/Passwort-Kombination das Senden/Empfangen erlaubt ist.

Dazu in der Datei /etc/postfix/main.cf folgende Zeilen hinzufügen:

sudo vi /etc/postfix/main.cf
###### SASL Auth ######
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

In der Datei /etc/postfix/master.cf den submission-Block folgendermassen anpassen bzw. ersetzen:

sudo vi /etc/postfix/master.cf
submission inet n       -       -       -       -       smtpd -v
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

LMTP aktivieren

In der Datei /etc/postfix/main.cf Zeilen hinzufügen:

sudo vi /etc/postfix/main.cf
###### Use Dovecot LMTP Service to deliver Mails to Dovecot ######
virtual_transport = lmtp:unix:private/dovecot-lmtp

Relay Einstellungen

Mails sollen nur weitergeleited werden, falls der Sender der Server selbst ist oder der Benutzer in die Benutzerdatenbank von Dovecot eingetragen ist.

Dazu in der Datei /etc/postfix/main.cf folgende Zeilen hinzufügen:

sudo vi /etc/postfix/main.cf 
##### Only allow mail transport if client is authenticated or in own network (PHP Scripts, ...) ######
smtpd_recipient_restrictions = 
    permit_mynetworks, 
    permit_sasl_authenticated, 
    reject_unauth_destination

Datenbankanbindung

Hauptdatei

In der Datei /etc/postfix/main.cf die Datenbank-Konfigurations-Dateien eintragen:

###### MySQL Connection ######

virtual_alias_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf,
    proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,
    proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf,
    proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
local_recipient_maps = $virtual_mailbox_maps

MySQL-Dateien

Verzeichnis für Konfiguartionsdateien erstellen:

sudo mkdir /etc/postfix/sql

Dateien mittels dem von PostfixAdmin mitgelieferten Skript POSTFIX CONF.txt erstellen

cd /var/www/postfixadmin_3_2/DOCUMENTS/
sh POSTFIX_CONF.txt

und danach vom temporärenVerzeichnis nach /etc/postfix/sql kopieren

sudo mv /tmp/postfixadmin-XXXXXX/* /etc/postfix/sql

Da die Dateien Passwörter enthalten, sollen sie nur für den Benutzer postfix lesbar sein:

sudo chown root:root /etc/postfix/sql/*.cf
sudo chmod 600 /etc/postfix/sql/*.cf

Postfix neustarten

sudo systemctl restart postfix 

Probleme

postfix/cleanup[7310]: 20B4C9D4B0: milter-reject: END-OF-MESSAGE

=> Grey-Listing deaktivieren, siehe dazu Rspamd#Grey-Listing deaktvieren

Links

https://github.com/rspamd/rspamd/issues/1776

Links

https://wiki.ubuntuusers.de/Postfix/

https://yomotherboard.com/setup-postfixadmin-virtual-email-users/


Weiter zu Roundcube

Zurück zu Mailserver einrichten