ich bin dabei mir einen eigenen Mailserver einzurichten. Bevor ich diesen online stelle versuche ich erstmal diesen rein intern zu nutzen. Sprich ich habe mir im LDAP zwei Postfächer eingerichtet und versuche zwischen diesen zu mailen. Melde ich mich mit meinen lokalen Mail Client Thunderbird am Dovecot Server an und möchte Nachrichten versenden dann funktioniert der Mailversand. Warte ich mit geöffneten Mailclient ca. 30 Minuten dann funktioniert der Mailversand nicht mehr. Erst wieder nach einer Abmeldung und Neuanmeldung des Clients (schließen und öffnen)
Anmeldung mit Thunderbird = Mailversand funktioniert
Mailclient geöffnet ohne eine Aktivität z. B. 30 Minuten = Mailversand nicht möglich
Im log habe ich fogendes gefunden:
Code: Alles auswählen
2021-04-12 09:26:06 auth: Debug: client in: AUTH 1 PLAIN service=imap secured=tls session=GlhKbcG/UqnAqB5D lip=192.168.20.20 rip=192.168.30.67 lport=143 rport=43346 local_name=imap.intern.example.com ssl_cipher=TLS_AES_128_GCM_SHA256 ssl_cipher_bits=128 ssl_pfs=KxANY ssl_protocol=TLSv1.3
2021-04-12 09:26:06 auth: Debug: client passdb out: CONT 1
2021-04-12 09:26:06 auth: Debug: client in: CONT 1 AHN0ZWZhbi5oYXJiaWNoQGhhcm5ldC5kZQBTdGVmYW5IYXJiaWNoMTI= (previous base64 data may contain sensitive data)
2021-04-12 09:26:06 auth: Debug: ldap(stefan.harbich@example.com,192.168.30.67,<GlhKbcG/UqnAqB5D>): cache hit: {SSHA}rLozj0qwg5FfBUfCh9eeJQqq9vLtmYiJ user=stefan.harbich
2021-04-12 09:26:06 auth: Debug: ldap(stefan.harbich@example.com,192.168.30.67,<GlhKbcG/UqnAqB5D>): username changed stefan.harbich@example.com -> stefan.harbich
2021-04-12 09:26:06 auth: Debug: client passdb out: OK 1 user=stefan.harbich original_user=stefan.harbich@example.com
2021-04-12 09:26:06 auth: Debug: master in: REQUEST 1065484289 29438 1 1b3ce92037fd22dd95eff66f0f2fb97a session_pid=29439 request_auth_token
2021-04-12 09:26:06 auth: Debug: ldap(stefan.harbich,192.168.30.67,<GlhKbcG/UqnAqB5D>): userdb cache miss
2021-04-12 09:26:06 auth: Debug: ldap(stefan.harbich,192.168.30.67,<GlhKbcG/UqnAqB5D>): user search: base=ou=users,dc=harnet,dc=de scope=subtree filter=(&(uid=stefan.harbich)(objectClass=inetOrgPerson)(mailEnabled=TRUE)) fields=mailQuota,uid,uid
2021-04-12 09:26:06 auth: Debug: ldap(stefan.harbich,192.168.30.67,<GlhKbcG/UqnAqB5D>): result: uid=stefan.harbich mailQuota=2G; mailQuota,uid unused
2021-04-12 09:26:06 auth: Debug: master userdb out: USER 1065484289 stefan.harbich quota_rule=*:bytes=2G home=/vmail/mailboxes/stefan.harbich mail_location=maildir:/vmail/mailboxes/stefan.harbich/mail auth_token=6e9680681785f7b50af615525486d89994e2002c auth_user=stefan.harbich@example.com
Ich poste Euch auch mal folgende Dateien:
dovecot.conf
Code: Alles auswählen
root@ldap:~# cat /etc/dovecot/dovecot.conf
##
## Aktivierte Protokolle
##
protocols = imap lmtp sieve
##
## Erweitertes Logging
##
log_path = /var/log/dovecot/dovecot-error.log
info_log_path = /var/log/dovecot/dovecot-info.log
debug_log_path = /var/log/dovecot/dovecot-debug.log
auth_verbose = yes
auth_verbose_passwords = no
auth_debug = yes
auth_debug_passwords = yes
mail_debug = yes
verbose_ssl = yes
login_log_format_elements = "user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k"
log_timestamp = "%Y-%m-%d %H:%M:%S "
##
## TLS Config
## Quelle: https://ssl-config.mozilla.org/#server=dovecot&version=2.3.9&config=intermediate&openssl=1.1.1d&guideline=5.4
##
ssl = required
ssl_cert = </etc/ssl/certs/mail.intern.example.com.crt
ssl_key = </etc/ssl/private/mail.intern.example.com.key
ssl_dh = </etc/dovecot/dh4096.pem
ssl_min_protocol = TLSv1.2
ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl_prefer_server_ciphers = no
##
## Dovecot services
##
service imap-login {
inet_listener imap {
port = 143
}
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
}
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0660
group = postfix
user = postfix
}
user = vmail
}
service auth {
### Auth socket für Postfix
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
### Auth socket für LMTP-Dienst
unix_listener auth-userdb {
mode = 0660
user = vmail
group = vmail
}
}
auth_cache_size = 50000 # ~ 200 Benutzer mit Passwort
auth_cache_ttl = 3000 s # in Sekunden, 5 Minute
auth_cache_negative_ttl = 100 s # wenn Benutzer nicht existierte bei letztem Check
##
## Protocol settings
##
protocol imap {
mail_plugins = $mail_plugins quota imap_quota imap_sieve
mail_max_userip_connections = 20
imap_idle_notify_interval = 29 mins
}
protocol lmtp {
postmaster_address = postmaster@example.com
mail_plugins = $mail_plugins sieve notify push_notification
}
##
## Client authentication
##
disable_plaintext_auth = yes
auth_mechanisms = plain login
auth_username_format = %Lu
passdb {
driver = ldap
args = /etc/dovecot/dovecot-ldap.conf
}
userdb {
driver = ldap
args = /etc/dovecot/dovecot-ldap.conf
}
##
## Address tagging
##
recipient_delimiter = +
##
## Mail location
##
mail_uid = vmail
mail_gid = vmail
mail_privileged_group = vmail
##
## Mailbox configuration
##
namespace inbox {
inbox = yes
mailbox Spam {
auto = subscribe
special_use = \Junk
}
mailbox Trash {
auto = subscribe
special_use = \Trash
}
mailbox Drafts {
auto = subscribe
special_use = \Drafts
}
mailbox Sent {
auto = subscribe
special_use = \Sent
}
}
##
## Mail plugins
##
plugin {
sieve_plugins = sieve_imapsieve sieve_extprograms
sieve_before = /vmail/sieve/global/spam-global.sieve
sieve = file:/vmail/sieve/%d/%n/scripts;active=/vmail/sieve/%d/%n/active-script.sieve
###
### Spam learning
###
# From elsewhere to Spam folder
imapsieve_mailbox1_name = Spam
imapsieve_mailbox1_causes = COPY
imapsieve_mailbox1_before = file:/vmail/sieve/global/learn-spam.sieve
# From Spam folder to elsewhere
imapsieve_mailbox2_name = *
imapsieve_mailbox2_from = Spam
imapsieve_mailbox2_causes = COPY
imapsieve_mailbox2_before = file:/var/vmail/sieve/global/learn-ham.sieve
sieve_pipe_bin_dir = /usr/bin
sieve_global_extensions = +vnd.dovecot.pipe
quota = maildir:User quota
quota_exceeded_message = Benutzer %u hat das Speichervolumen überschritten. / User %u has exhausted allowed storage space.
}
Code: Alles auswählen
root@ldap:~# cat /etc/dovecot/dovecot-ldap.conf
uris = ldaps://ldap.intern.harnet.de
dn = cn=admin,dc=harnet,dc=de
dnpass = Marlies(6789)
tls = no
auth_bind = no
base = ou=users,dc=harnet,dc=de
scope = subtree
default_pass_scheme = SSHA-512
ldap_version = 3
user_attrs = \
=quota_rule=*:bytes=%{ldap:mailQuota}, \
=home=/vmail/mailboxes/%{ldap:uid}, \
=mail_location=maildir:/vmail/mailboxes/%{ldap:uid}/mail
user_filter = (&(uid=%u)(objectClass=inetOrgPerson)(mailEnabled=TRUE))
pass_filter = (&(uid=%n)(objectClass=inetOrgPerson)(mailEnabled=TRUE))
## iterate_attrs = mail=user
iterate_attrs = uid=%n
iterate_filter = (objectClass=inetOrgPerson)
Code: Alles auswählen
root@ldap:~# cat /etc/postfix/main.cf
##
## Netzwerkeinstellungen
##
mydomain = example.com
mynetworks = 192.168.0.0/16
inet_interfaces = 192.168.20.20
myhostname = mail.intern.example.com
myorigin = /etc/mailname
mydestination = localhost.localdomain localhosts example.com
##
## Mail-Queue Einstellungen
##
maximal_queue_lifetime = 1h
bounce_queue_lifetime = 1h
maximal_backoff_time = 15m
minimal_backoff_time = 5m
queue_run_delay = 5m
##
## TLS Einstellungen
## Quelle: https://ssl-config.mozilla.org/#server=postfix&version=3.4.8&config=intermediate&openssl=1.1.1d&guideline=5.4
##
### Allgemein
tls_preempt_cipherlist = no
tls_ssl_options = NO_COMPRESSION
tls_medium_cipherlist = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
### Ausgehende SMTP-Verbindungen (Postfix als Sender)
smtp_tls_security_level = dane
smtp_dns_support_level = dnssec
## smtp_tls_policy_maps = proxy:mysql:/etc/postfix/sql/tls-policy.cf
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_ciphers = medium
smtp_tls_CAfile = /etc/ssl/certs/ldap.intern.example.com-CA.pem
compatibility_level=2
### Eingehende SMTP-Verbindungen
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtpd_tls_ciphers = medium
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_cert_file=/etc/ssl/certs/mail.intern.example.com.crt
smtpd_tls_key_file=/etc/ssl/private/mail.intern.example.com.key
smtpd_tls_dh1024_param_file = /etc/postfix/dh2048.pem
##
## Lokale Mailzustellung an Dovecot
##
virtual_transport = lmtp:unix:private/dovecot-lmtp
mailbox_transport = lmtp:unix:private/dovecot-lmtp
##
## Spamfilter und DKIM-Signaturen via Rspamd
##
smtpd_milters = inet:localhost:11332
non_smtpd_milters = inet:localhost:11332
milter_protocol = 6
milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}
milter_default_action = accept
##
## Server Restrictions für Clients, Empfänger und Relaying
## (im Bezug auf S2S-Verbindungen. Mailclient-Verbindungen werden in master.cf im Submission-Bereich konfiguriert)
##
### Bedingungen, damit Postfix als Relay arbeitet (für Clients)
smtpd_relay_restrictions = reject_non_fqdn_recipient
reject_unknown_recipient_domain
permit_mynetworks
reject_unauth_destination
### Bedingungen, damit Postfix ankommende E-Mails als Empfängerserver entgegennimmt (zusätzlich zu relay-Bedingungen)
### check_recipient_access prüft, ob ein account sendonly ist
## smtpd_recipient_restrictions = check_recipient_access proxy:mysql:/etc/postfix/sql/recipient-access.cf
### Bedingungen, die SMTP-Clients erfüllen müssen (sendende Server)
## smtpd_client_restrictions = permit_mynetworks
## check_client_access hash:/etc/postfix/without_ptr
## reject_unknown_client_hostname
### Wenn fremde Server eine Verbindung herstellen, müssen sie einen gültigen Hostnamen im HELO haben.
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks
reject_invalid_helo_hostname
reject_non_fqdn_helo_hostname
reject_unknown_helo_hostname
# Clients blockieren, wenn sie versuchen zu früh zu senden
smtpd_data_restrictions = reject_unauth_pipelining
##
## Restrictions für MUAs (Mail user agents)
##
mua_relay_restrictions = reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_mynetworks,permit_sasl_authenticated,reject
mua_sender_restrictions = permit_mynetworks,reject_non_fqdn_sender,reject_sender_login_mismatch,permit_sasl_authenticated,reject
mua_client_restrictions = permit_mynetworks,permit_sasl_authenticated,reject
##
## LDAP Abfragen
##
smtpd_sender_login_maps = ldap:/etc/postfix/ldap/sender_login_maps.cf
virtual_mailbox_maps = ldap:/etc/postfix/ldap/virtual_mailbox_maps.cf
virtual_alias_maps = ldap:/etc/postfix/ldap/virtual_forward_maps.cf ldap:/etc/postfix/ldap/virtual_group_maps.cf
virtual_mailbox_domains = ldap:/etc/postfix/ldap/virtual_mailbox_domains.cf
local_recipient_maps = $virtual_mailbox_maps
##
## Sonstiges
##
### Maximale Größe der gesamten Mailbox (soll von Dovecot festgelegt werden, 0 = unbegrenzt)
mailbox_size_limit = 0
### Maximale Größe eingehender E-Mails in Bytes (50 MB)
message_size_limit = 52428800
### Keine System-Benachrichtigung für Benutzer bei neuer E-Mail
biff = no
### Nutzer müssen immer volle E-Mail Adresse angeben - nicht nur Hostname
append_dot_mydomain = no
### Trenn-Zeichen für "Address Tagging"
recipient_delimiter = +
### Keine Rückschlüsse auf benutzte Mailadressen zulassen
disable_vrfy_command = yes
alias_maps = hash:/etc/aliases
Code: Alles auswählen
root@ldap:~# cat /etc/postfix/master.cf
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (no) (never) (100)
# ==========================================================================
###
### SMTP-Serverbindungen aus dem Internet
### Authentifizuerung hier nicht erlaubt (Anmeldung nur via smtps/submission!)
smtp inet n - n - 1 smtpd -v
-o smtpd_sasl_auth_enable=no
###
### SMTPS Service (Submission mit implizitem TLS - ohne STARTTLS) - Port 465
### Für Mailclients gelten andere Regeln, als für andere Mailserver (siehe smtpd_ in main.cf)
###
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_client_restrictions=$mua_client_restrictions
-o smtpd_sender_restrictions=$mua_sender_restrictions
-o smtpd_relay_restrictions=$mua_relay_restrictions
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_sender_login_maps=ldap:/etc/postfix/ldap/sender_login_maps.cf
-o smtpd_helo_required=no
-o smtpd_helo_restrictions=
-o cleanup_service_name=submission-header-cleanup
###
### Submission-Zugang für Clients (mit STARTTLS - für Rückwärtskompatibilität) - Port 587
###
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
-o smtpd_sasl_security_options=noanonymous
-o smtpd_client_restrictions=$mua_client_restrictions
-o smtpd_sender_restrictions=$mua_sender_restrictions
-o smtpd_relay_restrictions=$mua_relay_restrictions
-o milter_macro_daemon_name=ORIGINATING
-o smtpd_sender_login_maps=ldap:/etc/postfix/ldap/sender_login_maps.cf
-o smtpd_helo_required=no
-o smtpd_helo_restrictions=
-o cleanup_service_name=submission-header-cleanup
###
### Weitere wichtige Dienste für den Serverbetrieb
###
pickup unix n - y 60 1 pickup
cleanup unix n - y - 0 cleanup
qmgr unix n - n 300 1 qmgr
tlsmgr unix - - y 1000? 1 tlsmgr
rewrite unix - - y - - trivial-rewrite
bounce unix - - y - 0 bounce
defer unix - - y - 0 bounce
trace unix - - y - 0 bounce
verify unix - - y - 1 verify
flush unix n - y 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - y - - smtp
relay unix - - y - - smtp
showq unix n - y - - showq
error unix - - y - - error
retry unix - - y - - error
discard unix - - y - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - y - - lmtp
anvil unix - - y - 1 anvil
scache unix - - y - 1 scache
###
### Cleanup-Service um MUA header zu entfernen
###
submission-header-cleanup unix n - n - 0 cleanup
-o header_checks=regexp:/etc/postfix/submission_header_cleanup
Über einen Tipp was ich machen kann würe ich mich freuen.
Gruß von Stefan Harbich