• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Umleitungsfehler wegen falschem Eintrag in .htaccess?

FTtk

FliegenToeter

Registriert
18 Feb. 2014
Beiträge
147
Hi, ich möchte bei meiner Wordpress Installation eigentlich nur die wp-login.php mit einem Passwort zusätzlich schützen. Eigentlich sollte das mit diesem Codeschnipsel in der .htaccess doch funktionieren oder:

[src=apache]# Passwortschutz des Login Bereichs
<Files wp-login.php>
AuthName "Admin-Bereich"
AuthType Basic
AuthUserFile /home/u1111111/public_html/.htpasswd
require valid-user
</Files>[/src]

Die .htpasswd wurde hier erstellt: http://www.htaccesstools.com/htpasswd-generator/
Der Pfad zur .htpasswd wurde so ermittelt: http://www.htaccesstools.com/articles/full-path-to-file-using-php/
(u1111111 ist jetzt nur beispielhaft oben eingesetzt)

Leider führt das nur zu einem Umleitungsfehler beim Aufruf des Login Links:

Fehler: Umleitungsfehler

Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.

Dieses Problem kann manchmal auftreten, wenn Cookies deaktiviert oder abgelehnt werden.


Da ich einfach nicht feststellen konnte, was das Problem sein könnte dachte ich mir, ich sperre den Login Bereich wenigstens und lasse nur deutsche IPs zu:

[src=apache]# Geosperre für wp-login.php, erlaube nur deutsche IPs
<Files wp-login.php>
order deny,allow
deny from all
allow from .de
</Files>[/src]

Das funktioniert im Prinzip, doch beim Aufruf von einer nicht deutschen IP kommt ebenfalls dieser Umleitungsfehler.

Habt ihr eine Ahnung, was diesen Umleitungsfehler verursacht und beim unteren Code nicht einfach ein "Nicht gefunden" zurückschickt bei äusländischen IPs?

Falls ich da einen Fehler gemacht habe möchte ich die beiden Sperren gleich kombinieren. Also bei einer deutschen IP eine zusätzliche Passwortabfrage, bis man zur Loginseite kommt und andere IPs komplett aussperren schon vor der zusätzlichen Passwortanfrage.

Den Login auf spezielle IPs zu begrenzen geht leider nicht, habe keine feste.

Danke
 

NbN

Webwanderer

Registriert
28 Jan. 2014
Beiträge
207
Da es sich bei deiner Frage speziell auf WP bezieht, bringt dich das vieleicht weiter. Ansonsten hätte ich auf weitere htaccess Dateien in Unterverzeichnissen getippt.
 

FTtk

FliegenToeter

Registriert
18 Feb. 2014
Beiträge
147
  • Thread Starter Thread Starter
  • #3
Das hatte ich tatsächlich schon gefunden. Aber mein Pfad stimmt und Permalinks kann ich nicht ändern, sonst müsste ich alle "Teilen Buttons" neu verlinken.

Werde dann mal die Unterverzeichnisse abklappern.

Edit: Konnte keine anderen .htaccess Datein in Unterverzeichnissen finden.
Die Datei wp-login.php um die es geht liegt auch im root Ordner, sowie die .htaccess und die .htpasswd.
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.758
Ort
in der Zukunft
Die wp_login wird vermutlich immer aufgerufen - auch wenn du dich nicht einloggst. Nur weil die Datei "login" heißt - heißt das nicht das diese im Programmablauf nur beim klick auf "Login" verarbeitet wird ;)
Wenn du Wordpress aufrufst und eingeloggt bist - dann wird ja im Login-Modul auch der Logout und/oder dein Name angezeigt.

Ebenfalls wird normal beim Login-Prozess selber - die gleiche Datei nur mit Übergabe der Logindaten aufgerufen. Somit ruft sich die wp_login.php selber auf - und möchte dann jedes mal die Authentifizierung durchführen - und danach wieder sich selber aufrufen - was die Endlosschleife erklären könnte.

Die Frage ist was das bringen soll einen zweiten Passwortschutz auf die eine Datei zu legen.
Die wp_login.php verarbeitet ja "nur" den Login in das System - die meisten Sicherheitslücken sind in irgend einer Bibliothek, einem Addon oder sonst etwas - über das der Angreifer dann Zugriff auf Wordpress bekommt. Den Login mit einem Login zuschützen verursacht eigentlich ausschließlich doppelten Aufwand beim Einloggen. Einen Schutz vor irgendwas bietet es nicht.
 

FTtk

FliegenToeter

Registriert
18 Feb. 2014
Beiträge
147
  • Thread Starter Thread Starter
  • #5
Die Frage nach dem Sinn ist ganz einfach zu beantworten.
Wenn ein zusätzlicher Passwortschutz eingerichtet ist, wird der Server nicht bei Bruteforce Attacken belastet. Außerdem muss der "Eindringling" dann 2 Passwörter knacken und nicht nur eines. Im Falle einer solchen Attacke mache ich mir weniger Sorgen um mein Passwort sondern eher dass meine Seite zu viel Last auf dem Server verursacht und wegem dem CPU Limit dann 24 Stunden gesperrt wird. Dafür wäre es sinnvoll, wenn der Angreifer meine Login Seite nicht einmal zu Gesicht bekommt.

Hier die Anleitung nach der ich vorgegangen bin: http://playground.ebiene.de/initiative-wordpress-sicherheit/

Hatte das schon bei einer WordPress Installation vor ein paar Monaten gemacht und dort funktionierte das eigentlich ohne Probleme. Meine mich zu erinnern, dass ich das damals genau so gemacht habe.
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.758
Ort
in der Zukunft
Hast du das FileMatch das dort auf der Seite steht auch mit in deine .htaccess hinzugefügt?
Auch wenn ich das Login-Fenster noch immer nicht für die größte Schwachstelle halte - bei der Belastung des Servers muss ich dir recht geben, die php-ausführung benötigt länger als .htaccess.
Wobei ich mir da mehr um den Ram sorgen machen würde - als um die CPU.

Um zu testen ob der .htaccess an sich funktioniert - könnte man ihn evtl. auch mal allgemein für den Blog einrichten und nicht nur auf die login-datei.
Also ob das Basedir z.B. so passt.
 

FTtk

FliegenToeter

Registriert
18 Feb. 2014
Beiträge
147
  • Thread Starter Thread Starter
  • #7
Hast du das FileMatch das dort auf der Seite steht auch mit in deine .htaccess hinzugefügt?
Ja, hier mal die komplette Datei:
[src=apache]# WordPress SEO - XML Sitemap Rewrite Fix
RewriteEngine On
RewriteBase /
RewriteRule ^sitemap_index.xml$ /index.php?sitemap=1 [L]
RewriteRule ^locations.kml$ /index.php?sitemap=wpseo_local_kml [L]
RewriteRule ^geo_sitemap.xml$ /index.php?sitemap=geo [L]
RewriteRule ^([^/]+?)-sitemap([0-9]+)?.xml$ /index.php?sitemap=$1&sitemap_n=$2 [L]
RewriteRule ^([a-z]+)?-?sitemap.xsl$ /index.php?xsl=$1 [L]
# END WordPress SEO - XML Sitemap Rewrite Fix

# BEGIN W3TC Browser Cache
<IfModule mod_mime.c>
AddType text/css .css
AddType text/x-component .htc
AddType application/x-javascript .js
AddType application/javascript .js2
AddType text/javascript .js3
AddType text/x-js .js4
AddType text/html .html .htm
AddType text/richtext .rtf .rtx
AddType image/svg+xml .svg .svgz
AddType text/plain .txt
AddType text/xsd .xsd
AddType text/xsl .xsl
AddType text/xml .xml
AddType video/asf .asf .asx .wax .wmv .wmx
AddType video/avi .avi
AddType image/bmp .bmp
AddType application/java .class
AddType video/divx .divx
AddType application/msword .doc .docx
AddType application/vnd.ms-fontobject .eot
AddType application/x-msdownload .exe
AddType image/gif .gif
AddType application/x-gzip .gz .gzip
AddType image/x-icon .ico
AddType image/jpeg .jpg .jpeg .jpe
AddType application/json .json
AddType application/vnd.ms-access .mdb
AddType audio/midi .mid .midi
AddType video/quicktime .mov .qt
AddType audio/mpeg .mp3 .m4a
AddType video/mp4 .mp4 .m4v
AddType video/mpeg .mpeg .mpg .mpe
AddType application/vnd.ms-project .mpp
AddType application/x-font-otf .otf
AddType application/vnd.ms-opentype .otf
AddType application/vnd.oasis.opendocument.database .odb
AddType application/vnd.oasis.opendocument.chart .odc
AddType application/vnd.oasis.opendocument.formula .odf
AddType application/vnd.oasis.opendocument.graphics .odg
AddType application/vnd.oasis.opendocument.presentation .odp
AddType application/vnd.oasis.opendocument.spreadsheet .ods
AddType application/vnd.oasis.opendocument.text .odt
AddType audio/ogg .ogg
AddType application/pdf .pdf
AddType image/png .png
AddType application/vnd.ms-powerpoint .pot .pps .ppt .pptx
AddType audio/x-realaudio .ra .ram
AddType application/x-shockwave-flash .swf
AddType application/x-tar .tar
AddType image/tiff .tif .tiff
AddType application/x-font-ttf .ttf .ttc
AddType application/vnd.ms-opentype .ttf .ttc
AddType audio/wav .wav
AddType audio/wma .wma
AddType application/vnd.ms-write .wri
AddType application/font-woff .woff
AddType application/vnd.ms-excel .xla .xls .xlsx .xlt .xlw
AddType application/zip .zip
</IfModule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/css A31536000
ExpiresByType text/x-component A31536000
ExpiresByType application/x-javascript A31536000
ExpiresByType application/javascript A31536000
ExpiresByType text/javascript A31536000
ExpiresByType text/x-js A31536000
ExpiresByType text/html A3600
ExpiresByType text/richtext A3600
ExpiresByType image/svg+xml A3600
ExpiresByType text/plain A3600
ExpiresByType text/xsd A3600
ExpiresByType text/xsl A3600
ExpiresByType text/xml A3600
ExpiresByType video/asf A31536000
ExpiresByType video/avi A31536000
ExpiresByType image/bmp A31536000
ExpiresByType application/java A31536000
ExpiresByType video/divx A31536000
ExpiresByType application/msword A31536000
ExpiresByType application/vnd.ms-fontobject A31536000
ExpiresByType application/x-msdownload A31536000
ExpiresByType image/gif A31536000
ExpiresByType application/x-gzip A31536000
ExpiresByType image/x-icon A31536000
ExpiresByType image/jpeg A31536000
ExpiresByType application/json A31536000
ExpiresByType application/vnd.ms-access A31536000
ExpiresByType audio/midi A31536000
ExpiresByType video/quicktime A31536000
ExpiresByType audio/mpeg A31536000
ExpiresByType video/mp4 A31536000
ExpiresByType video/mpeg A31536000
ExpiresByType application/vnd.ms-project A31536000
ExpiresByType application/x-font-otf A31536000
ExpiresByType application/vnd.ms-opentype A31536000
ExpiresByType application/vnd.oasis.opendocument.database A31536000
ExpiresByType application/vnd.oasis.opendocument.chart A31536000
ExpiresByType application/vnd.oasis.opendocument.formula A31536000
ExpiresByType application/vnd.oasis.opendocument.graphics A31536000
ExpiresByType application/vnd.oasis.opendocument.presentation A31536000
ExpiresByType application/vnd.oasis.opendocument.spreadsheet A31536000
ExpiresByType application/vnd.oasis.opendocument.text A31536000
ExpiresByType audio/ogg A31536000
ExpiresByType application/pdf A31536000
ExpiresByType image/png A31536000
ExpiresByType application/vnd.ms-powerpoint A31536000
ExpiresByType audio/x-realaudio A31536000
ExpiresByType image/svg+xml A31536000
ExpiresByType application/x-shockwave-flash A31536000
ExpiresByType application/x-tar A31536000
ExpiresByType image/tiff A31536000
ExpiresByType application/x-font-ttf A31536000
ExpiresByType application/vnd.ms-opentype A31536000
ExpiresByType audio/wav A31536000
ExpiresByType audio/wma A31536000
ExpiresByType application/vnd.ms-write A31536000
ExpiresByType application/font-woff A31536000
ExpiresByType application/vnd.ms-excel A31536000
ExpiresByType application/zip A31536000
</IfModule>
<IfModule mod_deflate.c>
<IfModule mod_headers.c>
Header append Vary User-Agent env=!dont-vary
</IfModule>
AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon application/json
<IfModule mod_mime.c>
# DEFLATE by extension
AddOutputFilter DEFLATE js css htm html xml
</IfModule>
</IfModule>
# END W3TC Browser Cache
# BEGIN W3TC Page Cache core
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteRule .* - [E=W3TC_ENC:_gzip]
RewriteCond %{HTTP_COOKIE} w3tc_preview [NC]
RewriteRule .* - [E=W3TC_PREVIEW:_preview]
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{QUERY_STRING} =""
RewriteCond %{REQUEST_URI} \/$
RewriteCond %{HTTP_COOKIE} !(comment_author|wp\-postpass|w3tc_logged_out|wordpress_logged_in|wptouch_switch_toggle) [NC]
RewriteCond "%{DOCUMENT_ROOT}/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_PREVIEW}.html%{ENV:W3TC_ENC}" -f
RewriteRule .* "/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_PREVIEW}.html%{ENV:W3TC_ENC}" [L]
</IfModule>
# END W3TC Page Cache core

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

# Zugriff auf Include-Dateien verhindern
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

# Passwortschutz des Login Bereichs
#<Files wp-login.php>
# AuthName "Admin-Bereich"
# AuthType Basic
# AuthUserFile /home/u1111111/public_html/.htpasswd
# require valid-user
#</Files>

# Geosperre für wp-login.php, erlaube nur deutsche ips
<Files wp-login.php>
order deny,allow
deny from all
allow from .de
</Files>

# Zugriff auf wp-config, Logdateien, .hta bzw. .htp und Liesmich verhindern
<FilesMatch "(\.htaccess|\.htpasswd|wp-config\.php|liesmich\.html|readme\.html)">
order deny,allow
deny from all
satisfy all
</FilesMatch>

# Prevent folder browsing
Options All -Indexes

# Badbots blockieren [Letzte Aktualisierung: 17.04.2014]
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} updown_tester [OR]
RewriteCond %{HTTP_USER_AGENT} (Squider|Squider/0.01)$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^magpie-crawler/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} SiteExplorer/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} Spiderlytics/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} ProCogSEOBot/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} ^libwww-perl/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} TurnitinBot/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} meanpathbot/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} SemrushBot/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} Infohelfer/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} CompSpyBot/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} AhrefsBot/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} CareerBot/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} Moreover/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} MJ12bot/v[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} BLEXBot/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} Ezooms/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} Abonti/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} DCPbot/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} ^Java/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} oBot/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} ^BOT/[0-9] [OR]
RewriteCond %{HTTP_USER_AGENT} SearchmetricsBot [OR]
RewriteCond %{HTTP_USER_AGENT} OpenindexSpider [OR]
RewriteCond %{HTTP_USER_AGENT} BacklinkCrawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^ssearch_bot [OR]
RewriteCond %{HTTP_USER_AGENT} UnisterBot [OR]
RewriteCond %{HTTP_USER_AGENT} 360Spider$ [OR]
RewriteCond %{HTTP_USER_AGENT} SISTRIX
RewriteRule ^ - [F,L][/src]

Der Passwortschutz ist ausgeklammert, weil es ja nicht funktioniert.
Ganz oben ist ein Fix, ohne den die Sitemaps nicht funktionieren würden, dann kommt der Teil für das Caching von W3 Total Cache, dann der Teil von Wordpress selbst.
Alles ab # END WordPress wurde von mir hinzugefügt. Bis auf meine beiden Einträge mit dem wp-login funktioniert auch alles...

Wobei ich mir da mehr um den Ram sorgen machen würde - als um die CPU.
Gibt bei mir nur eine CPU Obergrenze, die man nicht überschreiten darf, soweit ich weiß :D
 
Zuletzt bearbeitet:

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.758
Ort
in der Zukunft
Hm - 2 Punkte - zum einen wie hast du den Pfad zur wp_login.php ermittelt?
Zum anderen - hast du in der Konfiguration von Wordpress als Seitenadresse überall deine Domain mit oder ohne www. vor der Domain eingegeben?
 

FTtk

FliegenToeter

Registriert
18 Feb. 2014
Beiträge
147
  • Thread Starter Thread Starter
  • #9
Warum den Pfad ermittelt? Die Datei liegt wie gesagt einfach im Root Ordner, wo auch die .htaccess, .htpasswd und so weiter liegen.

Die Adresse ist ohne www. angegeben.
Alle www Anfragen werden an die Adresse ohne www weitergeleitet. Kannst du auch testen, es geht das Blog in meiner Signatur.
 

Coca-Cola

2. schwarzes KKK Mitglied

Registriert
13 Aug. 2013
Beiträge
69
Ort
.de/BW
Hast du auf dem Server die Rechte, um dich auf der Root Ebene zu bewegen?
Ich könnte mir vorstellen, das für die htaccess die unterste Ebene nicht / ist, sondern puplic_html.
Du kannst mal probieren, den Pfad zur htpasswd mit ./.htpasswd anzugeben.
 

FTtk

FliegenToeter

Registriert
18 Feb. 2014
Beiträge
147
  • Thread Starter Thread Starter
  • #11
Habe schon alle möglichen Pfade versucht, resultiert alles in diesen Umleitungsfehlern.

Ich verstehe vor allem nicht, warum
[src=apache]# Geosperre für wp-login.php, erlaube nur deutsche ips
<Files wp-login.php>
order deny,allow
deny from all
allow from .de
</Files>
[/src]

Bei nicht deutschen IPs in einem Umleitungsfehler resultiert. Normalerweise sollte doch einfach nur ein "Zugriff verweigert" oder "Nicht gefunden" zurückkommen.
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.758
Ort
in der Zukunft
Warum den Pfad ermittelt? Die Datei liegt wie gesagt einfach im Root Ordner, wo auch die .htaccess, .htpasswd und so weiter liegen.

Ich meinte den Pfad den du in der .htaccess als Webroot angegeben hast. /home/..../html/wp_login.php.
Ob der Pfad wirklich stimmt.

Das Problem kann aber durchaus die Geschichte mit der Umleitung von www. auf nicht www liegen - evtl. ist der vHost mit www angelegt im Server?
Hast du die Umleitung eingestellt - wenn ja wo?
Wenn du jetzt in der Config alles ohne www. davor betreibst - könntest du genau das Gegenteil mal testen.

Wenn nach der Authentifizierung der Besucher auf die Adresse mit www. geleitet wird, und die Umleitung bringt ihn dann wieder auf die ohne www
er dann erneut Authentifiziert wird weil dort die .htaccess greift > Er dann umgeleitet wird auf die mit www, er dann dort zurück umgeleitet wird auf die ohne www.....
 
Oben