PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mailserver (sicher) einrichten



PierreS
01.03.05, 18:55
Hallo,

ich habe einen vServer mit SuSE 9.0. Neben einem Webserver, dessen Einrichtung kein Problem war, möchte ich auch einen Mail-Server betreiben.

Was ich möchte:

- Imap-Server
- SMTP-Server mit SMTP_AUTH
- höchstens 3-5 Benutzer

Ich habe nun postfix und courier installiert. Irgendwie habe ich es soweit ans laufen bekommen, daß die Accounts über die /etc/shadow authentifiziert werden. SMTP_AUTH müsste auch für nicht lokale Empfänger Pflicht sein....

Mein Problem: Ich habe hiermit keine Erfahrung und bisher auch noch kein sinnvolles Tutorial gefunden. Die meisten Tutorials befassen sich mit lokalen Mail-Servern für zu Hause. Hier werden Mails über den Provider verschickt und Sicherheit spielt nicht wirklich eine Rolle.
Andere Tutorials wären für mich Overkill (virtual Hosts, mysql-db etc.)

Wie richte ich die Mail-Server am geschicktesten und vor allem am sichersten ein?

mccologne
02.03.05, 13:35
Hey,

um Deine Umgebung richtig einzurichten, benötigen wir ein paar Configs von Dir.
Poste mal deine Configs von:
postfix (/etc/postfix/main.cf und master.cf)
oder die Ausgabe von :
postconf -n

Dann kann ich Dir bei einigen Dingen auf die Sprünge helfen.
Ich habe selber einen Mailserver mit SuSE 9.1 laufen.
Meine Inst. sieht wie folgt aus:
-minimal Installation ohne X-Server
-postfix
-courier-imap
-apache 2.0 mit php
-squirrelmail
-amavis-new
-spamassassin
-antivirensoftware z.B Antivir für Linux, Bitdeffender
und einigen andere tools......

Grüße
mccologne

Ps: Der einzigste unterschied zw. Home-Mailserver und deinem Vhost im Internet ist, das deine User die Mails direkt ohne Relay per SMTP einliefern können.
Im gegensatz zum Home-Mailserver holt dieser, die Mails per Fetchmail ab!

Tomek
02.03.05, 18:10
HowTos, FAQs, Anleitungen zum Thema Mailserver findest du zu Genüge unter:
http://www.linuxforen.de/forums/showthread.php?t=169531

PierreS
02.03.05, 22:09
Hallo,

danke für die Antworten. Hier mal die Ausgabe von postconf:
alias_maps = hash:/etc/aliases
canonical_maps = hash:/etc/postfix/canonical
command_directory = /usr/sbin
config_directory = /etc/postfix
content_filter =
daemon_directory = /usr/lib/postfix
debug_peer_level = 2
defer_transports =
disable_dns_lookups = no
home_mailbox = Maildir/
html_directory = /usr/share/doc/packages/postfix/html
inet_interfaces = all
mail_owner = postfix
mail_spool_directory = /var/mail
mailbox_command = /usr/bin/procmail
mailbox_size_limit = 0
mailbox_transport =
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
masquerade_classes = envelope_sender, header_sender, header_recipient
masquerade_domains =
masquerade_exceptions = root
message_size_limit = 10240000
mydestination = laber-land.de
myhostname = server.laber-land.de
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/packages/postfix/README_FILES
relayhost =
relocated_maps = hash:/etc/postfix/relocated
sample_directory = /usr/share/doc/packages/postfix/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail
setgid_group = maildrop
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noplaintext,noanonymous
smtp_use_tls = no
smtpd_client_restrictions = permit_sasl_authenticated,
smtpd_helo_required = yes
smtpd_helo_restrictions =
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sender_restrictions = hash:/etc/postfix/access, reject_unknown_sender_domain
smtpd_use_tls = no
strict_rfc821_envelopes = no
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550

Ich habe nun noch Spamassassin zugeschaltet über /etc/procmailrc:
:0fw
| spamc

MAILDIR=$HOME/Maildir
DEFAULT = $MAILDIR/
LOGFILE=$HOME/procmail.log

Die courier-Einstellungen habe ich nicht verändert, sondern nur mit maildirmake ~/Maildir die Verzeichnisse angelegt.

Kann ich diese Konfiguration auf die Leute los lassen? ;-)

mccologne
03.03.05, 07:49
Hey,

deine Config sieht nicht schlecht aus...!
Man könnte aber noch einige Einstellungen verändern bzw. hinzufügen.
Da wäre z.B.:
a) mynetworks = 127.0.0.1 <Deine IP/Netmask>
setzt die Netzwerke die bekannte Benutzer enthalten.
Der Standartwert hierfür ist eine Liste aller an den Rechner angeschlossenen Netzwerke.
Beispiele:
mynetworks = 168.100.189.0/28, 127.0.0.0/8
mynetworks = $config_directory/mynetworks

b) content_filter = <Eintrag für Viren-/Spamfilter!?>
Da gibt es verschiedene Möglichkeiten, je nach dem welche Amavis-Version genutzt wird.
Deinen Spamfilter (Spamassassin) würde ich nicht mehr über Procmail laufen lassen, braucht zuviel Performance.
Dafür mußt Du nur Amavis-New mit seinen Abhängigkeiten installieren und einwenig anpassen.
Download Amavis-New für SuSE 9.0
http://rpmseek.com/download/ftp://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/suse/i386/9.0/suse/i586/amavisd-new-20030616p5-31.i586.rpm?hl=de&nid=28203
Dann mit "yast -i amavis-xxxxxxxx.rpm" installieren.

Änderungen/Ergänzungen:

/etc/postfix/main.cf
content_filter = smtp-amavis:[127.0.0.1]:10024

/etc/postfix/master.cf:
smtp inet n - n - - smtpd
-o content_filter=smtp:[localhost]:10024
smtp-amavis unix - - n - 2 smtp
-o smtp_data_done_timeout=1200
-o disable_dns_lookups=yes

/etc/amavis.conf
Da müßt Du für googeln, habe grade kein HOWTO zur Hand

c) SSL/TLS Verschlüsselung
smtpd_use_tls = yes <SSL/TLS Verschlüsselung>
smtpd_tls_cert_file = /etc/postfix/xxx.cert <Pfad zu Openssl Cert>
smtpd_tls_key_file = /etc/postfix/xxx.key <Pfad zu Openssl Key>

Mit dieser Anweisung werden Clients authentifiziert, welche eine TLS gesicherte Verbindung zu unserem Mailserver aufbauen.
Links:
http://www.sol-linux.com/Private/Documentation/virtmail/?lang=English
http://www.gentoo.de/doc/de/virt-mail-howto.xml

d) smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unauth_destination,
reject_unauth_pipelining,
reject_invalid_hostname,
reject_rbl_client relays.ordb.org, *)
reject_rbl_client opm.blitzed.org, *)
reject_rbl_client list.dsbl.org, *)
reject_rbl_client bl.spamcop.net, *)

*) Zur Hilfe benutzen wir sogenannte RBL (Realtime Blackhole List). In solchen Listen sind Server aufgelistet, die aktive Spam verschicken und den wollen wir ja nicht.
Die Server sind nicht immer kostenfrei oder sind teilweise nicht mehr Online.
Dies mußt du noch testen, welche noch laufen!

So, das ist jetzt erstmal genug.
Du mußt Dir erstmal überlegen, ob alle Optionen in frage kommen!

Grüße
mccologne

PierreS
03.03.05, 10:17
Vielen Dank für Deine Mühe. Ich denke, das hilft mir weiter. Auch wenn ich den content-filter-Eintrag verwende, wird procmail trotzdem zur Filterung genutzt?

mccologne
03.03.05, 10:33
Ja, dieser wird auch weiterhin genutzt.
Postfix übgibt Amavis die Mails über Port 10024 und erhält sie über 10025 zurück.
Und dann werden die Mails erneut auf Spam (von Procmail) gescannt!
Dann lass erstmal Amavis weg, und mache Postfix erstmal sicher.


Grüße
mccologne

PierreS
06.03.05, 14:29
Nun, ich benötige Procmail auf jeden Fall zum einsortierren in die verschiedene Ordner etc.

Wie funktioniert das eigentlich mit den RBLs? Wenn ich die drin lasse, bekomme ich Null Spam. Wie wahrscheinlich ist es, daß gewünschte Mails verloren gehen? Und bekommen die versendenen Server eine entsprechende Meldung?

Terran Marine
06.03.05, 14:47
Wie funktioniert das eigentlich mit den RBLs? Wenn ich die drin lasse, bekomme ich Null Spam. Wie wahrscheinlich ist es, daß gewünschte Mails verloren gehen? Und bekommen die versendenen Server eine entsprechende Meldung?

Null Spam wäre ne tolle Sache, ganz so effektiv ist es leider nicht. ;)

Die absendenden Mail Server bekommen im Mail-Dialog eine permanente Fehlermeldung ( 5xx ) inkl. einer Begründung (mit Link zur RBL), diese Fehlermeldung reicht der Mailserver dann an den absendenden User weiter.

Gruß
Terran

tschloss
06.03.05, 15:10
Ich bin selbst gerade am Aufbau eines SUSE basierenden Mailservers.

Habe auch schon viele Detailinfos (auch Dank der Howtos, Kommentare ind Links hier aus dem Forum - vielen Dank!!!) gesammelt und manches auch schon umgesetzt.

Aber irgendwie fehlt mir das größere Bild, wie die Programme
- fetchmail
- postfix
- procmail
- cyrus (imapd)
- cyrus userverwaltung (sasl)
- sieve? (vs procmail???)
zusammenarbeiten. D.h.
o welches Programm wird wann aktiv bzw. wie aktiviert?
o welche Nutzdaten werden gelesen und nachg Verarbeitung wohin geschrieben
o welche Configs steuern das Verhalten
o welche Log-Infos werden geschrieben

Das Thema Viren- und Spamfilter kommt anschließend noch hinzu, dort stellen sich die entsprechenden Fragen des Zusammenspiels.

Gibt es evtl. ein gutes Buch zu diesem Gesamtthema (das fünfte Postfix Buch brauche ich im Moment nicht ;-) )?

Vielen Dank as always
Grüße
Thomas

Terran Marine
06.03.05, 15:32
- fetchmail
- postfix
- procmail
- cyrus (imapd)
- cyrus userverwaltung (sasl)
- sieve? (vs procmail???)
zusammenarbeiten. D.h.


fetchmail :

Holt Mails in regelmässigen Intervallen von pop3/imap-Konten ab und gibt sie standardmässig an postfix per SMTP Zugriff an localhost weiter. (kann aber direkt an procmail, cyrus weitergeben)

postfix :

Der eigentliche Mailserver, nimmt Mails von extern wie intern an, und sorgt für die Weiterleitung bzw. Weitergabe an andere Programme. Läuft standardmässig auf Port 25, verfügt über Filtermechanismen gg. Antispam (z.b RBL).

Mails für die sich postfix nicht zuständig ist, werden per SMTP an die entsprechenden Server im Internet weitergegeben (wohin die Mails gehen soll, ermittelt postfix per DNS MX Abfrage, lässt sich aber auch händig einstellen)

Mails für die postfix die finale Annahmestation ist (u.a. Domains die in mydestination drinstehen), werden, je nach Konfiguration :

-In /var/spool/mail/Username abgelegt.

An einen anderen MDA (Mail Delivery Agent) weitergegeben (z.b. procmail, sieve, cyrdeliver etc.)

localhost und andere definierte IP-Adressen/Netze dürfen frei über postfix versenden (in mynetworks definiert), bei externen User, sollte/wird mit einer Authentifizierung gearbeitet, postfix benutzt dafür das Authentifizierungsframework (cyrus)-SASL

cyrus SASL :

SASL kümmert sich um die Authentifizierung, als Benutzerdatenbanken können die lokale passwd, eine eigene sasldb oder beliebige andere Backends zum tragen kommen (mysql,ldap,pam)
postfix und die eigenen cyrus Daemons nutzen SASL als Authentifizierung

cyrus imapd :

Ein IMAP-Server, bekommt seine Mails in der Regel vom MTA geliefert (z.b. über cyrdeliver), laucht auf Port 143, User können nach Authentifizierung auf ihre Mails zugreifen -> SASL

procmail :

Ein MDA, sortiert und liefert Mails nach bestimmten Kritierien (z.b. Suchwörter, Absender, Empfänger etc.) in bestimmten Postfächern ab. Kann noch viel mehr.
Bekommt die Mails vom MTA, liefert sie in die Userpostfächer ab oder gibt sie an imap/pop3 server weiter.
Ist afaik kein Dienst sondern wird vom MTA aufgerufen (bei postfix z.b. über mailbox_command oder mailbox_transport)

sieve :

Ähnlich wie procmail, kann Mails nach gewissen Kritierieren, in verschiedene IMAP-Ordner einsortieren. Ebenfalls kein Dienst.

Virus- und Spamfilterung :

Wird in der Regel an den MTA gekoppelt, postfix gibt die Mails nach Einlieferung an den Filter weiter und erhält sie dann getaggt zurück,
amavisd wird gerne als dieser Filter benutzt, in amavisd konfiguriere ich dann meinen Spamfilter (spamassassin) und Virenfilter rein,
geht auch ohne, aber amavisd gilt als recht performant und bietet noch schöne Zusatzfeatures.

Alle diese Dinge werden z.B. im postfixbuch ;) von Peer Heinlein beschrieben (Open Press Verlag), das von Oreilly ist aber auch sehr gut, und geht noch mehr in die Tiefe rein.

Gruß
Terran

tschloss
06.03.05, 16:42
Supi, vielen Dank!!!!
Diese Antwort sollte man sticky machen! Oder als Grundstock für ein Server-Wiki verwenden....

Jedenfalls läuft mein Mailserver inzwischen mit fetchmail und Auslieferung per Cyrus POP+IMAP.
Da hat YAST einen gewissen Anteil dran, aber Schritt für Schritt kann ich auf OS-Ebene auch nachollziehen, warum es läuft....

[Mal wieder viel gelernt übers Weekend - Danke der Community; Greetz Thomas]

PierreS
09.03.05, 06:16
Auch ein großes Danke von mir für die ausführlichen Antworten. Mein Mail-Server läuft mittlerweile "produktiv". :-)