* als mit user asterisk statt root starten?

minze

Neuer User
Mitglied seit
20 Jan 2005
Beiträge
56
Punkte für Reaktionen
0
Punkte
0
Hallo,

möchte asterisk auf meinem etch nicht als root sondern vor allem mit userrechten asterisk mit möglichst grossem verbose-level starten (AFAIK -vvvvvcg) als dameon starten (der Sicherheit wegen). Wie geht das, bzw wie muss ich /etc/init.d/asterisk und eventuell PATH von user asterisk anpassen?

Habe nach der Installation make config um Startskripte automatisch erstellen zu lassen (BTW: Wie macht man das rückgängig, wenn ich eine Zeitlang nicht möchte, dass * automatisch als Daemon startet - reicht es einfach die /etc/init.d/asterisk umzubennen?) . Dadurch startet * nur als user root, wie man es der top Anzeige entnehmen kann. deswegen erstmal Gruppe und user angelegt mit:

groupadd asterisk
useradd -g asterisk -d /var/lib/asterisk -s /bin/bash asterisk

Habe daraufhin /etc/init.d/asterisk folgendermassen geändert:
AST_USER="asterisk" #Kommentar raus
AST_GROUP="asterisk" #Kommentar raus
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin #hier noch was rein?
Denn mit which asterisk bekommen ich /usr/sbin/asterisk
Wenn ich mit# su - asterisk den user wechsle,
dann mit asterisk@meinekiste:~$ /usr/sbin/asterisk asterisk -vvvvvcg ausführe, dann kommt:

Unable to open pid file '/var/run/asterisk/asterisk.pid': No such file or directory
Unable to bind socket to /var/run/asterisk/asterisk.ctl: No such file or directory
== Parsing '/etc/asterisk/logger.conf': Found
Logger Warning: Unable to open log file '/var/log/asterisk/messages': Permission denied
[Feb 2 14:33:08] ERROR[7942]: logger.c:615 init_logger: Unable to create event log: Permission denied

Die /etc/asterisk/asterisk.conf habe ich noch um astrundir => /var/run/asterisk ergänzt.

Für eine einfache Lösung wäre ich sehr dankbar.
 
Check mal die Rechte in den einschlägigen Verzeichnissen, /etc/asterisk, /var/log/asterisk usw.

jo
 
s. auch hier
http://www.voip-info.org/wiki/index.php?page=Asterisk+non-root

Die dort angebenden chmod/chown Befehle (event. Anpassungen nötig) führe ich immer vor dem Start von Asterisk aus.

Falls Debian verwendet wird, eventuell das Startskript aus den offiziellen Debian Paketen verwenden. (also /etc/init.d/asterisk, /etc/default/asterisk).

Noch was: Asterisk <= 1.4 kann die TOS Werte nur als root setzten. Das soll erst mit 1.6 auch als nicht-root gehen. (bei 1.4 kommt als nicht-root immer eine Warnung)
 
Hallo zusammen

Beschäftige mich auch gerade mit dem Thema,
Asterisk nicht als root starten zu müssen.
Meine erste Überlegung war aber, es mit sudo zu lösen.

Damit kann man ja befehlsorientiert root Berechtigungen an
normalen Usern erteilen.

Habe jedoch damit noch keine Erfahrungen gemacht.
Hat jemand von euch das schon verwendet und Erfahrungen damit?

Wäre das nicht besser, als an den Berechtigungen rumzuschrauben?

Viele Grüsse

Stäubel

P.S. Habe hier noch einen guten Link gefunden:
http://www.fedorablog.de/archives/186-Sicher-administrieren-mit-sudo.html
 
Zuletzt bearbeitet:
Was bringt es Asterisk als normaler User mit sudo zu starten? Asterisk läuft dann genauso mit vollen root-Rechten. Der einzige Vorteil: der User kann Asterisk starten, aber von der Sicherheitsseite her ist das eine Nullnummer.
 
Asterisk läuft dann genauso mit vollen root-Rechten. Der einzige Vorteil: der User kann Asterisk starten, aber von der Sicherheitsseite her ist das eine Nullnummer.

Danke für dein Feedback.
Hmm, aber ich würde natürlich über sudo nur dies zulassen:

Code:
# /etc/sudoers
[...]
%voip    ALL=/usr/sbin/asterisk
[...]
Okay Asterisk läuft dann noch immer als root stimmt.
Man könnte über ihn root Rechte erlangen.

Meinst du es wäre also am Besten, Asterisk unter
einem eigenen Benutzer und als Daemon zu starten?
Oder wie hast du es gelöst?

Grüsse Stäubel
 
siehe man sudo

sudo allows a permitted user to execute a command as the superuser or another user, as specified in the sudoers file.
 
sudo allows a permitted user to execute a command as the superuser or another user, as specified in the sudoers file.

Ja, dass hatte ich in der Doku gesehen. Sudo soll ja befehlsorientiert arbeiten.
Darum hielt ich es auch für relativ sicher. Einziger Nachteil, der Prozess selber läuft noch immer als root.

Ich stehe einfach vor folgender Entscheidung, denn ich möchte vermeiden,
dass alle als root auf dem Server arbeiten.

Entweder sudo einsetzen und nur einige Befehle zulassen oder
Asterisk über ein Init-Script als Benutzer Asterisk in der
Gruppe Asterisk starten.

Wie habt ihr es gelöst?

Merci und Grüsse
Stäubel
 
Wer soll denn alles Asterisk neu starten können? Bei mir sind das wirklich nur zwei Personen, eine davon bin ich. Denn normal läuft Asterisk und muss nicht angefasst werden.
Die Frage, ob Asterisk als root laufen soll oder nicht, hängt sicher davon ab, ob der Server noch etwas anderes macht. Bei uns ist der Server ausschließlich für Asterisk da, also laufen keine anderen schützenswerten Dienste drauf, also läuft Asterisk als root. Ob ein Angreifer nun Asterisk kontrollieren können oder den kompletten Rechner ist relativ egal :) Zumal die Kiste im LAN steht.
 
Warum einfach wenn es auch kompliziert gegt...

Unter dem oben genannten Link stehen die Infos und wie minze geschrieben hat, muss man noch das var/run Verzeichnis anpassen und dann einfach Asterisk mit den entsprechenden Parametern starten.
Ich habe dazu einfach das Startskript aus den Debianpaketen genommen.

BTW: 1.4.18 Changelog
2008-01-11 18:25 +0000 [r98265] Russell Bryant <[email protected]>

* doc/security.txt, main/asterisk.c, configure,
include/asterisk/autoconfig.h.in, main/Makefile, configure.ac,
makeopts.in: Backport the ability to set the ToS bits on Linux
when not running as root. Normally, we would not backport
features into 1.4, but, I was convinced by the justification
supplied by the supplier of this patch. He pointed out that this
patch removes a requirement for running as root, thus reducing
the potential impacts of security issues. (closes issue #11742)
Reported by: paravoid Patches: libcap.diff uploaded by paravoid
(license 200)
=> Das oben erwähnte Tos Problem dürfte sich damit erledigt haben.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.