Postfix und Cyrus Imapd: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: == Mailserver == Für den Mailserver kommt die gängige Kombination Postfix + Cyrus Imapd zum Einsatz. Postfix ist der sog. MTA (Mail Transport Agent), der sich um die...)
 
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
Für den Mailserver kommt die gängige Kombination Postfix + Cyrus Imapd zum Einsatz. Postfix ist der sog. MTA (Mail Transport Agent), der sich um die Annahme und den Versand von Mails kümmert. Cyrus Imapd ist, wie der Name schon sagt, ein IAMP Server. Er beherrscht aber auch das weit verbreitete PO3 - Protokoll.
Für den Mailserver kommt die gängige Kombination Postfix + Cyrus Imapd zum Einsatz. Postfix ist der sog. MTA (Mail Transport Agent), der sich um die Annahme und den Versand von Mails kümmert. Cyrus Imapd ist, wie der Name schon sagt, ein IAMP Server. Er beherrscht aber auch das weit verbreitete PO3 - Protokoll.


Postfix reicht die erhaltenen Mails an Cyrus weiter, der sie schließlich an die MUA's(Mail User Agents wie Outlook, Thunderbird, Kmail, ...) ausliefert.
P


Postfix kann mails direkt aus dem Internet annehmen, wenn eine Dynamic DNS-Adresse zur verfügung steht, und der Port 25 im Router an die NSLU weitergeleitet wird.  
tfix reicht die erhaltenen Mails an Cyrus weiter, der sie schließlich an die MUA's(Mail User Agents wie Outlook, Thunderbird, Kmail, ...) ausliefert.


Alternativ können mails mittels Fetchmail von einem Provider wie z.B. GMX abgerufen werden. Tetchmail übergibt die Mails an Postfix zur weiteren Verarbeitung.
Po


Zur Spamabwehr kann Spamassassin zwischen die Kette Postfix und Cyrus eingeschleust werden. Dieser kann die evtl. Spammails als solche kennzeichnen, die schließlich ein Mailfilter wie Sieve (Teil von Cyrus) in spezielle Unterverzeichnisse einordnen kann.
fix kann mails direkt aus dem Internet annehmen, wenn eine Dynamic DNS-Adresse zur verfügung steht, und der Port 25 im Router an die NSLU weitergeleitet wird.  


== Vorbereitungen ==
Alt
Im ersten Schritt werden einige nötige Pakete installiert, die für die folgende Mailserver installation nötig sind.


  ipkg update
nativ können mails mittels Fetchmail von einem Provider wie z.B. GMX abgerufen werden. Tetchmail übergibt die Mails an Postfix zur weiteren Verarbeitung.
  ipkg install perl libdb coreutils cyrus-sasl readline
 
Zur S
 
mabwehr kann Spamassassin zwischen die Kette Postfix und Cyrus eingeschleust werden. Dieser kann die evtl. Spammails als solche kennzeichnen, die schließlich ein Mailfilter wie Sieve (Teil von Cyrus) in spezielle Unterverzeichnisse einordnen kann.
 
== Vor
 
==itungen ==
Im erst
n Schritt werden einige nötige Pakete installiert, die für die folgende Mailserver installation nötig sind.
 
  ipkg upd
 
e
  ipkg inst
ll perl libdb coreutils cyrus-sasl readline
   
   


SASL-konformes Passwort für den bereits beim Unsling-Vorgang angelegten User mail:
SASL-ko
  /opt/sbin/saslpasswd2 mail
f
 
mes Passwort für den bereits beim Unsling-Vorgang angelegten User mail:
  /opt/sbin/
aslpasswd2 mail
 
Dem Linux-
 
er "mail" das selbe Passwort vergeben, damit bei laufendem Imap-Server der Zugriff auf die Cyrus-Admin-Konsole klappt:
passwd mai
 
Bei der Abf
age nach dem Passwort das selbe Passwort (2x) eingeben wie beim Befehl saslpasswd2
 
 
Anpassen
 
 
Zugriffsrechte für die Datei SASL2
chmod 644 /
pt/etc/sasl2
 
Gruppe mail
 
op anlegen:
vi /etc/gro
p
Folgenden Ei
trag ergänzen:
maildrop:x:6
:maildrop
 
 
Mailuser (m
 
 
estens einen, z.B. Tux) in der Weboberfläche anlegen.
 
 
== Installat


Dem Linux-User "mail" das selbe Passwort vergeben, damit bei laufendem Imap-Server der Zugriff auf die Cyrus-Admin-Konsole klappt:
passwd mail
Bei der Abfrage nach dem Passwort das selbe Passwort (2x) eingeben wie beim Befehl saslpasswd2


==on Postfix und Imapd ==


Anpassen der Zugriffsrechte für die Datei SASL2
Zum Installie
chmod 644 /opt/etc/sasl2


Gruppe maildrop anlegen:
n der nötigen Pakete folgenden Befehl eingeben:
  vi /etc/group
  ipkg install c
Folgenden Eintrag ergänzen:
rus-imapd postfix
maildrop:x:69:maildrop


Hinweis: Der D


Mailuser (mindestens einen, z.B. Tux) in der Weboberfläche anlegen.
nload und die Installation der Pakete nimmt einige Zeit in Anspruch.




== Installation von Postfix und Imapd ==
== Konfigurat


Zum Installieren der nötigen Pakete folgenden Befehl eingeben:
ipkg install cyrus-imapd postfix


Hinweis: Der Download und die Installation der Pakete nimmt einige Zeit in Anspruch.
==ostfix ==
Zunächst wird P
stfix eingerichtet. Die komplette Konfiguration von Postfix erfolgt mittels main.cf und master.cf, die im Order /opt/etc/postfix abgelegt sind.


=== Generelle E


== Konfiguration Postfix ==
===llungen ===
Zunächst wird Postfix eingerichtet. Die komplette Konfiguration von Postfix erfolgt mittels main.cf und master.cf, die im Order /opt/etc/postfix abgelegt sind.
vi /opt/etc/pos
fix/main.cf


=== Generelle Einstellungen ===
'''Folgende Ein
vi /opt/etc/postfix/main.cf


'''Folgende Einstellungen vornehmen:'''
ellungen vornehmen:'''


'''Hinweise:'''
'''Hinweise:'''
* Zum Teil müssen die Einträge auskommentiert werden (Entfernen des # - Zeichens).
* Die verwendete '''Domain''' ist: schiele.homelinux.org
* der '''Hostname''' der NSLU ist nslu
* mynetworks_style = subnet: Freigabe eines kompletten IP-Subnetzes
* '''mynetworks''': die ersten 3 Stellen der IP-Adresse der NSLU verwenden. Die Letzte Stelle auf 0 setzten und um /24 ergänzen. Diese Angabe entspricht einem kompletten Subnet. Falls die IP-Adresse der NSLU 192.168.1.77 => '''mynetworks = 192.168.1.0/24'''. D.h. alle PC's im Bereich 192.168.1.1 bis 192.168.1.255 haben Zugriff auf die NSLU.


  myhostname = nslu.schiele.homelinux.org
Zum Teil müsse
  mydomain = schiele.homelinux.org
die Einträge auskommentiert werden (Entfernen des # - Zeichens).
  myorigin = $mydomain
* Die verwendete '
  inet_interfaces = all
'Domain''' ist: schiele.homelinux.org
  mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
* der '''Hostname'
  mynetworks_style = subnet
' der NSLU ist nslu
  mynetworks = 192.168.1.0/24
* mynetworks_style
= subnet: Freigabe eines kompletten IP-Subnetzes
* '''mynetworks'''
die ersten 3 Stellen der IP-Adresse der NSLU verwenden. Die Letzte Stelle auf 0 setzten und um /24 ergänzen. Diese Angabe entspricht einem kompletten Subnet. Falls die IP-Adresse der NSLU 192.168.1.77 => '''mynetworks = 192.168.1.0/24'''. D.h. alle PC's im Bereich 192.168.1.1 bis 192.168.1.255 haben Zugriff auf die NSLU.
 
  myhostname = nslu
 
chiele.homelinux.org
  mydomain = schiele
homelinux.org
  myorigin = $mydoma
n
  inet_interfaces =  
ll
  mydestination = $m
hostname, localhost.$mydomain, localhost, $mydomain
  mynetworks_style =
subnet
  mynetworks = 192.1
8.1.0/24


'''Generierung eines Alias-Files:'''
'''Generierung ein


Aliase sind Namen bzw. Mailadressen, unter denen ein bekannter eingerichteter User ebenfalls erreichbar ist. D.H. Mails ein die Alias-Adresse landen im Posteingang des Nutzers, auf den der Alias verweist.
Alias-Files:'''
So ist es z.B. empfehlenswert für den User root einen Alias auf einen normalen Benutzer anzulegen.
 
Aliase sind Namen  
 
w. Mailadressen, unter denen ein bekannter eingerichteter User ebenfalls erreichbar ist. D.H. Mails ein die Alias-Adresse landen im Posteingang des Nutzers, auf den der Alias verweist.
So ist es z.B. empf
hlenswert für den User root einen Alias auf einen normalen Benutzer anzulegen.
 
vi /opt/etc/aliase


vi /opt/etc/aliases


Aufbau des Files:
Aufbau des Files:
Aliasname:tatsächlicher Nutzer
A
 
asname:tatsächlic
er Nutzer
  #root: you
  #root: you
  root: tux
  root: tu


Aliasname root und Nutzer Tux evtl anpassen. Es können beliebig viele Aliase eingetragen werden.
Aliasnam
root und N


Nachdem das File geändert wurde '''MUSS''' folgender Befehl ausgeführt werden, um das Alias-File in eine für Postfix kompatible Datenbank zu verwandeln:
zer Tux evtl anpassen. Es können beliebig viele Aliase eingetragen werden.
 
Nachdem das File geän
 
rt wurde '''MUSS''' folgender Befehl ausgeführt werden, um das Alias-File in eine für Postfix kompatible Datenbank zu verwandeln:
  /opt/bin/newaliases
  /opt/bin/newaliases




===Spamabwehr===
==
Viele Spam-Mails können bereits vor der Annahme der Mail durch Postfix aussortiert werden. Spammer verwenden oft Host- und Domainnamen, die nicht einem FQDN (Fully Qualified Domain Name) entsprechen. Postfix kann relativ einfach angewiesen werden, solche mails erst gar nicht anzunehmen. Hier wird nicht beschrieben, wie Spammails aufgrund ihres Inhalts gefiltert werden können. Dies ist Teil der [[Spamassassin|→ Spamassassin-Anleitung]].
Spamabwehr===
Viele  


Mail können mit den Parametern:
 
===ails können b
reits vor der Annahme der Mail durch Postfix aussortiert werden. Spammer verwenden oft Host- und Domainnamen, die nicht einem FQDN (Fully Qualified Domain Name) entsprechen. Postfix kann relativ einfach angewiesen werden, solche mails erst gar nicht anzunehmen. Hier wird nicht beschrieben, wie Spammails aufgrund ihres Inhalts gefiltert werden können. Dies ist Teil der [[Spamassassin|→ Spamas[[ssin-Anleitung]].
 
Mail können mit den Par]]e
 
rn:
#smtpd_client_restrictions
#smtpd_client_restrictions
#smtpd_helo_restrictions
#
#smtpd_sender_restrictions
mtpd_helo_restrictions
#smtpd_recipient_restrictions
#sm
pd_sender_restrictions
#
mtpd_recipient_restriction
 
#smtpd_data_restrictions
#smtpd_data_restrictions
gefiltert werden.
gef
ltert werden.
 
#'''smtpd
client_restrictio


#'''smtpd_client_restrictions'''
'''
#;reject_unknown_client
#;reject_unknown_client
#:Verwirft die Anfrage, wenn der Hostname des SMTP-Clients unbekannt ist (die IP-Adresse oder der Hostname des TCP/IP-Clients).
#:Ve
#;reject_rbl_client domain.tld
wirft die Anfrage, wenn
#:Verwirft die Anfrage, wenn der SMTP-Client einen DNS-Record vom Typ A unter domain.tld hat.  
der Hostname des SMTP-Clients unbekannt ist (die IP-Adresse oder der Hostname des TCP/IP-Clients).
#;reject_rhsbl_client domain.tld
#;reject_rbl_client domain.t
#:Verwirft die Anfrage, wenn der SMTP-Client einen DNS-Record vom Typ A unter domain.tld hat.  
d
#:Verwirft die Anfrage, wenn
der SMTP-Client einen DNS-Record vom Typ A unter domain.tld hat.  
#;reject_rhsbl_client domain
tld
#:Verwirft die Anfrage, wenn
der SMTP-Client einen DNS-Record vom Typ A unter domain.tld hat.  
#;warn_if_reject
#;warn_if_reject
#:Schreibt ein WARN ins Logfile und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.  
#:Schreibt  
#;check_client_access maptype:mapname
in WARN ins Logf
#:Löst die Client-Namen, Client-Adressen und Parent-Domains auf anhand der in maptype:mapname angegebenen Map.
le und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.  
#;check_client_access maptyp
:mapname
#:Löst die Client-Namen, Cli
nt-Adressen und Parent-Domains auf anhand der in maptype:mapname angegebenen Map.
#;permit_mynetworks
#;permit_mynetworks
#:Gewährt Zugriff, wenn der Client in $mynetworks zu finden ist.  
#:Gewährt
Zugriff, wenn der C
ient in $mynetworks zu finden ist.  
#'''smtpd_helo_restrictions'''
#'''smtpd_helo_restrictions'''
#;reject_invalid_hostname
#;reject_invalid_hostname
#:Verwirft den im HELO/EHLO angegebenen Hostnamen, falls dieser eine falsche Syntax hat. Wenn man in einem Netzwerk ist und man will, dass die Maschinen, die auch im Netzwerk sind, Emails über unseren MTA verschicken wollen, dann ist es sinnvoll, diese Beschränkung erst nach permit_mynetworks anzugeben (wie ich schon gesagt habe, die Reihenfolge ist sehr wichtig), sonst wird er vom MTA verworfen oder zurückgewiesen.
#:Ve
wirft den im HELO/EHLO an
egebenen Hostnamen, falls dieser eine falsche Syntax hat. Wenn man in einem Netzwerk ist und man will, dass die Maschinen, die auch im Netzwerk sind, Emails über unseren MTA verschicken wollen, dann ist es sinnvoll, diese Beschränkung erst nach permit_mynetworks anzugeben (wie ich schon gesagt habe, die Reihenfolge ist sehr wichtig), sonst wird er vom MTA verworfen oder zurückgewiesen.
#;reject_unknown_hostname
#;reject_unknown_hostname
#:Verwirft den im HELO/EHLO angegebenen Hostnamen, welcher keinen DNS Rekord vom Typ A oder MX hat. Hier ist es auch sinnvoll permit_mynetworks zuerst anzugeben, wenn man ein Relay-MTA für das innere Netzwerk ist.
#:Verwi
ft den im HELO/EHLO angeg
benen Hostnamen, welcher keinen DNS Rekord vom Typ A oder MX hat. Hier ist es auch sinnvoll permit_mynetworks zuerst anzugeben, wenn man ein Relay-MTA für das innere Netzwerk ist.
#;reject_non_fqdn_hostname
#;reject_non_fqdn_hostname
#:Verwirft den im HELO/EHLO angegebenen Hostnamen, wenn dieser nicht in FQDN-Form ist. Was bedeutet FQDN? Full Qualified Domain Name. Dafür ein Beispiel: www.chains.ch ist ein FQDN.
#:Verwi
ft den im HELO/EHLO angege
enen Hostnamen, wenn dieser nicht in FQDN-Form ist. Was bedeutet FQDN? Full Qualified Domain Name. Dafür ein Beispiel: www.chains.ch ist ein FQDN.
#;warn_if_reject
#;warn_if_reject
#:Schreibt ein WARN ins Logfile und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.
#:Schreibt ein WAR
ins Logfile und
stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.
#;check_helo_access
#;check_helo_access
#:Löst den im HELO/EHLO angegebenen Hostnamen oder die Parent-Domain auf.
#:Löst den im H
LO/EHLO angegebenen
Hostnamen oder die Parent-Domain auf.
#;permit_mynetworks
#;permit_mynetworks
#:Gewährt Zugriff, wenn der Client in der Liste von $mynetworks ist.  
#:Gewährt Zugrif
, wenn der Client i
der Liste von $mynetworks ist.  
#'''smtpd_sender_restrictions'''  
#'''smtpd_sender_restrictions'''  
#;reject_unknown_sender_domain
#;r
#:Verwirft die Sender-Domain, wenn diese keinen DNS-Record vom Typ A oder MX hat.
ject_unknown_sender_domain
#:Verw
rft die Sender-Domain, wenn di
se keinen DNS-Record vom Typ A oder MX hat.
#;reject_non_fqdn_sender
#;reject_non_fqdn_sender
#:Verwirft die Sender-Domain, wenn diese nicht in FQDN-Form ist.
#:Verwirft d
e Sender-Domain, wenn di
se nicht in FQDN-Form ist.
#;reject_rhsbl_sender domain.tld
#;reject_rhsbl_sender domain.tld
#:Verwirft die Anfrage, wenn der Sender einen DNS-Record vom Typ A unter domain.tld hat.
#:Ve
wirft die Anfrage, wenn der Send
r einen DNS-Record vom Typ A unter domain.tld hat.
#;reject_sender_login_mismatch
#;reject_sender_login_mismatch
#:Verwirft, wenn $smtpd_sender_login_maps für eine MAIL FROM- Adresse einen Besitzer spezifiziert, aber der sich nicht mit SASL authentifiziert hat; verwirft, wenn der Sender sich authentifiziert hat, aber die MAIL FROM-Adresse nicht mit dem Sender übereinstimmt.
#:Verw
rft, wenn $smtpd_sender_login_
aps für eine MAIL FROM- Adresse einen Besitzer spezifiziert, aber der sich nicht mit SASL authentifiziert hat; verwirft, wenn der Sender sich authentifiziert hat, aber die MAIL FROM-Adresse nicht mit dem Sender übereinstimmt.
#;warn_if_reject
#;warn_if_reject
#:Schreibt ein WARN ins Logfile und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.
#:Schreibt ein WARN in
Logfile und ste
lt die Nachricht zu, anstatt die Nachricht zu verwerfen.
#;check_sender_access maptype:mapname
#;check_sender_access maptype:mapname
#;Löst die Sender-Adresse, Parent-Domain oder localpart@ auf.
#
Löst die Sender-Adresse, Parent-Domai
oder localpart@ auf.
#;check_sender_mx_access maptype:mapname
#;check_sender_mx_access maptype:mapname
#:Löst den DNS-Record vom Typ MX des Senders auf.
#:Löst den DNS-Record vom Typ MX des Sen
ers auf.
#;permit_mynetworks
#;permit_mynetworks
#:Gewährt Zugriff, wenn der Client in der Liste von $mynetworks ist.  
#:Gewährt Zugriff, we
n der Client in der
Liste von $mynetworks ist.  
#'''smtpd_recipient_restrictions'''
#'''smtpd_recipient_restrictions'''
#;reject_unknown_recipient_domain
#;reje
#:Verwirft die Anfrage, wenn im RCPT TO die Domain des Empfängers keinen DNS-Record vom Typ A oder MX hat.
t_unknown_recipient_domain
#:Verwir
t die Anfrage, wenn im RCPT TO di
Domain des Empfängers keinen DNS-Record vom Typ A oder MX hat.
#;reject_non_fqdn_recipient
#;reject_non_fqdn_recipient
#:Verwirft die Anfrage, wenn im RCPT TO die Domain des Empfängers nicht in FQDN-Form ist.
#:Verwirft die  
nfrage, wenn im RCPT TO die
Domain des Empfängers nicht in FQDN-Form ist.
#;reject_rhsbl_recipient domain.tld
#;reject_rhsbl_recipient domain.tld
#:Verwirft die Anfrage, wenn der Empfänger einen DNS-Record vom Typ A unter domain.tld hat.
#:Verwir
t die Anfrage, wenn der Empfänger e
nen DNS-Record vom Typ A unter domain.tld hat.
#;reject_unauth_pipelining
#;reject_unauth_pipelining
#:Verwirft die Anfrage, wenn man nicht korrekte Pipelines macht.
#:Verwirft die Anf
age, wenn man nicht korrek
e Pipelines macht.
#;reject_unauth_destination
#;reject_unauth_destination
#:Verwirft das Absenden von Emails:
#:Verwirft das Ab
#;* zu Zielmaschinen, die nicht unter $inet_interfaces, $mydestination, $virtual_alias_domains der $virtual_mailbox_domains zu finden sind.
enden von Emails:
#;* zu Zielmaschinen, die nicht unter $relay_domains oder in deren Subdomains zu finden sind (ausser Sender-spezifisches Routing).
#;* zu Zi
lmaschinen, die nicht unter $inet_i
terfaces, $mydestination, $virtual_alias_domains der $virtual_mailbox_domains zu finden sind.
#;* zu Zielmaschinen, die nicht unter $relay_
omains oder in deren Subdomains zu finden sind (ausser Sender-spezifisches Routing).
#;warn_if_reject
#;warn_if_reject
#:Schreibt ein WARN ins Logfile und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.
#:Schreibt ein WARN ins Logf
le und stellt di
Nachricht zu, anstatt die Nachricht zu verwerfen.
#;check_recipient_access maptype:mapname
#;check_recipient_access maptype:mapname
#:Löst die Empfänger-Adresse, Parent-Domain oder localpart@ auf.
#:
t die Empfänger-Adresse, Parent-Domain o
er localpart@ auf.
#;check_recipient_mx_access maptype:mapname
#;check_recipient_mx_access maptype:mapname
#:Löst den DNS-Record vom Typ MX des Empfängers auf.
#:L
st den DNS-Record vom Typ MX des Empfängers
auf.
#;permit_auth_destination
#;permit_auth_destination
#:Erlaubt das Absenden von Emails:
#:Erlaubt das Absenden  
#:* zu Zielmaschinen, die unter $inet_interfaces, $mydestination, $virtual_alias_domains der $virtual_mailbox_domains zu finden sind.
on Emails:
#:* zu Zielmaschinen, die unter $relay_domains oder in deren Subdomains zu finden sind (außer Sender-spezifisches Routing).
#:* zu Zielmas
hinen, die unter $inet_interfaces,
$mydestination, $virtual_alias_domains der $virtual_mailbox_domains zu finden sind.
#:* zu Zielmaschinen, die unter $relay_domains od
r in deren Subdomains zu finden sind (außer Sender-spezifisches Routing).
#;permit_mx_backup
#;permit_mx_backup
#:Erlaubt das Empfangen von Emails für Seiten, die mich als MX Host auflisten.
#:Erlaubt das Empfangen von Ema
ls für Seiten, die
mich als MX Host auflisten.
#;permit_mynetworks
#;permit_mynetworks
#:Gewährt Zugriff, wenn der Client in der Liste von $mynetworks ist.  
#:Gewährt Zugriff, wenn der Cli
nt in der Liste von
$mynetworks ist.  
#'''smtpd_data_restrictions'''
#'''smtpd_data_restrictions'''
#;reject_unauth_pipelining
#;reject_unauth_pipel
#:Verwirft die Anfrage, wenn man nicht korrekte Pipelines macht.  
ning
#:Verwirft die Anfrage, w
nn man nicht korrekte Pipe
ines macht.  


'''Anpassen der Konfigurationsdatei main.cf:'''
'''Anpassen der Konfigurationsdatei main.cf:'''
  vi /opt/etc/postfix/main.cf
  vi
 
opt/etc/postfix/main.cf
 
Gute Erfahrungen wurde
mit folgenden Einstellungen


Gute Erfahrungen wurden mit folgenden Einstellungen gesammelt (Diese evtl am Ende von main.cf anhängen):
esammelt (Diese evtl am Ende von main.cf anhängen):
  smtpd_client_restrictions = permit_mynetworks, reject_unknown_client
  smtpd_client_restrictions = permit_mynetworks, rejec
  smtpd_sender_restrictions = permit_mynetworks, reject_non_fqdn_sender
_unknown_client
  smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_recipient
  smtpd_sender_restrictions = permit_mynetworks, rejec
_non_fqdn_sender
  smtpd_recipient_restrictions = permit_mynetworks, pe
mit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_recipient


=== Einstellungen Relay-Server ===
=== Einstellungen Relay-Server ===
Falls die NSLU mails an externe Mailadressen verschicken soll, dann ist es ratsam, den SMTP-Server eines Providers als sog. Ralay zu verwenden. Postfix ist zwar selber in der Lage mails direkt an andere Mailserver zu verschicken, diese landen dann aber sehr häufig im Spamfilter. Spammer verwenden meist diese Möglichkeit, um "unerkannt" Massenmails zu verschicken. Daher geraten leider alle Mailserver mit variabler IP-Adresse unter Generalverdacht Spammer zu sein. Wenn stattdessen ein Mail-Relay verwendet wird, verbindet sich Postfix mit dem SMTP-Server des Providers, meldet sich dort mit Username und Passwort an und übergit diesem die Mail. Postfix verhält sich also analog wie ein Mailprogramm, bei dem der SMTP-Server des Providers eingetragen ist.
Falls die NSLU ma
 
===n externe Mailadressen verschic
en soll, dann ist es ratsam, den SMTP-Server eines Providers als sog. Ralay zu verwenden. Postfix ist zwar selber in der Lage mails direkt an andere Mailserver zu verschicken, diese landen dann aber sehr häufig im Spamfilter. Spammer verwenden meist diese Möglichkeit, um "unerkannt" Massenmails zu verschicken. Daher geraten leider alle Mailserver mit variabler IP-Adresse unter Generalverdacht Spammer zu sein. Wenn stattdessen ein Mail-Relay verwendet wird, verbindet sich Postfix mit dem SMTP-Server des Providers, meldet sich dort mit Username und Passwort an und übergit diesem die Mail. Postfix verhält sich also analog wie ein Mailprogramm, bei dem der SMTP-Server des Providers eingetragen ist.
 
Um einen Relay-Server zu verwenden, müssen noch folgende


Um einen Relay-Server zu verwenden, müssen noch folgende Angaben in der main.cf gemacht werden (ansonsten kann dieses Kapitel'chen komplett übersprungen werden):
ngaben in der main.cf gemacht werden (ansonsten kann dieses Kapitel'chen komplett übersprungen werden):
  vi /opt/etc/postfix/main.cf
  vi /opt/etc/postfix/main.cf


'''Hinweis:''' Relayserver in [] einschließen
'''Hinweis:''' Relayserver in
  relayhost = [SMTP des Providers] z.B. [smtp.test.de]
[] einschließen
  smtp_sasl_auth_enable = yes
  relayhost =
  smtp_sasl_security_options = noanonymous
 
  smtp_sasl_password_maps = hash:/opt/etc/postfix/sasl_passwd
SMTP des Providers] z.B. [smtp[test.de]
  smtp_
asl_auth_enab[e = yes
  smtp_sasl_securi[y_options = n
anonymous
  smtp_sasl_passwor
_maps = hash:/opt/etc/postfix/sasl_passwd
  smtp_always_send_ehlo = yes
  smtp_always_send_ehlo = yes




Erstellen des Files /opt/etc/postfix/sasl_passwd, das User und Passwort für den Relayserver enthält:
Erstellen des Files /opt/etc/
ostfix/sasl_passwd, das User
 
 
d Passwort für den Relayserver enthält:
  vi /opt/etc/postfix/sasl_passwd
  vi /opt/etc/postfix/sasl_passwd


Zeile mit folgendem Aufbau einfügen:
Zeile mit folgendem Aufbau e
nfügen:


'''ACTUNG:''' Relay-Server nicht in [] setzen im Gegensatz zum Eintrag in der main.cf (siehe oben)
'''ACTUNG:''' Relay-Ser
  Relay-Server Benutzername:Passwort
 
r nicht in [] setzen im Gegensatz zum
 
intrag in der main.cf (siehe oben)
  [elay-Server Benutzername:Passwort
  z.B.
  z.B.
  smtp.test.de mustermann@test.de:mustermann_Passwort
  smtp.test.de musterm
nn@test.de:mustermann_Passwort


Passwortfile vor neugierigen Blicken schützen:
Pas
  chmod 600 /opt/etc/postfix/sasl_passwd
wortf
le vor neugierigen Blicken schützen:
  chmod 600 /opt


Folgenden Befehl eingeben, um das Passwortfile in ein Datenbankformat (sasl_passwd.db)zu konvertieren:
tc/postfix/sasl_passwd
 
Folgenden Befehl eingeb
n, um das Passwortfile in ein Datenbank
 
rmat (sasl_passwd.db)zu konvertieren:
  postmap hash:/opt/etc/postfix/sasl_passwd
  postmap hash:/opt/etc/postfix/sasl_passwd






== Konfiguration Cyrus Imapd==
== Konfiguration C
rus Imapd==


'''Konfiguartion:'''
'''Konfiguartion:'''
  vi /opt/etc/imap.conf
  vi /opt
Folgende Einstellungen vornehmen, damit nur Klartext-Passwörter akzeptiert werden:
 
 
 
==map.conf
Folgende Einstellun
 
n vornehmen, damit n
r Klartext-Passwörter  
kzeptiert werden:
  sasl_pwcheck_method: saslauthd
  sasl_pwcheck_method: saslauthd
  sasl_mech_list: PLAIN LOGIN
  sasl_mech_list: PLAIN LOGIN


'''Cyrus Imap Server starten:'''
'''
  /opt/etc/init.d/S59cyrus-imapd restart
yrus Imap Server starten:'''
  /
pt/etc/init.d/S59cyrus-imapd
 
estart
 
'''Anlegen der IMAP-User
Mailboxen:'''
/opt/bin/cyradm --user m
 
l localhost
 
Passwort des Users mail e
ngeben (wie im Kapitel Vorbereitungen


'''Anlegen der IMAP-User Mailboxen:'''
finiert).
/opt/bin/cyradm --user mail localhost
Nach erfolgreichem Login befindet man sich in der Cyrus Adminober
läche.


Passwort des Users mail eingeben (wie im Kapitel Vorbereitungen definiert).
Folgende cm Befehle (create Mailbox) eingeben (Tux durch realen M
Nach erfolgreichem Login befindet man sich in der Cyrus Adminoberfläche.


Folgende cm Befehle (create Mailbox) eingeben (Tux durch realen Mailuser, wie unter Vorbereitungen angelegt, ersetzen)
luser, wie unter Vorbereitungen angelegt, ersetzen)
  cm user.tux
  cm user.tux
  cm user.tux.Drafts
  cm user.tux.Drafts
  cm user.tux.Outbox
  cm user.tux.Outbox
  cm user.tux.Sent
  cm user.tux.
  cm user.tux.Trash
ent
  cm user
tux.Trash


cm-Befehle für alle anzulegenden Benutzermailboxen widerholen.
cm-Befeh
Mit dem Befehl lm können alle definierten Mailboxen angezeigt werden.  
e für alle anzulege
den Benutzermailb
xen widerholen.
Mi
 
dem Befehl lm können alle definierten Mailboxen angezeigt werde
.  
  lm
  lm
Die Adminoberfläche mit folgenden Befehlen verlassen:
Die Adminoberfläche mit folgenden Befehlen verlassen:
Zeile 243: Zeile 474:




'''Löschen von IMAP-User Mailboxen:'''
''
Lös
hen von IMAP-User Mailboxen:'''
 
Nur der Vollständigke
t hal
 
 
soll hier auch das Löschen von Mailbox


Nur der Vollständigkeit halber soll hier auch das Löschen von Mailboxen bzw. Unterordnern erläutert werden. Dies ist leider nicht ganz so einfach wie das Anlegen von Usern und Unterverzeichnissen.
bzw. Unterordnern erläutert werden. Dies ist leider nicht ganz so einfach wie das Anlegen von Usern und Unterverzeichnissen.
  /opt/bin/cyradm --user mail localhost
  /opt/bin/cyradm --user mail localhost


Passwort des Users mail eingeben (wie im Kapitel Vorbereitungen definiert).
Passwort des Users mail eingeben  
wie im Kapitel Vorbereitungen definier
 
.
Nach erfolgreichem Login befindet man sich in der Cyrus Adminoberfläche.
Nach erfolgreichem Login befindet man sich in der Cyrus Adminoberfläche.


Zunächst muss dem User 'mail' das Recht eingeräumt werden, die zu löschende Mailboxen bzw. Unterverzeichnis zu löschen. Dies ist aus Sicherheitsgründen standardmäßig deaktiviert. Hier soll exemplarisch das Löschen einer Usermailbox "Mailbox" und eines Unterordners "Test" in der Mailbox "Mailbox2" demonstriert werden. (Achtung: auf Groß/Kleinschreibung achten).
Zunächst muss dem User 'mail' das Recht eingeräumt werden, die zu löschen
 
Mailboxen bzw. Unterverzeichnis zu löschen. Dies ist aus Sicherheitsgründen standardmäßig deaktiviert. Hier soll exemplarisch das Löschen einer Usermailbox "Mailbox" und eines Unterordners "Test" in der Mailbox "Mailbox2" demonstriert werden. (Achtung: auf Groß/Kleinschreibung achten).
  sam user.Mailbox mail all
  sam user.Mailbox mail all
Damit bekommt der User "mail" sämtliche Rechte (incl. löschen) an der Mailbox "Mailbox" zugewiesen. Der folgende Befehl löscht die Usermailbox schließlich:
Damit bekommt der User "mail" sämtliche Rechte (incl.
chen) an der Mailbox "Mail
ox" zugewiesen. Der folgende Befehl löscht die Usermailbox schließlich:
  dm user.Mailbox
  dm user.Mailbox
Nun das Löschen des Unterordners "Mailbox2/Test"
Nun das Löschen des Unterordners "Mailbox2/Test"
  sam user.Mailbox2.Test mail all
  sam user.Mailbox2.Te
  dm user.Mailbox2.Test
t mail all
Die Adminoberfläche mit folgenden Befehlen verlassen:
  dm u
er.Mailbox2.Test
Die Adminoberfläche mit folgende
Befehlen verlassen:
  quit
  quit


== Test von Postfix und Cyrus Imapd ==
== T
st von Postfix und Cyr
s Imapd ==


Hinweis:
Hinweis:
Es ist ratsam für die folgenden Tests ein weiteres Putty-Fenster mit Verbindung zur NSLU zu öffnen und permanent die Logging-Ausgaben zu beobachten, um im Falle eines Fehlers entsprechende Fehler einzukreisen:
Es ist ratsam für die folgenden T
sts e
 
==eiteres Putty-Fenster mit Verbindung
 
ur NSLU  
u öffnen und permanent die Logging-Ausgaben zu beobachten, um im Falle eines Fehlers entsprechende Fehler einzukreisen:
  tail -f /var/log/messages  
  tail -f /var/log/messages  




Postfix neu starten, um sämtliche durchgeführte Änderungen bekannt zu geben:
Postfix neu starten, um sämtliche durchgeführte Änderungen be
  /opt/etc/init.d/S69postfix stop
annt zu geben:
  /opt/etc/in
 
 
d/S69postfix stop
  /opt/etc/init.d/S69postfix start
  /opt/etc/init.d/S69postfix start


Zunächst wird mittels Telnet geprüft, ob Postfix in der Lage ist, mails intern zu versenden. Anschließend wird Cyrus mit einem Mailprogramm überprüft.
Zunächst wird mittels Teln
t geprüft, ob Postfix in der Lag
ist, mails intern zu versenden.  
 
schließend wird Cyrus mit einem Mailprogramm überprüft.


Am PC eine Telnet-Verbindung zum Mailserver aufbauen
Am PC eine Telnet-Verbindung zum Mailserver aufbauen


  telnet IP_der_NSLU 25
  telnet IP_der_NSLU 25
oder alternativ mit Putty:
oder alternativ mit P
 
ty:
  Protokoll=Telnet
  Protokoll=Telnet
  Port=25
  Port=25
Zeile 283: Zeile 550:


'''Hinweis:'''
'''Hinweis:'''
* Im folgenden Abschnitt sind sowohl Ausgaben von Postfix, als auch notwendige Eingaben im Telnet hintereinander dargestellt. Eingaben sind mit einem ">" zu Beginn versehen.
* Im fo
genden Abschnitt sind sowo
l Ausgaben von Po
tfix, al
auch notwendige Eing
 
en im Telnet h
ntereinander dargestellt. Eingaben sind mit einem ">" zu Beginn versehen.
* mydomain durch die Domäne wie in der main.cf definiert ersetzen.
* mydomain durch die Domäne wie in der main.cf definiert ersetzen.
* tux durch tatsächlich angelegten Benutzer ersetzen
* tux durch tatsächlich angelegt
n Benutzer ersetzen
  220 nslu.mydomain ESMTP Postfix
  220 nslu.mydomain ESMTP Postfix
  >ehlo mydomain
  >ehlo mydomai
 
  250-nslu.mydomain
  250-nslu.mydomain
  250-PIPELINING
  250-PIPELINING
  250-SIZE 10240000
  250-SIZE 1024000
 
  250-VRFY
  250-VRFY
  250-ETRN
  250-ETRN
  250-8BITMIME
  250-8BITMI
E
  250 DSN
  250 DSN
  >mail from: root@mydomain
  >ma
l from: root@mydom
in
  250 Ok
  250 Ok
  >rcpt to: tux@mydomain
  >rc
t to: tux@mydomain
  250 Ok
  250 Ok
  >data
   
  354 End data with <CR><LF>.<CR><LF>
data
  354
End data with
<CR><LF>
<CR><LF>
  >SUBJECT: Test 1
  >SUBJECT: Test 1
  >Testmail
  >Testm
il
  >.
  >.
  >
  >
  250 Ok: queued as 6DA50EAAC
  250 Ok: queu
d as 6D
50EAAC
  >quit
  >quit
  221 Bye
  221 Bye
  Connection to host lost.
  Co<nec<ion <o h<st
ost.
 
 
Email-Prog
amm starte
un
e
n neues Konto anlegen.
Einst
llunge
:
*Faill
1: Kein Relay-Betrieb ([[




Email-Programm starten und ein neues Konto anlegen.
tfix und Cyrus Imapd#Einstellungen Relay-Server|&ra
Einstellungen:
r; siehe oben]
*Faill 1: Kein Relay-Betrieb ([[Postfix und Cyrus Imapd#Einstellungen Relay-Server|&rarr; siehe oben]]), Mailserver sammelt mails per fetchmail ([[Postfix und Cyrus Imapd#Optional Fetchmail|&rarr; siehe Kapitel Fetchmail]]) ein und verwaltet diese
), Mailserver sammelt mails pe[[fetchmail ([[Postfix und Cyrus Imapd#Optional Fetchmail|&rarr; siehe]]apitel Fetchmail]]) ein und verwaltet diese[[email-adresse: user@provider (z.B. test@gmx.de)
email-adresse: user@provider (z.B. test@gmx.de)
  Protokoll: Imap
  Protokoll: Imap
  Posteingangsserver: IP_der_NSLU
  Postein]]ngsserver: IP_der_NSLU
  Postausgangsserver: SMTP-Server des Providers
  P
  Benutzername (Posteingang): Tux
stausgangsserver: SMTP-Server des Providers
  Benutzername (Postausgang): Benutzername des Providers
  Ben
* Fall 2: "vollwertiger" Mailserver, der Mails direkt in Empfang nimmt und mittels Relay absendet:
tzername (Postei
  email-adresse: tux@domain
gang): Tux
  Benutzername (Postau
gang): Benutzername des Providers
* Fall 2: "v
llwertiger" Mailserver, der Mail
direkt in Empfang nimmt und mittels Relay absendet:
  e
ail-adresse: tux@domain
  Protokoll: Imap
  Protokoll: Imap
  Posteingangsserver: IP_der_NSLU
  Posteingangsserver: IP_der_NSLU
  Postausgangsserver: IP_der_NSLU
  Postausgangsserver: IP_
  Benutzername (Posteingang): Tux
er_NSLU
  Benutzername (Postausgang): Tux
  Benutzername (Pos
eingang): Tux
  B
nutzername (Postausgang): Tux


Nach Eingabe des Passwortes darf keine Fehlermeldung erscheinen.
N
Wenn alles geklappt hat, sollte sich im Posteingang die Mail aus obigem Postfix Test befinden.
ch Eingabe des Passwortes darf k
ine Fehlermeldung erscheinen.
We
n alles geklappt hat, sollte sic


im Posteingang die Mail aus obigem Postfix Test befinden.


==Erweiterungen der Funktionalität des Mailservers:==
 
==E
weiterungen der Funktionalität des Mailservers:==


* Mails abholen mittels [[Fetchmail]]
* Mails abholen mittels [[Fetchmail]]
* Spamabwehr mit [[Spamassassin]]
* Spam
* Zugriff aus dem Web per Webmailer [[Roundcube]]
 
* Direkter SSL-geschützter IMAP-Zugriff aus dem Internet [[Cyrus SSL]]
 
==r mit [[Spamassassin]]
* Zugriff aus dem Web per Web
 
iler [[Roundcube]]
* Dir[[ter SSL-g]]
hützter IMAP-Zugr[[f aus dem In]]
net [[Cyrus SSL]][[]]
[[]]

Version vom 7. März 2009, 15:29 Uhr

Mailserver

Für den Mailserver kommt die gängige Kombination Postfix + Cyrus Imapd zum Einsatz. Postfix ist der sog. MTA (Mail Transport Agent), der sich um die Annahme und den Versand von Mails kümmert. Cyrus Imapd ist, wie der Name schon sagt, ein IAMP Server. Er beherrscht aber auch das weit verbreitete PO3 - Protokoll.

P

tfix reicht die erhaltenen Mails an Cyrus weiter, der sie schließlich an die MUA's(Mail User Agents wie Outlook, Thunderbird, Kmail, ...) ausliefert.

Po

fix kann mails direkt aus dem Internet annehmen, wenn eine Dynamic DNS-Adresse zur verfügung steht, und der Port 25 im Router an die NSLU weitergeleitet wird.

Alt

nativ können mails mittels Fetchmail von einem Provider wie z.B. GMX abgerufen werden. Tetchmail übergibt die Mails an Postfix zur weiteren Verarbeitung.

Zur S

mabwehr kann Spamassassin zwischen die Kette Postfix und Cyrus eingeschleust werden. Dieser kann die evtl. Spammails als solche kennzeichnen, die schließlich ein Mailfilter wie Sieve (Teil von Cyrus) in spezielle Unterverzeichnisse einordnen kann.

== Vor

itungen

Im erst n Schritt werden einige nötige Pakete installiert, die für die folgende Mailserver installation nötig sind.

ipkg upd

e

ipkg inst

ll perl libdb coreutils cyrus-sasl readline


SASL-ko f

mes Passwort für den bereits beim Unsling-Vorgang angelegten User mail:

/opt/sbin/

aslpasswd2 mail

Dem Linux-

er "mail" das selbe Passwort vergeben, damit bei laufendem Imap-Server der Zugriff auf die Cyrus-Admin-Konsole klappt:

passwd mai

Bei der Abf age nach dem Passwort das selbe Passwort (2x) eingeben wie beim Befehl saslpasswd2


Anpassen


Zugriffsrechte für die Datei SASL2
chmod 644 /

pt/etc/sasl2

Gruppe mail

op anlegen:

vi /etc/gro

p Folgenden Ei trag ergänzen:

maildrop:x:6
maildrop


Mailuser (m


estens einen, z.B. Tux) in der Weboberfläche anlegen.


== Installat


on Postfix und Imapd

Zum Installie

n der nötigen Pakete folgenden Befehl eingeben:

ipkg install c

rus-imapd postfix

Hinweis: Der D

nload und die Installation der Pakete nimmt einige Zeit in Anspruch.


== Konfigurat


ostfix

Zunächst wird P stfix eingerichtet. Die komplette Konfiguration von Postfix erfolgt mittels main.cf und master.cf, die im Order /opt/etc/postfix abgelegt sind.

=== Generelle E

llungen

vi /opt/etc/pos

fix/main.cf

Folgende Ein

ellungen vornehmen:

Hinweise:

Zum Teil müsse
die Einträge auskommentiert werden (Entfernen des # - Zeichens).
  • Die verwendete '

'Domain ist: schiele.homelinux.org

  • der Hostname'

' der NSLU ist nslu

  • mynetworks_style

= subnet: Freigabe eines kompletten IP-Subnetzes

  • mynetworks
die ersten 3 Stellen der IP-Adresse der NSLU verwenden. Die Letzte Stelle auf 0 setzten und um /24 ergänzen. Diese Angabe entspricht einem kompletten Subnet. Falls die IP-Adresse der NSLU 192.168.1.77 => mynetworks = 192.168.1.0/24. D.h. alle PC's im Bereich 192.168.1.1 bis 192.168.1.255 haben Zugriff auf die NSLU.
myhostname = nslu

chiele.homelinux.org

mydomain = schiele

homelinux.org

myorigin = $mydoma

n

inet_interfaces = 

ll

mydestination = $m

hostname, localhost.$mydomain, localhost, $mydomain

mynetworks_style =

subnet

mynetworks = 192.1

8.1.0/24

Generierung ein

Alias-Files:

Aliase sind Namen

w. Mailadressen, unter denen ein bekannter eingerichteter User ebenfalls erreichbar ist. D.H. Mails ein die Alias-Adresse landen im Posteingang des Nutzers, auf den der Alias verweist. So ist es z.B. empf hlenswert für den User root einen Alias auf einen normalen Benutzer anzulegen.

vi /opt/etc/aliase


Aufbau des Files: A

asname:tatsächlic er Nutzer

#root: you
root: tu

Aliasnam

root und N

zer Tux evtl anpassen. Es können beliebig viele Aliase eingetragen werden.

Nachdem das File geän

rt wurde MUSS folgender Befehl ausgeführt werden, um das Alias-File in eine für Postfix kompatible Datenbank zu verwandeln:

/opt/bin/newaliases


== Spamabwehr=== Viele


===ails können b reits vor der Annahme der Mail durch Postfix aussortiert werden. Spammer verwenden oft Host- und Domainnamen, die nicht einem FQDN (Fully Qualified Domain Name) entsprechen. Postfix kann relativ einfach angewiesen werden, solche mails erst gar nicht anzunehmen. Hier wird nicht beschrieben, wie Spammails aufgrund ihres Inhalts gefiltert werden können. Dies ist Teil der [[Spamassassin|→ Spamasssin-Anleitung.

Mail können mit den Par]]e

rn:

  1. smtpd_client_restrictions

mtpd_helo_restrictions

  1. sm

pd_sender_restrictions

mtpd_recipient_restriction

  1. smtpd_data_restrictions

gef ltert werden.

  1. smtpd

client_restrictio

  1. reject_unknown_client
    Ve

wirft die Anfrage, wenn der Hostname des SMTP-Clients unbekannt ist (die IP-Adresse oder der Hostname des TCP/IP-Clients).

  1. reject_rbl_client domain.t

d

  1. Verwirft die Anfrage, wenn

der SMTP-Client einen DNS-Record vom Typ A unter domain.tld hat.

  1. reject_rhsbl_client domain

tld

  1. Verwirft die Anfrage, wenn

der SMTP-Client einen DNS-Record vom Typ A unter domain.tld hat.

  1. warn_if_reject
    Schreibt

in WARN ins Logf le und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.

  1. check_client_access maptyp
mapname
  1. Löst die Client-Namen, Cli

nt-Adressen und Parent-Domains auf anhand der in maptype:mapname angegebenen Map.

  1. permit_mynetworks
    Gewährt

Zugriff, wenn der C ient in $mynetworks zu finden ist.

  1. smtpd_helo_restrictions
    reject_invalid_hostname
    Ve

wirft den im HELO/EHLO an egebenen Hostnamen, falls dieser eine falsche Syntax hat. Wenn man in einem Netzwerk ist und man will, dass die Maschinen, die auch im Netzwerk sind, Emails über unseren MTA verschicken wollen, dann ist es sinnvoll, diese Beschränkung erst nach permit_mynetworks anzugeben (wie ich schon gesagt habe, die Reihenfolge ist sehr wichtig), sonst wird er vom MTA verworfen oder zurückgewiesen.

  1. reject_unknown_hostname
    Verwi

ft den im HELO/EHLO angeg benen Hostnamen, welcher keinen DNS Rekord vom Typ A oder MX hat. Hier ist es auch sinnvoll permit_mynetworks zuerst anzugeben, wenn man ein Relay-MTA für das innere Netzwerk ist.

  1. reject_non_fqdn_hostname
    Verwi

ft den im HELO/EHLO angege enen Hostnamen, wenn dieser nicht in FQDN-Form ist. Was bedeutet FQDN? Full Qualified Domain Name. Dafür ein Beispiel: www.chains.ch ist ein FQDN.

  1. warn_if_reject
    Schreibt ein WAR
ins Logfile und

stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.

  1. check_helo_access
    Löst den im H

LO/EHLO angegebenen Hostnamen oder die Parent-Domain auf.

  1. permit_mynetworks
    Gewährt Zugrif

, wenn der Client i

der Liste von $mynetworks ist. 
  1. smtpd_sender_restrictions
    r

ject_unknown_sender_domain

  1. Verw

rft die Sender-Domain, wenn di se keinen DNS-Record vom Typ A oder MX hat.

  1. reject_non_fqdn_sender
    Verwirft d

e Sender-Domain, wenn di se nicht in FQDN-Form ist.

  1. reject_rhsbl_sender domain.tld
    Ve

wirft die Anfrage, wenn der Send r einen DNS-Record vom Typ A unter domain.tld hat.

  1. reject_sender_login_mismatch
    Verw

rft, wenn $smtpd_sender_login_ aps für eine MAIL FROM- Adresse einen Besitzer spezifiziert, aber der sich nicht mit SASL authentifiziert hat; verwirft, wenn der Sender sich authentifiziert hat, aber die MAIL FROM-Adresse nicht mit dem Sender übereinstimmt.

  1. warn_if_reject
    Schreibt ein WARN in
Logfile und ste

lt die Nachricht zu, anstatt die Nachricht zu verwerfen.

  1. check_sender_access maptype
    mapname

Löst die Sender-Adresse, Parent-Domai

oder localpart@ auf.
  1. check_sender_mx_access maptype
    mapname
    Löst den DNS-Record vom Typ MX des Sen

ers auf.

  1. permit_mynetworks
    Gewährt Zugriff, we

n der Client in der Liste von $mynetworks ist.

  1. smtpd_recipient_restrictions
    reje

t_unknown_recipient_domain

  1. Verwir

t die Anfrage, wenn im RCPT TO di

Domain des Empfängers keinen DNS-Record vom Typ A oder MX hat.
  1. reject_non_fqdn_recipient
    Verwirft die

nfrage, wenn im RCPT TO die Domain des Empfängers nicht in FQDN-Form ist.

  1. reject_rhsbl_recipient domain.tld
    Verwir

t die Anfrage, wenn der Empfänger e nen DNS-Record vom Typ A unter domain.tld hat.

  1. reject_unauth_pipelining
    Verwirft die Anf

age, wenn man nicht korrek e Pipelines macht.

  1. reject_unauth_destination
    Verwirft das Ab

enden von Emails:

    • zu Zi

lmaschinen, die nicht unter $inet_i terfaces, $mydestination, $virtual_alias_domains der $virtual_mailbox_domains zu finden sind.

    • zu Zielmaschinen, die nicht unter $relay_

omains oder in deren Subdomains zu finden sind (ausser Sender-spezifisches Routing).

  1. warn_if_reject
    Schreibt ein WARN ins Logf

le und stellt di

Nachricht zu, anstatt die Nachricht zu verwerfen.
  1. check_recipient_access maptype
    mapname

t die Empfänger-Adresse, Parent-Domain o er localpart@ auf.

  1. check_recipient_mx_access maptype
    mapname
    L

st den DNS-Record vom Typ MX des Empfängers auf.

  1. permit_auth_destination
    Erlaubt das Absenden

on Emails:

    • zu Zielmas

hinen, die unter $inet_interfaces, $mydestination, $virtual_alias_domains der $virtual_mailbox_domains zu finden sind.

    • zu Zielmaschinen, die unter $relay_domains od

r in deren Subdomains zu finden sind (außer Sender-spezifisches Routing).

  1. permit_mx_backup
    Erlaubt das Empfangen von Ema

ls für Seiten, die mich als MX Host auflisten.

  1. permit_mynetworks
    Gewährt Zugriff, wenn der Cli

nt in der Liste von $mynetworks ist.

  1. smtpd_data_restrictions
    reject_unauth_pipel

ning

  1. Verwirft die Anfrage, w

nn man nicht korrekte Pipe ines macht.

Anpassen der Konfigurationsdatei main.cf:

vi

opt/etc/postfix/main.cf

Gute Erfahrungen wurde

mit folgenden Einstellungen

esammelt (Diese evtl am Ende von main.cf anhängen):

smtpd_client_restrictions = permit_mynetworks, rejec

_unknown_client

smtpd_sender_restrictions = permit_mynetworks, rejec

_non_fqdn_sender

smtpd_recipient_restrictions = permit_mynetworks, pe

mit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_recipient

Einstellungen Relay-Server

Falls die NSLU ma

===n externe Mailadressen verschic en soll, dann ist es ratsam, den SMTP-Server eines Providers als sog. Ralay zu verwenden. Postfix ist zwar selber in der Lage mails direkt an andere Mailserver zu verschicken, diese landen dann aber sehr häufig im Spamfilter. Spammer verwenden meist diese Möglichkeit, um "unerkannt" Massenmails zu verschicken. Daher geraten leider alle Mailserver mit variabler IP-Adresse unter Generalverdacht Spammer zu sein. Wenn stattdessen ein Mail-Relay verwendet wird, verbindet sich Postfix mit dem SMTP-Server des Providers, meldet sich dort mit Username und Passwort an und übergit diesem die Mail. Postfix verhält sich also analog wie ein Mailprogramm, bei dem der SMTP-Server des Providers eingetragen ist.

Um einen Relay-Server zu verwenden, müssen noch folgende

ngaben in der main.cf gemacht werden (ansonsten kann dieses Kapitel'chen komplett übersprungen werden):

vi /opt/etc/postfix/main.cf

Hinweis: Relayserver in [] einschließen

relayhost =

SMTP des Providers] z.B. [smtp[test.de]

smtp_

asl_auth_enab[e = yes

smtp_sasl_securi[y_options = n

anonymous

smtp_sasl_passwor

_maps = hash:/opt/etc/postfix/sasl_passwd

smtp_always_send_ehlo = yes


Erstellen des Files /opt/etc/ ostfix/sasl_passwd, das User


d Passwort für den Relayserver enthält:

vi /opt/etc/postfix/sasl_passwd

Zeile mit folgendem Aufbau e nfügen:

ACTUNG: Relay-Ser

r nicht in [] setzen im Gegensatz zum

intrag in der main.cf (siehe oben)

[elay-Server Benutzername:Passwort
z.B.
smtp.test.de musterm

nn@test.de:mustermann_Passwort

Pas wortf le vor neugierigen Blicken schützen:

chmod 600 /opt

tc/postfix/sasl_passwd

Folgenden Befehl eingeb n, um das Passwortfile in ein Datenbank

rmat (sasl_passwd.db)zu konvertieren:

postmap hash:/opt/etc/postfix/sasl_passwd


== Konfiguration C rus Imapd==

Konfiguartion:

vi /opt


==map.conf Folgende Einstellun

n vornehmen, damit n r Klartext-Passwörter kzeptiert werden:

sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN LOGIN

yrus Imap Server starten:

/

pt/etc/init.d/S59cyrus-imapd

estart

Anlegen der IMAP-User Mailboxen:

/opt/bin/cyradm --user m

l localhost

Passwort des Users mail e ngeben (wie im Kapitel Vorbereitungen

finiert). Nach erfolgreichem Login befindet man sich in der Cyrus Adminober läche.

Folgende cm Befehle (create Mailbox) eingeben (Tux durch realen M

luser, wie unter Vorbereitungen angelegt, ersetzen)

cm user.tux
cm user.tux.Drafts
cm user.tux.Outbox
cm user.tux.

ent

cm user

tux.Trash

cm-Befeh e für alle anzulege den Benutzermailb xen widerholen. Mi

dem Befehl lm können alle definierten Mailboxen angezeigt werde .

lm

Die Adminoberfläche mit folgenden Befehlen verlassen:

quit


Lös hen von IMAP-User Mailboxen:

Nur der Vollständigke t hal


soll hier auch das Löschen von Mailbox
bzw. Unterordnern erläutert werden. Dies ist leider nicht ganz so einfach wie das Anlegen von Usern und Unterverzeichnissen.
/opt/bin/cyradm --user mail localhost

Passwort des Users mail eingeben wie im Kapitel Vorbereitungen definier

. Nach erfolgreichem Login befindet man sich in der Cyrus Adminoberfläche.

Zunächst muss dem User 'mail' das Recht eingeräumt werden, die zu löschen

Mailboxen bzw. Unterverzeichnis zu löschen. Dies ist aus Sicherheitsgründen standardmäßig deaktiviert. Hier soll exemplarisch das Löschen einer Usermailbox "Mailbox" und eines Unterordners "Test" in der Mailbox "Mailbox2" demonstriert werden. (Achtung: auf Groß/Kleinschreibung achten).
sam user.Mailbox mail all

Damit bekommt der User "mail" sämtliche Rechte (incl. lö chen) an der Mailbox "Mail ox" zugewiesen. Der folgende Befehl löscht die Usermailbox schließlich:

dm user.Mailbox

Nun das Löschen des Unterordners "Mailbox2/Test"

sam user.Mailbox2.Te

t mail all

dm u

er.Mailbox2.Test Die Adminoberfläche mit folgende

Befehlen verlassen:
quit

== T st von Postfix und Cyr s Imapd ==

Hinweis: Es ist ratsam für die folgenden T sts e

==eiteres Putty-Fenster mit Verbindung

ur NSLU u öffnen und permanent die Logging-Ausgaben zu beobachten, um im Falle eines Fehlers entsprechende Fehler einzukreisen:

tail -f /var/log/messages 


Postfix neu starten, um sämtliche durchgeführte Änderungen be annt zu geben:

/opt/etc/in


d/S69postfix stop

/opt/etc/init.d/S69postfix start

Zunächst wird mittels Teln t geprüft, ob Postfix in der Lag

ist, mails intern zu versenden. 

schließend wird Cyrus mit einem Mailprogramm überprüft.

Am PC eine Telnet-Verbindung zum Mailserver aufbauen

telnet IP_der_NSLU 25

oder alternativ mit P

ty:

Protokoll=Telnet
Port=25
Hostname=IP_der_NSLU

Hinweis:

  • Im fo

genden Abschnitt sind sowo l Ausgaben von Po tfix, al

auch notwendige Eing

en im Telnet h ntereinander dargestellt. Eingaben sind mit einem ">" zu Beginn versehen.

  • mydomain durch die Domäne wie in der main.cf definiert ersetzen.
  • tux durch tatsächlich angelegt

n Benutzer ersetzen

220 nslu.mydomain ESMTP Postfix
>ehlo mydomai
250-nslu.mydomain
250-PIPELINING
250-SIZE 1024000
250-VRFY
250-ETRN
250-8BITMI

E

250 DSN
>ma

l from: root@mydom in

250 Ok
>rc

t to: tux@mydomain

250 Ok

data

354

End data with <CR><LF> <CR><LF>

>SUBJECT: Test 1
>Testm

il

>.
>
250 Ok: queu

d as 6D 50EAAC

>quit
221 Bye
Co<nec<ion <o h<st 

ost.


Email-Prog amm starte

un
e

n neues Konto anlegen. Einst llunge

  • Faill

1: Kein Relay-Betrieb ([[


tfix und Cyrus Imapd#Einstellungen Relay-Server|&ra r; siehe oben] ), Mailserver sammelt mails pe[[fetchmail (→ sieheapitel Fetchmail]]) ein und verwaltet diese[[email-adresse: user@provider (z.B. test@gmx.de)

Protokoll: Imap
Postein]]ngsserver: IP_der_NSLU
P

stausgangsserver: SMTP-Server des Providers

Ben

tzername (Postei gang): Tux

Benutzername (Postau

gang): Benutzername des Providers

  • Fall 2: "v

llwertiger" Mailserver, der Mail

direkt in Empfang nimmt und mittels Relay absendet:
e

ail-adresse: tux@domain

Protokoll: Imap
Posteingangsserver: IP_der_NSLU
Postausgangsserver: IP_

er_NSLU

Benutzername (Pos

eingang): Tux

B

nutzername (Postausgang): Tux

N ch Eingabe des Passwortes darf k ine Fehlermeldung erscheinen. We n alles geklappt hat, sollte sic

im Posteingang die Mail aus obigem Postfix Test befinden.


==E weiterungen der Funktionalität des Mailservers:==


==r mit Spamassassin

  • Zugriff aus dem Web per Web

iler Roundcube

hützter IMAP-Zugrf aus dem In net Cyrus SSL[[]] [[]]