Tag: postfix

postfix: recieved header entfernen

um bei mails, welche das eigene mailsystem verlassen, ein paar header aus der mail zu entfernen, die niemanden in der boesen weiten welt was angehen, in der datei /etc/postfix/main.cf einfuegen:

header_checks = regexp:/etc/postfix/header_checks

und die datei /etc/postfix/header_checks mit folgendem inhalt anlegen:

/^Received: .*\(Authenticated sender:.*/ IGNORE
/^Received: .*\.internal\.domain\.tld.*/ IGNORE

die erste zeile schmeisst die header weg, die durch die authentifizierung beim smtp versand hinzugefuegt werden. (falls beim fuer smtp auth zustaendigen postfix in der main.cf der paramaeter “smtpd_sasl_authenticated_header = yes” gesetzt ist).

die zweite zeile schmeisst alle recived header weg, die von internen mailservern hinugefuegt wurden. schliesslich geht die struktur niemanden was an.

dem raspberry pi das mailen und relayen beibringen

mal zusammengefasst aufschreiben, weil ich das sonst beim naechsten mal wieder an vier stellen zusammensuchen muss…

der raspberry pi mit raspbian soll bei mir im lokalen netzwerk u.a. verschiedene mailgeschichten machen. dazu hat nen postfix installiert bekommen.
direkt nach dem starten des postfix hat das gemeckere angefangen:

postmulti: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol
postmulti: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol
postmulti: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol
postmulti: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol
postmulti: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol
postmulti: warning: inet_protocols: disabling IPv6 name/address support: Address family not supported by protocol

im die meldung weg zu bekommen, muss man dem postfix sagen, dass er den ipv6 kram lassen soll. dazu schreibt man diese zeile in die /etc/postfix/main.cf :

inet_protocols = ipv4

damit der postfix ausgehende mails an einen regulaer im internet erreichbaren mailserver schickt und sich dabei auch noch authentifiziert, sind folgende zeilen in der /etc/postfix/main.cf notwendig:

smtpd_sasl_auth_enable = no
smtp_use_tls=yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
smtp_sasl_security_options = noanonymous
relayhost = [mein.relayserver.tld]:587

den user und das passwort fuer die authentifizierung am relayserver schreibt man in die datei /etc/postfix/smtp_auth :

[mein.relayserver.tld]:587	meine@email.tld:dasgeheimepasswort

und fuehrt diesen befehl danach aus:

sudo postmap /etc/postfix/smtp_auth

damit die vom raspberry selbst gesendeten emails auch noch eine richtige mailadresse als absender bekommen (ohne den raspi gaenzlich als “echten” mailserver zu konfigurieren), laesst man die mailadrese des absenders “umschreiben”. dazu noch diesen eintrag in der /etc/postfix/main.cf machen:

smtp_generic_maps = hash:/etc/postfix/generic

und die /etc/postfix/generic mit den gewuenschren daten befuellen:

pi@raspberrypi	ich@meinedomain.tld

auch hier wieder postmap ausfuehren:

sudo postmap /etc/postfix/generic

ich habe in meinem netz noch so ein altes moechtegern smartes geraet, welches emails verschicken kann, aber sich weder authentifizieren, noch tls gesicherte verbindungen aufbauen kann.

deswegen trage ich das noch in die mynetworks variable in der /etc/postfix/main.cf ein:

mynetworks = 127.0.0.0/8 192.168.1.39

und zum schluss nicht vergessen… den postfix neu starten:

pi@raspberrypi ~ $ sudo /etc/init.d/postfix restart

postfix – mal schnell was debuggen

wenn man auf bei einem gut frequentierten postfix “mal schnell was debuggen” muss, dann will man nicht laenger als noetig das debugging angeschaltet haben. das logfilze explodiert sonst sprichwoertlich.

sondern… mal will vielleicht nur die kommunikation mit einem bestimmten client/server debuggen. dann macht man das so:

postconf -e "debug_peer_list = ip.ip.ip.ip" && postfix reload

…dann verschickt man seine testmail und schaltet das anschliessend wieder ab:

postconf -e "debug_peer_list =" && postfix reload

postfix: hostname des mailservers als absender- oder empfaengerdomain

mir kam schon ein paar mal ein postfix unter, der komische sachen mit email headern gemacht hat. da stand z.b. sowas drin:

To: “irgendwas@domain.tld”@mein.mailserver.tld

das kann z.b. auftreten, wenn man amavis als contentfilter in der master.cf eingebunden hat. dann sollte man in der master.cf beim eintrag des smtp-servers von amavis folgende option mitgeben:

-o local_header_rewrite_clients=

ursache dafuer ist der standardwert “local_header_rewrite_clients=permit_inet_interfaces”, der zutrifft, wenn die mails von amavis auf localhost:10025 wieder rein kommen.

kurz notiert: postfix sslv3 deaktivieren

wieder eine keine notiz fuer mich selbst.. schon ein paar tage her, aber ich brauche es bestimmt nochmal 😉

in der /etc/postfix/main.cf einfuegen bzw. anpassen, wenn schon vorhanden:

smtpd_tls_mandatory_protocols = !SSLv2 !SSLv3
smtp_tls_mandatory_protocols = !SSLv2 !SSLv3
smtp_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = !SSLv2 !SSLv3

…und pruefen, ob in der master.cf nicht auch noch was von diesen optionen drin steht… ggf. anpassen.

EDIT:

und testen kann man den spass dann damit:

openssl s_client -starttls smtp -crlf -ssl3 -connect mail.domain.tld:25

rauskommen sollte sowas mit “ssl handshake failure”:

CONNECTED(00000003)
140240541128360:error:14094410:SSL routines:SSL3_READ_BYTES:
sslv3 alert handshake failure:s3_pkt.c:1258:SSL alert number 40
140240541128360:error:1409E0E5:SSL routines:SSL3_WRITE_BYTES:
ssl handshake failure:s3_pkt.c:596:
[...]

amavisd tmp verzeichnis permission denied

eine frische installation von amavis und clamav werkelt bei debian wheezy nicht out of the box. diese berechtigungsprobleme werden im mail.og ausgegeben:

Dec 21 13:27:09 mxxx amavis[20283]: (20283-01) (!)run_av (ClamAV-clamd) FAILED - unexpected , output="/var/lib/amavis/tmp/amavis-20131221T132753-20283-SD4gQJVU/parts: lstat() failed: Permission denied. ERROR\n"
Dec 21 13:27:09 mxxx amavis[20283]: (20283-01) (!)ClamAV-clamd av-scanner FAILED: CODE(0x1c8e750) unexpected , output="/var/lib/amavis/tmp/amavis-20131221T132753-20283-SD4gQJVU/parts: lstat() failed: Permission denied. ERROR\n" at (eval 111) line 899.
Dec 21 13:27:09 mxxx amavis[20283]: (20283-01) (!)WARN: all primary virus scanners failed, considering backups

grund ist – wer haette das ahnen koennen – fehlende berechtigung. da das verbiegen dieser im dateisystem bei updates oft nach hinten losgeht, muss man die gruppenberechtigung der user anpassen. ich habs mit der grossen keule gemacht 😉

usermod -a -G clamav amavis
usermod -a -G clamav clamav
usermod -a -G amavis clamav
usermod -a -G amavis amavis

danach die dienste neu starten und gut.

service clamav-daemon restart
service amavis restart
service postfix restart