PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einfach & sicher mailen mit ssmtp, fetchmail, procmail und mutt



ra1der
08.01.04, 22:27
Bei diesem Howto geht es darum auf einfache Weise ein funktionierendes und sicheres Mailsystem für alle User zu erstellen. Ich nutze dafür eine Kombination aus Openssl, fetchmail, procmail, ssmtp und einem Mailclient. Für die Konfigurationsdateien benutze ich ein GMX Mailkonto als Beispiel, ich denke damit komme ich vielen Usern entgegen,da Freemailkonten alà gmx und web.de heute sehr beliebt sind.

Zuerst laden Sie Sich alle benötigten Pakete herunter (Dateiendung .tar.gz), es empfiehlt sich immer die aktuelle "stable" (=stabile) Version zu wählen. Wer Distributionen wie Suse oder Redhat benutzt, die einen Paketmanager (z.B. rpm) haben, kann sich die Pakete auch auf diesem Wege installieren anstatt alles selbst zu bauen.

OpenSSL: ftp://ftp.openssl.org/source/

Fetchmail: ftp://gnome.dti.ad.jp/.1/unix/net/mail/fetchmail/

Procmail: ftp://ftp.procmail.net/pub/procmail/

ssmtp: http://ftp.debian.org/debian/pool/main/s/ssmtp/

Mutt: ftp://ftp.mutt.org/mutt

-> HINWEIS: Zum Kompilieren der Pakete benötigen Sie unbedingt die gängigen Development Tools (z.B. make) und einen Compiler (z.B. gcc).

-> HINWEIS: Pakete mit der Endung .tar.gz entpackt man mit dem Befehl "tar xzvf PAKETNAME"

ra1der
08.01.04, 22:28
# INSTALLATION:

Melden Sie sich nun mit ihrem Root-Zugang in einer neuen Konsole an (su - root) und verschieben (mv Datei /Ziel)Sie nun die heruntergeladenen Pakete in das Verzeichnis /usr/src/ .
Nun ist alles bereit um die Pakete zu kompilieren und installieren.

1. OpenSSL

Zuerst entpacken Sie das OpenSSL Paket und begeben sich Dann in das entpackte Verzeichnis (Verfahren Sie bei allen zu kompilierenden Paketen so). Danach kann OpenSSL kompiliert werden:


./config --openssldir=/etc/ssl --prefix=/usr shared &&
make &&
make install &&
cp -r certs /etc/ssl

Danach müssen wie die Rechte für eine Datei neu definieren, da sie durch die OpenSSL Installation geändert wurden:

chmod 755 /usr/lib/pkgconfig

2. Procmail

Kompilieren mit:


make BASENAME=/usr install &&
make install-suid


3. Fetchmail:

Kompilieren mit:


./configure --prefix=/usr --with-ssl --enable-fallback=procmail &&
make &&
make install


4. Mutt:

Natürlich können Sie auch andere Mailclienten als Mutt benutzen. Wenn Sie Mutt benutzen, müssen Sie zuerst eine neue Usergroup erstellen und ihr die Rechte an /var/mail zuteilen.


groupadd mail &&
chgrp mail /var/mail

Nun kann Mutt kompiliert werden:


./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install


5. sSMTP:

Auch hier gibt es Alternativen (Exim, Sendmail, Postfix). SSMTP ist aber am Einfachsten zu konfigurieren und ein sehr kleines Paket.


./configure --prefix=/usr --sysconfdir=/etc &&
make &&
make install

ra1der
08.01.04, 22:30
# KONFIGURATION:

Jetzt erstellen Wir die Konfigurationsdateien für die installierten Pakete. Erstellen Sie bitte die folgenden Konfigurationsdateien als normaler User in ihrem Homeverzeichnis ( ~/ ). So ist es sichergestellt, dass die User nur Zugriff auf ihre eigenen Passwörter und Anmeldedaten haben. Weiterhin erstellen Sie die Konfigurationsdateien als "Versteckte" Dateien ( ~/.dateiname ), damit sie nicht ausversehen gelöscht wird.

1. Procmail:

Hier reicht eine sehr einfache Konfigurationsdatei:


cat > .procmailrc << "EOF"
# Hier liegt das Mailverzeichnis
MAILDIR=$HOME/Mail

# Wo wurden die Mails gespeichert?
LOGFILE=$MAILDIR/log
EOF


2. Fetchmail:



cat > .fetchmailrc << "EOF"
set logfile /var/log/fetchmail.log
set postmaster "root"

poll MAILSERVER protocol PROTOKOLL username KUNDENNUMMER/MAILADRESSE password PASSWORT is USERNAME ssl;
mda "/usr/bin/procmail -f %F -d %T";
EOF

Natürlich müssen Sie die Platzhalter wie "MAILSERVER" durch ihre persönlichen Zugangsdaten ersetzen, hier ein Beispiel für ein GMX Konto. Den Platzhalter "linuxuser" sollten Sie durch den Usernamen ersetzen, mit
dem Sie sich bei ihrem Linuxrechner anmelden. Weiterhin ist es aus Sicherheitsgründen sinnvoll, anstatt Ihrer E-Mailadresse Ihre GMX-Kundennummer in die Konfigurationsdatei einzusetzen.

poll pop.gmx.net protocol pop3 username Jemand@gmx.de password geheimnis is linuxuser ssl;
mda "/usr/bin/procmail -f %F -d %T;

3. Mutt:

Dies ist eine spartanisch gehaltene Konfiguration, weitere Optionen finden Sie in der Mutt Dokumentation.


cat > .muttrc << "EOF"
set sendmail = set sendmail = "/usr/sbin/ssmtp -auGMX-KUNDENNUMMER -apGMX-PASSWORT"

set folder = ~/Mail
set mbox = +mbox
set record = +sent-mails

# Ihr Lieblingseditor
set editor = "/usr/bin/vi"

set realname = "Vorname Nachname"
my_hdr From: Vorname Nachname (Jemand@gmx.de)

# farben
color normal white black
color attachment brightyellow black
color hdrdefault cyan black
color indicator black cyan
color markers brightred black
color quoted green black
color signature cyan black
color status brightgreen blue
color tilde blue black
color tree red black
EOF

Die Zeile "set sendmail = "usr/sbin..." enthält die Optionen "-au" und "-ap". Diese Optionen brauchen Sie nur, wenn ihr Mailserver eine Anmeldung via SMTP-AUTH verlangt (z.B. bei GMX), ansonsten lassen Sie sie einfach weg. Unter "set editor = ..." müssen Sie Ihren Lieblingseditor (z.B. nano, vim, jed) samt dem Pfad angeben.

4. sSMTP:

Die Konfigurationsdateien für sSMTP finden Sie im Verzeichnis "/etc/ssmtp" und können nur als root editiert werden, melden Sie sich deshalb wieder als root in einer Konsole ein (su - root) und passen die folgenden Konfigurationsdateien meinen Beispielen an:


"/etc/ssmtp/revaliases"

# sSMTP aliases
#
# Format: local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.

linuxuser:Jemand@gmx.de:mail.gmx.net:25



#
# /etc/ssmtp.conf -- a config file for sSMTP sendmail.
#
# The person who gets all mail for userids < 1000
root=postmaster
# The place where the mail goes. The actual machine name is required
# no MX records are consulted. Commonly mailhosts are named mail.domain.com
# The example will fit if you are in domain.com and you mailhub is so named.
mailhub=mail.gmx.net
# Where will the mail seem to come from?
#rewriteDomain=ihre.domain
# The full hostname
hostname=Ihr_Rechner.ihre.domain

ra1der
08.01.04, 22:32
# BENUTZUNG:

Wenn Sie alles nach meinen Beispielen eingerichtet haben, funktioniert das Mailen als User nun folgendermaßen:

Neue Mails abholen:


fetchmail

Mails lesen, schreiben (Mehr in der Mutt Anleitung "man mutt"):


mutt




# ERGÄNZUNG:

Wenn Ihr Computer von mehreren Usern benutzt wird, sollten Sie die Rechte der Homeverzeichnisse alle User folgendermaßen verändert werden

Als root:


chmod 700 /home/USERNAME

Damit wird verhindert, dass die User den Inhalt des Homeverzeichnisses der andern User einsehen können. Meiner Meinung nach sollte das sowieso bei jedem Multiusersystem der Fall sein, um die Privatsphäre der User zu schützen.

ra1der

Quellen:
http://www.linuxfromscratch.org
http://www.geocities.com/win32mutt/cygwin-ssmtp.html
http://www.mutt.org
http://www.linuxer.onlinehome.de/apps/exim.htm