• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Erstellung eines Mail-Servers ohne Domain

Status
Für weitere Antworten geschlossen.

Chris

Member
Hallo,
zunächst ein Wort zuvor: Ich kenne mich beim Mailserving nicht aus. Schreibt also bitte für einen Anfänger verständlicht.

Was ich habe:
1 Linux-Server mit SuSE 9.0 (installiert: NFS, NIS, Squid, etc.(Soweit bin ich zufrieden))
2 Clients im Netzwerk dahinter (Win + SuSE)

Was ich bräuchte:
Ich habe mehrere eMail-Accounts im Web (bei web.de und t-online.de). Diese Mails sollen abgeholt werden (POP3, IMAP) Nun möchte ich von den Clients die Mails lesen können. (sowohl von Windows mit Netscape Mail als auch von Linux mit kMail) Ich möchte selbstverständlich auch Mails versenden können (über eins der Konten).

Ich habe auch schon im Forum gesucht, aber ich habe schnell aufgegeben: Im Unterschied zu allen Posts, die ich gefunden habe, habe ich keine Domain. Ich kann also Postfix o.ä. nicht so einfach einrichten, da ich nicht weiß, was ich in z.B. mydomain eintragen soll.
Bisher habe ich nur herausbekommen, dass ich fetchmail verwenden kann, um die Mail von den externen Servern zu mir zu bringen. Wie ich sie von da weiterkriege, weiß ich nicht.

Vielen Dank im Voraus
Christian
 
Hy,

richte dir ne Domain ein, z.B. mit Yast.
Wähle als TLD etwas, was es sicher nicht gibt und geben wird (.local war vorgesehen, spinnt aber bei Suse 9.1)
Nimm z.B. heim.lokal
Bei Postfix sind wichtig:
canonical (umschreiben intern->extern)
transport table (richtigen Server finden)


Mit diesen Hinweisen mal durch die Beschreibungen suchen

Grüße
 

dermichel

Advanced Hacker
dem kann ich nichts hinzufuegen!

in den config's wird ja alles genau beschrieben!

/etc/postfix/transport
/etc/postfix/canonical

bin mal wieder auf der gartenparty... bis dann ;-)
 
OP
C

Chris

Member
Hallo noch mal,
Ich glaube ihr habe mich ein bisschen schlecht ausgedrückt: Ich will erst mal Mails empfangen. Habe ja mal kurz probiert, weil alle immer sagen Postfix sei einfach zu konfigurieren.
Drum habe ich mal Postfix gestartet und Mal versucht mit fetchmail Mails von einem Mail-Konto abholen zu lassen. Ergebnis: Fetchmail kann die Mails nicht lokal an Port 25 abliefern. Hier bringt es auch nichts, die canonical zu verwenden, denn die ist ja, wenn ich das richtig verstanden habe, für Masquerading von innen nach außen zuständig.

Ne eigene Domain nach dem Schema *.local habe ich auch schon bei YAST eingestellt. (Darf ich da eigentlich jede Domain angeben, die bisher noch nicht vergeben ist???)

Eine 2. Möglichkeit wäre den Spass mit Postfix u.ä. ganz zu lassen und Routing/Masquerading zu verwenden. Was ist da sinnvoller/sicherer? Oder gibt es eine Möglichkeit Squid so einzustellen, dass er auch die Mail Ports mit dem Internet verbindet?

Vielen Dank schon Mal
Christian
 

dermichel

Advanced Hacker
fuer ein paar emails ist es weniger aufwand das alles ueber NAT
abzufackeln. aber man sollte den spassfaktor nicht vergessen ;-)
ein eigener mailserver mit spam- und virenschutz ist halt mal eine
endgeile sache! ;-) du kannst ein webfrontend aufsetzen und deine
mails unterwegs abrufen etc...

du hast also zwei moeglichkeiten:

1) lernen, verstehen und spass haben
(www.linux-tin.org -> da steht echt alles was du wissen musst!)

2) NAT machen und alles geht in 5 min...
wenn du nur NAT auf den host/port vom mailserver des providers
machst, sehe ich darin kein sicherheitsrisiko.
 
OP
C

Chris

Member
Hallo,
Ich habe mir für das mit dem lernen und verstehen entschieden.
Aber ich hatte Probleme mit der Umsetztung: Wenn ich eingebe
Code:
cyradm -user cyrus -auth login localhost
, dann verlangt er von mir ein IMAP-Passwort. Wenn ich das normale Unix/Linux-Passwort eingebe erhalte ich folgende Ausgabe:
Login failed: generic failure at /usr/lib/perl5/vendor_perl/5.8.1/i586-linux-thread-multi/Cyrus/IMAP/Admin.pm line 118
cyradm: cannot authenticate to server with login as cyrus
Im Log steht folgendes:
Aug 26 14:22:50 linux-jw master[4118]: about to exec /usr/lib/cyrus/bin/imapd
Aug 26 14:22:50 linux-jw imap[4118]: executed
Aug 26 14:22:50 linux-jw imapd[4118]: accepted connection
Aug 26 14:22:50 linux-jw imapd[4118]: OTP unavailable because can't read/write key database /etc/opiekeys: No such file or directory
Aug 26 14:22:57 linux-jw imapd[4118]: cannot connect to saslauthd server: No such file or directory
Aug 26 14:22:57 linux-jw imapd[4118]: badlogin: localhost[127.0.0.1] plaintext cyrus SASL(-1): generic failure: checkpass failed
Aug 26 14:24:00 linux-jw master[4112]: process 4118 exited, status 0

Ich verwende SuSE 9.0. Kann mir jemand bitte sagen, was das Problem ist?

Und noch ne 2. Frage hätte ich: Bei linux-tin.org stellt man ja relayhost auf den Server des ISP, um von dort Mails zu versenden. Ist es irgenwie möglich,
a) Von verschiedenen Mail-Providern zu versenden? (Anderer RelayHost je nach Sender-Adresse)
b) Für den internen Mail-Verkehr die Canonical auszuschalten (Damit kein Relay angewählt wird und damit die Mail unzustellbar wird) (Das wäre weniger wichtig)

Vielen Dank nochmal, ihr habt mir schon sehr geholfen (und das mit dem Spass haben stimmt)
Christian
 

dermichel

Advanced Hacker
du musst fuer cyrus ein passwd setzen.

bei sasl: saslpasswd -c cyrus
bei pam: passwd cyrus


fuer verschiedene relayhosts kannst du die /etc/postfix/transport nutzen.

z.b.: web.de smtp:mail.web.de:25

soll von dem host kein mx-lookup gemacht werden, musst du eine [] um den hostnamen machen.

z.b.: web.de smtp:[mail.web.de]:25

das geht uebrigens auch bei dem relayhost in der main.cf!

ueber die sache mit dem canonical muss ich mir mal gedanken machen -
so einen fall hatte ich noch nicht, da ich postfix eigentlich nur in
umgebungen mit standleitung usw einsetze.
 
OP
C

Chris

Member
Hallo,
Ich habe sowohl das Unix-Passwort angegeben (login-Passwort) als auch den Befehl saslpasswd2 -c cyrus ausprobiert: Bei Sasl loggt er nichts und sagt nur:
saslpasswd2: requested change was not needed
Das login-Passwort habe ich auch schon geändert (Es ist mal das gleiche um zu sehen ob irgenwas tut.)
Problem bleibt weiterhin. Gibt's sonst noch was, was ich übersehen haben könnte?

Gruß Christian
 
OP
C

Chris

Member
Hallo,
wo muss ich da was mit methode machen? Der saslauthd lief nicht, aber ihn zu starten bringt nicht den gewünschten Erfolg. Ich habe abe etwas anderes gefunden: Im Log steht jetzt:
Feb 7 12:03:28 server master[8744]: about to exec /usr/lib/cyrus/bin/imapd
Feb 7 12:03:28 server imap[8744]: executed
Feb 7 12:03:28 server imapd[8744]: accepted connection
Feb 7 12:03:28 server imapd[8744]: OTP unavailable because can't read/write key database /etc/opiekeys: No such file or directory
Feb 7 12:03:35 server imapd[8744]: unknown password verifier
Feb 7 12:03:35 server imapd[8744]: badlogin: localhost[127.0.0.1] plaintext cyrus SASL(-4): no mechanism available: checkpass failed
Feb 7 12:03:36 server smbd[8749]: [2000/02/07 12:03:36, 0] lib/util_sock.c:read_data(436)
Feb 7 12:03:36 server smbd[8749]: read_data: read failure for 4. Error = Connection reset by peer
Feb 7 12:03:36 server smbd[8751]: [2000/02/07 12:03:36, 0] lib/util_sock.c:read_data(436)
Feb 7 12:03:36 server smbd[8751]: read_data: read failure for 4. Error = Connection reset by peer
Verwende ich statt dessen
Code:
cyradm -user cyrus localhost
dann erhalte ich folgenden Log:
Feb 7 12:07:13 server imapd[8757]: accepted connection
Feb 7 12:07:13 server imapd[8757]: OTP unavailable because can't read/write key database /etc/opiekeys: No such file or directory
Feb 7 12:07:13 server perl: GSSAPI Error: Miscellaneous failure (see text) (unable to find realm of host localhost)
Feb 7 12:07:13 server imapd[8757]: DIGEST-MD5 server step 1
Feb 7 12:07:13 server perl: DIGEST-MD5 client step 2
Feb 7 12:07:16 server imapd[8757]: DIGEST-MD5 server step 2
Feb 7 12:07:16 server imapd[8757]: unable to open Berkeley db /etc/sasldb2: Permission denied
Feb 7 12:07:16 server imapd[8757]: unable to open Berkeley db /etc/sasldb2: Permission denied
Feb 7 12:07:16 server imapd[8757]: no secret in database
Feb 7 12:07:16 server imapd[8757]: badlogin: localhost[127.0.0.1] DIGEST-MD5 [SASL(-13): user not found: no secret in database]

Kannst du damit was anfangen?
Christian

PS: Ich habe mal die Teile im Log fett geschrieben, die mir etwas spanisch vorkommen.
 

dermichel

Advanced Hacker
genau ;-)

chmod 777 /etc/sasldb2 fuer den ersten test!

sollte das helfen, die richtigen rechte eintragen (wird wohl der user cyrus sein).

touch /etc/opiekeys und auch ein chmod 777 ausfuehren...


wegen der methode:

saslpasswd = PAM / etc/shadow
auxprop = sasldb2 (macht nur sinn wenn dann auch der postfix seine daten aus der DB zieht - smtpd_auth)


in der /etc/imapd.conf

sasl_pwcheck_method: auxprop
 
OP
C

Chris

Member
Hallo nochmal,
Das mit den Benutzerrechten hat gut geklappt. Ich habe die beiden Dateien (/etc/sasldb2 und /etc/opiekeys) dem Benutzer cyrus vermacht. (Ist das eigentlich gut so oder ein Sicherheitsrisiko?)
Als nächstes wollte ich die Benutzer erstellen. Dazu habe ich eingegeben: cm user.chris (Ich heiße Chris auf meiner Kiste). Wenn ich nun von kMail versuche auf den Server zuzugreifen, erhalte ich die Meldung, dass es den Benutzer nicht geben würde.
Ich habe daraufhin versucht, mich mit Chris auf dem Server mit cyradm einzuwählen. Hier kommt es wieder zu dem Problem von vorhin. Wenn ich chmod 666 auf die 2 Dateien anwende, funktioniert es.
Kannst du mir sagen was hier falsch läuft?

Bis dann
Christian
 
OP
C

Chris

Member
Hallo, nochmal!
Ich glaube das Problem liegt nicht direkt bei Cyrus:
Ich habe nur zum Test einen weiteren Benutzer aufgemacht. Irgendwie habe ich die Authentifikation hinbekommen. Das Problem vor dem ich jetzt stehe: kMail zeigt bei meinem Hauptbenutzer den gesamten Verzeichnisbaum von Cyrus an. Logge ich mich hingegen als dieser Test-User an, so sehe ich lediglich mein persönliches Verzeichnis.
Woran kann das liegen? Ich will natürlich nur, dass jeder User nur sein persönliches Verzeichnis sieht.

Vielen Dank schon mal für die Hilfe soweit.
Christian
 

dermichel

Advanced Hacker
sieh dir mal mit LAM/SAM die benutzerrechte im cyradm an! kann sein das du mailboxen an andere benutzer uebertragen hast usw.
 
OP
C

Chris

Member
Hallo,
ich glaub ich hab's: Ich hatte in meinen Usernamen Großbochstaben. Die haben die gesamte Autentifikation durcheinandergebracht! Mit Kleinbuchstaben läuft (fast) alles.
Aber ein paar Dinge wären da noch:
1) In linux-tin.org wird beschrieben, dass man Mails an root mithilfe der aliases auf einen Benutzer (z.B. roland) umleiten kann/soll/muss. Ich habe an anderer Stelle im Buch (Stichwort Open Folders) gelesen es wäre möglich Mails direkt in einen Unterordner zu versenden. Wenn ich also einen Ordner user.roland.root im Cyrus aufmache und ne Mail an roland+root@linux-tin.org schicke, müsste die doch eigentlich im Unterverzeichnis root auftauchen, oder? Wenn ich es direkt an diese Adresse schicke, sagt er, dass dieser User dem System nicht bekannt sei. (auch im Log steht nichts anderes) Wenn ich es an root schicke, landet die Mail im normalen Posteingang. Was kann ich machen, damit die Mail im Ordner root ankommt?
2) Die root-Mails auf den Clients befinden sich in der Postfix-Kette und hängen dort fest. (mailq!) Wie kriege ich die da raus und leite alle weiteren an den Hauptserver? Mit canonical und relayhost, oder?
3) Es gibt ja so eine Recipient_Canonical (siehe /usr/share/doc/packages/postfix/samples/sample-rewrite.cf). Wenn ich da reischreibe roland.huber@ISP.de roland@linux-tin.org schreibt er doch alle Mails von roland von @ISP.de zu @linux-tin.org um. Macht er das auch anderst herum? Also von @linux-tin.org zu @ISP.de? Wenn ja, wie kann ich das unterbinden?

Vielen Dank nochmal, das läuft schon fast.
Christian
 

Audiator

Newbie
dermichel schrieb:
fuer verschiedene relayhosts kannst du die /etc/postfix/transport nutzen.

z.b.: web.de smtp:mail.web.de:25

soll von dem host kein mx-lookup gemacht werden, musst du eine [] um den hostnamen machen.

z.b.: web.de smtp:[mail.web.de]:25

das geht uebrigens auch bei dem relayhost in der main.cf!

Hab ich das richtig verstanden ?
Meinen HauptISP trage ich in die main.cf (relayhost=smtp.isp.de:25) ein und weitere (arcor, web.de, gmx) würde ich in der transport eintragen ?
Könnte mir das jemand genauer erklären ??? :roll:
 
OP
C

Chris

Member
Hallo,
Bei mir hat's auch seine Zeit gebraucht, bis ich's kapiert habe:

Du hast hoffentlich linux-tin.org einmal kompett durchgelesen. Da findes du allgemeine Informationen und Infos, wie so ein Server richtig funktioniert.

Ich würde alle ISP-Hosts in die Transport eintragen:
1.) Du kannst internen Mail-Verkehr ermöglichen (siehe man transport).
2.) Wenn du ein Relay setzt, glaube ich, wird jede Mail über diese Adresse versandt. Zumindest ist so was bei mir mal passiert.
Von daher: Alle ISPs in die Transport-Table und das Problem wäre geritzt.
Damit die Mail dann noch ankommt die canonical verwenden.

Achtung: Wenn du deine Mails z.B. über foobar.ISP@ISP.de mit einem Benutzer foobar.local@local.domain versenden und mit diesem Mails empfangen möchtest sind 2 Einträge nötig: Einer der von @ISP nach @local umsetzt und einer für die Gegenrichtung. Damit du keine Schleifen produzierst, solltest du zwischen Empfang und Versandt in der canonical trennen: In der Main.cf sind direkt unter dem Eintrag für die canonical 2 weitere Einträge zu machen: sender_canonical_maps und recipient_canonical_maps. (Vgl. /usr/share/doc/packages/postfix/sample/sample-canonical.cf)

Ich hoffe, dass dir das geholfen hat
Christian
 

Audiator

Newbie
Hallo Chris...

erstmal vielen Dank für Deine Antwort.
Ich werd das nachher mal sofort ausprobieren !!

Falls ich nicht klar kommen sollte meld ich mich nochmal. :wink:

vielen Dank
Audiator
 

dermichel

Advanced Hacker
Chris schrieb:
Ich würde alle ISP-Hosts in die Transport eintragen:
1.) Du kannst internen Mail-Verkehr ermöglichen (siehe man transport).
2.) Wenn du ein Relay setzt, glaube ich, wird jede Mail über diese Adresse versandt. Zumindest ist so was bei mir mal passiert.
Von daher: Alle ISPs in die Transport-Table und das Problem wäre geritzt.


falsch. :)

man setzt einen relay host wie ein default_gateway.
alle emails die nicht lokal zugestellt werden, werden ueber diesen
relayserver ins internet versendet.
in die transport schreibt man nur abweichungen. ich habe das bei mir,
um z.b. an bestimmte domains an andere ports auszuliefern.

z.b.: domain.com smtp:[ip-adresse]:1025

oder wenn du lokal verschiedene mailserver nutzt (z.b. exchange)
und emails nach dem content/virusfilter weiterleiten moechtest.

fetchmail -> postfix -> amavis -> postfix -> exchange
 
Status
Für weitere Antworten geschlossen.
Oben