PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : python script nach außen sichern



croeh
19.06.15, 13:32
Hallo

Ich habe ein NAS was ich über einen browser kontrolieren möchte.
Das ganze funktioniert wunderbar. =>lighttpd bekommt per Button ein Befehl und ruft dann ein python script auf, der die ensprechende Aktion auf dem NAS dann ausführt.
Für einige Aktionen muss ich mich über SSH mit dem NAS verbinden. Aus diesem Grund muss dem python script natürlich das PW und der USER des NAS (kein root) bekannt sein.
Da das python script unter /var/www liegt und die Gruppe www-data:www-data besitzt, kann somit jeder auf das script zugreifen und es lesen.
Das ist natürlich nicht gewünscht.

auszug aus dem wsgi script (info: stark gekürzt)


import nas_control as nas
from flup.server.fcgi import WSGIServernas_contro
import urlparse

def http_server_respons(environ, start_response):
info = urlparse.parse_qs(environ["QUERY_STRING"])
if "index" in info:
command=info["index"][0]
if (command == "status"):
nas.status()
antwort=nas.json()
start_response("200 OK", [("Content-Type", "text/plain"),("Content-Length", str(len(antwort))) ] )
return antwort
WSGIServer(http_server_respons).run()



Wie kann ich das script "nas_control" einbinden ohne das von aussen einer Zugriff auf das Passwort hat.
Bibt es da Möglichkeiten?

Gruß

croeh

marce
19.06.15, 19:59
Zugriffe per ssh, die nicht mit Login + PW laufen sollen erledigt man am einfachsten mit KeyAuth.

BetterWorld
19.06.15, 23:02
Wenn ein WSGI Script via HTTP sichtbar ist, dann hat der Admin des Webservers seinen Job verfehlt.
Grober Fehler.

Das Script selbst finde ich nicht so dolle.
Entweder du machst es mit korrekten Scripten und sauber aufgesetzten Webserver via WSGI
oder du machst es via ssh.
Beides heißt lediglich zwei Fehlerquellen.