Quantcast
Channel: Multimediaforum
Viewing all articles
Browse latest Browse all 4603

Meine Postfix Konfig fehlerhaft

$
0
0
Hi an alle,

ich habe mir auf einem kleinen Rootserver einen Mailserver mit Postfix und Dovecot aufgesetzt.

Allerdings funktioniert mein Mailserver nicht so wirklich.

Kann mir einer sagen wo mein Fehler liegt?

Hinweis:

Debian 6 Root Server
MX Record: server1.meinedomain.de

Wenn noch was benötigt wird schreibt es, danke für jede Hilfe.

Code:

MySQL Konfiguration für virtuelle Domains und Benutzer

Öffnen der Datenbank:
mysql -u root –p
Passwort:
**********
Nachdem der Zugriff hergestellt wurde musste zuerst eine Datenbank erstellt werden in der wir, nach Erstellung gleich weiter arbeiteten.
CREATE DATABASE mail;
USE mail;

Jetzt musste ein Mail-Administrator mit den nötigen Berechtigungen angelegt werden.
GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost' IDENTIFIED BY '************';

GRANT SELECT, INSERT, UPDATE, DELETE ON mail.* TO 'mail_admin'@'localhost.localdomain' IDENTIFIED BY '***********';

FLUSH PRIVILEGES;

Erstellung einer Tabelle für die Mailweiterleitung
CREATE TABLE domains (domain varchar(50) NOT NULL, PRIMARY KEY (domain) );

Erstellung einer Benutzer Tabelle:
CREATE TABLE users (email varchar(80) NOT NULL, password varchar(20) NOT NULL, PRIMARY KEY (email) );

Erstellung einer Tabelle für die Verteilung:
CREATE TABLE transport ( domain varchar(128) NOT NULL default '', transport varchar(128) NOT NULL default '', UNIQUE KEY domain (domain) );

Zum verlassen:
quit


Konfiguration der Zusammenarbeit zwischen Postfix und MySQL

Erstellung folgender Dateien mit Inhalt:

Datei:/etc/postfix/mysql-virtual_domains.cf
user = mail_admin
password = ************
dbname = mail
query = SELECT domain AS virtual FROM domains WHERE domain='%s'
hosts = 127.0.0.1


Datei:/etc/postfix/mysql-virtual_forwardings.cf
user = mail_admin
password = **************
dbname = mail
query = SELECT destination FROM forwardings WHERE source='%s'
hosts = 127.0.0.1

Datei:/etc/postfix/mysql-virtual_mailboxes.cf
user = mail_admin
password = *****************
dbname = mail
query = SELECT CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/') FROM users WHERE email='%s'
hosts = 127.0.0.1


Datei:/etc/postfix/mysql-virtual_email2email.cf
user = mail_admin
password = ****************
dbname = mail
query = SELECT email FROM users WHERE email='%s'
hosts = 127.0.0.1

Setzen der Berechtigungen für die Dateien

chmod o= /etc/postfix/mysql-virtual_*.cf
chgrp postfix /etc/postfix/mysql-virtual_*.cf       



Erstellung der virtuellen Mailboxen und Gruppe für die Verwaltung der E-Mails.

groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /home/vmail –m


Konfiguration der Postfix Datei main.cf

postconf -e 'myhostname = server1.meinedomain.de'
postconf -e 'mydestination = server1.meinedomain.de, localhost, localhost.localdomain'
postconf -e 'mynetworks = 127.0.0.0/8'
postconf -e 'message_size_limit = 30720000'
postconf -e 'virtual_alias_domains ='
postconf -e 'virtual_alias_maps = proxy:mysql:/etc/postfix/mysql-virtual_forwardings.cf, mysql:/etc/postfix/mysql-virtual_email2email.cf'
postconf -e 'virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql-virtual_domains.cf'
postconf -e 'virtual_mailbox_maps = proxy:mysql:/etc/postfix/mysql-virtual_mailboxes.cf'
postconf -e 'virtual_mailbox_base = /home/vmail'
postconf -e 'virtual_uid_maps = static:5000'
postconf -e 'virtual_gid_maps = static:5000'
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_sasl_authenticated_header = yes'
postconf -e 'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/smtpd.cert'
postconf -e 'smtpd_tls_key_file = /etc/postfix/smtpd.key'
postconf -e 'virtual_create_maildirsize = yes'
postconf -e 'virtual_maildir_extended = yes'
postconf -e 'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps'
postconf -e virtual_transport=dovecot
postconf -e dovecot_destination_recipient_limit=1


Erstellung des SSL Zertifikat für Postfix


cd /etc/postfix
openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509


Konfiguration des Zertifikates

Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Bundesland
Locality Name (eg, city) []:Stadt
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Name der Firma
Organizational Unit Name (eg, section) []:Besitzer
Common Name (eg, YOUR name) []:server1.meinedomain.de
Email Address []:support@meinedomain.de

Setzen der benötigten Berechtigungen

chmod o= /etc/postfix/smtpd.key


Konfiguration der saslauthd Datei für die Verwendung der MySQL Datenbank

mkdir -p /var/spool/postfix/var/run/saslauthd

cp -a /etc/default/saslauthd /etc/default/saslauthd.bak

Editieren der Datei /etc/default/saslauthd

START=yes
DESC="SASL Authentication Daemon"
NAME="saslauthd"
MECHANISMS="pam"       
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

Konfiguration der Datei /etc/pam.d/smtp und um folgende Zeilen erweitern

auth    required  pam_mysql.so user=mail_admin passwd=******************** host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1

account sufficient pam_mysql.so user=mail_admin passwd=********** host=127.0.0.1 db=mail table=users usercolumn=email passwdcolumn=password crypt=1


Erstellung der Datei /etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd
mech_list: plain login
allow_plaintext: true
auxprop_plugin: mysql
sql_hostnames: 127.0.0.1
sql_user: mail_admin
sql_passwd: ******************
sql_database: mail
sql_select: select password from users where email = '%u'


Setzen der Berechtigungen für die Datei smtpd.conf

chmod o= /etc/pam.d/smtp
chmod o= /etc/postfix/sasl/smtpd.conf

Erstellung eines Postfix-Benutzers in der sasl Gruppe und Neustart der beiden Dienste

adduser postfix sasl
service postfix restart
service saslauthd restart


Editierung der /etc/postfix/master.cf damit Postfix mit Dovecot zusammenarbeiten kann.
Am Ende der Datei einfügen (wichtig sind die gesetzten Leerzeichen)


dovecot  unix  -      n      n      -      -      pipe
    flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

Erstellen einer Backup-Datei

cp -a /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bak



Konfiguration der Dovecot-Datei: /etc/dovecot/dovecot.conf


protocols = imap imaps pop3 pop3s
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/vmail/%d/%n/Maildir

ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem

namespace private {
    separator = .
    prefix = INBOX.
    inbox = yes
}
protocol lda {
    log_path = /home/vmail/dovecot-deliver.log
    auth_socket_path = /var/run/dovecot/auth-master
    postmaster_address = postmaster@schmitz-v.de
    mail_plugins = sieve
    global_script_path = /home/vmail/globalsieverc
}
protocol pop3 {
    pop3_uidl_format = %08Xu%08Xv
}
auth default {
    user = root
    passdb sql {
        args = /etc/dovecot/dovecot-sql.conf
    }
    userdb static {
        args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
    }
    socket listen {
        master {
            path = /var/run/dovecot/auth-master
            mode = 0600
            user = vmail
        }

        client {
            path = /var/spool/postfix/private/auth
            mode = 0660
            user = postfix
            group = postfix
        }
    }
}

Erstellung einer Backup-Datei

cp -a /etc/dovecot/dovecot-sql.conf /etc/dovecot/dovecot-sql.conf.bak


Änderung der Datei /etc/dovecot/dovecot-sql.conf

driver = mysql
connect = host=127.0.0.1 dbname=mail user=mail_admin password=****************
default_pass_scheme = CRYPT
password_query = SELECT email as user, password FROM users WHERE email='%u';


Neustart des Dienstes Dovecot

service dovecot restart

Konfigurieren der Mail Aliases

postmaster: root
root: postmaster@meinedomain.de

Erstellung der Domain und der Benutzer

mysql -u root -p

USE mail;
INSERT INTO domains (domain) VALUES ('meinedomain');

INSERT INTO users (email, password) VALUES ('benutzer1@meinedomain.de', ENCRYPT('********'));

INSERT INTO users (email, password) VALUES ('benutzer2@meinedomain.de', ENCRYPT('**********'));

INSERT INTO users (email, password) VALUES ('benutzer3@meinedomain.de', ENCRYPT('***********'));

INSERT INTO users (email, password) VALUES ('benutzer4@meinedomain.de', ENCRYPT('***********'));

INSERT INTO users (email, password) VALUES ('benutzer5@meinedomain.de', ENCRYPT('***********'));

quit


Viewing all articles
Browse latest Browse all 4603