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.
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
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;
}
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
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
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
Bitte geben Sie einen Suchbegriff ein, um die Suche zu starten.