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

Postfix für ein kleines LAN

Status
Für weitere Antworten geschlossen.

NeoMan

Member
Hallo Linux-Gemeinde,

brauche mal eure Hilfe. Hatte noch nicht viel mit MTA's zu tun.

Folgendes Szenario:

Ich möchte ein kleines LAN aufbauen, mit 5 WinXP Clients und ein Linux Rechner als Router. Dabei sollen die Win-Client E-Mails über den Linux-Router ins Netz schicken und über den Linux-Router E-Mails aus dem Internet abholen können. Die E-Mails sollen dabei, bevor sie bei den Clients ankommen, vom Router auf Viren geprüft werden.

Ich stelle mir eine Konfiguration mit Postfix vor. Auf dem Router möchte ich kein DNS konfigurieren. Jeder Client hat dabei eine andere E-Mail-Adresse bei einem jeweils anderen Provider. Z.B. der eine bei freenet, der andere bei 1&1 u.s.w.

Wie gesagt, mir gehts hauptsächlich um die zentrale Virenprüfung, bevor die Mail beim Client auf dem Rechner landen.


Wie sieht eine solche Konfiguration nun auf dem Router aus?

Welche Möglichkeiten gibt es für Mailabholung?

Wie muß Postfix konfiguriert werden?

Und welche Programme müssen in "Einklang" gebracht werden?

Gibt es ein brauchbaren Howto für dieses Szenario?


MfG NeoMan
 
A

Anonymous

Gast
Vielleicht hilft dir die Anleitung unter http://www.linux-tin.org/ weiter.

Mfg. Mercedesdriver :)
 

pft

Advanced Hacker
Hallo,

fast genau dieses Szenario betreibe ich seit gut einem Jahr erfolgreich.

Die eingesetzten Programme sind
* postfix als MTA
* fetchmail zum abholen der Mail
* uw-imap als imap server
* amavisd-new zum einbinden von
+ spamassassin als spam filter
+ antivir als virenfilter, viele andere werden problemlosunterstützt

wesenltiche quelle für infos isst www.postfix.org, insbesondere konfiguration von postfix und die einbindung von amavisd-new.
Siehe dazu auf der Postfixseite unter Documentation den Block über Content-Filter
Ich verwende die Variante "After-queue content filter"

Falls Du Probleme hast melde doch noch mal
 
OP
N

NeoMan

Member
Danke erstmal für eure Antworten. Die Mailabholung mit fetchmail ist mir klar, habe ich erfolgreich konfiguriert.

Der Versand der Mails ist mir allerdings noch nicht klar. Wie muß ich das Verstehen. Da ja jeder eine andere Mail-Adresse hat mit jeweils einer anderen Domain, als der eine name@freenet.de, der andere name@1und1.de, wie funktioniert das mit den Versand?

Bitte gebt mir da noch weitere Infos.


MfG NeoMan
 

pft

Advanced Hacker
wo ist Dein problem?

der Mail client erstellt sowohl den Header (to:, from: etc.) als auch den Envelope. Letzteren indem er die Mail per SMTP versendet. Schau Dir deine Client Konfiguration mal genau an. ist übrigens unabhängig davon wie Du Mails liest (IMAP, POP etc.)

Einzige Änderung gegenüber "einfachen" Internet clients ist, dass Du auf den Clients nicht den SMTP server des providers einträgst sondern Deinen eigenen.

Dieser wiederum verwendet den SMTP server des Providers als Relay (-> Eintrag in der postfix config).

Also stell Dir den postfix erst mal als Drehscheibe (kannst auch Router sagen) für emails vor. Er routet sie nur, verändert sie aber nicht. Was übrigens eine heilige Eigenschaft von MailTransferAgents ist.

Alle Änderungen im header sind spezialfälle die entsprechend konfiguriert werden müssen. Die sehe ich bei Dir erst mal nicht.

Ich schlage vor Du gehst Schritt für Schritt vor vom Einfachen zum Komplizierten. Du wirst erstaunt sein wie schnell Du Erfolge erzielst.
 

TeXpert

Guru
Vorsicht: nicht jeder Provider-SMTP relayed alle Adressen oder nimmt die an! z.B. nimmt GMX keine Mails an, die einen GMX-Absender haben, aber _nicht_ über GMX relayed wurden! Hier musst Du etwas tiefer graben und ein Sender-dependend-Relaying machen, wenn also ein Client eine Mail mit a@b.c als Absender Verschickt, sollte Dein Mailserver für diese Mail mail.b.c als Relay wählen!
 
OP
N

NeoMan

Member
Ich verteh das mit dem Versand bzw. Relaying immer noch nicht. Zum Beispiel die angabe

Code:
$mydomain
muss einen vollständigen im DNS auflösbaren Hostnamen des Servers enthalten, also inclusive der Domain (FQDN).

Da ich meinen Router nur dazu verwenden möchte die ein und ausgehenden Mails auf Viren zu filtern, zentral, für alle WinClients.

Welchen FQDN muß ich da angeben? Brauch ich selber einen DNS auf meinen Router? Mein Router soll die Mail der User ja nur durchreichen und da eben auf Viren prüfen. Wie funktioniert das mit den unterschiedlichen Mail-Adressen?

Hab ich irgendwie einen kompletten Denkfehler?


MfG NeoMan
 

crazyrolf

Advanced Hacker
Du wolltest wissen, wie deine Clients über den Server Ihre Mails verschicken.

1. main.cf einrichten bzw. ergänzen.

#IP Adressbereich deines LANs
mynetworks = 192.168.1.0/24, 127.0.0.0/8

#Dies erlaubt das versenden über deinen Server vom oben genannten Adressbereich aus.
smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination

#Damit du kein offenes Relay bist.
proxy_interfaces = 192.168.1.1 / Router IP

Jetzt Postfix reloaden.

rcpostfix reload / als root eingeben.

Bei den Clients als SMTP-Server die IP deines Linux-Servers eintragen (feste IP am Server).

Fals du eine Authentifizierung haben möchtest verweise ich auf diese Seite.

Erst cyrus sasl einrichten:

http://www.hambach-web.de/wwwlinux/forum/viewtopic.php?t=32
Dann postfix mit saslauthd kompilieren:

http://www.hambach-web.de/wwwlinux/forum/viewtopic.php?t=30


Gruß Crazy
 

pft

Advanced Hacker
Hi Neoman,

Was soll der Punkt mit der $mydomain?

das ist eine Variable, die aufgrund anderer Kofigurationsfiles deines Systems mit der dort irgendwo eingestellten Domäne belegt ist.

Sie beeinflußt aber Postfix überhaupt nicht, solanger Du die Variable nicht benutzt und das mußt Du nicht.

Postsfix wird durch setzen von Parameter beeinflußt.
So findest Du i.d.R. in main.cf defaultmäßig einen Eintrag, der so ähnlich aussiueht wie:
mydestination = $myhostname, localhost.$mydomain, $mydomain

Für dich ist entscheidend, dass Du diesen Parameter (links vom =) mit der Liste der Ziele versiehst für die deine Postfix-instanz zuständig ist (rechts vom Gleichheitszeichen). Dabei kannst Du vorhandene und voreinbelegtee Variablen (die mit dem $) nutzen oder auch nicht. Nutze Sie aber nur wenn Du weißt womit sie belegt sind!! Wenn nicht schreibe Klartext.

Alle Mails an Adressen die in dieser Liste nicht abgedeckt sind versucht postfix weiterzuleiten und wenn er dazu keine brauchbaren Instruktionen hat dann kracht es halt (bounce). was soll er auch sinst tun?

Sorry wennich hier sehr tief in die Basics einsteige, aber deine Farge zu $mydomain lies mich auf massive Wissenslücken schliessen.
Versuch mal dein Grundwissen mittels lesen aufzubessern bevor Du hier postest - auch wenn es Arbeit macht. Aber Du läufst sonst sehr schnell Gefahr all die hilfreichen Antworten nicht zu verstehen.

Gruß
 
OP
N

NeoMan

Member
Danke erstmal für eure Antworten.

Mal anders herum gefragt, ist es möglich, mein Vorhaben für das LAN auch zu nutzen bzw. so zu konfigurieren, wenn ich keine eigene Domain habe?
Mit der Domain komm ich nämlich ins stolpern. Wenn ich ja eine LAN betreibe und der Router die Mail nur durchleiten soll, wo nehme ich da die Domain her.


MfG NeoMan
 

pft

Advanced Hacker
Jetzt kommen wir der Sache langsam näher.

Eine Domain hast Du in jedem Fall im Sinne von: deine Mailadresse hat einen Domainteil.

Eine andere Frage ist ob Du eine _eigene_ Domain registiert hast. Das wurde hier ganz allgemein unterstellt, ist aber weitgehend egal. Eintragen mußt Du den Domainteil (das vor dem @) deiner Mailadresse unter der dir externe Leute Mail senden, also genau genommen die Adresse Deiner Mailbox auf dem 1und1 Server.

Um auch internen mailversand ohne Routing über den 1und1 Server zu ermöglichen ud einige andere Funktionen nicht zu behindern solltest Du auch die Teile localhost.$mydomain und $myhostname und evtl. auch platt localhost in die Liste aufnehmen.
 
OP
N

NeoMan

Member
Ja jetzt kommen wir der Sache näher. Eine eigene Domain besitze ich nicht. Wie sieht die Sache aber aus, wie ich oben schon geschildert habe, wenn in dem LAN jeder User eine andere Maildomain hat. Wie wird dies konfiguriert?
Übrigens, die Domain ist das nach dem @ (als beispiel 1und1). Darauf folgt die Topleveldomain (spricht de).

Und wo soll ich denn den Domainteil, vor dem @, eintragen?
 

crazyrolf

Advanced Hacker
spielt überhaupt keine Rolle welche Absender-Addi ein user hat.
Wenn du alle Mails über den Server laufen lassen möchtest, musst du z.B. alle useren auf dem Server anlegen, damit sie ein verzeichniss haben worin die Mails, die du z.B. mit fetchmail abrufst landen.
Oder Virtuelle Acconds anlegen in einer MySQL Datenbank.

Versenden können alle einfach über SMTP (IP vom Server), dafür musst du deine main.cf dementsprechend einrichten. Absender spielt wie gesagt keine Rolle.

Gruß Crazy
 
OP
N

NeoMan

Member
Welche Parameter in der main.cf muß ich den nun konfigurieren. Dies ist ja nun das einfachste was man mit postfix anstellen kann. Aber ich weiß nicht welche Parameter ich konfigurieren muß.

Wäre nett, wenn mir das jemand sagen kann. Vorrausgesetzt ihr habt mein Vorhaben richtig verstanden.

Wie gesagt, mir geht es nur um die Virenprüfung der Mails, bevor sie beim Client auf dem Rechner landen.


MfG NeoMan
 

crazyrolf

Advanced Hacker
also, damit di emails angenommen werden:

IP anpassen an deine!
mynetworks = 192.168.1.0/24, 127.0.0.0/8

damit sie rausgeschickt werden:

smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination


Das ist jetzt ohne jegliche authentifizierung!

crazy
 

pft

Advanced Hacker
jetzt wird das aber langsam kostenpflichtig :)

ok ich verstehe wenn du die mailadressen hier nicht posten willst, das heißt aber diesen Teil der Transferleistung must Du dann selbst erbringen.

nehemen wir mal an du hast 3 user mit folgende mail adressen und logins bei den providern
hans@gmx.de, username uhans, password pwhans
fritz@web.de, username ufritz, password pwfritz
anna@freenet.de, username uanna, password pwanna

dann tust Du folgendes:
1. Du trägst in main.cf ein:
mydestinations = $myhostname,localhost.$mydomain,$mydomain
dabei gehe ich davon aus dass $mydomain irgendwie sinnvoll belegt ist. Das ist aber erstmal nur für interne direktmails ohne den Weg über das Internet relevant, die Du vielleicht gar nicht brauchst also lassen wir das erst mal
2. Du legst drei entsprechende user an. um es einfach zu machen nennst Du sie hans,fritz,anna. Sie können auch anders heissen aber das macht es jetzt kompliziert; die user brauchen keinen login!
3. du machst drei einträge in der fetchmailrc:
poll "pop.gmx.net" protocol POP3 user uhans there with password "pwhans" is hans here
poll "pop server von web.de" protocol POP3 user ufritz there with password "pwfritz" is fritz here
poll "pop server von web.de" protocol POP3 user ufritz there with password "pwfritz" is user anna here

damit leigen dann erst mal alle incoming mails auf dem server. Wie Deine user sie abholen hast Du uns noch nicht verraten. Falls mit POP dann must du noch einen POP server einrichten. Habe ich noch nicht gemacht kann aber nicht schwierig sein.

In den Clients müssen Deine user dann diesen Server sowohl als POP als auch als SMTP server eintragen und nicht mehr die von freenet, gmx und web.de

Nun hoffe ich mal ich habe auf die Schnelle keinen Bug reingebracht.

Good luck und versuch mal ein bischen was selbst zu lesen!

Bei weiteren Fragen erwarte ich jetzt aber konkrete Fehlermeldungen, d.h. dass Du das erst mal umsetzt
 
OP
N

NeoMan

Member
Ok, ich werde es jetzt am Wochenende testen. Eine eigene Domain habe ich nicht. Dadurch kann ich die Variable $mydomain nicht belegen. Ich möchte intern im LAN auch keine Mails versenden.

Ich meld mich nach dem testen nochmal...


MfG NeoMan
 

crazyrolf

Advanced Hacker
myhostname = rolf.linux.de
mydomain = linux.de

das ist der name deines Rechners du nase!!!!!!!!!!!!!!!!!!!!!


crazy

lesen bildet!

Beispiel main.cf

http://www.hambach-web.de/wwwlinux/forum/viewtopic.php?t=11
 
OP
N

NeoMan

Member
Wenn lesen bildet, dann solltest du meine Beiträge richtig deuten können, crazyrolf. Soviel zum schlauen Beitrag "lesen bildet".

Hab inzwischen alles richtig konfiguriert, läuft nun nach meinen Vorstellungen...

Bei anderen Themen kann ich mit Sicherheit euch weiterhelfen.


MfG NeoMan
 
Status
Für weitere Antworten geschlossen.
Oben