Anzeige:
Ergebnis 1 bis 1 von 1

Thema: Debian Mailserver Howto (Postfix, Courier)

  1. #1
    LPIC-3, CCNP, JNCIS-SP Avatar von OliverH
    Registriert seit
    Jan 2007
    Ort
    Kevelaer
    Beiträge
    170

    Debian Mailserver Howto (Postfix, Courier)

    Debian Mailserver Howto
    Dieses Howto befasst sich mit der Einrichtung eines Standalone Mailservers unter Debian GNU/Linux 4.0 unter Verwendung der folgenden Software:

    Postfix, Spamassassin, Procmail, Courier-IMAP/POP3, Squirrelmail(optional)

    1. Installation der Pakete

    Zur Installation der benötigten Pakete bedienen wir uns dem Befehl apt-get.

    Code:
    apt-get install postfix postfix-tls courier-imap courier-pop3 procmail spamassassin spamc dcc-client razor pyzor squirrelmail libsasl2 libsasl2-modules sasl2-bin
    Die Nachfrage, bei der Installation, über das anlegen einer www-Administrationsoberfläche können sie getrost mit „Nein“ beantworten.
    Als Postfix Konfigurationsart entscheiden wir uns für „Internet-Server“.
    Der Mailname des Systems sollte unbedingt der FQDN ihres Servers sein.

    2. Konfiguration von Postfix

    Nach erfolgreicher Installation der Pakete geht es nun an die Konfiguration von Postfix. Postfix ist der Mail Transfer Agent und wird für jede „Fremdkommunikation“ zuständig sein. Wir werden Postfix so konfigurieren, dass es Mails für mehrere Domains entgegen nimmt.
    Öffnen sie die Datei /etc/postfix/main.cf mit einem Editor ihrer Wahl und übernehmen sie das Listing:

    Code:
    # SMTP-Banner
    smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
    # deaktiviere die Benachrichtigung lokaler Nutzer, da es vermutlich keine gibt
    biff = no
    # deaktiviere Autovervollständigung um Verwirrung zu vermeiden
    append_dot_mydomain = no
    delay_warning_time = 4h
    # Ihr Hostname
    myhostname = 
    # Mailaliase
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    # Defaultdomain
    myorigin = /etc/mailname
    # Alle nicht virtuellen Domains, für die ihr Server zuständig sein soll
    mydestination = , localhost.localdomain, localhost
    # Nur Rechner aus diesen Netzen dürfen Mails ohne Authentifizierung versenden
    mynetworks = 127.0.0.0/8
    # Unsere Mailboxen haben kein Größenlimit
    mailbox_size_limit = 0
    # Setzt das Trennzeichen zwischen dem Benutzernamen und der Addresserweiterung
    recipient_delimiter = +
    # Postfix soll auf über alle Netzwerkkarten erreichbar sein
    inet_interfaces = all
    # Definiere die Maps der Virtuellen Domains
    virtual_alias_maps = hash:/etc/postfix/virtual_alias
    virtual_alias_domains = /etc/postfix/virtual_domains
    # Verwende SASL (SMTP-AUTH)
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_local_domain = $myhostname
    # Erlaube Outlook den Zugriff
    broken_sasl_auth_clients = yes
    # Nehme keine Mails an, wenn der sendende Rechner nicht entweder innerhalb von 
    # my_networks ist, oder sich per SASL authentifiziert hat. Zusätzlich wird keine Mail 
    # angenommen, von Domains, die weder einen A, noch einen MX-Record haben und für die der 
    # Server nicht  zuständig ist, davon ausgenommen sind alle Rechner in my_networks und alle 
    # SASL  authentifzierten.
    smtpd_recipient_restrictions = permit_mynetworks, reject_unknown_recipient_domain,  permit_sasl_authenticated, reject_unauth_destination
    # Verlange vom Kommunikationspartner einen validen FQDN als Hostnamen, wird dieser nicht 
    # gegeben, wird die Mail nicht akzeptiert. Dies vermindert die Spamflut erheblich, da viele 
    # Spamgateways schlampig Programmiert sind.
    smtpd_helo_restrictions = permit_mynetworks, reject_invalid_hostname, reject_non_fqdn_hostname, reject_unknown_hostname
    # Der Server soll keine Mails versenden, deren Domain er nicht kennt
    smtpd_sender_restrictions = reject_unknown_sender_domain
    # HELO wird zur pflicht
    smtpd_helo_required = yes
    # Verlange strikte RFC-Einhaltung
    strict_rfc821_envelopes = yes
    # Verwende das Maildir-Format
    home_mailbox = Maildir/
    Damit ist die Konfiguration von Postfix abgeschlossen, überprüfen sie die Syntax mittels

    Code:
    postfix check
    Kommt keine Ausgabe, ist alles in Ordnung und sie können Postfix per

    Code:
    postfix reload
    die neue Konfiguration beibringen.

    Jetzt müssen wir Postfix noch kurz beibringen, wie es auf SASL zur Authentifizierung zugreifen kann.
    Dazu legen wir die Datei /etc/postfix/sasl/smtpd.conf mit folgendem Inhalt an:
    Code:
    pwcheck_method: saslauthd
    mech_list: digest-md5 cram-md5 login plain
    autotransition:true
    saslauthd_path: /var/run/saslauthd/mux
    pwcheck_method: saslauthd
    3. Konfiguration der virtuellen Domains

    Legen sie die Dateien /etc/postfix/virtual_alias und /etc/postfix/virtual_domains an.
    Editieren sie die zuerst die Datei virtual_domains mit einem beliebigen Editor.
    Speichern sie in der Datei alle ihre Domains durch Kommata getrennt. Zeilenumbrüche sind erlaubt.

    Eine virtual_domains Datei könnte z.B. so aussehen:

    Code:
    domain1.de,
    domain2.com,
    domain3.net
    ...
    Als nächstes bearbeiten wir die Datei virtual_alias. Öffnen sie auch diese Datei mit einem beliebigen Texteditor. Das Format dieser Datei ist im Vergleich zur virtual_domains Datei höchst kompliziert. Es müssen Paare aus Quelle und Ziel(en) gebildet werden. Auf der linken Seite steht die volle Adresse, z.B. test@domain1.de und durch ein Leerzeichen oder einen Tabulatorvorschub getrennt das Ziel, z.B. das Postfach des Benutzers user1. Das sähe dann so aus:
    Code:
    test@domain1.de			user1
    Sie können einer Adresse auch mehrere Empfänger zuordnen. Dazu trennen sie die Empfänger wieder mit Kommata, z.B. so:

    Code:
    test@domain1.de			user1,user2,info@domain2.com
    Wie sie in diesem Beispiel sehen, können sie die Mails auch an eine andere Mailadresse weiterleiten.
    Nachdem die Datei fertiggestellt wurde, speichern sie diese und konvertieren Sie sie in das Datenbankformat von Postfix mittels:

    Code:
    postmap /etc/postfix/virtual_alias
    Anschließend führen sie erneut eine Konfigurationüberprüfung durch:

    Code:
    postfix check
    Alles Okay? Dann laden sie die Konfiguration neu:

    Code:
    postfix reload
    Weiter mit der Einrichtung von Courier.

    3. Die Einrichtung von Courier

    Das war's auch schon

    4. Konfiguration von SASL

    Als erstes müssen wir SASL „aktvieren“, da es nach der Installation standardmäßig deaktiviert ist. Dazu öffnen wir die Datei /etc/default/saslauthd mit einem beliebigen Editor.

    Die Zeile

    Code:
    START=no
    muss in

    Code:
    START=yes
    geändert werden.
    Anschließend sollte die Zeile

    Code:
    OPTIONS=“-c“
    in

    Code:
    OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd"
    geändert werden. Dies ist nötig, da Postfix in einem Chroot-Käfig läuft und auf den Standardsocket von SASL nicht zugreifen kann!
    Im Chroot-Käfig von Postfix fehlen ein paar Ordner, diese können wir von dpkg erzeugen lassen:

    Code:
    dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd
    Nun fügen wir noch Postfix zur Gruppe Sasl hinzu, damit ersteres auch auf letzteres zugreifen kann
    Code:
    adduser postfix sasl
    Anschließend kann der saslauthd gestartet werden:

    Code:
    /etc/init.d/saslauthd start
    Fertig. Die SMTP-AUTH sollte nun laufen.

    5. Squirrelmail einrichten

    Squirrelmail ist ein IMAP-Webclient.
    Um Squirrelmail zu aktivieren, müssen wir einen Symlink setzen.
    Code:
    ln -s /etc/squirrelmail/apache.conf /etc/apache2/conf.d
    Apache2 berücksichtigt alle Konfigurationsdateien im Ordner /etc/apache2/conf.d. Die Datei apache.conf konifguriert Apache2 so, dass ein Zugriff auf Squirrelmail möglich ist.
    Nach einem Restart von Apache2 ist Squirrelmail sofort verfügbar.

    Code:
    apache2ctl restart
    Squirrelmail ist nun einsatzbereit und unter

    http://$FQDN/squirrelmail

    verfügbar.

    6. Einrichtung von Spamassassin


    Als erstes aktivieren wir Spamassassin, da auch dieses bei der Standardinstallation deaktviert ist. Dazu bearbeiten wir die Datei /etc/default/spamassassin mit einem beliebigen Texteditor.
    Ändern sie die Zeile

    Code:
    ENABLED=0
    in
    Code:
    ENABLED=1
    und starten sie Spamassassin anschließend:

    Code:
    /etc/init.d/spamassassin start
    Ich werde hier nicht sehr detailliert auf die Konfiguration von Spamassassin eingehen, da dies den Rahmen dieses Howtos erheblich sprengen würde.

    Erstellen wir Razor Account
    Code:
    rm /etc/razor/razor-agent.conf
    razor-admin -create
    razor-admin -create
    razor-admin -register
    Wenn beim Erstellen des Kontos Fehler auftreten, ist es eventuell notwendig es mehrfach zu versuchen, da der Server eventuell ausgelastet ist.

    Anschließend editieren wir /root/.razor/razor-agent.conf wieder mit einem Texteditor und setzen den Debuglevel auf Null.

    nun bearbeiten wir die Konfigurationsdatei von Spamassassin (/etc/spamassassin/local.cf) mit einem Texteditor.
    Hängen Sie die folgenden Zeilen an die Datei an:

    Code:
    # Verwende Razor
    use_razor2 1
    # Verwende Pyzor
    use_pyzor 1
    # Verwende DCC
    use_dcc 1
    # Verwende Bayes Filter
    use_bayes 1
    use_bayes_rules 1
    bayes_auto_learn 1
    # Ab diesem Score wird eine Mail als SPAM markiert
    required_score 5.0
    Mit dem letzten Parameter werden sie vermutlich ein wenig rumspielen wollen, da die Einstufung ob eine Mail Spam ist oder nicht, von ihnen und nicht von mir abhängt.

    Anschließend muss Spamassassin noch neugestartet werden:

    Code:
    /etc/init.d/spamassassin restart
    Die Konfiguration von Spamassassin ist damit abgeschlossen.
    Natürlich lässt sich dort noch eine ganze menge verfeinern, ich empfehle dazu das Buch „Spamassassin – Leitfaden zu Konfiguration, Integration und Einsatz“ von Alistair McDonald aus dem Addison-Wesley Verlag.

    7. Konfiguration von Procmail als Mailfilter

    Da Spamassassin die Mails nur markiert, sie jedoch nicht sortiert, müssen wir hierzu ein weiteres Programm bemühen. Procmail ist ein sehr flexibler Mailfilter. Ich werde hier nur kurz zeigen, wie man damit Spammails sortieren kann und alle Mails an Spamassassin weiter reicht.

    Damit unsere Mails überhaupt von Spamassassin geprüft werden, müssen wir unsere Mail dorthin weiterleiten, dazwischen befindet sich Procmail als zentrale „Steuerstelle“ der Mails.
    Diese Kette schaut dann so aus:
    Postfix -> Procmail -> Spamassassin -> Procmail -> Mailbox

    Als erstes legen wir für alle Benutzer, deren Mails geprüft werden sollen eine .forward-Datei im jeweiligen Heimatverzeichnis an.
    Hier der Inhalt:
    Code:
    | /usr/bin/procmail

    Dies sorgt dafür, dass alle Mails durch eine sogenannte Pipe an Procmail geleitet werden. Nun ist es an der Zeit Procmail zu konfigurieren. Dazu benötigt jeder Benutzer eine .procmailrc Datei in seinem Heimatverzeichnis. Der Inhalt:

    Code:
    SHELL=/bin/bash
    HOME=/home/
    MAILDIR=HOME/Maildir
    DEFAULT=HOME/Maildir
    
    :0fw
    | /usr/bin/spamc
    
    :0:
    * ^X-Spam-Status: Yes
    HOME/Maildir/.Junk/
    
    :0:
    *
    Procmail wird angewiesen folgendes zu tun:
    Als erstes wird jede Mail an /usr/bin/spamc (also Spamassassin) geleitet und von diesem gescannt. Als nächstes wird das Ergebnis des Scans überprüft. Ist im Mailheader die Zeile

    Code:
    X-Spam-Status: Yes
    zu finden, so wird die Mail in den Ordner Junk einsortiert.
    Alle weiteren Mails landen ganz normal im Maildir.

    8. Schlusswort

    Ich hoffe ich konnte ihnen einen guten Einblick in die Konfiguration eines Mailservers unter Debian GNU/Linux 4.0 bieten und gebe hiermit sämtliche Rechte an diesem Werk ab, insofern sie nicht kommerziell genutzt werden.


    © Copyleft 2007 by Oliver H.
    Geändert von OliverH (30.08.07 um 01:56 Uhr) Grund: Korrektur

Ähnliche Themen

  1. Kein Zugriff auf Port 25
    Von Richie29 im Forum Linux als Server
    Antworten: 7
    Letzter Beitrag: 22.02.06, 11:21
  2. Server hieng wieder - warum?
    Von theWireless im Forum System installieren und konfigurieren
    Antworten: 11
    Letzter Beitrag: 26.03.05, 13:57
  3. problem mit postfix, qpopper und fetchmail
    Von mullfreak im Forum Linux als Server
    Antworten: 3
    Letzter Beitrag: 21.02.05, 20:04
  4. Mailen mit Postfix, Mutt und Fetchmail
    Von DustPuppy im Forum Hier Suchen und Finden, Links, Tutorials
    Antworten: 4
    Letzter Beitrag: 18.02.03, 12:01
  5. postfix port25
    Von rogen im Forum Linux als Server
    Antworten: 5
    Letzter Beitrag: 08.08.02, 11:55

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •