phpMyAdmin

Dieses Thema im Forum "Technischer Support" wurde erstellt von AnonymusChaotic, 7. März 2015.

  1. AnonymusChaotic
    Offline

    AnonymusChaotic

    Registriert seit:
    22. November 2013
    Beiträge:
    762
    Ort:
    Wien, Österreich
    Minecraft:
    AnonymusChaotic
    Ich richte gerade meinen zweiten v-Server ein, allerdings lässt sich aus welchem Grund auch immer der Root-login in phpMyAdmin nicht unterbinden.

    Ich habe folgende Anleitung dazu verwendet:

    https://pits-online.info/2013/04/13/phpmyadmin-absichern/

    Die Schritte bezüglich Root-Login wurden durchgeführt, allerdings kann ich mich weiterhin munter mit root anmelden, auch nach restart des gesamten Servers.

    Warum und wie kann man das beheben?
     
    #1
  2. CallItAlex
    Offline

    CallItAlex

    Registriert seit:
    6. November 2014
    Beiträge:
    17
    Ort:
    Main-Tauber-Kreis
    Minecraft:
    Alex1
    Ich könnte mir das nur so erklären, dass du die Dateien/Zeilen falsch abgeschrieben bzw. geändert hast.

    Überprüfe bitte nochmal, ob das der Fall ist.

    Over & Out
     
    #2
  3. CoLu
    Offline

    CoLu

    Registriert seit:
    31. Oktober 2013
    Beiträge:
    314
    Minecraft:
    CoLu
    Hast du den Shell-Login vom Root gesperrt?
    Vielleicht hängt das damit zusammen

    Gruß
    Co
     
    #3
  4. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    Nein, tuts nicht.

    Du wirst dich vertippt haben oder PMA hat noch irgendwelche gecachten Werte, Webserver neustarten und Cookies löschen erledigt das aber.

    Root Login sperren ist übrigens nicht wirklich ein Sicherheitsfeature. Korrekterweise schützt man eine PMA Installation mit einem Verzeichnispasswort (Stickwort: httpauth). Sich darauf zu verlassen, dass die Software keine Bugs hat ist nämlich arg leichtsinnig. Und dann macht es auch keinen Sinn mehr den Rootlogin abzuschalten.
     
    #4
  5. AnonymusChaotic
    Offline

    AnonymusChaotic

    Registriert seit:
    22. November 2013
    Beiträge:
    762
    Ort:
    Wien, Österreich
    Minecraft:
    AnonymusChaotic
    Danke für den Tipp :) Werde mich darum kümmern :)
     
    #5
  6. AnonymusChaotic
    Offline

    AnonymusChaotic

    Registriert seit:
    22. November 2013
    Beiträge:
    762
    Ort:
    Wien, Österreich
    Minecraft:
    AnonymusChaotic
    @SpiritWalker
    wg. Verzeichnisschutz:
    Ich habe jetzt versucht, den entsprechenden Verzeichnisschutz anzulegen (als root) mit folgenden Befehlen:
    Code (Text):
    1.  
    2. cd /usr/share/phpmyadmin
    3. nano .htaccess
    4.  
    Dort dann die folgenden Zeilein eingefügt:
    Code (Text):
    1.  
    2. AuthType Basic
    3. AuthUserFile /root/.passwd
    4. AuthName "websvn"
    5. order deny,allow
    6. allow from all
    7. require valid-user
    8.  
    Code (Text):
    1.  
    2. cd /root
    3. htpasswd -cs .passwd einusername
    4.  
    Passwörter eingegeben.

    In der /etc/apache2/conf.d/phpmyadmin.conf AllowOverride All
    ergänzt:

    Code (Text):
    1.  
    2. # phpMyAdmin default Apache configuration
    3. Alias /database /usr/share/phpmyadmin
    4. <Directory /usr/share/phpmyadmin>
    5. Options Indexes FollowSymLinks
    6. AllowOverride All
    7. […]
    8.  
    9.  
    10.  
    //EDIT: bei mir habe ich nachträglich den Eintrag auf AllowOverride AuthConfig geändert, das ist laut http://de.selfhtml.org/servercgi/server/htaccess.htm anscheinend besser.
    Apache mit /etc/init.d/apache2 restart restartet.

    Seite http://meineIP/entsprechenderAlias/ aufgerufen, Username und Passwort eingegeben, abgesendet.
    Code (Text):
    1.  
    2. Internal Server Error
    3. The server encountered an internal error or misconfiguration and was unable to complete your request.
    4.  
    5. Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.
    6.  
    7. More information about this error may be available in the server error log.
    8.  
    9. Apache/2.2.22 (Debian) Server at DASISTMEINEIP Port 80
    10.  
    Eintrag im Apache Log:
    [Sun Mar 08 20:40:57 2015] [error] [client meineip] (13)Permission denied: Could not open password file: /root/.passwd


    Warum? Der Apache-Prozess läuft ja soviel ich weiß als Root, müsste folglich auch zugreifen können.
    Bzw. wem müsste ich die Datei zuschreiben/welche Dateiberechtigungen muss ich setzen?
     
    #6
  7. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    OMG heilige Scheiße. Hör auf irgendwelche normalen Dateien in /root zu speichern. Die Datei kannste irgendwo speichern und der Webserver sollte als httpd user Laufen oder sowas, das hängt von deiner Distribution ab.
     
    #7
    McLive gefällt das.
  8. AnonymusChaotic
    Offline

    AnonymusChaotic

    Registriert seit:
    22. November 2013
    Beiträge:
    762
    Ort:
    Wien, Österreich
    Minecraft:
    AnonymusChaotic
    Habe das Ganze jetzt über den Haufen geworfen und folgendes gemacht:

    nano /etc/apache2/conf.d/phpmyadmin.conf

    Code (Text):
    1.  
    2. # phpMyAdmin default Apache configuration
    3.  
    4. Alias /meingeheimerAlias /usr/share/phpmyadmin
    5.  
    6. <Directory /usr/share/phpmyadmin>
    7.         Options FollowSymLinks
    8.         AllowOverride AuthConfig
    9. ======================================
    10. ======================================
    11.         AuthType Basic
    12.         AuthName "Restricted area!"
    13.         AuthUserFile /usr/share/phpmyadmin/.htpasswd
    14.         Require valid-user
    15. ======================================
    16. ======================================
    17.  
    18.         DirectoryIndex index.php
    19.  
    20.         <IfModule mod_php5.c>
    21.                 AddType application/x-httpd-php .php
    22.  
    23.                 php_flag magic_quotes_gpc Off
    24.                 php_flag track_vars On
    25.                 php_flag register_globals Off
    26.                 php_admin_flag allow_url_fopen Off
    27.                 php_value include_path .
    28.                 php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
    29.                 php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
    30.         </IfModule>
    31.  
    32. </Directory>
    33.  
    34. # Authorize for setup
    35. <Directory /usr/share/phpmyadmin/setup>
    36.     <IfModule mod_authn_file.c>
    37.     AuthType Basic
    38.     AuthName "phpMyAdmin Setup"
    39.     AuthUserFile /etc/phpmyadmin/htpasswd.setup
    40.     </IfModule>
    41.     Require valid-user
    42. </Directory>
    43.  
    44. # Disallow web access to directories that don't need it
    45. <Directory /usr/share/phpmyadmin/libraries>
    46.     Order Deny,Allow
    47.     Deny from All
    48. </Directory>
    49. <Directory /usr/share/phpmyadmin/setup/lib>
    50.     Order Deny,Allow
    51.     Deny from All
    52. </Directory>
    53.  
    54.  
    Das zwischen den == ist wg. dem Passwortschutz ergänzt worden, die == gehören natürlich nicht dazu ;)

    cd /usr/share/phpmyadmin
    htpasswd -cs .htpasswd theUser
    -->New password:
    -->Re-type new password:
    /etc/init.d/apache2 restart

    Sich freuen, dass man für so was einfaches nen ganzen tag ver******** hat :)

    Danke an alle, die mitgeholfen haben :)
     
    #8
  9. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    Das schaut schon viel besser aus. Man kann den Passwortschutz übrigens auch in .htaccess Dateien machen, das Problem welches man dabei allerdings haben kann ist, dass die Passwortdatei, die man idealerweise daneben legt vom Server aufgrund eines Fehler rausgeschickt wird, oder aber, dass die Software die auf dem Webspace läuft die Datei editieren kann und jemand durch eine Sicherheitslücke deine Passwortdatei überschreibt.
     
    #9
    AnonymusChaotic gefällt das.
  10. AnonymusChaotic
    Offline

    AnonymusChaotic

    Registriert seit:
    22. November 2013
    Beiträge:
    762
    Ort:
    Wien, Österreich
    Minecraft:
    AnonymusChaotic
    Deshalb ja der Ansatz, das unter /root abzuspeichern

    Naja, Zuerst einmal das Verzeichnis finden, dann den Passwortschutz knacken, dann den Zutritt zu PHPmyAdmin knacken und dann kann man von Phpmyadmin aus weitere Versuche unternehmen, in das System einzudringen.Viel Erfolg (bei wem anderen);)
     
    #10
  11. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    /root ist kein geheimer Ort. Das ist ein Verzeichnis wie jedes andere auch, nur halt, dass du als default nicht als root darin lesen und schreiben kannst. Der Webserver läuft allerdings überhaupt nicht als root (und wenn du mal Server findest, die als root laufen dann sind das minimalistische Helferprozesse wie z.B. sshd sie nutzt um eine Usershell zu öffnen.)

    Dem Webserver gibt man daher Zugriff auf genau die Dateien, die er wirklich braucht und man geht davon aus, dass all diese Dateien von einem Angreifer gelesen werden können, wenn er Zugriff über den Webserverprozess hat. Das ist die grundsätzliche Vorgehensweise.
     
    #11
  12. AnonymusChaotic
    Offline

    AnonymusChaotic

    Registriert seit:
    22. November 2013
    Beiträge:
    762
    Ort:
    Wien, Österreich
    Minecraft:
    AnonymusChaotic
    Unter Debian mit apache2 muss ich folglich alle Dateien als www-data speichern, stimmt das so?
     
    #12
  13. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    Ich hab grad keinen Debianserver zur Hand, aber aus dem Gedächtnis herraus war das so, ja. Bedenke dabei aber auch, dass der Apache sich wie ein User verhält, der kann genau dasselbe machen wie ein User. Wenn du also mehrere Webanwendungen nutzt, dann laufen die (sofern das PHP Modul installier ist) alle gemeinsam als mit dem selben Nutzer. Das kann vor allem dann zu Problemen führen, wenn man eigentlich getrennte Berechtigungen haben wie (wie das beispielsweise Webhoster machen). Das ist allerdings noch ein wenig aufwänder und erst dann relevant wenn man das wirklich braucht.

    Daher konnte der Webserver übrigens auch deine Datei in /root nicht lesen.
     
    #13
    AnonymusChaotic gefällt das.
  14. AnonymusChaotic
    Offline

    AnonymusChaotic

    Registriert seit:
    22. November 2013
    Beiträge:
    762
    Ort:
    Wien, Österreich
    Minecraft:
    AnonymusChaotic
    Eine Frage noch:
    Apache als Chroot laufen lassen oder nicht?
     
    #14
  15. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    Das wird auf jeden Fall komplizierter. Hab ich persönlich nie gemacht. Du solltest dir als erstes darüber im klaren werden, was du damit erreichen willst und ob du es nicht bereits durch sinnvolle Rechtevergabe erreichen kannst.
     
    #15