PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : apache zugriff extern auf Seite beschränken sites-enabled config oder htaccess



boesi666
23.09.14, 12:44
eine frage liegt beschäftigt mich heute noch...:

habe eine webseite in /vaw/www/kunde1/

der server steht lokal und mit einer apache Konfig können lokal angeschlossene rechner die seite auch ansehen über port 80 und auch 443
Der Server ist auch über eine öffentliche IP über das internet erreichbar
ich suche nun eine möglichkeit, dass das web kunde1 von lokalen Anfragen der PC's (192.160.5.x) ganz normal erreichbar ist, über das Internet jedoch prinzipiell nicht BIS auf einzelne Personen. Diese einzelnen Personen sollen über die feste ip ses web servers darauf zu greifen können. Diese einzelnen personen wählen sich mit ihrem Notebook jedoch von ganz normalen privaten DSL Anschlüssen bzw. auch per umts von unterwegs ein.

Mit einer .htaccess Datei in /var/www/ oder in /var/www/kunde1/ und Einträgen wie

Order deny,allow
Deny from ALL
Deny from 192.168
Allow from 192.160.5

komme ich nicht so richtig weiter, da die externen Leute durch ihre dynamischen Internet Zugänge ja immer andere IPs haben und Rechnername oder sowas senden die ja doch nicht mit was der apache erkennen würde, oder?

Mit AuthUserFile und require valid-user und einer Passwort Abfrage will ich die Leute die lokal an dem Server mit angebunden sind auch nicht ärgern
Habt Ihr einen Tipp wie man das am besten umsetzen könnte ohne viel Aufwand an dem Rechenr der Leute, die über das Internet darauf zugreifen sollen?

marce
23.09.14, 14:51
Du kannst in .htaccess-Dateien auch Hostnamen eintragen - ob das funktioniert hängt ein wenig vom DSL-Provider ab, der die dynmischen IPs vergibt und wie er das nach außen druchreicht.

Die Erfahrung sagt: vergiss es.

Entweder Du setzt auf einen Passwortschutz (stört, dank meist gespeicherter Passworte heute niemanden mehr) oder Du setzt auf so Dinge wie Client-Zertifikate + https.

Für die Leute, die Lokal zufgeifen kannst Du über eine entsprechende Satisfy Any-Konfiguration die Seite freigeben.

Sprich "IP-Bereich 192.168. darf ohne und für alle anderen bitte Login + PW". Siehe Apache-Doku.

https://wiki.apache.org/httpd/BypassAuthenticationOrAuthorizationRequirements
http://httpd.apache.org/docs/2.2/de/mod/core.html#satisfy

boesi666
23.09.14, 15:38
genau das war es! klasse
für den moment ist das erst mal gut. damit kann ich eine seperate vpn lösung oder so was in der Art noch ein wenig vor mir her schieben ;-)
htaccess Datei mit Inhalt einfach in den hauptordner und gut:

# .htaccess-Datei für Web-Verzeichnis /service
AuthType Basic
AuthName "Service-Bereich"
AuthUserFile /verwaltung/.htusers_Demo
Require valid-user
Order deny,allow
Deny from all
Allow from 192.160.5
Satisfy any

Klappt prima mit dem Satisfy any
Danke

boesi666
01.10.14, 19:14
Mal eine Frage hab ich doch noch. Nachdem ich nun ganz oben im webroot /var/www/ die htaccess Datei angelegt habe und diese nun nach dem User fragt, möchte ich allerdings den Zugriff in einem speziellen Unterordnern immer ALLEN Benutzern gestatten. So dachte ich, dass ich in dem Unterordner (z.B. /var/www/kunde1/public/ ) einfach eine weitere htaccess Datei packe, in der ich sage:
AuthType Basic
Require valid-user
Order deny,allow
Allow from all
Satisfy any

Das klappt leider nicht. Es kommt trotzdem ein Abfrage Dialog für User/Passwort beim Aufruf dieses Unterordner. Egal was ich probieren, alles klappt nicht. Wenn ich AuthType None schreibe, kommt ein internal server Error. Weiss einer, ob das geht, dass man in einem geschützem Bereich einen Unterordner wiederrum ohne Beschränkungen frei geben kann??

marce
01.10.14, 20:08
Ich hab's nicht ausprobiert, aber Google meint
http://stackoverflow.com/questions/8697706/exclude-one-folder-in-htaccess-protected-directory
http://stackoverflow.com/questions/9856951/exclude-folder-from-htpasswd

TomcatMJ
01.10.14, 23:35
Klingt eigentlich nach einem Paradeanwendungsfall für Client-Zertifikate :D
http://www.phpgangsta.de/client-zertifikate-als-sicherer-login-ersatz könnte da schonmal etwas mehr Licht ins Dunkel bringen als kurze Anleitung wie man sowas umsetzen kann.

boesi666
02.10.14, 10:43
cool. Der Eintrag mit :

SetEnvIf Request_URI "(path/to/directory/)$" allow
SetEnvIf Request_URI "(path/to/file\.php)$" allow
Order allow,deny
Allow from env=allow

ist sehr gut, da ich hiermit alles in der oberen globalen htaccess Datei steuern kann. DANKE! Das anlegen einer htaccess Datei im Unterordner zum freigeben des unterordner ohne Einschränkungen klappt auf normalen Servern, aber leider nicht an dem Server wo meine spezielle Web Anwendung drauf läuft, da dort bereits verschiedene andere Regeln sind. Daher die Steuerung von ganz oben aus /var/www/ genau richtig für mich.

boesi666
02.10.14, 10:45
HAllo TomcatMJ, ja das klingt gut! Ich habe schon ein zertifikat erstellt und der Server ist per https bereits in Bneutzung. Ich werden mir das aus dem Link genau durchlesen und schauen, wie das genau in der htaccess mit dem Abverlangen des Zwertifikates + Passwort funktioniert

marce
02.10.14, 12:43
:-) nicht, daß ich diese Option in #2 auch schon erwähnt hätte - halt nur ohne Link dahinter...

Cool diesbezüglich sind die "netten" Zusatzfeatures, die Du damit gleich automatisch mitbekommen kannst wie zeitgesteuerter Zugriff, automatischer Ablauf der Berechtigung, Rollback von Berechtigungen, ...

boesi666
02.10.14, 15:56
da hast Du Recht!