linuxforen.de -- User helfen Usern

Zurück   linuxforen.de -- User helfen Usern > Netzwerk > Linux als Server
Registrieren Hilfe Benutzerliste Kalender Alle Foren als gelesen markieren

Linux als Server Web, Mail, FTP, DNS, SAN, NAS und Andere

Antwort
 
Themen-Optionen Thema bewerten Ansicht
Alt 30.04.12, 09:33   #1
Wolfman_II
Registrierter Benutzer
 
Registriert seit: Apr 2012
Beiträge: 5
Zugriffskontrolle mit .htaccess

Hallo zusammen, ich habe hier ein kniffliges Problem bei dem ich bislang weder mit Suchen im Internet, noch in diversen Foren weitergekommen bin. Eigentlich geht es "nur" um den Schutz eines Verzeichnisses mittels .htaccess

Folgende Ausgangssituation:

Ich betreibe eine Website auf meinem eigenen Server. Installiert ist ein Apache 2.2.22; die Module mod_ssl und OpenSSL sind ebenfalls installiert. Der Zugriff über das Internet erfolgt ausschließlich über https. Im Router ist hierfür der Port 443 freigeschaltet. Um auf eine bestimmte Seite zugreifen zu können habe ich in einer .htaccess Datei eine SSL Client Authentifizierung eingerichtet. Dies funktioniert auch alles völlig problemlos.

Nun möchte ich aber zusätzlich folgendes erreichen:
Um aus dem LAN auf die selbe Seite zugreifen zu können, möchte ich keine SSL Client Authentifizierung durchführen. Hier soll jeder Client aus einem bestimmten Subnetz berechtigt sein die Seite mittels HTTP aufzurufen.

Es gibt Apache Konfiguartionen sowohl für den Zugriff mittels HTTPS, als auch für HTTP.

Nun gibt es in der Apache-Dokumentation eine Kombinationsprüfung, die (so wie ich das verstehe) genau das umsetzt was ich vorhabe und ich habe versucht diese in eine .htaccess Datei umzubauen. Leider mit mäßigem Erfolg.

So wie ich die Doku verstehe kann man hier unterschiedliche Prüfungskriterien definieren, die dann entweder jeweils einzeln (Satisfy any) oder alle zusammen (Statisfy all) zutreffen müssen, damit der Zugriff gestattet wird. Eigentlich entspricht das ganz exakt dem was ich vorhabe.

Ich habe mir aus dem Beispiel nun eine .htaccess Datei gebastelt, wobei ich das FakeBasicAuth aus der Doku weggelassen habe, da ich ja gerade keine Passwortabfrage generieren möchte, sondern eine reine Client-Zertifikats-Auth.

Meine .htaccess sieht nun so aus:


Code:
SSLOptions +StrictRequire
SSLVerifyClient optional
SSLVerifyDepth  5
SSLRequire %{SSL_CLIENT_S_DN_CN} eq "xxxxx" \
        or %{SSL_CLIENT_S_DN_CN} > "yyyyy" 

Order deny,allow
Deny from all
Allow from 192.168.178.0/24

Satisfy any
Leider funktioniert das nicht so wie in der Doku beschrieben.

Wenn ich nun aus dem LAN heraus per http auf die Webseite zugreife, wird mir diese einwandfrei angezeigt.
Wenn ich aus dem Internet per https auf die Webseite zugreife, wird mir eine Fehlerseite angezeigt, dass die Seite nicht gefunden werden konnte. Wenn ich allerdings die Order, Deny, Allow und Satisfy Anweisung auskommentiere und dann nochmal per https aus dem Internet die Seite aufrufe, wird, so wie es sein soll, nach dem Zertifikat gefragt und danach die Seite korrekt angezeigt.
Scheinbar funktioniert hier die Satisfy Prüfung irgendwie nicht.

Hab ich etwas übersehen oder muss in den Apache-Conf Dateien etwas besonderes eingestellt werden, damit die Satisfy Prüfung überhaupt stattfindet?

Ich hoffe, ich habe mich jetzt nicht zu verwirrend ausgedrückt.
Wolfman_II ist offline   Mit Zitat antworten
Alt 30.04.12, 09:50   #2
DrunkenFreak
Fieses Frettchen
 
Benutzerbild von DrunkenFreak
 
Registriert seit: Dec 2003
Beiträge: 2.614
Wir haben das mit zwei verschiedenen Vhosts gelöst. Vielleicht wäre das eine Alternative.
DrunkenFreak ist offline   Mit Zitat antworten
Alt 30.04.12, 10:27   #3
marce
Registrierter Benutzer
 
Registriert seit: Dec 2003
Ort: Sindelfingen
Beiträge: 17.645
ich vermute mal nach lesen der Doku, daß Du das falsch verstanden hast - es geht im Beispiel von der Apache-Doku nicht darum, daß jemand entweder mit ClientCert oder aus einem ded. Netzwerk zugreifen kann sondern darum, daß sowohl bei https also auch mit http entweder jemand aus einem ded. Netzwerk kommt oder eben ein htaccess-PW gewünscht ist.

Das was Du willst kannst Du denke ich nur dadurch erreichen, daß Du die jeweils gewünschten Config-Einstellungn direkt im vHost konfigurierst und nicht über eine allgemeingültige htacces.
__________________
Ich bin root - ich darf das.
marce ist gerade online   Mit Zitat antworten
Alt 30.04.12, 10:30   #4
Wolfman_II
Registrierter Benutzer
 
Registriert seit: Apr 2012
Beiträge: 5
Ja, den Tip mit zwei vHosts habe ich auch schon mal bekommen. Diese Lösung würde für mich aber verschiedene Nachteile mitbringen.

Erstens werden die vHosts ja in den Apache-Conf Dateien konfiguriert und diese werden bei mir leider bei jedem Firmwareupdate wieder auf Original zurückgesetzt, so dass ich jedes mal wieder die Änderungen neu durchführen müsste.

Zweitens möchte ich verschiedene Unterseiten der Website für verschiedene Client-Zertifikate freigeben; deshalb kann ich die Client-Zertifikate nicht im vHost konfigurieren, da diese dann ja für alle Unterseiten Gültigkeit hätten.

Aus diesen Gründen würde ich eigentlich gerne die Lösung mit einer .htaccess Datei realisieren, da ich diese angepasst für jedes Unterverzeichnis verwenden könnte und diese nicht bei einem Update überschrieben wird.
Und laut Doku sollte das doch auch eigentlich funktionieren.

Wie hast du denn die Config mit deinen vHosts gemacht?
Wolfman_II ist offline   Mit Zitat antworten
Alt 30.04.12, 10:36   #5
Wolfman_II
Registrierter Benutzer
 
Registriert seit: Apr 2012
Beiträge: 5
Hallo Marce, so wie ich das Beispiel verstehe, wird der Zugriff aus dem Internet mit RewriteCond immer auf HTTPS umgelenkt und dann eine Auth mittels Passwort durchgeführt. Die RewriteCond kann ich mir bei mir sparen, da aus dem Internet eh nur der Port 443 geöffnet ist und somit ein Zugriff mittels HTTP auf Port 80 nicht möglich ist und somit auch nicht umgeschrieben werden muss. Und das Basic Auth kann man ja durch ein Client-Zert Auth ersetzen.
Der interne Zugriff aus dem LAN wird im Beispiel im vorletzten Absatz dann mit Order Deny,Allow geregelt. Die Kombinationsprüfung ist dann das Satisfy Any.

Geändert von Wolfman_II (30.04.12 um 10:40 Uhr)
Wolfman_II ist offline   Mit Zitat antworten
Alt 30.04.12, 11:37   #6
marce
Registrierter Benutzer
 
Registriert seit: Dec 2003
Ort: Sindelfingen
Beiträge: 17.645
Deine Client-Cert-"Muss da sein-Konfig"-Einstellung ist nichts, was Satsfiy bearbeitet. Das ist nur dafür da, zwischen IP und PW-Zugriff zu unterscheiden.

Siehe Doku.

Ansonsten - wenn deine Apache-Config nach Updates überschrieben ist hast Du was falsch gemacht.

Wenn Du Dinge öfters verwenden willst - kannst Du sie auch in ded. Konfigfiles auslagern und an gewünschter Stelle includen - so musst Du es nur 1x pflegen.

Das was Du willst geht über die .htaccess nicht - sauber nur über ded. getrennte Hosts, die entsprechend eingerichtet sind.
__________________
Ich bin root - ich darf das.
marce ist gerade online   Mit Zitat antworten
Alt 30.04.12, 16:00   #7
Wolfman_II
Registrierter Benutzer
 
Registriert seit: Apr 2012
Beiträge: 5
Hmmm, das ist ärgerlich. Es hätte so einfach sein können....
Wolfman_II ist offline   Mit Zitat antworten
Alt 30.04.12, 16:02   #8
DrunkenFreak
Fieses Frettchen
 
Benutzerbild von DrunkenFreak
 
Registriert seit: Dec 2003
Beiträge: 2.614
Möglich ist vieles mit PHP. Musst einfach nur die IP abfragen, welche die Anfrage stellt. Je nachdem welches es dann ist, leitest du entweder direkt weiter oder machst eine Überprüfung auf das Zertifikat (das wirst du wahrscheinlich auch wieder in PHP machen müssen).
DrunkenFreak ist offline   Mit Zitat antworten
Alt 30.04.12, 16:36   #9
Wolfman_II
Registrierter Benutzer
 
Registriert seit: Apr 2012
Beiträge: 5
Ja, PHP war vorhin auch ein Gedanke von mir, hab ich aber schon wieder verworfen.
Ich denke ich werde das mit den vHosts realisieren. Ich mache mir eine Muster Konfiguration und kopiere die nach einem Firmwareupdate einfach wieder zurück. Ist zwar lästig, kommt ja aber auch nicht sooo häufig vor.

Danke für eure Gedanken.
Wolfman_II ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
xampp 1.7 probleme mit .htaccess taskin73 Linux als Server 1 18.11.09 21:33
Problem mit .htaccess und Satisfy dingeling Linux als Server 10 29.09.09 10:36
.htaccess Problem Boyker Linux als Server 1 29.09.06 21:34
Virtuell Host und .htaccess be1001 Linux als Server 7 04.12.05 12:52
.htaccess funzt einfach nicht... Heike Sicherheit 12 20.04.02 12:23


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
linuxforen.de -- sponsored by Kemm IT