Page 1 of 1

jBoss unter anderem Benutzer automatisch starten

Posted: 2002-10-19 15:57
by e31
Hi,

eigentlich bin ich nur ein C/C++ (win32) und J2SE/J2EE Programmierer und in meiner privaten Serverfamilie musste ich mir nie Gedanken um Sicherheit machen, da alle Server bis auf meinen Novell 8) nur zum Test sind.

Nun habe ich auf meinem RootServer Debian 3 installiert. (Hier ein großer Dank an RootForum für diesen Tip und an Lordy für das perfekte HowTo!)

Der normale Start von jBoss sieht so aus:

exec $JAVA ... org.jboss.Main "$@"

Zu Hause habe ich jBoss (leider) auf einem SuSE 8.0 laufen. Da die Termialverbindung unter SuSE abschmirt, wenn man stdout von exec umleitet (wegen JavaVM?), habe ich den Start geändert:

startproc -f -l /jboss/log/run.log $JAVA ... org.jboss.Main "$@"

Die Funktion startproc kann ich unter Debian nicht finden.

Welche Funktion sollte ich bei Debain benutzen? Wie starte ich automatisch beim Hochfahren jBoss unter einem anderen Benutzer?

Gruß,
e31

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-01-12 20:25
by e31
Ich antworte mir am besten mal selber!

Um beim Start jBoss unter dem Benutzer user123 auszuführen, einfach nur in /etc/init.d/jboss folgendes unter START schreiben:

su user123 -c /usr/local/jboss/bin/run.sh

Man sollte grundsätzlich, alle Dienste, die ohne root auskommen, nicht unter root ausführen. Bei mir läuft z. B. der Webserver auf Port 8080 und iptables routet von 80 auf 8080, so daß root nicht nötig ist!!! :P :P

Gibt Crackern :evil: nicht unnötige Angriffsflächen!

Gruß,
e31

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-01-12 21:41
by kase
auch beim Standartport 80 ist root beim Apache nicht nötig...

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-01-13 00:02
by sascha
Doch, sonst kann er nämlich Port 80 nicht binden. Die Childs laufen natürlich nicht als root.

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-01-13 00:05
by kase
Trotzdem stellt das keinerlei Sicherheitsrisko dar, da nur der Hauptprozess als Root läuft, oder liege ich da schon wieder falsch ?

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-07-09 21:58
by biohazard
e31 wrote:...
su user123 -c /usr/local/jboss/bin/run.sh
...
Danke, danach habe ich gesucht um meinen HLDS beim Booten unter anderem User starten zu können.
e31 wrote:...
Man sollte grundsätzlich, alle Dienste, die ohne root auskommen, nicht unter root ausführen.
...
Da bin ich absolut deiner Meinung. Wäre ich Hacker würde ich auch zuerst nach einem root Prozess suchen den ich übernehmen könnte.

Bio

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-07-09 22:17
by captaincrunch
Wäre ich Hacker würde ich auch zuerst nach einem root Prozess suchen den ich übernehmen könnte.
Dann wärst du vom "Hacker" noch weit entfernt, da diese im Gegensatz zu Crackern viel subtilere Methoden kennen ... ;)

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-07-09 22:24
by alexander newald
e31 wrote:Man sollte grundsätzlich, alle Dienste, die ohne root auskommen, nicht unter root ausführen. Bei mir läuft z. B. der Webserver auf Port 8080 und iptables routet von 80 auf 8080, so daß root nicht nötig ist!!! :P :P

Gibt Crackern :evil: nicht unnötige Angriffsflächen!

Gruß,
e31
Und wenn mal der Webserver kurz abgeschmiert ist und sich jemand einen "Spass" macht, dann setzt er als normaler Benutzer schnell seinen eigenen Prozess auf Port 8080 und Verteil Warez, am Besten mit FileNotFound Dokument als /index.html

[edit hinzu]Ach ja, und mit einem Catchall für alle Domainnamen ausgerüstet haben alle Domains auf deinem Server was davon.[/edit]

tztz, auf was für Ideen die Leute kommen... Apache ist soweit entwickelt, der kann schon auf Port 80 laufen!

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-07-09 22:45
by biohazard
Alexander Newald wrote: ...
Und wenn mal der Webserver kurz abgeschmiert ist und sich jemand einen "Spass" macht, dann setzt er als normaler Benutzer schnell seinen eigenen Prozess auf Port 8080 und Verteil Warez, am Besten mit FileNotFound Dokument als /index.html
...
1. Wenn Apache unter einem eigenen User ausgeführt wird (bei mir heißt der User sinnigerweise Apache) und die Rechte entsprechend gesetzt wurden, wie soll er dann von einem anderen User gesteuert werden können ?

2. Ich denke e31 wollte nicht Apache zwingen einen anderen Port zu nutzen sondern ihn einfach etwas sicherer machen da er so nicht unter root ausgeführt werden muß.
Alexander Newald wrote:...
tztz, auf was für Ideen die Leute kommen... Apache ist soweit entwickelt, der kann schon auf Port 80 laufen!
...
0 Punke. Ziel nicht erkannt.

Bio

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-07-09 23:11
by alexander newald
Du hast es nicht verstanden, und ich werde es nochmal erklähren:

Er hat normalerweise den Webserver auf Port 8080 laufen. Auf Ports > 1024 kann jeder Benutzer einen Daemon binden.

Sollte sein Apache einmal kurzzeitig den Port 8080 freigeben (zB. bei einem Neustart des Apaches) ist dieser Port frei und kann von einem anderen Benutzer genutzt werden. Somit ist der Port für seinen Apache belegt und auf Anfragen lauscht nun das Programm des ausnutzenden Benutzers.

Hat sich dieser "Angreifer" zB. selber einen Webserver in seinen Account gebaut (und dazu braucht man keine root Rechte), dann kann er diesen so konfigurieren, dass er alle Anfragen aller Domains annimmt. Da er ja auch dem Port des "normalen" Webservers lauscht, haben also alle anderen Benuter bzw. Domains/Webseiten das nachsehen.

Das man damit dann zB. Warez verbreiten kann ist klar....

Das e31 den Dienst sichere machen wollte, ist schon klar - Erreicht hat er damit aber nur das Gegenteil...

Also, bitte vorher etwas mehr guken bevor 0 Punkte verteilen

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-07-10 08:27
by captaincrunch
1. Wenn Apache unter einem eigenen User ausgeführt wird (bei mir heißt der User sinnigerweise Apache) und die Rechte entsprechend gesetzt wurden, wie soll er dann von einem anderen User gesteuert werden können ?
Du weißt aber schon, dass der Apache-Vaterprozess dann immer noch als root läuft, oder ? Oder habe ich dich falsch verstanden, und du hast fest im Apachen einkompiliert, dass er sich entgegegen dieses Standards verhält ?

Ich persönlich würde die Maßnahme auch eher unter "Security by obscurity" einstufen, die definitiv nicht funktioniert ...

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-07-10 10:18
by biohazard
Alexander Newald wrote:...
Also, bitte vorher etwas mehr guken bevor 0 Punkte verteilen
Ich meinte mit meinem Post das du den Sinn dieses Forums wohl nicht ganz verstanden hast. Es geht nicht darum jemandem auf die Finger zu hauen und ihn zu deformieren. Besser wäre gewesen du hättest ihm genau erklärt was daran falsch ist oder zumindest ein Sicherheitsrisiko darstellt.

Was die Sache des Forwardens von Port 80 auf 8080 angeht, da war ich auch skeptisch.
CaptainCrunch wrote:Du weißt aber schon, dass der Apache-Vaterprozess dann immer noch als root läuft, oder ? Oder habe ich dich falsch verstanden, und du hast fest im Apachen einkompiliert, dass er sich entgegegen dieses Standards verhält ?
Neukompiliert habe ich meinen Apache nicht, allerdings zeigt mir ein 'ps-elf' keinen Vaterprozess des Apache an. Ich hoffe du meinst nicht den 'init Prozess' ?

Code: Select all

  F S UID        PID  PPID  C PRI  NI ADDR    SZ  WCHAN STIME TTY          TIME CMD
100 S root         1     0  0  69   0    -   327 14e607 Jul05 ?        00:00:02 init
040 S root     26411     1  0  69   0    -   341 14e607 Jul05 ?        00:00:00 syslogd -m 0
140 S root     26439     1  0  69   0    -   642 14e607 Jul05 ?        00:00:02 /usr/sbin/sshd
140 S root     26512     1  0  69   0    -   517 14e607 Jul05 ?        00:00:00 xinetd -stayalive -reuse -pidfile /var/run/
100 S root     26593     1  0  69   0    -   532 11c558 Jul05 ?        00:00:00 /bin/sh /usr/bin/safe_mysqld --defaults-fil
100 S mysql    26705 26593  0  69   0    -  5490 14e607 Jul05 ?        00:00:00 /usr/libexec/mysqld --defaults-file=/etc/my
040 S mysql    26709 26705  0  60   0    -  5490 14ed04 Jul05 ?        00:00:02 /usr/libexec/mysqld --defaults-file=/etc/my
040 S mysql    26710 26709  0  69   0    -  5490 10622b Jul05 ?        00:00:00 /usr/libexec/mysqld --defaults-file=/etc/my
040 S mysql    26712 26709  0  69   0    -  5490 10622b Jul05 ?        00:00:00 /usr/libexec/mysqld --defaults-file=/etc/my
140 S root     26716     1  0  71   0    -  1149 14e607 Jul05 ?        00:00:16 sendmail: accepting connections
140 S root     26812     1  0  69   0    - 19170 14e607 Jul05 ?        00:00:04 /usr/sbin/httpd -DHAVE_SSL -DHAVE_PHP4
040 S root     26843     1  0  70   0    -   379 12171b Jul05 ?        00:00:00 crond
000 S root      4715 26812  0  69   0    -   616 14812c Jul06 ?        00:00:00 /usr/bin/perl /root/confixx//pipelog.pl
140 S apache    4716 26812  0  69   0    - 19185 14e607 Jul06 ?        00:00:00 /usr/sbin/httpd -DHAVE_SSL -DHAVE_PHP4
140 S apache    9595 26812  0  69   0    - 19189 1a0e15 Jul06 ?        00:00:00 /usr/sbin/httpd -DHAVE_SSL -DHAVE_PHP4
140 R root     29814 26439  0  69   0    -   886      - 09:47 ?        00:00:00 /usr/sbin/sshd
100 S root     29861 29814  0  75   0    -   562 11c558 09:47 pts/0    00:00:00 -bash
100 R root       782 29861  0  75   0    -   632      - 09:56 pts/0    00:00:00 ps -elf
Bio

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-07-10 10:24
by captaincrunch
140 S root 26812 1 0 69 0 - 19170 14e607 Jul05 ? 00:00:04 /usr/sbin/httpd -DHAVE_SSL -DHAVE_PHP4
Als was würdest du das dann bezeichnen ? ;)

Der Vater- oder wenn du so willst "init"-Prozess läuft grundsätzlich als root, was deine Argumentation doch etwas bröckeln lässt ... ;)

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-07-10 11:30
by biohazard
CaptainCrunch wrote:
140 S root 26812 1 0 69 0 - 19170 14e607 Jul05 ? 00:00:04 /usr/sbin/httpd -DHAVE_SSL -DHAVE_PHP4
Als was würdest du das dann bezeichnen ? ;)
...
Interessant. Da muß ich dir recht geben.
CaptainCrunch wrote:Der Vater- oder wenn du so willst "init"-Prozess läuft grundsätzlich als root, ...
Ach nein, wirklich... (Ironie)
CaptainCrunch wrote:...was deine Argumentation doch etwas bröckeln lässt ... ;)
Von welcher Argumentation sprichst du genau ?

Bio

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-07-10 11:35
by captaincrunch
Biohazard wrote:
e31 wrote:...
Man sollte grundsätzlich, alle Dienste, die ohne root auskommen, nicht unter root ausführen.
...
Da bin ich absolut deiner Meinung. Wäre ich Hacker würde ich auch zuerst nach einem root Prozess suchen den ich übernehmen könnte.

Bio
... von diesem Satz. Der Apache kommt (QED) also nicht (standardmäßig) ohne root aus ...

Re: jBoss unter anderem Benutzer automatisch starten

Posted: 2003-07-10 11:58
by biohazard
Ok, in Bezug auf den Apache muß ich dir wohl recht geben. (Werde aber trotzdem bei Gelegenheit versuchen den Vaterprozess des Apache unter einem 'Nicht-root' User ausführen zu lassen)

Interessant, wenn man bedenkt das ich auf diesen Thread gestoßen bin weil ich nach einer Möglichkeit gesucht habe meinen HLDS beim booten nicht als root sondern als User HLDS ausführen zu lassen.

Bio