Fehlerhafte- Postfix/Dovecot Konfiguraiton: Emails werden nicht empfangen und ausgehende Mails landen im Spam Ordner

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
ioar
Beiträge: 43
Registriert: 01.10.2016 09:04:39

Fehlerhafte- Postfix/Dovecot Konfiguraiton: Emails werden nicht empfangen und ausgehende Mails landen im Spam Ordner

Beitrag von ioar » 22.08.2020 08:09:01

Hallo liebe Forum Mitglieder,

ich versuche einen E-MAil server einzurichten (unter Debian, Postfix, Dovecot)
Bisher habe ich es erreicht, dass ich ein E-Mail Test verschicken kann. Diese E-Mail kommt wenigstens an, wenn auch nur in den SPAM Ordner des Empfängers. Andersrum habe ich den Eindruck, dass die aus einem externen server gestendeten E-Mails gar nicht auf meinem E-Mail Server ankommen. Ich habe probiert Nachrichten mit "ALPINE" oder Roundcube zu lesen. ALPINE sucht nur die E-Mails der domain "mail.mydomain.com" ab und roundcube kann ich nicht fehlerfrei einrichten und mich folglich auch nicht über den Browser in das system anmelden.

Ich würde gerne folgendes erreichen und brauche deshalb eure Unterstützung.
1) Empfangen von E-Mails im eigenen server soll möglich sein (E-Mail clients die ich nutzen will ALPINE und Roundcube).
2) Mails sollen in den normalen Posteingang des Empfängers ankommen - nicht in desn SPAM Ordner.

Anbei ein paar Informationen bzw. Config Einstellungen

Code: Alles auswählen

telnet mail.mydomain.com 25

Trying my.ip.xxx.xxx...
Connected to mail.mydomain.com.
Escape character is '^]'.
220 mail.mydomain.com ESMTP Postfix
ehlo mail.mydomain.com
250-mail.mydomain.com
250-PIPELINING
250-SIZE 52428800
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 CHUNKING
mail from: user@mydomain.com
250 2.1.0 Ok
rcpt to:user@mailadress.com
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: This is a test
Das ist ein Test

.
250 2.0.0 Ok: queued as 391971F2073F

/etc/dovecot/conf.d/10-mail.conf

Code: Alles auswählen

mail_location = mbox:~/mail:INBOX=/var/mail/%u


nano /etc/postfix/main.cf

Code: Alles auswählen

##
## Netzwerkeinstellungen
##
mynetworks = , 127.0.0.0/8 [::1]/128 my.ip.xxx.xxx/32
#mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
#inet_interfaces = 127.0.0.1, ::1, my.ip.xxx.xxx, fe80::224:21ff:feef:2fd3
inet_interfaces = all
myhostname = mail.mydomain.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
###

tls_preempt_cipherlist = yes
#####AUskomentiert Start
#tls_ssl_options = NO_COMPRESSION
#####AUskomentiert Stopp
tls_high_cipherlist = EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA

### Ausgehende SMTP-Verbindungen (Postfix als Sender)


####dazucodiert anfang
#smtpd_tls_auth_only = yes
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
#smtpd_sasl_security_options = noanonymous

#relayhost = mail.mydomain.com:443
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =noanonymous

# Postfix 2.3 and later
smtpd_use_tls = yes
smtpd_sasl_path = smtpd   
###dazucodiert ende


####geändert start
#smtp_tls_security_level = may
smtp_tls_security_level = dane
smtpd_tls_loglevel = 1
inet_protocols = ipv4 
####hinzugefügt ende

smtp_dns_support_level = dnssec
smtp_tls_policy_maps = mysql:/etc/postfix/sql/tls-policy.cf
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_protocols = !SSLv2, !SSLv3
smtp_tls_ciphers = high
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt


### Eingehende SMTP-Verbindungen

smtpd_tls_security_level = may 

####geändertstart
#smtpd_tls_protocols = !SSLv2, !SSLv3
#smtpd_tls_ciphers = high

smtpd_tls_protocols = TLSv1 TLSv1.1 TLSv1.2
smtpd_tls_ciphers = medium
####geändert stop
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache


smtpd_tls_cert_file= /etc/ssl/certs/mailcert3_xxxxxxxxx.pem
smtpd_tls_key_file= /etc/ssl/private/mail3_xxxxxxxxx.key


##
## Lokale Mailzustellung an Dovecot
##

#virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_transport = dovecot

##
## 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 mysql:/etc/postfix/sql/recipient-access.cf
smtpd_recipient_restrictions = permit_sasl_authenticated

### 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

smtpd_helo_restrictions =

# 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


##
## Postscreen Filter
##

### Postscreen Whitelist / Blocklist
postscreen_access_list =        permit_mynetworks
                                cidr:/etc/postfix/postscreen_access
postscreen_blacklist_action = drop


# Verbindungen beenden, wenn der fremde Server es zu eilig hat
postscreen_greet_action = drop


### DNS blocklists
postscreen_dnsbl_threshold = 2
postscreen_dnsbl_sites =    ix.dnsbl.manitu.net*2
                            zen.spamhaus.org*2
postscreen_dnsbl_action = drop


##
## MySQL Abfragen
##

virtual_alias_maps = mysql:/etc/postfix/sql/aliases.cf
virtual_mailbox_maps = mysql:/etc/postfix/sql/accounts.cf
virtual_mailbox_domains = mysql:/etc/postfix/sql/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 = +




######aditional 21.08.2020
relay_domains =

/etc/postfix/master.cf

Code: Alles auswählen

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (no)    (never) (100)
# ==========================================================================

###
### Postscreen-Service: Prüft eingehende SMTP-Verbindungen auf Spam-Server
###
smtp      inet  n       -       y       -       1       postscreen
    -o smtpd_sasl_auth_enable=no
###
### SMTP-Daemon hinter Postscreen.
###
smtpd     pass  -       -       y       -       -       smtpd
###
### dnsblog führt DNS-Abfragen für Blocklists durch
###
dnsblog   unix  -       -       y       -       0       dnsblog
###
### tlsproxy gibt Postscreen TLS support
###
tlsproxy  unix  -       -       y       -       0       tlsproxy
###
### Submission-Zugang für Clients: Für Mailclients gelten andere Regeln, als für andere Mailserver (siehe smtpd_ in main.cf)
###
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=mysql:/etc/postfix/sql/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




/etc/dovecot/dovecot.conf

Code: Alles auswählen

###
### Aktivierte Protokolle
#############################

protocols = imap lmtp sieve



###
### TLS Config
#######################

ssl = required

ssl_cert = </etc/ssl/certs/mailcert3_mydomain.pem
ssl_key = </etc/ssl/private/mail3_mydomain.key
ssl_cipher_list = EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA
ssl_prefer_server_ciphers = yes



###
### 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
    }
}


###
###  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 = ioannis.mydomain@google.com
    mail_plugins = $mail_plugins sieve
}



###
### Client authentication
#############################

disable_plaintext_auth = yes
auth_mechanisms = plain login


passdb {
    driver = sql
    args = /etc/dovecot/dovecot-sql.conf
}

userdb {
    driver = sql
    args = /etc/dovecot/dovecot-sql.conf
}


###
### Mail location
#######################

mail_uid = vmail
mail_gid = vmail
mail_privileged_group = vmail


mail_home = /var/vmail/mailboxes/%d/%n
mail_location = maildir:~/mail:LAYOUT=fs



###
### 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 = /var/vmail/sieve/global/spam-global.sieve
    sieve = file:/var/vmail/sieve/%d/%n/scripts;active=/var/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:/var/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.
}
Vielen Dank schon vorab für die Unterstützung

Grüße

Johannes

am2
Beiträge: 277
Registriert: 20.08.2016 21:56:44

Re: Fehlerhafte- Postfix/Dovecot Konfiguraiton: Emails werden nicht empfangen und ausgehende Mails landen im Spam Ordner

Beitrag von am2 » 22.08.2020 14:36:57

Wie sieht denn dein DNS aus? Davon hängt viel ab. Ansonsten prüfe was mxtoolbox.com sagt wenn du deine Domain eintippst und auf mxlookup klickst. WICHTIG: Nur domain.tld eingeben, NICHT mail.domain.tld.

Weiterhin ziemlich aufschlussreich:

Code: Alles auswählen

tail -f /var/log/mail.log
und dann eine Mail an den Server schicken oder auch von dem Server.

Des Weiteren gibt es solche Online-Tools wie mailtester.com oder emailchecker. Man schickt dort eine Nachricht und bekommt die Bewertung knallhart serviert.

Dieses Infos wären hilfreicher als das Studium der Config-Files.

Antworten