fetchmail nicht als "root"-User laufen lassen - wie mache ich das auf einer Synology

Status
Für weitere Antworten geschlossen.

oj69

Benutzer
Mitglied seit
16. Mrz 2012
Beiträge
155
Punkte für Reaktionen
0
Punkte
16
fetchmail nicht als "root"-User laufen lassen - wie mache ich das auf einer Synology

Hallo zusammen,

auf meiner DS212j unter DS4.0 läuft erfolgreich die Zarafa-Applikation. Die Version von Zarafa für die Synology ist standardmäßig so eingerichtet, dass der fetchmail-Abruf als Benutzer "root" läuft. Daher kommt beim Start von Fetchmail auch eine entsprechende Warnmeldung. Wie bei meinem Ubuntu möchte ich fetchmail als Nicht-Root-User laufen lassen. Leider kenne ich auf der Synology keinen Weg, fetchmail gleich beim Systemstart mitzustarten. Es gibt wohl keine Strukturen a la "/etc/init.d", in der Daemons konfiguriert werden können.

Wie schaffe ich es, dass fetchmail nicht mehr als "root" läuft ? Kann ich den Aufruf von fetchmail vom Zarafa-Start-Skript entkoppeln ?

Wäre klasse, wenn einer der Experten hierzu etwas posten kann :)

Besten Dank !

Grüße

Oliver
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
du könntest mal probieren beim fetchmail-Aufruf ein su BENUTZER -c /path/to/fetchmail anzugeben. Wobei ich nicht so recht verstehen kann wieso mal fetchmail effektiv unter root laufen lassen muss. Das klingt mir nach einem Designfehler in der Software. Das kann jenachdem auch üble Probleme mit Postfix geben
 

oj69

Benutzer
Mitglied seit
16. Mrz 2012
Beiträge
155
Punkte für Reaktionen
0
Punkte
16
Hallo,

vielen Dank für Deine Antwort. Der fetchmail-Aufruf wird derzeit über das Zarafa-Startskript gemacht. Und der läuft als root. Ich möchte aber den fetchmail-start aus diesem Skript herausnehmen und direkt beim Systemstart separat starten lassen. Wo muss ich das bei der Synology tun ?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
wieso passt du nicht den fetmail Aufruf an? Such im zarafa Startscript die entsprechende Zeile und stell ein su DEIN_USER -c "/path/command" voran. Die normalen Startscripte liegen afaik /usr/syno/etc.defaults/rc.d
 

oj69

Benutzer
Mitglied seit
16. Mrz 2012
Beiträge
155
Punkte für Reaktionen
0
Punkte
16
Danke für den Tipp ! Ich werde es ausprobieren und Rückmeldung geben.
 

Jdo2002

Benutzer
Mitglied seit
24. Dez 2011
Beiträge
692
Punkte für Reaktionen
1
Punkte
38
Hi,

fetchmail spricht nicht direkt mit postfix sondern spricht den zarafa-dagent an. Wichtig ist vermutlich auch noch das dieser user unter dem fetchmail läuft auch unter /etc/zarafa/server.cfg als administrator für zarafa eingetragen ist, damit die mails entsprechend zugestellt werden können.

Gruß Julian
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
@Jdo2002
egal ob fetchmail direkt mit Postfix redet oder mit zarafa. Es sollte niemals sein, dass eine Komponente des Zustellprozesses mit root läuft. Das ist ein nicht unerhebliches Risiko. Ausser die Anwendung mit root startet für die eigentlichen Aufgaben Kindprozesse mit eingeschränkten Usern (wie es z.B. der postfix master Daemon macht)
 

oj69

Benutzer
Mitglied seit
16. Mrz 2012
Beiträge
155
Punkte für Reaktionen
0
Punkte
16
@jahlives
sehe ich genau so wie Du. Daher auch meine Frage wie wir das hinbekommen :)

@jdo2002
wäre ein Change Request für das nächste Paket-Release :cool:
 

oj69

Benutzer
Mitglied seit
16. Mrz 2012
Beiträge
155
Punkte für Reaktionen
0
Punkte
16
Aktueller Fortschritt // Rückmeldung

so, hab nun probiert, das Start-Skript abzuändern.

Resultat:
Funktioniert grundsätzlich mit einem anderen Benutzer als root, ist allerdings nichtdas gewünscht Ergebnis. Denn: der andere Benutzer muss ein aktiver Benutzer mit Home-Directory etc. sein :(. Das ist ja nicht gewünscht ! Es muss ein Benutzer sein, der lediglich als Dienst fungiert (vgl. Benutzer "postfix" etc.).

Bei normalen Linux-Derrivaten gibt es immer noch Konfigurationsdatei unter .../init.d/..., wo man auch Optionen für den Start des Dienstes aufrufen kann. Unter fetchmail wäre das z.B. "USER=fetchmail" oder "RUNASROOT=false". Bei der Synology habe ich das nicht gefunden ? :( Kann mir da jemand weiterhelfen ?

Besten Dank vorab :)

Grüße

Oliver
 

Jdo2002

Benutzer
Mitglied seit
24. Dez 2011
Beiträge
692
Punkte für Reaktionen
1
Punkte
38
guckmal unter /usr/local/zarafa/etc/init.d/ da liegen die zarafa/fetchmail spezifischen startupscripts.
 

janus

Benutzer
Mitglied seit
07. Sep 2010
Beiträge
667
Punkte für Reaktionen
0
Punkte
0

oj69

Benutzer
Mitglied seit
16. Mrz 2012
Beiträge
155
Punkte für Reaktionen
0
Punkte
16
Danke, aber das macht genau das was die anderen auch vorgeschlagen hatten. Es ist nicht zielführend, den fetchmail-Aufruf mittels su zu starten ...
 

oj69

Benutzer
Mitglied seit
16. Mrz 2012
Beiträge
155
Punkte für Reaktionen
0
Punkte
16
guckmal unter /usr/local/zarafa/etc/init.d/ da liegen die zarafa/fetchmail spezifischen startupscripts.
Vielen Dank ! Im Gegensatz zu z.B. Ubuntu sehe ich hier nicht den User, unter dem fetchmail laufen soll. Dort gibt es noch den Parameter "USER". Na, ich werde es mal ausprobieren :)
 

oj69

Benutzer
Mitglied seit
16. Mrz 2012
Beiträge
155
Punkte für Reaktionen
0
Punkte
16
@Jdo2002
egal ob fetchmail direkt mit Postfix redet oder mit zarafa. Es sollte niemals sein, dass eine Komponente des Zustellprozesses mit root läuft. Das ist ein nicht unerhebliches Risiko. Ausser die Anwendung mit root startet für die eigentlichen Aufgaben Kindprozesse mit eingeschränkten Usern (wie es z.B. der postfix master Daemon macht)
Hallo, wie machst Du das Abholen von emails ? Nutzt Du Zarafa ?

Danke & Gruß

Oliver
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
ich nutze getmail zum Abholen. Zarafa nutze ich gar nicht
 

oj69

Benutzer
Mitglied seit
16. Mrz 2012
Beiträge
155
Punkte für Reaktionen
0
Punkte
16
Moin Jahlives,

unter welchem User läuft Dein getmail ? Wie hast Du das gelöst ?

Grüße

Oliver
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
getmail läuft bei mir als vmail, weil ich mit virtuellen Mailusern arbeite. Das getmail Script an sich wird beim Booten unter root gestartet und prüft alle 2 min meine externen Accounts (zumindest wenn jemand via IMAP angemeldet ist, sonst alle 3h). Der eigentliche Prüfvorgang wird dann mittels su vmail -c "getmail parameter" gestartet. Damit läuft der getmail Prozess sauber unter einem nicht-privilegierten User. In meinem Fall würde es mit root nicht gehen, weil bei mir getmail an deliver (MDA) übergibt und deliver verweigert jede Mail wenn sie von root übergeben wird. Postfix an sich würde die root Mail wohl noch aktzeptieren, obwohl im Manual von Postfix deutlich davon abgeraten wird, als root oder für root Mails zu empfangen.
Etwas vom wichtigsten bei der Mailzustellung: nach Möglichkeit sollte von A-Z immer derselbe User (mindestens aber niemals root) verwendet werden. Sobald der User wechselt muss man sehr genau schauen, damit die Zustellung noch sauber geht
 

oj69

Benutzer
Mitglied seit
16. Mrz 2012
Beiträge
155
Punkte für Reaktionen
0
Punkte
16
Es funktioniert !

Kann nun Vollzug melden :eek:

fetchmail läuft nun komplett nicht mehr als "root".

Danke nochmals für die Hilfe und Unterstützung :)
 

Jdo2002

Benutzer
Mitglied seit
24. Dez 2011
Beiträge
692
Punkte für Reaktionen
1
Punkte
38
Super, wie hast du es denn gelöst? :)
 

oj69

Benutzer
Mitglied seit
16. Mrz 2012
Beiträge
155
Punkte für Reaktionen
0
Punkte
16
Also hier mein "Kochrezept":

1. Einen weiteren Benutzer "fetchmail" unter DSM anlegen. Diesem alle Berechtigungen entziehen :) Kein Passwort vergeben
2. auf der Shell die Datei /etc/passwd editieren: beim Benutzer "fetchmail" den Eintrag "/sbin/nologin" analog dem Benutzer "root" anpassen, so dass eine Anmeldung auf der Shell möglich ist
3. die Eigentümer der Dateien etc/fetchmailrc sowie var/log/fetchmail ändern: Neuer Besitzer ist "fetchmail" (Gruppe "users")
4. das Zarafa-Startskript unter /var/packages/zarafa/scripts abändern: den Aufruf von fetchmail ändern in "su fetchmail -c "......fetchmail ....""
5. die Zarafa Server-Konfiguration server.cfg abändern: fetchmail als weiteren "Local Admin User" neben root hinzufügen.

Das müsste es gewesen sein. Resultat: der fetchmail-Prozess läuft nun nicht mehr privilegiert als "root", sondern als Benutzer "fetchmail". Zu überprüfen via "ps | grep "fetchmail"".

@Jdo2002: bekommst Du das in zukünftige Versionen Deines Zarafa-Packetes mit eingebaut ? Das wäre eine Riesengewinn an Sicherheit ;)

Für Fragen stehe ich gerne zur Verfügung !

Grüße

Oliver
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat