Postfix, Dovecot, Kasperky Antivirus für Linux Mailserver, Active Directory

Autor: Andreas Schulz

Im Folgenden wird die Installation eines Mailservers unter Debian Etch beschrieben, der auf den OpenSource Komponenten postfix, dovecot, procmail, samba und winbind basiert. Der Debian Server läuft in der Form in einer produktiven Firmenumgebung, deshalb wurde eine kommerzielle Antiviren Lösung von Kasperksy Labs eingesetzt. Die Anbindung an das Active Directory wird über samba und winbind realisiert.

Postfix

Zunächst wird der standardmäßig unter Debian installierte SMTP-Server exim4 deinstalliert.

 apt-get remove exim4 exim4-base exim4-config exim4-daemon-light

Bei der Realisierung dieses Mail-Servers wird postfix aus den Quellen erzeugt, es ist natürlich auch möglich das vorgefertigte Debian Packet postfix zu nutzen.

Postfix benötigt die Berkley Database, die aus den Debian Repositories installiert werden.

apt-get install libdb4.4-dev

Anschließend wird postfix von der Webseite www.postfix.org in das Verzeichnis /usr/src heruntergeladen.

wget http://www.mirrorspace.org/postfix/official/postfix-2.4.6.tar.gz

Das Erstellen aus den Quellen wird wie folgt durchgeführt:

make makefiles
make

Postfix benötigt einen dedizierten Benutzer und Gruppe, die unter Debian wie folgt angelegt werden:

useradd postfix
groupadd postdrop

Folgender Befehl leitet die Installation ein:

make install 

Anschließend werden einige Fragen gestellt, die mit den Default Einstellungen übernommen werden können.

Die Konfigurationsdatei /etc/postfix/main.cf muss anschließend angepasst werden. In der folgenden Beispielkonfiguration wird davon ausgegangen das es ein SMTP-Gateway

in der DMZ mit der IP-Adresse 192.168.69.25 gibt.

# /etc/postfix/main.cf
unknown_local_recipient_reject_code = 450
biff=no
notify_classes = bounce, delay, policy, protocol, resource, software
myhostname = vm-mail.example.local
mydomain = example.local
myorigin = example.de
mydestination = $myhostname, localhost.$mydomain, $mydomain, localhost.example.de, example.de
mynetworks = 172.27.242.0/24, 127.0.0.0/8, 192.168.100.0/24, 192.168.69.0/24
inet_interfaces = 172.27.242.55
relayhost=[192.168.69.25]
disable_dns_lookups = yes
local_transport = local
local_destination_concurrency_limit = 0
local_recipient_maps = $virtual_mailbox_maps
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
#recipient_canonical_maps = hash:/etc/postfix/recipient_canonical
masquerade_exceptions = root
masquerade_classes = envelope_sender, header_sender, header_recipient
masquerade_domains =
defer_transports =
content_filter =
mailbox_command =
mailbox_transport =
smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_client_restrictions =
smtpd_helo_required = no
smtpd_helo_restrictions =
strict_rfc821_envelopes = no
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination
smtp_sasl_auth_enable = no
smtpd_sasl_auth_enable = no
smtpd_use_tls = no
alias_maps = hash:/etc/aliases
mailbox_size_limit = 51200000
message_size_limit = 10240000
home_mailbox = Maildir/
mailbox_command = /usr/local/libexec/dovecot/deliver

Dovecot

Dovcot wird später mit PAM Authentifizierung übersetzt, aus diesem Grund werden die Debian PAM Development Libraries benötigt.

apt-get install libpam0g-dev

cd /usr/src
wget http://www.dovecot.org/releases/1.0/dovecot-1.0.10.tar.gz
tar xvzf dovecot-1.0.10.tar.gz
cd /usr/src/dovecot-1.0.10

Anschließend wird dovecot kompiliert und unter Debian installiert:

./configure --with-pam --sysconfdir=/etc/dovecot --localstatedir=/var --enable-header-install
make
make install

Der Parameter --enable-header-install wird für eine spätere dovecot-sieve Installation benötigt.

# /etc/dovecot/dovecot.conf
mail_location = maildir:/home/vmail/%u/Maildir
ssl_cert_file = /etc/ssl/certs/vm-mail.pem
ssl_key_file = /etc/ssl/private/vm-mail.pem
auth default {
        userdb passwd {
        }
        passdb pam {
                args = session=yes *
        }
}
protocol imap {
        imap_client_workarounds = delay-newmail outlook-idle netscape-eoh
        }

dovecot-sieve plugin installieren, so dass später EMails automatisch gefiltert werden können.

cd /usr/src
wget http://www.dovecot.org/releases/sieve/dovecot-sieve-1.0.2.tar.gz
tar xvzf dovecot-sieve-1.0.2.tar.gz
cd dovecot-sieve-1.0.2
./configure --sysconfdir=/etc/dovecot --localstatedir=/var --with-dovecot=/usr/local/lib/dovecot
make
make install

Eine Beispiel-Filterdatei:

#/home/vmail/.dovecot.sieve
require "fileinto";
if exists "X-Spam-Flag" {
fileinto "spam";
}
if header :contains "subject" ["test"] {
fileinto "test";
} else {
# The rest goes into INBOX
# default is "implicit keep", we do it explicitly here
keep;
}

SSL

Die IMAP Kommunikation wird über SSL verschlüsselt.

apt-get install openssl

openssl req -new -x509 -nodes -sha1 -days 365 -key /etc/ssl/private/mail-key.pem > /etc/ssl/certs/mail-cert.pem

Active Directory 

Der Debian Server wird über Samba in das Active Directory eingebunden. Die Windows Benutzer werden durch winbind unter Unix zur Verfügung gestellt. crontab gesteuert wird die Active Directory abgefragt und über Perl-Skripts werden die canonical und virtual Datenbanken erzeugt. Die Perl-Skripts wurden ursprünglich von Paul Matthews [paul.matthews at cathedral.qld.edu.au] erstellt und auf unsere Bedürfnisse angepasst.

apt-get install winbind samba samba-common

# /etc/samba/smb.conf
[global]
workgroup = EXAMPLE
security = ads
realm = SMF.LOCAL
encrypt passwords = yes
username map = /etc/samba/smbusers
winbind uid = 2000-3000
winbind gid = 2000-3000
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/vmail/%U
template shell = /bin/bash

 

# /etc/krb5.conf
[libdefaults]
        default_realm = EXAMPLE.LOCAL
# The following krb5.conf variables are only for MIT Kerberos.
        krb4_config = /etc/krb.conf
        krb4_realms = /etc/krb.realms
        kdc_timesync = 1
        ccache_type = 4
        forwardable = true
        proxiable = true
  # The following libdefaults parameters are only for Heimdal Kerberos.
        v4_instance_resolve = false
        v4_name_convert = {
                host = {
                        rcmd = host
                        ftp = ftp
                }
                plain = {
                        something = something-else
                }
        }
        fcc-mit-ticketflags = true

[realms]
        EXAMPLE.LOCAL = {
                kdc = dc1.example.local
                kdc = dc2.example.smf.local
                admin_server = dc1.example.local
        }

[domain_realm]
        .example.local = EXAMPLE.LOCAL
        example.local = EXAMPLE.LOCAL
[login]
        krb4_convert = true
        krb4_get_tickets = false

Kaspersky

Kasperky Antivirus ist eine kommerzielle Antiviren-Lösung. An dieser Stelle ist natürlich auch clamav, etc. möglich.

wget http://dnl-pr1.kaspersky-labs.com/products/english/email_gateways/kavlinuxfreebsdmailserver/kavlinux \
/kav4mailservers-linux-5.5.33.deb

dpkg -i kav4mailservers-linux-5.5.33.deb

apt-get install unzip
apt-get install unrar-free
apt-get install bzip2 




assets/snippets/jot/templates/chunk.form.de.inc.html

Valid XHTML 1.0 Transitional   Valid CSS!

Interessante Seiten - Sitemap - Datenschutz - Impressum

Seite erzeugt in 0.1047 s. Zuletzt geändert am 2009-08-23