[Release] SSH Verbindung mit PHP

05/02/2011 17:21 thesone007#1
Hallo Hier kurze Anleitung Wie man z.B. henßs Hp Metin2 servern starten oder auch beenden können mittels ssh.

also als erstes Loggt ihr mit Putty auf euren Servern ein.

und gebt dann in Putty das hier ein.
Code:
cd /usr/ports/security/libssh2
make
make install
Code:
setenv PATH ${PATH}:/usr/local/bin
setenv PHP_AUTOCONF autoconf-2.62
setenv PHP_AUTOHEADER autoheader-2.62
Code:
cd /usr/ports/security/pecl-ssh2
make
make install
Code:
ee /usr/local/etc/php/extensions.ini
und fügt dies Hinzu.
Code:
extension=ssh2.so
Da normale ssh was bei freebsd standart installiert ist kann man sich nicht einloggen. Da es ssh2 heißt muss natürlich noch was installiert werden.
Code:
cd /usr/ports/security/ssh2 && make install clean
Nach der Installation müssen wir den Dienst noch konfigurieren. Dies erfolgt in der Datei '/usr/local/etc/ssh2/sshd2_config'. Hier setzen wir folgende Parameter:

- ListenAddress: Hier legen wir fest auf welcher IP der Dienst lauschen soll, den Port legen wir später an anderer Stelle fest.
- PermitRootLogin: Diesen Parameter setzen wir auf 'No', da wir nicht wollen dass sich root direkt anmelden kann.
- ChRootUsers: Hiermit setzen wir alle Benutzer, die gechrootet werden sollen.
- ChRootGroups: Hier setzen wir alle Benutzergruppen, die gechrootet werden sollen.

Am Config Muss man eig nichts dran ändern.

danach:
Code:
ee /etc/rc.conf
und Fügt das hinzu
Code:
sshd2_enable="YES"
sshd2_port="22"
Vorsichtshalber habe ich bei sshd2_port statt "22" "23" als Port benutzt da ich ssh und ssh2 nutze wegen fehlern etc. das net Interher kein ssh verbindung aufbauen kann. ^^
danach Speichert dies einfach ab.
und geht zum schlus das ein
Code:
cd /usr/local/etc/rc.d
./sshd2 start
dauert kleines Momentchen danach sollte es gestartet haben.

nun kommen wir zum PhP Script das kann auch auserhalb des Roots nutzen also z.B. auf einen webspace natürlich muss webspace shell_exec akzeptieren
PHP Code:
<?
$connection 
ssh2_connect('Ip'port);
ssh2_auth_password($connection'root''Password');

$stream ssh2_exec($connection'Command');
?>
Weitere Informationen gibs hier [Only registered and activated users can see links. Click Here To Register...]

Wenn schon Tut geben sollte Sorry habs net gesehen.^^

Edit: Stelle Hier noch ein Kleines Script Hinzu.

PHP Code:
<?
 session_name
("m2hp");
  
session_start();
if (
$_POST['login1'] == "Login") {
if (
$_POST['login'] == "Benutzername" and $_POST['pass'] == "euer gewünschtes Password"){
$_SESSION['user'] = $_POST['login'];
$_SESSION['pass'] = $_POST['pass'];
}else{ echo 
'Benutzer oder Passwort ist nicht korrekt'; }
}
if (
$_SESSION['user'] == "Benutzername" and $_SESSION['pass'] == "Gewünschtes Password") {
if (
$_POST['submit'] == "Channel 1 Starten") {
 
$connection ssh2_connect('eurer Ip'port);
ssh2_auth_password($connection'user''password');

$stream ssh2_exec($connection'cd /usr/game/channel1 && ./game');
echo 
'<meta http-equiv=\"refresh\" content=\"0;url=Euer Url\">';
}
 if (
$_POST['submit'] == "Channel 2 Starten") {
 
$connection ssh2_connect('Ip'port);
ssh2_auth_password($connection'user''password');

$stream ssh2_exec($connection'cd /usr/game/channel2 && ./game');
echo 
'<meta http-equiv=\"refresh\" content=\"0;url=URL\">';
}
 if (
$_POST['submit'] == "Channel 3 Starten") {
 
$connection ssh2_connect('ip'port);
ssh2_auth_password($connection'user''password');

$stream ssh2_exec($connection'cd /usr/game/channel3 && ./game');
echo 
'<meta http-equiv=\"refresh\" content=\"0;url=URL\">';
}
 if (
$_POST['submit'] == "Channel 4 Starten") {
 
$connection ssh2_connect('Ip'port);
ssh2_auth_password($connection'user''password');

$stream ssh2_exec($connection'cd /usr/game/channel4 && ./game');
echo 
'<meta http-equiv=\"refresh\" content=\"0;url=URL\">';
}
 if (
$_POST['submit'] == "Login Starten") {
 
$connection ssh2_connect('IP'port);
ssh2_auth_password($connection'user''password');

$stream ssh2_exec($connection'cd /usr/game/g1/auth && ./auth');
echo 
'<meta http-equiv=\"refresh\" content=\"0;url=URL\">';
}
 if (
$_POST['submit'] == "DB starten") {
 
$connection ssh2_connect('ip'port);
ssh2_auth_password($connection'user''password');

$stream ssh2_exec($connection'cd /usr/game/g1/db && ./db');
echo 
'<meta http-equiv=\"refresh\" content=\"0;url=URL\">';
}
 if (
$_POST['submit'] == "game99 Starten") {
 
$connection ssh2_connect('IP'Port);
ssh2_auth_password($connection'user''password');

$stream ssh2_exec($connection'cd /usr/game/game99 && ./game');
echo 
'<meta http-equiv=\"refresh\" content=\"0;url=URL\">';
}
 if (
$_POST['submit'] == "Start") {
 
$connection ssh2_connect('IP'Port);
ssh2_auth_password($connection'user''password');

$stream ssh2_exec($connection'cd /usr/game/g1/db && ./db && sleep 10 && cd ../auth && ./auth && cd ../../channel1 && ./game && cd ../game99 && ./game');
echo 
'<meta http-equiv=\"refresh\" content=\"0;url=URL\">';
}
?>
<form method="POST">
 <input type="submit" name="submit" value="Channel 1 Starten"></form></br>
<form method="POST">
 <input type="submit" name="submit" value="Channel 2 Starten"></form></br>
<form method="POST">
 <input type="submit" name="submit" value="Channel 3 Starten"></form></br>
 <form method="POST">
 <input type="submit" name="submit" value="Channel 4 Starten"></form></br>
<form method="POST">
 <input type="submit" name="submit" value="Login Starten"></form></br>
<form method="POST">
 <input type="submit" name="submit" value="DB starten"></form></br>
 <form method="POST">
 <input type="submit" name="submit" value="game99 Starten"></form></br>
<P> alles starten auser ch2 ch3 ch4!</p>
<form method="POST">
<input type="submit" name="submit" value="Start"></form></br>
<?
}else{
?>
 <form method="POST">
 Benutzername: <input type="text" name="login" value=""></br>
 Password<input type="password" name="pass"></br>
<input type="submit" value="Login" name="login1">
</form>
<? 
 
 
 
 
}
 
?>
Wenn Fehler drin sein sollte sorry gerade geschrieben nicht so ganz getestet.

serverfile Pfad müsst ihr zu euren natürlich anpassen.

add: Da diesen Port bei neuren nicht Drauf sein solle Hier habe ich meine komplette port ordner hochgeladen.
[Only registered and activated users can see links. Click Here To Register...]

MFG
Thesone
05/02/2011 17:25 Bonnyfication#2
#Thx given :)
05/02/2011 17:30 FbFunnY#3
sehr gut,kann man gebrauchen
05/02/2011 17:59 Turundeth#4
#deleted
05/02/2011 18:05 thesone007#5
joa Kannst alles mögliche mit machen root neustarten lassen etc. naja ^^ Für eure nutzung Könnt ihr dieses Anpassen.

Command z.b. killall game && killall db

naja und so weiter :)
05/02/2011 18:09 Daroolein#6
Gehört jetzt nicht wirklich in den Metin2 Bereich, da du lediglich
erklärst wie man einen Port installiert und ihn verwendet..

Update: Du gehst in keinster Weise auf die Nutzung eines RSA Keys ein.
05/02/2011 18:13 thesone007#7
Quote:
Originally Posted by Senator Daroo View Post
Gehört jetzt nicht wirklich in den Metin2 Bereich, da du lediglich
erklärst wie man einen Port installiert und ihn verwendet..

Update: Du gehst in keinster Weise auf die Nutzung eines RSA Keys ein.
naja Stimm ich gerade zu aber naja von mir aus kann dies passent geschoben werden zum RSA kay Wird automatisch produziert ^^

mehr kann ich erlich gesagt auch net weiter sagen :P

MFG
Thesone
05/02/2011 18:52 Nikℓαus#8
Nett, jetzt kann ich mein Server auch starten, stoppen, rebooten etc. wenn ich in der Schule bin und mal kein Putty habe. Hab dir'n Thx dagelassen.
05/02/2011 19:00 Howaner#9
das macht hohes risiko wen man kein gutes PHP Script hat das leicht hackbar ist und dort server rebotten oder noch schlimmer Befehle eingeben drin hat
Dan kan der alles machen am Server
05/02/2011 19:10 thesone007#10
Quote:
Originally Posted by Franzi564 View Post
das macht hohes risiko wen man kein gutes PHP Script hat das leicht hackbar ist und dort server rebotten oder noch schlimmer Befehle eingeben drin hat
Dan kan der alles machen am Server
dazu brauchst du erstmal zugsangsdaten sonst geht das auch wieder nicht ^^
und glaub auch Nur local zugriff drauf lassen aber wie kp muss mich da noch etwas schlauer machen ^^
und joa mann sollte schonn etwas mit Php auskennen ^^
05/02/2011 19:18 Howaner#11
ich meine ja ein Script wo die zugangsdaten schon drinstehen
05/02/2011 19:20 Nikℓαus#12
Bei z.B. hen! CMS kann man es sichern ich hab es so gemacht, bevor man etwas machen kann muss man sich 3x einloggen und das alles mit verschiedenen Passwörtern.
05/02/2011 19:28 Sphinx²#13
Wenn ich was anmerken darf..

Sowas ist ziemlich unsicher und sollte nicht installiert werden.

Mfg Sphinx


Quote:
Originally Posted by Phiiiℓ View Post
Bei z.B. hen! CMS kann man es sichern ich hab es so gemacht, bevor man etwas machen kann muss man sich 3x einloggen und das alles mit verschiedenen Passwörtern.
Irgendwie ist das auch nicht ziemlich hilfreich rein aus dem Grund das man die Passworter auf herausfinden kann.
Inkl. SQL Injection falls das nicht gesichert ist. =)
05/02/2011 19:29 thesone007#14
Quote:
Originally Posted by Sphinx² View Post
Wenn ich was anmerken darf..

Sowas ist ziemlich unsicher und sollte nicht installiert werden.

Mfg Sphinx
ach ja unsicher?

worann ist dies unsicher?
05/02/2011 19:30 Sphinx²#15
Quote:
Originally Posted by thesone007 View Post
ach ja unsicher?

worann ist dies unsicher?

Starten - Während Starten den Startvorgang killen.
Immer weiter und weiter bis mal der Metin2 Server nicht mehr startet.
Desweiteren lohnt sich das nicht.

Putty ist das wahre :)