jBoss unter anderem Benutzer automatisch starten
jBoss unter anderem Benutzer automatisch starten
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
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
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
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
auch beim Standartport 80 ist root beim Apache nicht nötig...
Re: jBoss unter anderem Benutzer automatisch starten
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
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
Danke, danach habe ich gesucht um meinen HLDS beim Booten unter anderem User starten zu können.e31 wrote:...
su user123 -c /usr/local/jboss/bin/run.sh
...
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.e31 wrote:...
Man sollte grundsätzlich, alle Dienste, die ohne root auskommen, nicht unter root ausführen.
...
Bio
-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: jBoss unter anderem Benutzer automatisch starten
Dann wärst du vom "Hacker" noch weit entfernt, da diese im Gegensatz zu Crackern viel subtilere Methoden kennen ... ;)Wäre ich Hacker würde ich auch zuerst nach einem root Prozess suchen den ich übernehmen könnte.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: jBoss unter anderem Benutzer automatisch starten
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.htmle31 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
[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
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 ?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
...
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ß.
0 Punke. Ziel nicht erkannt.Alexander Newald wrote:...
tztz, auf was für Ideen die Leute kommen... Apache ist soweit entwickelt, der kann schon auf Port 80 laufen!
...
Bio
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: jBoss unter anderem Benutzer automatisch starten
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
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
-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: jBoss unter anderem Benutzer automatisch starten
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 ?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 ?
Ich persönlich würde die Maßnahme auch eher unter "Security by obscurity" einstufen, die definitiv nicht funktioniert ...
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
Re: jBoss unter anderem Benutzer automatisch starten
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.Alexander Newald wrote:...
Also, bitte vorher etwas mehr guken bevor 0 Punkte verteilen
Was die Sache des Forwardens von Port 80 auf 8080 angeht, da war ich auch skeptisch.
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' ?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 ?
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-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: jBoss unter anderem Benutzer automatisch starten
Als was würdest du das dann bezeichnen ? ;)140 S root 26812 1 0 69 0 - 19170 14e607 Jul05 ? 00:00:04 /usr/sbin/httpd -DHAVE_SSL -DHAVE_PHP4
Der Vater- oder wenn du so willst "init"-Prozess läuft grundsätzlich als root, was deine Argumentation doch etwas bröckeln lässt ... ;)
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
Re: jBoss unter anderem Benutzer automatisch starten
Interessant. Da muß ich dir recht geben.CaptainCrunch wrote:Als was würdest du das dann bezeichnen ? ;)140 S root 26812 1 0 69 0 - 19170 14e607 Jul05 ? 00:00:04 /usr/sbin/httpd -DHAVE_SSL -DHAVE_PHP4
...
Ach nein, wirklich... (Ironie)CaptainCrunch wrote:Der Vater- oder wenn du so willst "init"-Prozess läuft grundsätzlich als root, ...
Von welcher Argumentation sprichst du genau ?CaptainCrunch wrote:...was deine Argumentation doch etwas bröckeln lässt ... ;)
Bio
-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: jBoss unter anderem Benutzer automatisch starten
... von diesem Satz. Der Apache kommt (QED) also nicht (standardmäßig) ohne root aus ...Biohazard wrote: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.e31 wrote:...
Man sollte grundsätzlich, alle Dienste, die ohne root auskommen, nicht unter root ausführen.
...
Bio
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
Re: jBoss unter anderem Benutzer automatisch starten
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
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