Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Postfix bzw. Mailserver HowTos

  1. #1
    Mr.Postfix Avatar von crazyrolf
    Registriert seit
    Jun 2006
    Ort
    nähe Köln
    Beiträge
    11

    Postfix bzw. Mailserver HowTos von crazyrolf

    HowTos für Postfix von crazyrolf

    Hallo erst mal in die Runde.
    Ich habe bis jetzt in einem anderen großen SuSE-Linux-Forum meine Arbeit als Moderator des Mail-Forums verrichtet.
    Wegen interner Meinungsverschiedenheiten bin ich nun hier gelandet.

    Ich werde hier eine Liste meiner HowTos einstellen, die sich alle auf SuSE-Linux beziehen, dadurch können bei Anderen Linux-Versionen kleine Unterschiede in der Ordnerstrucktur entstehen, bitte darauf achten.

    Bitte hier keine Fragen stellen, danke.

    Wenn ihr Wünsche für ein HowTo habt, diese bitte hier äußern:
    http://www.linuxforen.de/forums/showthread.php?t=215285

    Hier nun mein Beitrag zu den HowTos:

    Postfix Grundeinstellungen

    http://www.linuxforen.de/forums/show...18&postcount=2

    main.cf ohne Kommentare ausgeben

    http://www.linuxforen.de/forums/show...21&postcount=3

    Postfix mit courier-imap und mysql-Auth

    http://www.linuxforen.de/forums/show...25&postcount=4

    DynDNS Mails empfangen

    http://www.linuxforen.de/forums/show...40&postcount=5

    Postfix mit mysql Compilieren

    http://www.linuxforen.de/forums/show...44&postcount=6

    Postfix POP3 Servereinrichten

    http://www.linuxforen.de/forums/show...45&postcount=7
    Geändert von crazyrolf (08.06.06 um 09:35 Uhr)

  2. #2
    Mr.Postfix Avatar von crazyrolf
    Registriert seit
    Jun 2006
    Ort
    nähe Köln
    Beiträge
    11

    Postfix Grundeinstellungen

    Damit man Postfix mit amavis-new oder AntiVir oder was auch immer nutzen kann, sollte es erst mal richtig laufen!

    Wie ihr vielleicht schon bemerkt habt, schreiben wir in Linux fast immer alles klein!
    Warum?
    Damit wir keinen blöden Fehler machen, weil Linux da unterscheidet zwischen GROSS und gross!
    Also "GROSS" nix gleich "gross"!

    Wenn wir also einen Mailserver aufsetzen wollen, muss unser Server als erstes eine feste IP haben.

    In unserem Beispiel gehen wir von dem IP-Bereich 192.168.0.xxx aus! Bitte an euer Netz anpassen!


    1. Netzwerkkarte im Yast unter Netzwerkgeräte - Netzwerkkarte einrichten.

    http://www.ungerwasser.de/test/netzwerkkarte.jpg

    Da unsere Karte wohl schon erkannt ist, drücken wir also auf Ändern und dann auf bearbeiten!

    http://www.ungerwasser.de/test/netzwerkkarte2.jpg

    Ein Klick auf Konfiguration der Statischen Adresse.
    Hier jetzt eine feste IP aus unserem Bereich vergeben.
    Haben wir einen Router mit der IP 192.168.0.1, dann kann unser Rechner eine IP zwischen 192.168.0.2 und 192.168.0.254 haben.
    Ansonsten bitte anpassen!

    Subnetzmaske 255.255.255.0

    Jetzt Hostname und Nameserver.

    http://www.ungerwasser.de/test/hostname.jpg

    Hier könnt ihr eueren Namen vergeben.
    Bitte einen anständigen Domainnamen verwenden, da dieser sonst unter umständen abgelehnt wird!

    Rechnername = z.B. hans
    Domainname = linux.de

    Nameserver1 = IP vom Router
    Domain-suche1 = xxx.de

    Unter Routing kommt die IP vom Router!

    Der erste Teil wäre geschafft!

    2 Postfix anpassen!

    Änderungen in der /etc/postfix/main.cf

    Doppelte Einträge sind sinnlos!
    Es gewinnt immer der letzte Eintrag, nur der zählt!


    Was ihr bei euch nicht findet, einfach eintragen!
    command_directory = /usr/sbin
    daemon_directory = /usr/lib/postfix

    unknown_local_recipient_reject_code = 550
    debug_peer_level = 2
    debugger_command =
    PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
    xxgdb $daemon_directory/$process_name $process_id & sleep 5

    sendmail_path = /usr/sbin/sendmail
    newaliases_path = /usr/bin/newaliases
    mailq_path = /usr/bin/mailq
    setgid_group = maildrop
    html_directory = /usr/share/doc/packages/postfix/html
    manpage_directory = /usr/share/man
    sample_directory = /usr/share/doc/packages/postfix/samples
    readme_directory = /usr/share/doc/packages/postfix/README_FILES
    biff = no
    mail_spool_directory = /var/mail
    canonical_maps = hash:/etc/postfix/canonical
    virtual_maps = hash:/etc/postfix/virtual
    relocated_maps = hash:/etc/postfix/relocated
    transport_maps = hash:/etc/postfix/transport
    sender_canonical_maps = hash:/etc/postfix/sender_canonical

    masquerade_classes = envelope_sender, header_sender, header_recipient

    #so heißt mein Rechner wie bei der Konfiguration der Netzwerkkarte vergeben
    myhostname = hans.linux.de
    mydomain = linux.de

    mydestination = $myhostname,$mydomain, localhost, localhost.$mydomain

    #Dieser Eintrag deckt den Bereich von 192.168.0.0 - 192.168.0.255,
    #also können jetzt alle Rechner in diesem Bereich Mails über unseren Server per SMTP senden.
    #Sonst bitte an euer Netzwerk anpassen! z.B. 192.168.1.0/24


    mynetworks = 192.168.0.0/24, 127.0.0.0/8

    smtpd_banner = $myhostname ESMTP

    #IP vom Router
    proxy_interfaces = 192.168.0.1

    program_directory = /usr/lib/postfix
    inet_interfaces = all
    masquerade_domains = $mydomain
    masquerade_exceptions = root

    defer_transports =
    disable_dns_lookups = no

    #mein smtp Ausgang smtp Server vom Internetdienstanbieter
    relayhost = [smtp.netcologne.de]

    mailbox_command =
    mailbox_transport =
    strict_rfc821_envelopes = no
    smtp_use_tls = no
    smtp_sasl_auth_enable = no
    smtp_sasl_security_options =
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

    smtpd_sasl_auth_enable = yes
    smtpd_tls_auth_only = no
    #smtpd_sender_restrictions = hash:/etc/postfix/access
    smtpd_client_restrictions =
    smtpd_helo_required = no
    smtpd_helo_restrictions =
    #Wer darf senden?
    smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject _unauth_destination
    smtpd_use_tls = no
    broken_sasl_auth_clients = yes
    #SMTPD Sicherheit
    smtpd_junk_command_limit = 100
    smtpd_sasl_security_options = noanonymous
    smtpd_sasl_local_domain = $myhostname
    smtpd_recipient_limit = 50
    smtpd_timeout = 300s
    alias_maps = hash:/etc/aliases

    bounce_size_limit = 100000
    # max. Groesse einer Mail 10MB
    message_size_limit = 10000000
    # max. Groesse einer Mailqueue 200MB
    mailbox_size_limit = 200000000
    # 100MB - mindestens freier Plattenplatz
    queue_minfree = 100000000

    append_dot_mydomain = no
    queue_directory = /var/spool/postfix
    mail_owner = postfix

    # hans ist hier nur ein Beispiel!
    double_bounce_sender = hans@localhost
    empty_address_recipient = hans@localhost
    relay_domains = $mydestination
    relay_domains_reject_code = 554
    3. Postfix neu starten!

    Konsole als root.

    Eingabe:

    su
    dein passwort
    rcpostfix restart

    Fertig!

    Das war es, jetzt solltet ihr, wenn ihr in euerem Mailprogramm zum versenden "sendmail" auswählt, eine Mail versenden können.

    4 Wenn nicht, ist es möglich. dass ihr euch zum versand bei euerem smtp-Ausgang anmelden müsst.

    Dann dies noch durchführen und Postfix neu starten.

    Benutzen wir einen anderen smtp-Server, müssen wir uns zum Versand gegebenenfalls am Server anmelden.

    Hierzu müssen wir die Datei im Verzeichniss /etc/postfix/sasl_passwd bearbeiten.

    Beispieleintrag:

    smtp.netcologne.de benutzernameasswort

    Damit Postfix diese lesen kann, müssen wir sie noch in eine db umwandeln.

    Konsole als root öffnen.

    Also:
    su
    passwort
    postmap /etc/postfix/sasl_passwd

    fertig.

    Jetzt noch diese Einträge in die main.cf

    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

    Erst jetzt können wir unsere Postfix z.B. mit header_checks usw. erweitern!
    Geändert von crazyrolf (30.09.08 um 13:01 Uhr)

  3. #3
    Mr.Postfix Avatar von crazyrolf
    Registriert seit
    Jun 2006
    Ort
    nähe Köln
    Beiträge
    11

    main.cf ohne Kommentare ausgeben

    Wie kann man z.B. die main.cf ohne Kommentare ausgeben?

    Das geht so:
    1. Konsole öffnen
    2. "su" eingeben
    3. root-Passwort eingeben
    4. cd /etc/postfix
    5. cat main.cf | grep -v "^#" | grep -v ^$

    Oder bei der main.cf einfach als root dies eingeben:
    postconf -n

    Die obere Variante ist aber zuverlässiger.

    Und schon bekommt man eine wunderschöne ausgabe ohne die Kommentare.

    Mit anderen Files geht das logo auch so!
    Dazu in das gewünschte Verzeichniss wechseln und den entsprechenden Filenamen verwenden.

  4. #4
    Mr.Postfix Avatar von crazyrolf
    Registriert seit
    Jun 2006
    Ort
    nähe Köln
    Beiträge
    11

    Postfix mit courier-imap und mysql SuSE

    Postfix mit courier-imap und mysql SuSE

    Ich gehe davon aus, das ihr bereits einen Webserver mit mysql und PHP installiert habt und die Standardverzeichnisse unter SuSE benutzt werden.

    Wir setzen hier einen Mailserver mit POP und imap auf, der alle User in einer MySQL-DB hat. Kein user hat einen Maschienenaccount. Alle user werden über die MySQL-DB angelegt oder gelöscht.


    Fehler in dieser Anleitung sind nicht gewollt, bitte nicht schlagen wenn ihr einen findet!

    Euer Postfix und die Netzwerkkarte sollte richtig konfiguriert sein, siehe:

    http://www.linuxforen.de/forums/show...18&postcount=2

    Wenn nicht, braucht ihr nicht weiter lesen, erst mal alles ordentlich einrichten!


    1. Als erstes installieren wir z.B. mit yast die Pakete:

    db
    db-devel, db1-devel usw.
    mysql-devel
    openssl-devel
    zlib-devel
    fam

    2. Postfix mit mysql compilieren und upgraden!

    Siehe HOW-TO

    http://www.linuxforen.de/forums/show...44&postcount=6

    Wenn ihr bereits qpopper oder cyrus installiert habt, diese jetzt deinstallieren!
    Auch alle anderen pop-server.


    3. Datenbank anlegen z.B. mit phpmyadmin:

    CREATE TABLE `mailuser` (
    `id` int(11) NOT NULL auto_increment,
    `account` varchar(240) NOT NULL default '',
    `uid` varchar(6) NOT NULL default '5001',
    `gid` varchar(6) NOT NULL default '5001',
    `maildir` varchar(100) NOT NULL default '',
    `home` varchar(100) NOT NULL default '/var/spool/maildirs',
    `password` varchar(255) NOT NULL default '',
    `angelegt_von` varchar(60) NOT NULL default '',
    `angelegt_am` date NOT NULL default '0000-00-00',
    `memo_text` varchar(255) NOT NULL default '',
    `memo_vorname` varchar(60) NOT NULL default '',
    `memo_nachname` varchar(60) NOT NULL default '',
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=2 ;

    4. courier-imap mit mysql compilieren


    Quellen downloaden, da wir die Pakete auf der SuSE-DVD nicht nutzen können (fehlt die mysql Anbindung):

    http://prdownloads.sourceforge.net/c...b-0.58.tar.bz2

    http://prdownloads.sourceforge.net/c...-4.0.6.tar.bz2


    In das Verzeichniss wechseln und auspacken.
    Wie das geht solltet ihr wissen.

    Als erstes courier-authlib-0.58 compilieren und installieren.

    In das entpackte Verzeichnis wechseln und als root:

    ./configure
    make
    make install
    make install-configure

    Jetzt courier-imap-4.0.6

    In das entpackte Verzeichnis wechseln und ACHTUNG als USER:

    ./configure
    make
    make check (jetzt kommen ein paar Fehler-Meldungen, die wir erst mal ignorieren)
    su
    passwort (wir werden root)
    make install
    make install-configure

    5. In /usr/local/etc/authlib/ finden wir jetzt diese 2 Dateien,

    authdaemonrc und
    authmysqlrc

    die wir anpassen, da wir nur über die mysql-db authentifizieren wollen:

    Fehlt eine der Dateien, ist was beim compilieren falsch gelaufen, überprüfen ob alle Pakete installiert wurden und noch mal neu compilieren.

    # authdaemonrc

    ##VERSION: $Id: authdaemonrc.in,v 1.8 2001/10/07 02:16:22 mrsam Exp $
    #
    # Copyright 2000-2001 Double Precision, Inc. See COPYING for
    # distribution information.
    #
    # authdaemonrc created from authdaemonrc.dist by sysconftool
    #
    # Do not alter lines that begin with ##, they are used when upgrading
    # this configuration.
    #
    # This file configures authdaemond, the resident authentication daemon.
    #
    # Comments in this file are ignored. Although this file is intended to
    # be sourced as a shell script, authdaemond parses it manually, so
    # the acceptable syntax is a bit limited. Multiline variable contents,
    # with the \ continuation character, are not allowed. Everything must
    # fit on one line. Do not use any additional whitespace for indentation,
    # or anything else.

    ##NAME: authmodulelist:0
    #
    # The authentication modules that are linked into authdaemond. The
    # default list is installed. You may selectively disable modules simply
    # by removing them from the following list. The available modules you
    # can use are: authcustom authcram authuserdb authldap authpam

    authmodulelist="authmysql"

    ##NAME: authmodulelistorig:1
    #
    # This setting is used by Courier's webadmin module, and should be left
    # alone
    #Achtung: wenn authmysql nicht vorhanden ist, ist was beim compilieren falsch
    #gelaufen! Also noch mal neu.

    authmodulelistorig="authmysql"


    ##NAME: daemons:0
    #
    # The number of daemon processes that are started. authdaemon is typically
    # installed where authentication modules are relatively expensive: such
    # as authldap, or authmysql, so it's better to have a number of them running.
    # PLEASE NOTE: Some platforms may experience a problem if there's more than
    # one daemon. Specifically, SystemV derived platforms that use TLI with
    # socket emulation. I'm suspicious of TLI's ability to handle multiple
    # processes accepting connections on the same filesystem domain socket.
    #
    # You may need to increase daemons if as your system load increases. Symptoms
    # include sporadic authentication failures. If you start getting
    # authentication failures, increase daemons. However, the default of 5
    # SHOULD be sufficient. Bumping up daemon count is only a short-term
    # solution. The permanent solution is to add more resources: RAM, faster
    # disks, faster CPUs...

    daemons=5

    ##NAME: version:0
    #
    # When you have multiple versions of authdaemond.* installed, authdaemond
    # just picks the first one it finds. Set "version" to override that.
    # For example: version=authdaemond.plain

    version=""

    ##NAME: authdaemonvar:0
    #
    # authdaemonvar is here, but is not used directly by authdaemond. It's
    # used by various configuration and build scripts, so don't touch it!

    authdaemonvar=/var/run/authdaemon.courier-imap
    ----------------------------------------------------------------------------------------------------------------

    #authmysqlrc

    ##VERSION: $Id: authmysqlrc,v 1.18 2004/11/14 02:58:16 mrsam Exp $
    #
    # Copyright 2000-2004 Double Precision, Inc. See COPYING for
    # distribution information.
    #
    # Do not alter lines that begin with ##, they are used when upgrading
    # this configuration.
    #
    # authmysqlrc created from authmysqlrc.dist by sysconftool
    #
    # DO NOT INSTALL THIS FILE with world read permissions. This file
    # might contain the MySQL admin password!
    #
    # Each line in this file must follow the following format:
    #
    # field[spaces|tabs]value
    #
    # That is, the name of the field, followed by spaces or tabs, followed by
    # field value. Trailing spaces are prohibited.


    ##NAME: LOCATION:0
    #
    # The server name, userid, and password used to log in.

    MYSQL_SERVER localhost
    MYSQL_USERNAME mysql_username
    MYSQL_PASSWORD mysql_passwort

    ##NAME: MYSQL_SOCKET:0
    #
    # MYSQL_SOCKET can be used with MySQL version 3.22 or later, it specifies the
    # filesystem pipe used for the connection
    #
    # MYSQL_SOCKET /var/mysql/mysql.sock
    #Bitte Verzeichniss prüfen!

    MYSQL_SOCKET /var/lib/mysql/mysql.sock

    ##NAME: MYSQL_PORT:0
    #
    # MYSQL_PORT can be used with MySQL version 3.22 or later to specify a port to
    # connect to.

    MYSQL_PORT 3306

    #NAME: MYSQL_OPT:0
    #
    # Leave MYSQL_OPT as 0, unless you know what you're doing.

    MYSQL_OPT 0

    ##NAME: MYSQL_DATABASE:0
    #
    # The name of the MySQL database we will open:

    MYSQL_DATABASE mailbase

    ##NAME: MYSQL_USER_TABLE:0
    #
    # The name of the table containing your user data. See README.authmysqlrc
    # for the required fields in this table.

    MYSQL_USER_TABLE mailuser

    ##NAME: MYSQL_CRYPT_PWFIELD:0
    #
    # Either MYSQL_CRYPT_PWFIELD or MYSQL_CLEAR_PWFIELD must be defined. Both
    # are OK too. crypted passwords go into MYSQL_CRYPT_PWFIELD, cleartext
    # passwords go into MYSQL_CLEAR_PWFIELD. Cleartext passwords allow
    # CRAM-MD5 authentication to be implemented.

    #MYSQL_CRYPT_PWFIELD crypt

    ##NAME: MYSQL_CLEAR_PWFIELD:0
    #
    #

    MYSQL_CLEAR_PWFIELD password

    ##NAME: MYSQL_DEFAULT_DOMAIN:0
    #
    # If DEFAULT_DOMAIN is defined, and someone tries to log in as 'user',
    # we will look up 'user@DEFAULT_DOMAIN' instead.
    #
    #
    # DEFAULT_DOMAIN example.com

    DEFAULT_DOMAIN deine-domaine.de

    ##NAME: MYSQL_UID_FIELD:0
    #
    # Other fields in the mysql table:
    #
    # MYSQL_UID_FIELD - contains the numerical userid of the account
    #

    MYSQL_UID_FIELD uid

    ##NAME: MYSQL_GID_FIELD:0
    #
    # Numerical groupid of the account

    MYSQL_GID_FIELD gid

    ##NAME: MYSQL_LOGIN_FIELD:0
    #
    # The login id, default is id. Basically the query is:
    #
    # SELECT MYSQL_UID_FIELD, MYSQL_GID_FIELD, ... WHERE id='loginid'
    #

    MYSQL_LOGIN_FIELD account

    ##NAME: MYSQL_HOME_FIELD:0
    #

    MYSQL_HOME_FIELD home

    ##NAME: MYSQL_NAME_FIELD:0
    #
    # The user's name (optional)

    MYSQL_NAME_FIELD account

    ##NAME: MYSQL_MAILDIR_FIELD:0
    #
    # This is an optional field, and can be used to specify an arbitrary
    # location of the maildir for the account, which normally defaults to
    # $HOME/Maildir (where $HOME is read from MYSQL_HOME_FIELD).
    #
    # You still need to provide a MYSQL_HOME_FIELD, even if you uncomment this
    # out.
    #
    # MYSQL_MAILDIR_FIELD maildir

    MYSQL_MAILDIR_FIELD maildir

    ##NAME: MYSQL_DEFAULTDELIVERY:0
    #
    # Courier mail server only: optional field specifies custom mail delivery
    # instructions for this account (if defined) -- essentially overrides
    # DEFAULTDELIVERY from ${sysconfdir}/courierd
    #
    # MYSQL_DEFAULTDELIVERY defaultdelivery

    ##NAME: MYSQL_QUOTA_FIELD:0
    #
    # Define MYSQL_QUOTA_FIELD to be the name of the field that can optionally
    # specify a maildir quota. See README.maildirquota for more information
    #
    # MYSQL_QUOTA_FIELD quota

    ##NAME: MYSQL_AUXOPTIONS:0
    #
    # Auxiliary options. The MYSQL_AUXOPTIONS field should be a char field that
    # contains a single string consisting of comma-separated "ATTRIBUTE=NAME"
    # pairs. These names are additional attributes that define various per-account
    # "options", as given in INSTALL's description of the "Account OPTIONS"
    # setting.
    #
    # MYSQL_AUXOPTIONS_FIELD auxoptions
    #
    # You might want to try something like this, if you'd like to use a bunch
    # of individual fields, instead of a single text blob:
    #
    # MYSQL_AUXOPTIONS_FIELD CONCAT("disableimap=",disableimap,",disablepop3=",disablepop3,",disablewebmail=",disablewebmail,",sharedgroup=",sharedgroup)
    #
    # This will let you define fields called "disableimap", etc, with the end result
    # being something that the OPTIONS parser understands.


    ##NAME: MYSQL_WHERE_CLAUSE:0
    #
    # This is optional, MYSQL_WHERE_CLAUSE can be basically set to an arbitrary
    # fixed string that is appended to the WHERE clause of our query
    #
    # MYSQL_WHERE_CLAUSE server='mailhost.example.com'

    ##NAME: MYSQL_SELECT_CLAUSE:0
    #
    # (EXPERIMENTAL)
    # This is optional, MYSQL_SELECT_CLAUSE can be set when you have a database,
    # which is structuraly different from proposed. The fixed string will
    # be used to do a SELECT operation on database, which should return fields
    # in order specified bellow:
    #
    # username, cryptpw, clearpw, uid, gid, home, maildir, quota, fullname, options
    #
    # The username field should include the domain (see example below).
    #
    # Enabling this option causes ignorance of any other field-related
    # options, excluding default domain.
    #
    # There are two variables, which you can use. Substitution will be made
    # for them, so you can put entered username (local part) and domain name
    # in the right place of your query. These variables are:
    # $(local_part), $(domain), $(service)
    #
    # If a $(domain) is empty (not given by the remote user) the default domain
    # name is used in its place.
    #
    # $(service) will expand out to the service being authenticated: imap, imaps,
    # pop3 or pop3s. Courier mail server only: service will also expand out to
    # "courier", when searching for local mail account's location. In this case,
    # if the "maildir" field is not empty it will be used in place of
    # DEFAULTDELIVERY. Courier mail server will also use esmtp when doing
    # authenticated ESMTP.
    #
    # This example is a little bit modified adaptation of vmail-sql
    # database scheme:
    #
    # MYSQL_SELECT_CLAUSE SELECT CONCAT(popbox.local_part, '@', popbox.domain_name), \
    # CONCAT('{MD5}', popbox.password_hash), \
    # popbox.clearpw, \
    # domain.uid, \
    # domain.gid, \
    # CONCAT(domain.path, '/', popbox.mbox_name), \
    # '', \
    # domain.quota, \
    # '', \
    # CONCAT("disableimap=",disableimap,",disablepop3=", \
    # disablepop3,",disablewebmail=",disablewebmail, \
    # ",sharedgroup=",sharedgroup) \
    # FROM popbox, domain \
    # WHERE popbox.local_part = '$(local_part)' \
    # AND popbox.domain_name = '$(domain)' \
    # AND popbox.domain_name = domain.domain_name


    ##NAME: MYSQL_ENUMERATE_CLAUSE:1
    #
    # {EXPERIMENTAL}
    # Optional custom SQL query used to enumerate accounts for authenumerate,
    # in order to compile a list of accounts for shared folders. The query
    # should return the following fields: name, uid, gid, homedir, maildir, options
    #
    # Example:
    # MYSQL_ENUMERATE_CLAUSE SELECT CONCAT(popbox.local_part, '@', popbox.domain_name), \
    # domain.uid, \
    # domain.gid, \
    # CONCAT(domain.path, '/', popbox.mbox_name), \
    # '', \
    # CONCAT('sharedgroup=', sharedgroup) \
    # FROM popbox, domain \
    # WHERE popbox.local_part = '$(local_part)' \
    # AND popbox.domain_name = '$(domain)' \
    # AND popbox.domain_name = domain.domain_name



    ##NAME: MYSQL_CHPASS_CLAUSE:0
    #
    # (EXPERIMENTAL)
    # This is optional, MYSQL_CHPASS_CLAUSE can be set when you have a database,
    # which is structuraly different from proposed. The fixed string will
    # be used to do an UPDATE operation on database. In other words, it is
    # used, when changing password.
    #
    # There are four variables, which you can use. Substitution will be made
    # for them, so you can put entered username (local part) and domain name
    # in the right place of your query. There variables are:
    # $(local_part) , $(domain) , $(newpass) , $(newpass_crypt)
    #
    # If a $(domain) is empty (not given by the remote user) the default domain
    # name is used in its place.
    # $(newpass) contains plain password
    # $(newpass_crypt) contains its crypted form
    #
    # MYSQL_CHPASS_CLAUSE UPDATE popbox \
    # SET clearpw='$(newpass)', \
    # password_hash='$(newpass_crypt)' \
    # WHERE local_part='$(local_part)' \
    # AND domain_name='$(domain)'
    #

    6. Postfix anpassen

    Datei mit root-Rechten erstellen:

    /etc/postfix/ids.mysql

    Inhalt:

    user=mysql_username
    password=mysql_passwort
    host=localhost
    dbname=mailbase
    table=mailuser
    select_field=uid
    where_field=account

    Datei erstellen:

    /etc/postfix/mailbox.mysql

    Inhalt:

    user=mysql_username
    password=mysql_passwort
    host=localhost
    dbname=mailbase
    table=mailuser
    select_field=maildir
    where_field=account


    main.cf anpassen und um diese Einträge erweitern.

    #Virtuelle Mailbox
    virtual_mailbox_base =/var/spool/maildirs
    virtual_mailbox_maps = mysql:/etc/postfix/mailbox.mysql
    virtual_maps = hash:/etc/postfix/virtual
    virtual_minimum_uid = 5000
    virtual_uid_maps = static:5001
    virtual_gid_maps = static:5001

    Datei etc/postfix/transport ändern und am Ende einfügen.

    deine_domain.de virtual:


    Jetzt noch in eine DB wandeln:

    Konsole:
    su
    passwort
    cd /etc/postfix
    postmap transport


    Courier-imap Benutzer anlegen:
    Konsole:

    useradd -u 5001 -d /var/spool/maildirs -s /bin/false mailuser

    groupadd -g 5001 mailusers


    Verzeichnis anlegen:

    mkdir -p /var/spool/maildirs
    chown 5001:5001 /var/spool/maildirs


    Postfix mit rcpostfix restart neu starten!

    Wir kopieren die Startscripte von /usr/lib/courier-imap/libexec:

    imapd.rc
    imapd-ssl.rc
    pop3d.rc
    pop3d-ssl.rc

    nach etc/init.d


    Im runlevel-Editor die Dienste

    imapd.rc und
    pop3d.rc

    im Runlevel 3 & 5 starten.

    Jetzt noch unseren Authdämond starten:

    Konsole:
    su
    passwort
    cd /usr/local/libexec/courier-authlib
    ./authdaemond

    Ich würde hierfür einen cronjob schreiben, der den Dämon beim booten startet!

    z.B. so:

    @reboot root /usr/local/libexec/courier-authlib/authdaemond


    Jetzt sollten wir unseren ersten User in der mysql-db anlegen.

    Das PHP-Script dazu ist fertig!
    Vielen Danke an mbkr (LAMP-Webserver XAMPP-Forum)


    http://www.ungerwasser.de/downloads/...r_admin.tar.gz

    Downloaden conf.inc.php anpassen und los!

    ----------------------------------------------------------------------
    Von Hand so:

    User1 bitte durch euren usernamen ersetzen, genau wie das user_passwort!

    INSERT INTO `mailuser` VALUES ('', 'user1@localhost', '5001', '5001', 'rolf/', '/var/spool/maildirs', 'user_passwort', 'postmaster', '2005-08-18', 'Mailbox von user1', 'user1', 'nachname');

    ----------------------------------------------------------------------

    In z.B KMail ist jetzt als POP-Server die IP von euerem Server einzutragen.
    Als Benutzernamen, der Name unter account = user1@localhost und das von euch erteilte user_Passwort


    Ob der imap-Server läuft, könnt ihr mit einem telnet login überprüfen:

    [telnet auf Server]
    00001 LOGIN username password [enter]
    [Antwort vom Server]
    00002 SELECT INBOX
    [Antwort vom Server]
    00003 ...
    [...]
    usw.

    So ich hoffe es geht! :wink:

    Als Webmailer für imap, würde ich SquirrelMail benutzen, geht recht einfach zu installieren.

    http://www.squirrelmail.org/

    Fehler bitte bei mir melden, danke!

    PS: Wenn man für die virtuellen User fetchmail benutzen möchte, muss man für jeden User einen virtuellen User auf der Maschiene anlegen, da fetchmail den user sonst nicht findet!

    z.B. so:
    Ein zusätzliches Verzeichniss anlegen:

    mkdir -p /var/spool/maildirs/home
    chown 5001:5001 /var/spool/maildirs/home
    chmod -R 770 /var/spool/maildirs/home

    Jetzt kommt für jeden User ein solcher Eintrag, wobei "user1" durch den jeweiligen Usernamen zu ersetzen ist:

    useradd -u 5002 -g 5001 -d /var/spool/maildirs/home -s /bin/false user1

    useradd -u 5003 -g 5001 -d /var/spool/maildirs/home -s /bin/false user2


    copyright by Rolf Hambach
    Geändert von crazyrolf (30.09.08 um 13:03 Uhr)

  5. #5
    Mr.Postfix Avatar von crazyrolf
    Registriert seit
    Jun 2006
    Ort
    nähe Köln
    Beiträge
    11

    Dyn DNS - Mails empfangen

    ACHTUNG nur für Postfix Profis, und die, die zu 100% wissen was sie tun!!

    Vorwort:
    Ich gehe davon aus, dass ihr schon einen Mailserver mit Postfix am laufen habt und jetzt zusätzlich Mails über DYNdns auf diesen Server schicken bzw. empfangen wollt.
    Zuvor sei gesagt, dass dies keine leichte Aufgabe ist!
    Sollte euer Server nicht ständig online sein, solltet ihr dies nicht machen.
    Gründe:
    Mails die nicht zugestellt werden können, weil der Server offline ist, werden dann vom absendenden Server immer wieder versucht zuzustellen. Wenn euer Server dann wieder online ist, hat er unter Umständen eine neue IP bekommen. Die Mails die jetzt noch versucht werden zu euerem Server zugestellt zu werden, werden aber noch an die alte IP gesendet. Dies geht logischerweise nicht. Dies hat nun zur Folge, dass die Mail nicht mehr zugestellt werden kann. Aus diesem Grund landet man auf der sogenannten Blacklist! Einmal dort angelangt, werden viele Mailserver Mails die von euerem Server gesannt werden ablehnen oder in den SPAM-Ordner legen. Nicht so gut!
    Auch solltet ihr sicher im einrichten von Mailservern sein, damit euer Server nicht von Spammern genutzt werden kann, die dann Mails über ihn versenden.

    Anleitung
    Änderung in deinem Router:
    Port 25 öffnen und auf deinen Server weiterleiten.
    PORT 25 < (Mailserver 192.168..???.???)

    Änderungen in der main.cf von Postfix:

    relay_domains = $mydestination / fals nicht schon drin.

    $mydestination = hier muss zusätzlich die DNY ADDI eingetragen werden, damit der Server die Mails von dieser Domain annimmt, du kannst auch gleich deinen ganzen Rechner so nennen wie die DYN-ADDI das geht auch.

    Weiterhin muss der Parameter
    proxy_interfaces = IP vom Router
    gesetzt werden, erstens damit der Server die Mails annimmt, weil sie ja nicht vom internen Netzwerk kommen, also eine IP haben, die nicht unter mynetworks steht, und zweitens damit du kein open Relay bist und jetzt alle von außen über deinen Mailserver Mails versenden können. Den Parameter gibt es seit Oktober 2002, also sehen das du einen neuen Postfix hast (1.5).
    Wenn du dann das erste mal versuchst eine Mail zu empfangen solltest du auch nur eine senden, damit es nicht zu den oben genannten Problemen kommt (Blacklist).

    Bei DYNdns:
    Wildcard: anklicken

    jetzt sollte es gehen, dass du Mails empfangen kannst.
    Wenn du auch die Firewall auf deinem Server eingeschaltet hast, muss auch hier der Port 25 geöffnet werden.

    Gruß Crazy

  6. #6
    Mr.Postfix Avatar von crazyrolf
    Registriert seit
    Jun 2006
    Ort
    nähe Köln
    Beiträge
    11

    Postfix mit mysql Compilieren

    Vorher mysql devil usw. installieren auch sasl2 Cyrus wenn nicht schon drauf und diverse db Pakete.
    Postfix sorce runterladen, auspacken und dann im ausgepackten Verzeichniss diesen Befehl als root eingeben. (SuSE 9.3) Ansonsten Verzeichnisse überprüfen!

    http://postfix.linux-mirror.org/down...x-2.2.5.tar.gz

    Befehl:
    Code:
    make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -I/usr/include/sasl -I/usr/include' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2 -L/usr/lib'
    Jetzt ein :
    Code:
    make
    Postfix mit
    Code:
    rcpostfix stop
    anhalten.

    Danach ein

    Code:
    make upgrade
    Postfix mit
    Code:
    rcpostfix start
    wieder starten.

    Mit der eingabe:
    Code:
    postconf -m
    lässt sich überprüfen ob es geklappt hat.
    Die Ausgabe sollte so aussehen:
    Code:
    #postconf -m
    static
    cidr
    pcre
    nis
    regexp
    environ
    mysql
    proxy
    btree
    unix
    hash
    Upgrade OK?
    Eingabe:
    Code:
    postconf mail_version
    Ausgabe:
    Code:
    mail_version = 2.2.5
    Sasl_auth OK?
    Code:
    postconf smtpd_sasl_auth_enable
    Ausgabe:
    Code:
    smtpd_sasl_auth_enable = no
    Jetzt noch in der main.cf ändern.

    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options =
    smtpd_tls_auth_only = no
    smtpd_sasl_local_domain =
    broken_sasl_auth_clients = yes /für Outlook

    fertig.

  7. #7
    Mr.Postfix Avatar von crazyrolf
    Registriert seit
    Jun 2006
    Ort
    nähe Köln
    Beiträge
    11

    Postfix und POP Server einrichten

    Postfix und POP Server einrichten.

    -----------------------------------------------------------------
    Das hier ist die einfache Variante, für Könner nehmen wir courier-imap.
    Die Einstellungen für smtp sind aber die Gleichen.
    Anleitung auch hier im Forum.
    -----------------------------------------------------------------

    Ziel: Du möchtest deine Mails über einen zentralen Rechner versenden und auch mit Clients dort abholen.

    Benötigte Programme:

    Postfix (smtp-Server)
    qpopper (POP-Server)
    fetchmail (um Mails aus dem Internet von verschiedenen POP-Servern abzurufen)


    1. Installation:


    Postfix ist als Standard schon auf deinem Rechner drauf, und muss somit nicht installiert werden.

    Qpopper muss über das Yast – Software installiert werden. Hier einfach nach qpopper suchen und installieren.

    Ebenso fetchmail mit Yast - Software installieren.

    Unser Rechner sollte eine feste IP und einen eindeutigen Namen haben, z.B. benutzer.linux.de!

    Für jeden Benutzer (Client) muss ein User angelegt werden.

    2. Einrichten von Postfix.

    Wir starten den Konqueror im Systemverwaltungsmodus, hierdurch erhalten wir root-Rechte.

    Wo ist der?
    K-Menü – System – Dateiverwaltung – Konqueroro (Systemverwaltungs-Modus)

    Alle nachfolgenden Dateien werden auf diese Weise von uns bearbeitet!

    Überwiegend wird Postfix über die Datei main.cf gesteuert, hier werden rund 90% der Konfiguration von Postfix festgelegt.

    Die Datei finden wir unter /etc/postfix/main.cf

    Haben wir die main.cf jetzt mit Hilfe unseres Konqueror gefunden, öffnen wir die Datei, in dem wir mit der rechten Maustaste auf sie drücken und sagen, öffnen mit kwrite.

    Die Datei ist mit den vielen Kommentaren sehr unübersichtlich, also gut aufpassen das keine Einträge doppelt drin stehen. Sollte einer doppelt sein, der letzte Eintrag gewinnt!
    Einträge die wir nicht finden, fügen wir einfach ein.

    Wir suchen als erstes die Einträge:

    myhostname =
    mydomain =

    Sollte hier eine # davor stehen, löschen wir diese weg, da die Einträge sonst ohne Bedeutung sind, wie bei den folgenden Einträgen auch!
    Bei der Konfiguration der Netzwerkkarte haben wir unserem Rechner ja einen schönen Namen gegeben, wenn nicht, holen wir dies jetzt erst mal nach und konfigurieren im Yast die Netzwerkkarte.
    Diesen Namen tragen wir jetzt hier ein, in unserem Beispiel haben wir den Namen benutzer.linux.de vergeben.

    myhostname = benutzer.linux.de
    mydomain = linux.de

    Als nächstes kommt unser Netzwerk. In unserem Beispiel hat der Rechner die IP 192.168.0.15

    Damit wir nun Mais aus unserem Netzwerk empfangen können müssen wir auch das ganze Netzwerk hier freigeben, also machen wir folgenden Eintrag:

    mynetworks = 192.168.0.0/24, 127.0.0.0/8


    smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destinati on

    Als nächstes wollen wir verhindern, dass man unseren Mailserver als offenes Relay verwendet. Also das jemand eine Mail vom Internet aus sendet und unser Mailserver diese wieder in das Internet zurück sendet.
    Dazu setzen wir den Parameter:

    proxy_interfaces = 192.168.0.1


    Die 192.168.0.1 ist hierbei die IP von unserem Router!

    Damit unsere Mailserver jetzt Mails von den Anderen Rechnern im LAN annimmt, setzen wir diesen Parameter:

    inet_interfaces = all


    Für die Mails, die nicht für den internen Verkehr bestimmt sind, benötigen wir einen Ausgang. Dies ist der smtp-Server von unserem Internetdienstanbieter. In unserem Beispiel Netcologne. Die eckigen Klammern um den Eintrag bewirken, dass die Mail sofort an den Server gesendet werden, ohne das zuvor eine DNS-Abfrage gemacht wird.

    relayhost = [smtp.netcologne.de]


    -------------------------------------------------------------------
    Benutzen wir einen anderen smtp-Server, müssen wir uns zum Versand gegebenenfalls am Server anmelden.

    Hierzu müssen wir die Datei im Verzeichniss /etc/postfix/sasl_passwd bearbeiten.

    Beispieleintrag:

    smtp.netcologne.de benutzernameasswort

    Damit Postfix diese lesen kann, müssen wir sie noch in eine db umwandeln.

    Konsole als root öffnen.

    Also:
    su
    passwort
    postmap /etc/postfix/sasl_passwd

    fertig.

    Jetzt noch diese Einträge in die main.cf

    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

    --------------------------------------------------------------------

    Sollte noch ein Client dabei sein, der ein älteres Outlook benutzt, muss dieser Eintrag auch noch rein.

    broken_sasl_auth_clients = yes


    Damit unsere Änderungen auch Wirkung zeigen, muss Postfix neu gestartet werden.

    Konsole als root:
    su
    passwort
    rcpostfix restart

    Geschafft, unser Postfix ist konfiguriert.

    Jetzt kommt fetchmail an die Reihe:

    Siehe:

    http://www.linux-club.de/viewtopic.php?t=33954

    Als letztes muss unsere POP-Server gestartet werden, damit die Clients Ihre Mails abrufen können.

    Dazu öffnen wir Yast – Netzwerkdienste – Netzwerkdienste (xinitd)

    Oben erst mal ein Häkchen bei Aktivieren.

    Jetzt suchen wir den Eintrag pop3 mit am Ende dem Servereintrag /usr/sbin/popper und schalten diesen AN.

    Jetzt noch unter Yast – System – Runlevel-Editor den Dienst xinitd starten.

    Geschafft!

    Bei den Clients bitte immer die IP vom Server für POP und SMTP angeben, nicht den Namen!

    Local auf dem Server ist in KMail als Versand sendmail und als Empfang locales Postfach zu verwenden.

    Viel Spaß
    Rolf Hambach
    (crazyrolf)
    Sollte sich ein Fehler eingeschlichen haben, bitte melden.

Ähnliche Themen

  1. Postfix 2.1.5-0 SASL AUTH Problem + kleine Frage
    Von higidi im Forum Linux als Server
    Antworten: 2
    Letzter Beitrag: 17.03.05, 16:37
  2. Postfix Netzwerkstruktur Fragen
    Von mullfreak im Forum Linux als Server
    Antworten: 24
    Letzter Beitrag: 13.03.05, 16:46
  3. Cyrus Imap Server Problem
    Von eurofreddy im Forum Anwendungen Allgemein, Software
    Antworten: 0
    Letzter Beitrag: 17.08.04, 07:30
  4. Problme mit Fetchmail (Cyrus, Postfix)
    Von hansschleidt im Forum Linux als Server
    Antworten: 8
    Letzter Beitrag: 19.05.04, 14:08
  5. Antworten: 17
    Letzter Beitrag: 18.07.03, 13:27

Lesezeichen

Berechtigungen

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