Kategoriearchiv 'mail'
  |  
Markus am 20.04.08 um 5:15 pm Uhr

Postfix logging everything to /var/log/syslog

Config, Debian, mail

OK, while moving all the services to the vServer, I found out, that every information from the mailserver (postfix) had been logged to /var/log/mail.log and /var/log/syslog.

What can you do against it?
Have a look at /etc/syslog.conf. There is a line reading:

*.*;auth,authpriv.none -/var/log/syslog

Just change this line to:

*.*;auth,authpriv.none,mail.none -/var/log/syslog

… and you are done. (Please, don’t forget to restart the syslog-daemon. /etc/init.d/sysklogd restart)

Markus am 03.01.08 um 8:30 pm Uhr

Dovecot - Logrotate der Logfiles und ein dazugehöriger Problemfall

Config, Server, mail

Ich habe den Dovecot LDA so konfiguriert, dass er seine Logging-Informationen in ein eigenes File schreibt. Die zugehörige Zeile im Dovecot-Config-File /etc/dovecot/dovecot.conf sieht folgendermaßen aus:


protocol lda {
log_path = /var/log/dovecot-deliver.log
log_timestamp = “%b %d %H:%M:%S ” ….
}

Damit logged dovecot nach /var/log/dovecot-deliver.log.

Soweit so gut. Das funktioniert auch. Nun habe ich im nächsten Schritt defür gesorgt, dass auch dieses Logfile einmal pro Woche rotiert wird. Dazu folgendes File erzeugt: /etc/logrotate.d/dovecot

/var/log/dovecot-deliver.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 vmail vmail
postrotate
if [ -f /var/run/dovecot/master.pid ]; then
/etc/init.d/dovecot restart > /dev/null
fi
endscript
}

Hier ist unbedingt auf die Zeile create 640 vmail vmail zu achten! Ich hatte nämlich ursprünglich einfach ein anderes File kopiert und diese Zeile nicht angepasst. Und dann stand da: create 640 root root.
Das Ergebnis war, dass dovecot keine mails von Postfix angenommen hat. Und Postfix hat die dann ohne zu zögern zurückgeschickt, mit der für den Sender sicherlich hilfreichen Erkenntnis:
(Command died with status 80: “/usr/lib/dovecot/deliver”. Command output: deliver(mrre@gimme-th.at): Fatal: Can’t open log file /var/log/dovecot-deliver.log: Permission denied )

Mann, wie viele Leute werden sich da wohl wieder gewundert haben? Na, anyway, wieder mein übliches Problem: Berechtigungen, Berechtigungen, Berechtigungen!

Markus am 26.12.07 um 8:09 pm Uhr

Konfiguration eines Postfix-Mailservers mit Dovecot als LDA und ohne MySql

Config, Debian, Server, mail

Ziel dieser Beschreibung ist es, einen funktionierenden Postfix-basierten Mailserver zu betreiben. Der LDA (local delivery agent) soll dovecot sein. Der Mailserver soll eingehende Mails annehmen und nach außen Mails ausliefern. Das Ausliefern erfolgt über einen Mail-Relay, da der hier beschriebene Postfix hinter einer dynamischen IP hängt. Die Verwaltung der Domains sowie der User wird nicht mit mysql durchgeführt, sondern erfolgt in Textfiles. Die Installation erfolgt auf einem Debian-Etch-System.
Die Beschreibung basiert auf dem Howto von Christoph Haas. Deshalb werden hier im Wesentlichen die Schritte dokumentiert, die erforderlich sind, um den Mailserver ohne MySql - Unterstützung zu betreiben. Auf jedenFall empfiehlt es sich vorher sein HowTo zu lesen.

Zuerst sind die erforderlichen Pakete zu installieren.

apt-get install postfix
apt-get install dovecot-pop3d
apt-get install dovecot-imapd
apt-get install libsasl2
apt-get install libsasl2-module
s

Schreiten wir zur Postfix-Konfiguration

1. Es ist der user und die group vmail anzulegen, unter dem Postfix bzw. dovecot die virtuellen mail-user verwalten

groupadd vmail -g 5000
useradd vmail -d /home/vmail -g 5000 -m -s /bin/false -m 5000

2. Virtuelle Domains einrichten

Der Postfix-Server gehört zu einer Domain. Er kann aber auch weitere Domains verwalten. Die weiteren Domains sind die virtuellen. Genaueres kann man hier nachlesen oder im Postfix-Manual.

Es ist das File /etc/postfix/virtual_mailbox_domains anzulegen
Es enthält die gehosteten virtual domains. Der Inhalt sieht bei mir wie folgt aus:

gimme-th.at OK
lstr8.dynalias.com OK

Das heißt, der Postfix betreut die Domains: gimme-th.at und lstr8.dynalias.com. (Die zweite Domain ist eine über DynDNS verwaltete Domain - die, die ich vor der TLD hatte.)

Anschliessend ist ein postmap hash:/etc/postfix/virtual_mailbox_domains ausführen, um die Datenbank für den Postfix zu erstellen. (Der Befehlt erstellt die Datei: virtual_mailbox_domains.db. Aus diesem File bezieht postfix die Informationen.)

3. Das File mit den Speicherorten für die User-Mailboxen erstellen: /etc/postfix/virtual_mailbox_maps

mrre [ät] gimme-th.at gimme-th.at/mrre
mrre [ät] lstr8.dynalias.com lstr8.dynalias.com/mrre
trashbin [ät] gimme-th.at gimme-th.at/trashbin

Es werden alle gültigen email-Adressen aufgeführt. Achtung! Aus Spam-Gründen habe ich den Klammeraffen (@) durch ” [ät] ” ersetzt! Bitte berücksichtigen!
In diesem File bitte keine Umleitungen für Mailboxen einrichten. Dazu kommt es später noch!
Um das Datenbank-File zu erstellen der Aufruf:
postmap hash:/etc/postfix/virtual_mailbox_maps

4. Das File mit den Umleitungen für die Mailboxen anlegen: /etc/postfix/virtual_alias_maps

abuse [ät] gimme-th.at mrre [ät] gimme-th.at
complaints [ät] gimme-th.at trashbin [ät] gimme-th.at

postmap hash:/etc/postfix/virtual_alias_maps

Das heißt, dass die email-Adresse abuse [ät] gimme-th.at auf
mrre [ät] gimme-th.at umgeleitet wird.

Mit postmap kann man jetzt seine Files auf Funktionsweise testen. Die Anfrage:
postmap -q complaints [ät] gimme-th.at hash:/etc/postfix/virtual_alias_maps
liefert dann: trashbin [ät] gimme-th.at

Jetzt wären also die wichtigsten Files für die Postfix-Konfiguration erstellt.

5. Nun geht es an die Konfiguration von postfix /etc/postfix/main.cf

Es sind (zusätzlich) folgende Einträge notwendig. Ein Großteil der default-Einstellungen kann übernommen werden bzw. so bleiben!

# ————————- Virtual Domain options
virtual_mailbox_domains=hash:/etc/postfix/virtual_mailbox_domains
virtual_mailbox_base = /home/vmail
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps
virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_transport = dovecot
dovecot_destination_recipient_limit=1

An dieser Stelle die ersten Kommentare:
virtual_mailbox_base = /home/vmail Hier wird das root-Verzeichnis für die Speicherung der virtuellen Mailboxen gesetzt. D.h. dieser Pfad wird vor die unter 3. genannten Pfade gesetzt.

virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_transport = dovecot

Hier wird die uid und die gid vom User vmail angegeben. Der LDA wird dem Postfix bekannt gegeben: dovecot!
Und weiter geht’s mit der main.cf

# SMTP - AUTH
smtpd_sasl_type=dovecot
smtpd_sasl_path=private/auth
smtpd_sasl_auth_enable=yes
smtpd_recipient_restrictions=permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

Hier werden die Parameter für’s SMTP-Auth über dovecot angegeben.


#relaying via selfhost
relayhost = [mail.selfhost.de]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth
smtp_sasl_security_options = noanonymous
smtp_sasl_type=cyrus

Diese Zeilen sind erforderlich, wenn man über einen externen Mail-Relay gehen möchte, der ein SMTP-Auth erfordert. Ich relaye über Selfhost., da selfhost die DNS-Einträge für meine Domain verwaltet. Achtung! Wenn sich der Postfix-Server selbst an einem anderen mail-Server via SMTP-AUTH authentifizieren muss, dann geht das nicht über dovecot, sondern nur über cyrus! Deshalb die letzte Zeile.

Konfiguration von dovecot


# Authentication configuration
auth_verbose = yes

auth default {
mechanisms = plain login
passdb passwd-file {
args = /etc/dovecot/passwd
}
userdb static {
args = uid=vmail gid=vmail home=/home/vmail/%d/%n allow_all_users=yes
}

Die restlichen Konfigurationhinweise kann man von Workaround entnehmen.

Nun ist noch die Datei /etc/dovecot/passwd zu erstellen, in der die Passwörter gespeichert sind. Die könnte so aussehen:

mrre [ät] gimme-th.at:{Plain}MeinSicheresPasswort
thrashbin [ät] gimme-th.at:{Plain}MeinAnderesSicheresPasswort

Nun sind sowohl dovecot, als auch postfix zu starten.

/etc/init.d/postfix start
/etc/init.d/dovecot start

Anschließend sollte man testen, ob das mail-System funktioniert. Mit telnet auf dem Mail-Server einloggen:
telnet gimme-th.at smtp
ehlo mein.Server.com
mail from: You@yourdomain.com
rcpt to: mrre [ät] gimme-th.at
data
Hi mrre
.
quit

Damit loggt man sich per telnet auf dem mail-Server ein und versendet eine email an den mrre.

Ein weiteres gutes Werkzeug, um seinen mail-Server zu testen gibt es bei pingability. Dort werden sämtliche Funktionen getestet. Auch, ob der Server etwa ein open-Relay ist!

Anschließend der Hinweis: Sämtliche Probleme, die bei meiner Konfiguration aufgefallen sind, lagen an falschen Berechtigungen auf Dateien! Also: immer genau checken, ob der User vmail überall schreiben, bzw lesen darf, wo er möchte! :-)

Markus am 15.12.07 um 11:17 pm Uhr

Spam - Ein Testversuch mit einer separaten mail-Adresse (mail-me@gimme-th.at)

mail

Spam ist bekanntlich ein großes Ärgernis. Und immer wieder wird darüber referiert, dass man seine mail-Adresse nicht auf Websites veröffentlichen sollte, um die Menge an Spam zu reduzieren.

Um die o.g. Tatsache mal zu überprüfen, habe ich mir eine mail-Adresse angelegt. Diese mail-Adresse werde ich nur auf dieser Website veröffenlichen. Sie wird auch nicht dazu genutzt, mails zu versenden.

Meine Idee ist nun, einfach mal zu testen, wie lange es dauert, bis sich ein gewisses Spamaufkommen für diese Mail-Adresse zeigt.

Sollte es wirklich Spam geben, dann werde ich dazu bestimmt eine Statistik vom Zaune brechen :-)

Also, here it comes:

mail-me@gimme-th.at

Bitte keine sinnvollen mails an diese Adresse schicken! Und bitte, bitte, die Adresse nicht noch irgendwo anders veröffentlichen - sonst stimmt die Statistik nicht!

Markus am 22.05.07 um 4:47 pm Uhr

gnupg und kmail - Probleme beim entschlüsseln

Config, Security, mail

keywords: gnupg kmail debian bad passphrase

Da ich privat gern verschlüsselte bzw. signierte emails versenden möchte, habe ich mir das Paket gnupg installiert.

apt-get install gnupg2

Damit wurden gleichzeitig alle weiteren erforderlichen Pakete mitinstalliert.
Anschließend habe ich mir damit meine private und public keys erstellt.

gpg –gen-key

Den so erstellten Schlüssel muss man exportieren, da einem sonst keiner verschlüsselte emails senden kann. Diese Schlüssel kann man auf keyservern unterbringen, auf seiner Website, …

gpg –export –armor

Bekommt man öffentliche Schlüssel, so kann man sie mit

gpg –import

zu seinem Schlüsselbund hinzufügen.
Weiterhin sollte man dringend ein Rückrufzertifikat erstellen. Könnte ja sein, man muß seinen Schlüssel irgendwann zurückrufen!

gpg –gen-revoke

Wenn man kmail nutzt sind die Verschlüsselungsoptionen im kmail noch einzustellen.
Settings — Configure kmail — Security — Crypto Backends

Settings — Configure kmail — Identities — Modfiy

An dieser Stelle war es schonmal möglich, verschlüsselte emails zu versenden. Leider funktionierte bei mir das entschlüsseln nicht. Beim Empfang einer verschlüsselten email, wurde statt dem Inhalt der mail eine “Beschwerde” angezeigt, dass kgpg das ganze nicht entschlüsseln konnte, wegen “bad passphrase”. Und dabei wurde vorher nichtmal nach einem Passwort gefragt

Also Tante google nutzen und schon waren die erforderlichen Einstellungen gefunden.

1. Die ~/.gnupg/gpg-agent.conf sieht bei mir so aus:

pinentry-program /usr/bin/pinentry-qt
no-grab
default-cache-ttl 1800
debug-level basic
log-file socket:///home/mrre/.gnupg/log-socket

2. Ich habe eine gpg.conf erstellt:

utf8-strings
keyserver subkeys.pgp.net

3. kgpg muß automatisch beim Start von kmail gestartet werden. Und zwar aus der gleichen Konsole heraus, da sonst Variablen fehlen.
Die Reihenfolge sollte so aussehen:

1. gpg-agent –daemon
2. kgpg
3. kmail

Das kann auch automatisiert werden, indem man folgende Datei erstellt: ~/.kde/env/gpg-agent.sh
Diese muss den Inhalt haben:

eval “$(gpg-agent –daemon)”

Und mit dieser Konfiguration funktioniert es, ent- und verschlüsselte emails zu empfangen.

Wer es selber mal probieren möchte, kann mir gern eine verschlüsslte mail schicken. Kontaktdaten und public key findet man hier.

  |