Hallo ML, kann ich bei postfix das Mailen bestimmten lokalen Usern verbieten und anderen erlauben ? postfix-2.5.6-4.8.4. Vielen Dank für alle Tipps. Bernd -- Bernd Lentes Systemadministration Institut für Entwicklungsgenetik HelmholtzZentrum münchen bernd.lentes@helmholtz-muenchen.de 089 3187 1241 http://www.helmholtz-muenchen.de/idg Success is the sum of small efforts, repeated day in and day out. -- 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 12.03.2010 15:52, Lentes, Bernd wrote:
Hallo ML,
kann ich bei postfix das Mailen bestimmten lokalen Usern verbieten und anderen erlauben ?
postfix-2.5.6-4.8.4.
Vielen Dank für alle Tipps.
Ja. Details dazu hängen von deiner Konfig ab. Insbesondere, ob das Binary /usr/sbin/sendmail verwendet wird oder das Mailen über das SMTP-Protokoll geschieht. Zugriffsbeschränkungen über das Binary kann man hier einrichten: http://www.postfix.org/postconf.5.html#authorized_submit_users authorized_submit_users = !www, static:all So darf der lokale User www nicht /usr/sbin/mail benutzen. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@)drobic (.) de -- 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
Sandy Drobic schrieb:
Details dazu hängen von deiner Konfig ab. Insbesondere, ob das Binary /usr/sbin/sendmail verwendet wird oder das Mailen über das SMTP-Protokoll geschieht.
Zugriffsbeschränkungen über das Binary kann man hier einrichten: http://www.postfix.org/postconf.5.html#authorized_submit_users
authorized_submit_users = !www, static:all
So darf der lokale User www nicht /usr/sbin/mail benutzen.
Hallo Sandy, ich kenn mich gar nicht mit postfix aus. Wie kann ich erkennen, welche Konfiguration ich habe ? Es gibt bei mir ein binary sendmail: vm53200-9:/etc/postfix # which sendmail /usr/sbin/sendmail Ich möchte einfach bestimmten lokalen Usern das Mailen komplett unmöglich machen, da diese Accounts externe Projektpartner sind. Bernd-- 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 12.03.2010 17:17, Lentes, Bernd wrote:
Sandy Drobic schrieb:
Details dazu hängen von deiner Konfig ab. Insbesondere, ob das Binary /usr/sbin/sendmail verwendet wird oder das Mailen über das SMTP-Protokoll geschieht.
Zugriffsbeschränkungen über das Binary kann man hier einrichten: http://www.postfix.org/postconf.5.html#authorized_submit_users
authorized_submit_users = !www, static:all
So darf der lokale User www nicht /usr/sbin/mail benutzen.
Hallo Sandy,
ich kenn mich gar nicht mit postfix aus. Wie kann ich erkennen, welche Konfiguration ich habe ? Es gibt bei mir ein binary sendmail: vm53200-9:/etc/postfix # which sendmail /usr/sbin/sendmail Ich möchte einfach bestimmten lokalen Usern das Mailen komplett unmöglich machen, da diese Accounts externe Projektpartner sind.
In dem Fall musst du alle Möglichkeiten sperren für diese Anwender. Natürlich kann es sein, dass dann andere Anwender/Programme auch in Probleme laufen, weil solche Einschränkungen vielleicht zu restriktiv sind. Die wichtigste Frage ist natürlich, ob die Anwender einen Shellaccount wirklich brauchen. Wenn nicht, macht dies vieles einfacher. (^-°) Punkt1: Senden von der Kommandozeile über das Programm "mail|mailx|nail" bzw. /usr/sbin/sendmail: Hier muss mann die User über den Parameter authorized_submit_users sperren: postconf -e "authorized_submit_users = !user1, !user2, static:all" Das hat keine Nebenwirkungen für andere User oder Programme. Punkt2: Das Versenden über SMTP (Mailprogramm verwendet lokalen Server als Mailserver) Hier wird es schon etwas kitzliger, wenn man nicht aufpasst. Grundsätzlich soltest du dann eine Authentifikation über Benutzername/Passwort erfordern, bevor Mails angenommen werden. Das Problem ist, dass ein Mailserver meistens Mails vom lokalen Server ohne Einschränkung durchlässt. Der Rückgabeport von Amavisd-new (wenn eine Filterung nach Spam und Viren eingebunden ist) sieht etwa so aus: 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o smtpd_proxy_filter= -o smtpd_authorized_xforward_hosts=127.0.0.0/8 -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_restriction_classes= -o smtpd_data_restrictions= -o mynetworks=127.0.0.0/8 Hier wird der lokale Server als vertrauenswürdig angesehen und nimmt die Mails direkt ohne weitere Prüfung an. Dies müsstest du dann umstellen auf -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject Dafür musst du dann aber auch dem Client von Postfix beibringen, sich zu authentifizieren. Das ist noch ohne große Probleme möglich. Wenn aber auch Amavisd-new eingesetzt wird, dann wird es haarig, da ich bisher noch keine Konfiguration für SASL dort gesehen habe. Schicke mal die Ausgabe von "postconf -n" und /etc/postfix/master.cf , dann kann ich das genauer sagen. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@)drobic (.) de -- 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
Sandy Drobic schrieb:
In dem Fall musst du alle Möglichkeiten sperren für diese Anwender. Natürlich kann es sein, dass dann andere Anwender/Programme auch in Probleme laufen, weil solche Einschränkungen vielleicht zu restriktiv sind.
Die wichtigste Frage ist natürlich, ob die Anwender einen Shellaccount wirklich brauchen. Wenn nicht, macht dies vieles einfacher. (^-°)
Ja, die brauchen einen shellaccount.
Punkt1: Senden von der Kommandozeile über das Programm "mail|mailx|nail" bzw. /usr/sbin/sendmail:
Hier muss mann die User über den Parameter authorized_submit_users sperren:
postconf -e "authorized_submit_users = !user1, !user2, static:all"
Das hat keine Nebenwirkungen für andere User oder Programme.
Punkt2: Das Versenden über SMTP (Mailprogramm verwendet lokalen Server als Mailserver)
Frage: kann man das Versenden über SMTP nicht generell abschalten, wenn das so kompliziert zu konfigurieren ist ? Oder wird das benötigt ?
Schicke mal die Ausgabe von "postconf -n" und /etc/postfix/master.cf , dann kann ich das genauer sagen.
vm53200-9:/etc/postfix # postconf -n alias_maps = hash:/etc/aliases biff = no canonical_maps = hash:/etc/postfix/canonical command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/lib/postfix data_directory = /var/lib/postfix debug_peer_level = 2 defer_transports = disable_dns_lookups = no disable_mime_output_conversion = no html_directory = /usr/share/doc/packages/postfix/html inet_interfaces = localhost inet_protocols = all mail_owner = postfix mail_spool_directory = /var/mail mailbox_command = 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 = $myhostname, localhost.$mydomain myhostname = vm53200-9.helmholtz-muenchen.de mynetworks_style = subnet 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 = no smtp_use_tls = no smtpd_client_restrictions = smtpd_helo_required = no smtpd_helo_restrictions = smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination smtpd_sasl_auth_enable = no smtpd_sender_restrictions = hash:/etc/postfix/access smtpd_use_tls = no strict_8bitmime = no strict_rfc821_envelopes = no transport_maps = hash:/etc/postfix/transport unknown_local_recipient_reject_code = 550 virtual_alias_domains = hash:/etc/postfix/virtual virtual_alias_maps = hash:/etc/postfix/virtual vm53200-9:/etc/postfix # cat master.cf # # Postfix master process configuration file. For details on the format # of the file, see the Postfix master(5) manual page. # # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - n - - smtpd #submission inet n - n - - smtpd # -o smtpd_etrn_restrictions=reject # -o smtpd_client_restrictions=permit_sasl_authenticated,reject #smtps inet n - n - - smtpd # -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes #submission inet n - n - - smtpd # -o smtpd_etrn_restrictions=reject # -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes #628 inet n - n - - qmqpd pickup fifo n - n 60 1 pickup cleanup unix n - n - 0 cleanup qmgr fifo n - n 300 1 qmgr #qmgr fifo n - n 300 1 oqmgr #tlsmgr unix - - n 1000? 1 tlsmgr rewrite unix - - n - - trivial-rewrite bounce unix - - n - 0 bounce defer unix - - n - 0 bounce trace unix - - n - 0 bounce verify unix - - n - 1 verify flush unix n - n 1000? 0 flush proxymap unix - - n - - proxymap smtp unix - - n - - smtp # When relaying mail as backup MX, disable fallback_relay to avoid MX loops relay unix - - n - - smtp -o fallback_relay= # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 showq unix n - n - - showq error unix - - n - - error discard unix - - n - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - n - - lmtp anvil unix - - n - 1 anvil #localhost:10025 inet n - n - - smtpd -o content_filter= scache unix - - n - 1 scache # # ==================================================================== # Interfaces to non-Postfix software. Be sure to examine the manual # pages of the non-Postfix software to find out what options it wants. # # Many of the following services use the Postfix pipe(8) delivery # agent. See the pipe(8) man page for information about ${recipient} # and other message envelope options. # ==================================================================== # # maildrop. See the Postfix MAILDROP_README file for details. # Also specify in main.cf: maildrop_destination_recipient_limit=1 # maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient} cyrus unix - n n - - pipe user=cyrus argv=/usr/lib/cyrus/bin/deliver -e -r ${sender} -m ${extension} ${user} uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix - n n - - pipe flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient procmail unix - n n - - pipe flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient} vm53200-9:/etc/postfix # Bernd -- 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 12.03.2010 17:53, Lentes, Bernd wrote:
Punkt1: Senden von der Kommandozeile über das Programm "mail|mailx|nail" bzw. /usr/sbin/sendmail:
Hier muss mann die User über den Parameter authorized_submit_users sperren:
postconf -e "authorized_submit_users = !user1, !user2, static:all"
Das hat keine Nebenwirkungen für andere User oder Programme.
Punkt2: Das Versenden über SMTP (Mailprogramm verwendet lokalen Server als Mailserver)
Frage: kann man das Versenden über SMTP nicht generell abschalten, wenn das so kompliziert zu konfigurieren ist ? Oder wird das benötigt ?
Ah, anscheinend habe ich dich falsch verstanden. Ich dachte, die externen arbeiten auf dem Server, der unter anderem auch als Mailserver dient. Dies scheint nicht der Fall zu sein. Bei mir ist zumindest das Versenden von Mails notwendig, da die Server Berichte verschicken müssen (Cron-jobs, Update-Logs etc.).
vm53200-9:/etc/postfix # cat master.cf # # Postfix master process configuration file. For details on the format # of the file, see the Postfix master(5) manual page. # # ========================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ========================================================================== smtp inet n - n - - smtpd
Kommentiere diese obige Zeile einfach aus. Dann stoppe und starte Postfix einmal. Danach nimmt Postfix keine Mails mehr über SMTP Protokoll an, er liefert nur noch Mails weiter an einen anderen Server, die über die Kommandozeile eingehen. Das reicht für normale Statusmails. Zusätzlich dann noch die obige Konfiguration mit authorized_submit_users, damit die externen nichts schicken können. Dann ist die Kiste dicht. Dann musst du noch die Möglichkeit sperren, dass die externen über einen anderen Server Mails verschicken können. Hier muss jeder Server so eingestellt werden, dass er Mails über das netzwerk nur nach Authentifizierung des Anwenders annimmt. Als letztes musst du natürlich noch dafür sorgen, dass die Firewall der Firma Mails nur von dem eigenen Mailserver nach außen lässt und nicht von den anderen Servern oder Arbeitsplatz-PCs. Das verhindert auch wirksam, dass dein Mailserver auf der Blacklist landet, nur weil ein infizierte PC mit der gleichen externen IP ins Internet geht wie der Mailserver. (^-^) -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@)drobic (.) de -- 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
Sandy Drobic schrieb:
postconf -e "authorized_submit_users = !user1, !user2, static:all"
Wofür ist denn das static:all ?
Ah, anscheinend habe ich dich falsch verstanden. Ich dachte, die externen arbeiten auf dem Server, der unter anderem auch als Mailserver dient. Dies scheint nicht der Fall zu sein.
Bei mir ist zumindest das Versenden von Mails notwendig, da die Server Berichte verschicken müssen (Cron-jobs, Update-Logs etc.).
Die externen arbeiten nicht auf einem Mailserver, sondern auf einem dedizierten System (VM), auf dem halt standardmäßig postfix mit installiert ist. An Systemmails von cronjobs, sudo, Updates ... bin ich auch sehr interessiert.
vm53200-9:/etc/postfix # cat master.cf # # Postfix master process configuration file. For details on the format # of the file, see the Postfix master(5) manual page. # #
======================================================================
==== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # ============================================================== ============ smtp inet n - n - - smtpd
Hab ich gemacht. Jetzt ist kein Port 25 mehr offen, das ist ja wohl so richtig.
Kommentiere diese obige Zeile einfach aus. Dann stoppe und starte Postfix einmal. Danach nimmt Postfix keine Mails mehr über SMTP Protokoll an, er liefert nur noch Mails weiter an einen anderen Server, die über die Kommandozeile eingehen. Das reicht für normale Statusmails.
Zusätzlich dann noch die obige Konfiguration mit authorized_submit_users, damit die externen nichts schicken können. Dann ist die Kiste dicht.
Dann musst du noch die Möglichkeit sperren, dass die externen über einen anderen Server Mails verschicken können. Hier muss jeder Server so eingestellt werden, dass er Mails über das netzwerk nur nach Authentifizierung des Anwenders annimmt.
Als letztes musst du natürlich noch dafür sorgen, dass die Firewall der Firma Mails nur von dem eigenen Mailserver nach außen lässt und nicht von den anderen Servern oder Arbeitsplatz-PCs. Das verhindert auch wirksam, dass dein Mailserver auf der Blacklist landet, nur weil ein infizierte PC mit der gleichen externen IP ins Internet geht wie der Mailserver. (^-^)
Vielen Dank schon 'mal für die schnelle Hilfe. Vielleicht melde ich mich Montag noch mal, da ich die Mailserver unseres Zentrums nicht administriere und mit unserem RZ reden muss. Bernd-- 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 2010.03.12 19:00, Lentes, Bernd wrote:
Sandy Drobic schrieb:
postconf -e "authorized_submit_users = !user1, !user2, static:all"
Wofür ist denn das static:all ?
Specify a list of user names, "/file/name" or "type:table" patterns, separated by commas and/or whitespace. The list is matched left to right, and the search stops on the first match. A "/file/name" pattern is replaced by its contents; a "type:table" lookup table is matched when a name matches a lookup key (the lookup result is ignored). Continue long lines by starting the next line with whitespace. Specify "!pattern" to exclude a user name from the list. The form "!/file/name" is supported only in Postfix version 2.4 and later. Da hier keine Lookup-Tabelle verwendet werden soll, kann man mit static: festsetzen, was das Ergebnis sein soll. Dabei gilt die Reihenfolge der Einträge: Postfix prüft zuerst ob user1 und user2 abgelehnt werden, bevor er allen anderen das Mailen erlaubt.
Bei mir ist zumindest das Versenden von Mails notwendig, da die Server Berichte verschicken müssen (Cron-jobs, Update-Logs etc.).
Die externen arbeiten nicht auf einem Mailserver, sondern auf einem dedizierten System (VM), auf dem halt standardmäßig postfix mit installiert ist. An Systemmails von cronjobs, sudo, Updates ... bin ich auch sehr interessiert.
Das habe ich mir gedacht. (^-^)
============================================================== ============
smtp inet n - n - - smtpd
Hab ich gemacht. Jetzt ist kein Port 25 mehr offen, das ist ja wohl so richtig.
Ja, weil du keine Mails entgegennehmen willst, sondern nur Mails versenden willst. Ich nehme an, dass das Versenden der Mails funktioniert?
Vielen Dank schon 'mal für die schnelle Hilfe. Vielleicht melde ich mich Montag noch mal, da ich die Mailserver unseres Zentrums nicht administriere und mit unserem RZ reden muss.
Kein Problem. Ich bin im Augenblick etwas beschäftigt in der Firma, deshalb kann es schon mal einige Stunden dauern, bis ich antworten kann. -- Sandy Antworten bitte nur in die Mailingliste! PMs bitte an: news-reply2 (@)drobic (.) de -- 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
Sandy Drobic schrieb:
Ich nehme an, dass das Versenden der Mails funktioniert?
Ja, prima.
Vielen Dank schon 'mal für die schnelle Hilfe. Vielleicht melde ich mich Montag noch mal, da ich die Mailserver unseres Zentrums nicht administriere und mit unserem RZ reden muss.
Kein Problem. Ich bin im Augenblick etwas beschäftigt in der Firma, deshalb kann es schon mal einige Stunden dauern, bis ich antworten kann.
Ok. Eventuell bis dann. Und vielen Dank noch 'mal. Bernd-- 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
"Lentes, Bernd"
Hallo ML,
kann ich bei postfix das Mailen bestimmten lokalen Usern verbieten und anderen erlauben ?
postfix-2.5.6-4.8.4.
Vielen Dank für alle Tipps.
Ja, z.B. durch smtpd_client_restrictions = permit_sasl_authenticated,reject_unauth_destination und entsprechender SASL-Konfiguration durch ldapdb, sasldb oder saslauthd -Dieter -- Dieter Klünter | Systemberatung http://dkluenter.de GPG Key ID:8EF7B6C6 53°37'09,95"N 10°08'02,42"E -- 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 (3)
-
Dieter Kluenter
-
Lentes, Bernd
-
Sandy Drobic