Wie kann ich postfix so einzwängen, daß es Mail niemals an andere Rechner als localhost ausliefert? Das ist auch ein Sicherheitsproblem. Man braucht einen lokalen MTA zB für Mails von cron, aber außerhalb der eigenen CPU sollte das direkt abgesägt werden. Eigentlich sollte das auch die Voreinstellung auf SUSE sein - wenn man mehr haben will, sollte man das ausdrücklich einschalten müssen. Insbesondere, wenn SuSEfirewall2 auch überhaupt keine Ausgangsfilterung kann (genauso wie der meistgebrauchte Firewall - ipcop). Rumgooglen bringt nur haufenweise, wie man postfix beibringt, Mail, die von außerhalb kommt, nur anzunehmen, wenn sie auch für lokale Benutzer gedacht ist. Für die andere Seite der Schlange (d.g. raus) finde ich aber nichts. Weiß jemand wie's geht? Brutal relayhost = localhost hilft erst mal, sieht aber nicht wie eine gute Lösung aus. Danke, Volker -- Volker Kuhlmann is list0570 with the domain in header http://volker.dnsalias.net/ Please do not CC list postings to me. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Volker Kuhlmann wrote:
Wie kann ich postfix so einzwängen, daß es Mail niemals an andere Rechner als localhost ausliefert? Das ist auch ein Sicherheitsproblem. Man braucht einen lokalen MTA zB für Mails von cron, aber außerhalb der eigenen CPU sollte das direkt abgesägt werden. Eigentlich sollte das auch die Voreinstellung auf SUSE sein - wenn man mehr haben will, sollte man das ausdrücklich einschalten müssen. Insbesondere, wenn SuSEfirewall2 auch überhaupt keine Ausgangsfilterung kann (genauso wie der meistgebrauchte Firewall - ipcop).
Postfix selber ist bestimmt nicht das Sicherheitsproblem, eher der Apache oder die php/perl-Scripte, die darauf laufen. Mit "inet_interfaces = localhost" lauscht Postfix nur auf localhost und kann keine Mails aus dem Netzwerk annehmen. Wenn du dann noch "authorized_submit_users = !wwwrun, static:anyone" setzt, darf der Webserver auch nicht Mails an Postfix über die Kommandozeile schicken. Alternativ setze hier nur die user, die Mails einliefern dürfen.
Rumgooglen bringt nur haufenweise, wie man postfix beibringt, Mail, die von außerhalb kommt, nur anzunehmen, wenn sie auch für lokale Benutzer gedacht ist. Für die andere Seite der Schlange (d.g. raus) finde ich aber nichts.
Weiß jemand wie's geht?
mydestination = localhost myorigin = localdomain.intern smtpd_recipient_restrictions = reject_unauth_destination Ich denke aber wirklich, dass du das falsche Einfalltor versuchst zu schließen. Wenn du diesen Server nicht alleine verwaltest, solltest du auf jeden Fall solche Hacks dokumentieren, damit dein Kollege/Nachfolger sich nicht die Haare ausrauft, weil er eine Mail an einen externen Account schicken soll. Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Danke!
Wie kann ich postfix so einzwängen, daß es Mail niemals an andere Rechner als localhost ausliefert? Das ist auch ein Sicherheitsproblem. Man braucht einen lokalen MTA zB für Mails von cron, aber außerhalb der eigenen CPU sollte das direkt abgesägt werden. Eigentlich sollte das auch die Voreinstellung auf SUSE sein - wenn man mehr haben will, sollte man das ausdrücklich einschalten müssen. Insbesondere, wenn SuSEfirewall2 auch überhaupt keine Ausgangsfilterung kann (genauso wie der meistgebrauchte Firewall - ipcop).
Postfix selber ist bestimmt nicht das Sicherheitsproblem, eher der Apache oder die php/perl-Scripte, die darauf laufen. Mit "inet_interfaces = localhost" lauscht Postfix nur auf localhost und kann keine Mails aus dem Netzwerk annehmen.
Wer sagt denn, daß es sich hier um einen Server handelt? Und nicht zB um ein Büro, bei dem ich nicht will, daß Arbeitsplatzrechner nach weltweit.net:25 loslegen? (Ok das wird dann auch per Firewall erledigt, aber darum geht es hier nicht.) Du packst das Problem auch wieder auf der Eingangsseite an. Was nach postfix reingeht, ist mir erst mal gleich, und läßt sich mit inet_interfaces=localhost regeln. Ich will postfix's Aktivitäten auf localhost beschränken, und zwar besonders für den Ausgang.
Wenn du dann noch "authorized_submit_users = !wwwrun, static:anyone" setzt, darf der Webserver auch nicht Mails an Postfix über die Kommandozeile schicken. Alternativ setze hier nur die user, die Mails einliefern dürfen.
Das beschränkt den Eingang, aber nicht den Ausgang nach weltweit.net:25.
mydestination = localhost myorigin = localdomain.intern smtpd_recipient_restrictions = reject_unauth_destination
Das beschränkt leider noch nicht einmal den Eingang für alles, was nicht nach localhost geht. Ich habe authorized_submit_users = !wwwrun, static:anyone inet_interfaces = localhost mydestination = localhost.$mydomain, localhost mydomain = site myhostname = localhost mynetworks_style = host myorigin = localhost relayhost = smtpd_client_restrictions = permit_inet_interfaces, reject_unknown_client_hostname smtpd_helo_required = yes smtpd_helo_restrictions = reject_invalid_helo_hostname, reject_unknown_helo_hostname smtpd_recipient_restrictions = reject_unauth_destination Und er transportiert immer noch munter nach weltweit.net. Mein Problem ist also noch nicht einmal Ansatzweise gelöst.
Ich denke aber wirklich, dass du das falsche Einfalltor versuchst zu schließen. Wenn du diesen Server nicht alleine verwaltest, solltest du auf jeden Fall solche Hacks dokumentieren, damit dein Kollege/Nachfolger sich nicht die Haare ausrauft, weil er eine Mail an einen externen Account schicken soll.
Kein Server, kein Kollege, und Doku gibts ausreichend in /etc/sysconfig/postfix, wo jeder zuerst hinsieht. Volker -- Volker Kuhlmann is list0570 with the domain in header http://volker.dnsalias.net/ Please do not CC list postings to me. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Volker Kuhlmann wrote:
Danke!
Wie kann ich postfix so einzwängen, daß es Mail niemals an andere Rechner als localhost ausliefert? Das ist auch ein Sicherheitsproblem. Man braucht einen lokalen MTA zB für Mails von cron, aber außerhalb der eigenen CPU sollte das direkt abgesägt werden. Eigentlich sollte das auch die Voreinstellung auf SUSE sein - wenn man mehr haben will, sollte man das ausdrücklich einschalten müssen. Insbesondere, wenn SuSEfirewall2 auch überhaupt keine Ausgangsfilterung kann (genauso wie der meistgebrauchte Firewall - ipcop). Postfix selber ist bestimmt nicht das Sicherheitsproblem, eher der Apache oder die php/perl-Scripte, die darauf laufen. Mit "inet_interfaces = localhost" lauscht Postfix nur auf localhost und kann keine Mails aus dem Netzwerk annehmen.
Wer sagt denn, daß es sich hier um einen Server handelt? Und nicht zB um ein Büro, bei dem ich nicht will, daß Arbeitsplatzrechner nach weltweit.net:25 loslegen? (Ok das wird dann auch per Firewall erledigt, aber darum geht es hier nicht.)
Du packst das Problem auch wieder auf der Eingangsseite an. Was nach postfix reingeht, ist mir erst mal gleich, und läßt sich mit inet_interfaces=localhost regeln. Ich will postfix's Aktivitäten auf localhost beschränken, und zwar besonders für den Ausgang.
Äh, hallo...?!? Es ist eigentlich das normale Schema, das Übel an der Wurzel anzupacken und nicht zu versuchen, sich mit Symptomen herumzuprügeln. Was machst du mit einer Mail, die schon eingeliefert wurde, aber nicht nach localhost geht? Soll diese automatisch gelöscht werden, auf HOLD gesetzt werden, zu einer Admin-Adresse umgeleitet werden? Bist du der einzige Anwender auf diesem PC oder können auch andere darauf arbeiten?
Wenn du dann noch "authorized_submit_users = !wwwrun, static:anyone" setzt, darf der Webserver auch nicht Mails an Postfix über die Kommandozeile schicken. Alternativ setze hier nur die user, die Mails einliefern dürfen.
Das beschränkt den Eingang, aber nicht den Ausgang nach weltweit.net:25.
mydestination = localhost myorigin = localdomain.intern smtpd_recipient_restrictions = reject_unauth_destination
Das beschränkt leider noch nicht einmal den Eingang für alles, was nicht nach localhost geht. Ich habe
authorized_submit_users = !wwwrun, static:anyone inet_interfaces = localhost mydestination = localhost.$mydomain, localhost mydomain = site myhostname = localhost mynetworks_style = host myorigin = localhost relayhost = smtpd_client_restrictions = permit_inet_interfaces, reject_unknown_client_hostname smtpd_helo_required = yes smtpd_helo_restrictions = reject_invalid_helo_hostname, reject_unknown_helo_hostname smtpd_recipient_restrictions = reject_unauth_destination
Bitte mal Ausgabe von "postconf -n". Eines solltest du auf jeden Fall beachten: - Mails, die über die Kommandozeile eingeliefert werden (mail, /usr/sbin/sendmail etc.) laufen nicht über die normalen smtpd_*_restrictions. Schließlich wird ja auch kein SMTP verwendet zur Einlieferung. Alle per SMTP eingehenden Mails kannst du sehr wirksam und fein granuliert mit den restrictions regulieren. Wenn die Mails über die Kommandozeile eingeliefert werden, dann beschränke die Erlaubnis mit authorized_submit_users auf die notwendigen Daemons (NICHT static:anyone). Sandy -- Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Wed 03 Jan 2007 00:42:54 NZDT +1300, Sandy Drobic wrote:
Wie kann ich postfix so einzwängen, daß es Mail niemals an andere Rechner als localhost ausliefert? Das ist auch ein Sicherheitsproblem. Man braucht einen lokalen MTA zB für Mails von cron, aber außerhalb der eigenen CPU sollte das direkt abgesägt werden. Eigentlich sollte das auch die Voreinstellung auf SUSE sein - wenn man mehr haben will, sollte man das ausdrücklich einschalten müssen. Insbesondere, wenn SuSEfirewall2 auch überhaupt keine Ausgangsfilterung kann (genauso wie der meistgebrauchte Firewall - ipcop).
Als Zusammenfassung: Postfix scheint das nicht wirklich zu können. Einlieferung nach Postfix per SMTP zu beschränken ist sinnlos wenn lokale Benutzer auch per /usr/sbin/sendmail einliefern können. Wieviel sich lokale Benutzer untereinander lokal unterhalten ist mir gleich.
Du packst das Problem auch wieder auf der Eingangsseite an. Was nach postfix reingeht, ist mir erst mal gleich, und läßt sich mit inet_interfaces=localhost regeln. Ich will postfix's Aktivitäten auf localhost beschränken, und zwar besonders für den Ausgang.
Äh, hallo...?!? Es ist eigentlich das normale Schema, das Übel an der Wurzel anzupacken und nicht zu versuchen, sich mit Symptomen herumzuprügeln.
Wie läßt sich die Einlieferung dann zuverlässig beschränken? Und zwar für alle Eingangsmöglichkeiten? Debian zB liefert per Voreinstellung auch keine Mail nach außerhalb aus. Ich sollte nicht wirklich erklären müssen, warum das eine gute Voreinstellung ist. Wer mehr haben will, kann das ganz einfach konfigurieren.
Was machst du mit einer Mail, die schon eingeliefert wurde, aber nicht nach localhost geht? Soll diese automatisch gelöscht werden, auf HOLD gesetzt werden, zu einer Admin-Adresse umgeleitet werden?
Diese Frage ist zweitrangig. Löschen wäre gut, spart mir per cron in /var/spool/postfix/defer* etc alte Dateien zu löschen. Als Lösungsmöglichkeiten bieten sich an: 1) iptables. Da SuSEfirewall2 Datenausgang nicht beschränken kann, muß man /etc/sysconfig/scripts/SuSEfirewall2-custom hacken. Ist aber nicht so schwer, iptables muß man aber sprechen können. 2) Man tut 1) auf seinem Firewall. 3) In main.cf relayhost=localhost oder =gibtesnicht setzen. 4) In /etc/postfix/master.cf die beiden Zeilen, die auf smtp enden, auskommentieren. Danke für den Tip, Sandy! 5) ??? Volker -- Volker Kuhlmann is list0570 with the domain in header http://volker.dnsalias.net/ Please do not CC list postings to me. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Saturday 20 January 2007 05:46, Volker Kuhlmann wrote:
Wie kann ich postfix so einzwängen, daß es Mail niemals an andere Rechner als localhost ausliefert? Das ist auch ein Sicherheitsproblem. Man braucht einen lokalen MTA zB für Mails von cron, aber außerhalb der eigenen CPU sollte das direkt abgesägt werden. Eigentlich sollte das auch die Voreinstellung auf SUSE sein - wenn man mehr haben will, sollte man das ausdrücklich einschalten müssen. Insbesondere, wenn SuSEfirewall2 auch überhaupt keine Ausgangsfilterung kann (genauso wie der meistgebrauchte Firewall - ipcop).
Als Zusammenfassung: Postfix scheint das nicht wirklich zu können. Einlieferung nach Postfix per SMTP zu beschränken ist sinnlos wenn lokale Benutzer auch per /usr/sbin/sendmail einliefern können. Wieviel sich lokale Benutzer untereinander lokal unterhalten ist mir gleich.
Du packst das Problem auch wieder auf der Eingangsseite an. Was nach postfix reingeht, ist mir erst mal gleich, und läßt sich mit inet_interfaces=localhost regeln. Ich will postfix's Aktivitäten auf localhost beschränken, und zwar besonders für den Ausgang.
Äh, hallo...?!? Es ist eigentlich das normale Schema, das Übel an der Wurzel anzupacken und nicht zu versuchen, sich mit Symptomen herumzuprügeln.
Wie läßt sich die Einlieferung dann zuverlässig beschränken? Und zwar für alle Eingangsmöglichkeiten?
Wie Sandy bereits geschrieben hat, solltest Du dir http://www.postfix.org/postconf.5.html#authorized_submit_users mal dazu ansehen. Was über den smtpd reinkommt, kannst Du über smtpd_*_restrictions konfigurieren.
Debian zB liefert per Voreinstellung auch keine Mail nach außerhalb aus. Ich sollte nicht wirklich erklären müssen, warum das eine gute Voreinstellung ist. Wer mehr haben will, kann das ganz einfach konfigurieren.
Ja, Debian ist schon was ganz besonderes.
Was machst du mit einer Mail, die schon eingeliefert wurde, aber nicht nach localhost geht? Soll diese automatisch gelöscht werden, auf HOLD gesetzt werden, zu einer Admin-Adresse umgeleitet werden?
Diese Frage ist zweitrangig. Löschen wäre gut, spart mir per cron in /var/spool/postfix/defer* etc alte Dateien zu löschen.
Als Lösungsmöglichkeiten bieten sich an:
1) iptables. Da SuSEfirewall2 Datenausgang nicht beschränken kann, muß man /etc/sysconfig/scripts/SuSEfirewall2-custom hacken. Ist aber nicht so schwer, iptables muß man aber sprechen können.
2) Man tut 1) auf seinem Firewall.
3) In main.cf relayhost=localhost oder =gibtesnicht setzen.
4) In /etc/postfix/master.cf die beiden Zeilen, die auf smtp enden, auskommentieren. Danke für den Tip, Sandy!
5) ???
default_transport = discard Ob das sauber ist sei dahingestellt, auf jedenfall besser wie 1)-4). Du solltest nach Möglichkeit Mails an externe Adressen gar nicht erst in Postfix hereinlassen. Siehe Link oben und smtpd_*_restrictions. -- Andreas -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Volker Kuhlmann schrieb:
man das ausdrücklich einschalten müssen. Insbesondere, wenn SuSEfirewall2 auch überhaupt keine Ausgangsfilterung kann (genauso wie der meistgebrauchte Firewall - ipcop).
Für Ipcop gibt es passende Add-Ons und bei Suse hilft dann der Vi weiter. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFFmOsKgRRKXJrQjTsRAl9OAKCibHLGRH/zSJe/6M7OT6iMG7BCPQCfUU/T 5UJEN2TAW8ZbZ/ke7gTUEwA= =K1V/ -----END PGP SIGNATURE----- -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (4)
-
Andreas Winkelmann
-
Ralf Prengel
-
Sandy Drobic
-
Volker Kuhlmann