Passwortschutz für das WebIf der 7025

  • Moin, Moin!
    Nach einiger Zeit des Selbsttesten hier nun eine Möglichkeit für das Schützen des Webinterface per Passwort. Damit ist dann http://dbox/hdd nicht mehr für die ganze Welt offen und die Box kann getrost am Netz bleiben und ne Portfreigabe nach draußen bekommen.


    Wie eigentlich immer sind hierfür kleine Änderungen an Dateien nötig.


    1. Die angehängte Datei plugin.py kommt in das Verzeichniss /usr/lib/enigma2/python/Plugins/Extensions/Webinterface/ und ersetzt die vorhandene Datei. (oder es werden die Unterschiede meiner Datei zur CVS Datei übernommen. Ihr wisst schon .. :) )
    2. Durch einen Bug im Twisted (http://twistedmatrix.com/trac/ticket/2041) muss eine Datei gepatch werden. In der Datei /usr/lib/python2.4/site-packages/twisted/web2/auth/wrapper.py muss in in der Zeile 100
    return self.authenticate(req), seg[1: ]
    in
    return self.authenticate(req), seg
    geändert werden. Im Gemini2 1.9 ist das nicht mehr nötig.
    3. In der geänderten plugin.py sollte/könnte man sein eigenes Passwort einstellen.


    Wie in der plugin.py geschrieben, geht es immo nicht mit dem IE (hab nur Version 6). Der meint, die Resource nicht anzeigen zu können. Firefox, Opera und wget kommen damit wunderbar klar.


    wget http://user:password@127.0.0.1/web


    geht wunderbar.


    Warum man das Passwort zwei mal eingeben muss, ist mir immo noch nicht ganz klar. Bekomme ich aber auch noch raus :winking_face:


    PS.: Als kleines Schmankerl noch mit drin (aber auskommentiert) ist eine Funktion, um die Webzugriffe und alle Ausgaben von E2 in eine Datei schreiben zu können.
    PS.: Funktioniert derzeit nur bei aktuellen CVS-Images mit einem funktionierendem WebIF.

    Dateien

    Es heißt auch nicht mehr Troll, sondern Netzbürger mit Frustrationshintergrund.
    <br>
    Leider muß ich es extra schreiben: Kein Support per PM. Privater Support hilft uns nicht weiter als Forum!

    3 Mal editiert, zuletzt von 3c5x9 ()

  • HI,


    This is really great plugin, improve security, but I faced a problem, I've copied the plugin.py, now on the web it asks for User Name and Password which it should, but the problem is I don't what's the default User Name and Password, I have tried with the default passowrd for my box which I use with DCC, but it doesn't work too.


    Is there is a place where password is specified?


    Cheers

    Dreambox: 7025 - 500S
    USB - Stick: Kingston Datatraveler USB 2.0
    Hard Disk: Samsung 80GB
    Image in Flash: Gemini 2.x

  • Yes for sure, take a text editor like notepad and open the file.
    Then look for the password in it and change it how you want.
    It`s very easy.


    3c5x9: Vielleicht könnte man das ja direkt einbauen, wär ne feine Sache :)

  • es funktioniert recht gut. nur alle erweiterungen sind mit der im anhang stehenden datei weg. den umschreibpunkt habe ich noch nicht gefunden. sollte es eine neuere version der plugin.rar geben, wäre es schön wenn sie hier mit hinterlegt wäre.

  • Thanks, it works, I don't how it didn't work before.


    Cheers

    Dreambox: 7025 - 500S
    USB - Stick: Kingston Datatraveler USB 2.0
    Hard Disk: Samsung 80GB
    Image in Flash: Gemini 2.x

  • Hi,


    ich habe alle wie beschrieben gemacht,
    die Passwortabfrage kommt jetzt auch, nur was für ein Passwort muß ich default mäßig eingeben??


    Und noch wichtiger wo kann ich das Passwort ändern??

    uptime is 4 years, 1 week, 3 days, 15 hours, 57 minutes

  • kommt von hier: /usr/lib/enigma2/python/Plugins/Extensions/Webinterface/plugin.py


    und dann das anschaun:


    Python
    from twisted.cred.portal import Portal
    	from twisted.cred import checkers
    	from twisted.web2.auth import digest, basic, wrapper
    	portal = Portal(HTTPAuthRealm())
    	checker = checkers.InMemoryUsernamePasswordDatabaseDontUse(root='password')# CHANGE THIS FOR YOUR PASSWORD
    	portal.registerChecker(checker)
    	# i have tested it with md5 instead of sha, but that did not work. sha is not working with IE6. But who cares?!
    	root = wrapper.HTTPAuthResource(Toplevel(),
    	                                (basic.BasicCredentialFactory('DM7025'),digest.DigestCredentialFactory('sha','DM7025')),
    	                                portal, (IHTTPUser,))

    DreamBox 1: 7000s rev. 4 . . . . . . . . . . . . . . . Dreambox 2: 7025-SS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Dreambox 3: 600 PVR-S . . . . . . . . . Dreambox 4: DM800S HD PVR
    USB - Stick: Kingston Datatraveler USB 2.0 . . CF - Karte: 1GB Extrememory Performance w/o MB!
    Festplatte: IBM 120GB . . . . . . . . . . . . . . . . . . Festplatte: Maxtor 200GB. . . . . . . . . . . . . . . . . . . . . . . . . . . Festpaltte: Samsung 120GB. . . . . . . Festplatte: HDDrive2go 500GB eSata
    Image im Flash: Gemini 4.X0 . . . . . . . . . . . . . Image im Flash: Gemini 4.X0. . . . . . . . . . . . . . . . . . . . . . . . . Image im Flash: Gemini 4.X0. . . . . . Image im Flash: Gemini 5.X0
    Satelliten: 13,0°; 19,2°; 23,5° Ost. . . . . . . . . . Satelliten: NIM1 -19,2° Ost; NIM2 - 13,0°; 19,2°; 23,5° Ost . . Satelliten: 13,0°; 19,2°; 23,5° Ost . . Satelliten: 13,0°; 19,2°; 23,5° Ost


    ...Never cared for what they say - Never cared for games they play - Never cared for what they do - Never cared for what they know...


    ICH GEBE WEDER IM FORUM NOCH PER PM HILFE ZU KEYS BZW. PAYTV HACKS!

  • Merci,


    jetzt geht es :danke:



    Übrigens an alle Entwickler vom Gemini für DM 7025!


    Das neue Image ist echt ein super Job. :danke: :danke: :danke:

    uptime is 4 years, 1 week, 3 days, 15 hours, 57 minutes

  • Warum auch immer, bei mir (Firmware 1.9) und dem neuen plugin.py in /usr/lib/enigma2/python/Plugins/Extensions/WebInterface geht zwar alles wie bisher, aber da will kein browser ein password :frowning_face:

  • ausser man bootet :winking_face:


    Aber


    benutzer: root
    und
    password: password


    geht nicht. ich habe schon gelesen, wo man das password ändert, aber warum geht "root" als user nicht?


    FTP und Telnet gehen mit "root" als username, sollte der webinterface passwordschutz das nicht auch machen dann?

  • weil der code des Webserver nicht auf die Userverwaltung vom Linux und das /etc/passwd file wo das Linux User Password gespeicher wird zugreift sondern das password hardcodiert includiert hat !

    2 Mal editiert, zuletzt von gutemine ()

  • checker = checkers.InMemoryUsernamePasswordDatabaseDontUse(root='password')# CHANGE THIS FOR YOUR PASSWORD
    portal.registerChecker(checker)


    Was sagt Dir dieser Codeteil aus der geposteten plugin.py ?

  • kuck mal. Ich will doch nur etwas wissen.


    Das, was in der Programmzeile da steht habe ich schon ausprobiert, und bei mir geht es eben nicht, ich bekomme diesen User mit diesem Password nicht zum laufen. Siehe oben.


    Logisch mache ich also was falsch, und wer weiss was kann es mir ja einfach sagen. Wenn Du mir nicht ganz normal antworten kannst, dann lass es doch.


    Danke für alle, die eine weiterführende Antwort für mich haben...


    Grüße, Simpson!

  • schau ich will Dich ja nicht ärgern, aber mehr als das Du Username root und das im code angegebene password ausprobierst kann ich Dir auch nicht helfen, so hat es 3c5x9 halt implementiert und so steht es auch im thread.


    Und der Code besagt das ein User root verwendet wird, dieser aber eben sein eigenes hardcodiertes passwort password hat und nicht das passwort des root users auf Linux ebene - so böse war das also nicht gemeint ...


    Du kannst noch versuchen enigma zu stoppen und im telnet manuell zu starten um zu sehen ob es aussagekräftigere Fehlermeldungen gibt, aber dann weis ich auch nicht weiter:


    init 2
    killall -9 enigma2
    enigma2

    Einmal editiert, zuletzt von gutemine ()

  • ich hab das selbe problem wie Simpson199 egal ob ich den UN oder PW abändere oder nicht ich schaff es nicht zu verbinden bzw die eingaben in der maske werden einfach nicht angenommen, aber zum glück bin ich wenigstens nicht der einzige

    f®î€ñЧ 宀 ñö† €£€©†®î©

  • Dann postet mal eure editierten plugin.py hier...

    Es heißt auch nicht mehr Troll, sondern Netzbürger mit Frustrationshintergrund.
    <br>
    Leider muß ich es extra schreiben: Kein Support per PM. Privater Support hilft uns nicht weiter als Forum!

  • Zitat

    checker = checkers.InMemoryUsernamePasswordDatabaseDontUse(root='test')


    oder willste die komplette sehen?

    f®î€ñЧ 宀 ñö† €£€©†®î©

  • lad die hier mal hoch... komplett

    Es heißt auch nicht mehr Troll, sondern Netzbürger mit Frustrationshintergrund.
    <br>
    Leider muß ich es extra schreiben: Kein Support per PM. Privater Support hilft uns nicht weiter als Forum!