Mailinglisten-Archive |
Hi, On Friday 20 February 2004 15:06, Oliver Richter wrote: > Ich will Usern (welche beim Wort "Shell" an eine Tankstelle denken) die [...] ;-) > 1.) Einen entsprechenden FTP-Account auf dem Ziel-Server anlegen und mit > den PHP FTP-Befehlen arbeiten. > 2.) Eine SSH-Verbindung aufbauen und die Daten "remote" > bearbeiten/erstellen. > > Der Grund, warum ich überhaupt auf SSH zu sprechen komme ist, dass der > Kunde auf dem Game-Server nach Möglichkeit minimalste Programme installiert > haben möchte. So ist zur Zeit wirklich nur der Game-Server an sich und der > SSH zugange. +sonstige System-Tools wohl (Shell, usw.) ;-) > Wahrscheinlich werde ich mich an der ersten Methode versuchen, aber > trotzdem würde mich einmal interessieren: > - ob es mit PHP generell möglich ist, eine SSH Verbindung aufzubauen (OHNE > dabei exec oder system zu verwenden. Nur PHP-eigene befehle) Ohne exec&co nicht. > - in welchen Fällen so eine Sache überhaupt brauchbar und effektiv wäre. > - wie performat so etwas generell ist. > - wie sicher so etwas wäre (ich zitiere mal meinen Kunden: "ich hab gelesen > SSH ist sicher und FTP nicht" ... wie gesagt.. "Shell" ist für ihn ne > Tankstelle.. aber er zahlt gut ;)) SSH ist nicht nur der einfach Shell-Zugang sondern ermöglicht u.a. auch Dateien hin-und-her zu schicken (ganz einfach mit scp oder auf FTP basierend mit sftp - siehe entsprechende man-pages und/oder Google) Der Vorteil davon ist, dass die komplette Kommunikation dabei verschlüsselt abläuft. Normales FTP ist unverschlüsselt, somit kann jeder (der in einem entsprechenden Netz-Segment hängt) alles (d.h. Passwörter&Daten) mitlesen, da gibt es zwar inzwischen gewisse Schutzmechanismen (FTP via SSL et al.) die wirken aber alle nur auf die Kontrolverbindung und wirken somit - ohne jetzt weit außholen zu wollen - nur auf Passwort und Dateinamen, die Daten an sich gehen aber unverschlüsselt auf die Reise. Bei sftp hingegen findet die komplette Kommunikation im ssh-Tunnel und somit verschlüsselt statt. Ein weiterer Faktor sind die offenen Ports am (Game-)Server. Jeder offene Port ist zunächstmal ein mölgicher Angriffspunkt für böse Leute - gerade FTP-Server sind, dadurch bedingt, dass sie mit recht umfangreichen Rechten laufen (der daemon läuft i.d.R. als root um dann die Rechte des eingeloggten Users zuübernehmen) beliebte Angriffsziele (ok, sshd ist auch ein möglicher Angriffspunkt) Dann noch ein paar Dinge: - sftp/scp braucht länger beim Verbindungsaufbau, muss die Daten vordem schicken erst verschlüsseln komprimiert dafür aber wärend der Übertragung - sftp/scp ist etwas umständlicher zu programmieren, da man exec/popen-Aufrufe machen muss und deren Rückgabe auswerten muss wohingegen man bei FTP nette Funktionen hat, die Fehlerhandling etc. stark vereinfachen (wobei es da in einschlägigen Quellen evtl. brauchbare Wrapper-Klassen geben könnte) - Ein sftp/scp-User hat in der Regel auch normalen Shell-Zugang, ohne weitere Sicherheitsmaßnahmen d.h. wenn jemand die Zugriffsdaten (vom "Konfigurations"-Server) bekommt kann er einfach an den Game-Server, bei FTP ist es bei den meisten daemons ohne besonderen Aufwand möglich User ohne Shell-Rechte einzurichten - Sicher noch ein paar Dinge vergessen ;-) > Wäre nett, wenn Ihr mir mal Eure Erfahrungen mit solchen oder ähnlichen > Projekten weitergeben könntet, oder, wann ich mal wieder den einfachsten > Weg übersehen habe, mir kurz einen Wink gebt. Andere Möglichkeit zum in-Betracht-ziehen: Wenn beide durchgehend laufen und die Änderungen nicht sofort verfügbar seien müssen kann der Konfigurationsserver die Datei "irgendwo" ablegen und der Game-Server kann die sich regelmäßig (per cron und z.B. rsync, wget oder sonstwas) vom anderen holen. johannes
php::bar PHP Wiki - Listenarchive