[gelöst] exim4 Smarthost Konfiguration bei extern geblocktem Port 25

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
xmoex
Beiträge: 5
Registriert: 26.07.2022 17:22:50

[gelöst] exim4 Smarthost Konfiguration bei extern geblocktem Port 25

Beitrag von xmoex » 26.07.2022 17:50:02

Situation:
Ich migriere grade einen Virtual Server, leider wird in Zukunft anbieterseitig ausgehender Verkehr nach Port 25 geblockt.
Ich werwende Debian Bullseye, exim4-daemon-light und mailutils. Exim4 Konfiguration für Smarthost-Nutzung:

Code: Alles auswählen

# /etc/exim4/update-exim4.conf.conf
dc_eximconfig_configtype='smarthost'
dc_other_hostnames='localhost.localdomain'
dc_local_interfaces='127.0.0.1 ; ::1'
dc_readhost='<unsere domain>'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='<smarthost url>:587'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
Dazu entsprechende Smarthost credential in /etc/exim4/passwd.client.

Dazu ein Alias Admin-Mail zu root:

Code: Alles auswählen

# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: <mein benutzer>, <meine e-mail addresse>
Testen des Mailversand via:

Code: Alles auswählen

echo "This is a test" | mail -s "Testmail" root
So weit, so gut, wenn ich eine Testmail absetze landet sie wie gewünscht in der inbox meiner unter <meine e-mail addresse> Adresse.

Das Problem ist nun wenn ich den Port 25 (zB via iptables) blocke um die Situation auf dem neuen Server zu simulieren kommen die Mails nicht mehr durch.

Code: Alles auswählen

iptables -A OUTPUT -p tcp --dport 25 -j DROP
In der /var/log/exim4/mainlog steht dann

Code: Alles auswählen

SMTP timeout after initial connection
oder auch

Code: Alles auswählen

R=smarthost T=remote_smtp_smarthost defer (110): Connection timed out H=587 [0.0.2.75]: SMTP timeout after initial connection (587 bytes written)
Meine Frage nun:
* Warum wird überhaupt versucht Mails an den Smarthost via Port 25 zu senden, obwohl dc_smarthost Port 587 spezifiziert?
* Was kann ich tun, damit die Mails ausschlieslich über Port 587 versendet werden?
Zuletzt geändert von xmoex am 27.07.2022 11:21:01, insgesamt 1-mal geändert.

xmoex
Beiträge: 5
Registriert: 26.07.2022 17:22:50

Re: exim4 Smarthost Konfiguration bei extern geblocktem Port 25

Beitrag von xmoex » 26.07.2022 17:51:05

Bei Bedarf könnte ich eine kleine Vagrantfile präparieren sozusagen als Minimalbeispiel.

mludwig
Beiträge: 794
Registriert: 30.01.2005 19:35:04

Re: exim4 Smarthost Konfiguration bei extern geblocktem Port 25

Beitrag von mludwig » 26.07.2022 19:12:43

Soweit ich weiß, muss in dc_smarthost Hostname::Port
also z. B.

Code: Alles auswählen

dc_smarthost='securesmtp.t-online.de::587'
Da fehlt bei dir ein Doppelpunkt.

xmoex
Beiträge: 5
Registriert: 26.07.2022 17:22:50

Re: exim4 Smarthost Konfiguration bei extern geblocktem Port 25

Beitrag von xmoex » 27.07.2022 11:02:08

mludwig hat geschrieben: ↑ zum Beitrag ↑
26.07.2022 19:12:43
Soweit ich weiß, muss in dc_smarthost Hostname::Port
also z. B.

Code: Alles auswählen

dc_smarthost='securesmtp.t-online.de::587'
Da fehlt bei dir ein Doppelpunkt.
Ok, das scheint korrekt zu sein, danke für den Hinweis! (Hier nachzulesen: manpages.debian.org)

In der Testumgebung funktioniert es auch trotz geblocktem port 25, das ist schon mal vielversprechend. Ich melde mich noch zurück nachdem ich es auf dem Virtual Server getestet habe.

xmoex
Beiträge: 5
Registriert: 26.07.2022 17:22:50

Re: exim4 Smarthost Konfiguration bei extern geblocktem Port 25

Beitrag von xmoex » 27.07.2022 11:20:38

Funktioniert auch auf dem Server! Yeah :D

@mludwig vielen Dank, das war genau das Problem!

xmoex
Beiträge: 5
Registriert: 26.07.2022 17:22:50

Re: exim4 Smarthost Konfiguration bei extern geblocktem Port 25

Beitrag von xmoex » 09.08.2022 15:06:20

mludwig hat geschrieben: ↑ zum Beitrag ↑
26.07.2022 19:12:43
Soweit ich weiß, muss in dc_smarthost Hostname::Port
also z. B.

Code: Alles auswählen

dc_smarthost='securesmtp.t-online.de::587'
Da fehlt bei dir ein Doppelpunkt.
Ok, eine Sache interessiert mich nun doch: gibt es einen Grund, warum man zwei Doppelpunkte benötigt um Hostname und Port zu trennen? In meiner Welt reichte dafür bisher ein einzelner Doppelpunkt :?

mludwig
Beiträge: 794
Registriert: 30.01.2005 19:35:04

Re: [gelöst] exim4 Smarthost Konfiguration bei extern geblocktem Port 25

Beitrag von mludwig » 09.08.2022 15:53:24

Einzelne Doppelpunkte dienen in der Konfiguration dazu, Listen von Einträgen zu machen. Die einzelnen Werte einer Liste werden mit Doppelpunkt getrennt. Zwei Doppelpunkte sind dann für exim also kein Trennzeichen einer Liste, sondern sind ein Doppelpunkt innerhalb eines Wertes. Das ist z. B. auch bei IPv6 wichtig.

Aus der Doku von Exim z. B.

Code: Alles auswählen

local_interfaces = 127.0.0.1 : ::::1

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: [gelöst] exim4 Smarthost Konfiguration bei extern geblocktem Port 25

Beitrag von bluestar » 25.08.2022 23:20:13

mludwig hat geschrieben: ↑ zum Beitrag ↑
09.08.2022 15:53:24
Einzelne Doppelpunkte dienen in der Konfiguration dazu, Listen von Einträgen zu machen. Die einzelnen Werte einer Liste werden mit Doppelpunkt getrennt. Zwei Doppelpunkte sind dann für exim also kein Trennzeichen einer Liste, sondern sind ein Doppelpunkt innerhalb eines Wertes. Das ist z. B. auch bei IPv6 wichtig.

Aus der Doku von Exim z. B.

Code: Alles auswählen

local_interfaces = 127.0.0.1 : ::::1
Ich empfehle bei IPv6 einen anderen Listen-Separator zu definieren, einfach <; an den Listenanfang schreiben und schon kannst du mit dem Semikolon die Elemente trennen

Code: Alles auswählen

local_interfaces = <; 127.0.0.1 ; ::1
Die Doku bei ist bei Exim in Kapitel 6.21 zu finden: https://www.exim.org/exim-html-current/ ... tconstruct

Antworten