PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   Apache HTTP-Server (http://www.selfphp.de/forum/forumdisplay.php?f=23)
-   -   Apache Config per PHP neu laden (http://www.selfphp.de/forum/showthread.php?t=23258)

Radanua 14.05.2010 14:20:49

Apache Config per PHP neu laden
 
Hallihallo an diesem schönen Freitag Mittag,
ich hätte da ein problem, unszwar versuche ich gerade per PHP eine Verbindung zu meinem SSH Server aufzubauen. Dies klappt tadellos, ebenso das Login als Root.
Das was mir jedoch nicht gelingt, ist das ich dann mal eben einfach die Config meines Apache Servers neuzuladen, um Subdomains dort einzurichten.
Ich habe den Coder erstmal ganz simpel geschrieben, bevor ich diesen an mein CMS anpasse.

PHP-Code:

<?php
$connection 
ssh2_connect('lottojama.de'22);

if (
ssh2_auth_password($connection'root''82013835')) {
  echo 
"Authentication Successful!\n";

$command '/etc/init.d/apache2 reload';
$shellOutput shell_exec($command);
echo 
trim($shellOutput); 

} else {
  die(
'Authentication Failed...');
}
?>
<form method="post" action="createwserver.php">
<input type="hidden" name="uname" value="radanua">
<input type="hidden" name="cws" value="yes">
<input type="submit" value="Erstellen">
</form>
<?php
if($_POST['cws'] == "yes") {
$datei fopen("test.conf","a+");
fwrite($datei"<VirtualHost *:80>
DocumentRoot /var/www/"
.$_POST['uname']."/
ServerName "
.$_POST['uname'].".lottojama.de
</VirtualHost>"
);
fclose($datei);
}
?>

Soweit so gut, alles funktioniert wunderbar, jedoch gibt er mir als Meldung folgende aus:
Code:

Authentication Successful! Reloading web server config: apache2httpd not running, trying to start failed!
Wieso? Per Terminla funktioniert das ganze doch ebenfalls.
Ich benutze Debian Lenny V5.0 und den Apache 2 Server mit PHP 5.

Ich danke schonmal für eure Antworten.

CPCoder 15.05.2010 09:58:34

AW: Apache Config per PHP neu laden
 
Also erstens (Und das ist jetzt hierbei mal der wichtigste Punkt!!!):
Bitte keine Zugangsdaten für irgendwelche Server hier posten!

In deinem Script welches du gepostet hast stehen für jedemann lesbar die Zugangsdaten des Users "root" drin. Zudem sollte der SSH-Zugang für den User "root" grundlegend gesperrt bleiben!

Wieso machst du dir eigentlich die Arbeit mit einem eigenen PHP-Script? Nutz doch einfach Webmin. Dies bietet dir alles was du brauchst um deinen Server bequem über den Webbrowser zu verwalten.

Achja, nachdem hier die Zugangsdaten für deinen Server so offen für jeden präsentiert wurden, empfehle ich eine Neuinstallation deines Webserver, da man evtl. Manipulationen nicht ausschliessen kann.

Radanua 15.05.2010 13:24:24

AW: Apache Config per PHP neu laden
 
Mist, ich h abe das ganz vergessen. Habe das Root Passwort natürlich nun sofort geändert.
Danke für den Hinweis.

Warum ich das ganze per PHP realisieren will?
Ich möchte jedem User auf meiner Homepage eine Subdomain anbieten, jedoch möchte ich das ungerne per CronJob oder sonstigen sachen verwirklichen..
Kann mir da evtl. jmd weiterhelfen?

DokuLeseHemmung 15.05.2010 14:30:58

AW: Apache Config per PHP neu laden
 
Ein Apache und das darin laufende PHP darf niemals die Rechte haben die Apache Konfiguration zu lesen und zu schreiben. Im Falle eines gelungenen Angriffs wäre das Einfallstor einfach zu groß. Zuviel Macht.

Desweiteren wird dein Script ja den Apache restarten. In dem Augenblick wird auch das Script gekillt. Ist doch logisch, oder?

Gängige Administrationsysteme verwenden einen mit ausreichenden Rechten laufenden Dienst/Daemon um sowas zu erledigen.

Radanua 15.05.2010 20:44:32

AW: Apache Config per PHP neu laden
 
Ich habe eigentlich nur vor die httpd.conf neuzuladen und das einfach mit beschränkten Rechten.
Wieso stellt das eine Sicherheitslücke dar? Es sind doch einfach nur die VHOSTS die ich dort in der httpd.conf eintrage!

Lg
Radanua

CPCoder 17.05.2010 10:12:04

AW: Apache Config per PHP neu laden
 
Zitat:

Zitat von Radanua (Beitrag 136652)
Ich habe eigentlich nur vor die httpd.conf neuzuladen und das einfach mit beschränkten Rechten.

Um die httpd.conf neu zu laden muss ja logischerweise der Apache-Server neu gestartet werden!

Ckaos 17.05.2010 16:25:02

AW: Apache Config per PHP neu laden
 
Hi

Wozu user subdomains als vhost einträge?
Ne Datenbanktabelle user_subdomains und nen wildcard eintrag
in die http.conf sollten die bessere Lösung sein. Nen Script welches
die angefragte Subdomain verarbeitet und dann ausgibt/weiterleitet
sollte auch für nicht mehr existierende Subdomains seinen zweck erfüllen.

Und du bist weg von schrecklichen
shell_exec, reloads

mfg

Ckaos


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:07:18 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.