Zugang zu Apache nur fuer bestimmte Proxy Server erlauben
Auf einem meiner Webserver auf der Arbeit liegen diverse „Angebote“, die nur fuer ausgewaehlte User zugaenglich sein sollen. Auf VPN und Zertifikate habe ich nicht so viel Lust (Aufwand und Verwaltung etc.), sondern beschraenke den Zugriff halt auf die Proxy Server der Leute / Kollegen (auch aus anderen Systemhauesern), die darauf zugreifen wollen / sollen.
Ich habe mittlerweile an die 12 Proxy Server fuer 5 Diverse Bereiche (Directory / Location) zu verwalten, die ich dann direkt oder per Regex in die Allow Direktive packe. Schoen finde ich das nicht und deswegen habe ich mir die SetEnvIf Direktive angeschaut …
Das ganze funktioniert dann so:
apache2.conf:
...
SetEnvIf Remote_Addr 123.45.6.78.9? PROXY_A
SetEnvIf Remote_Addr 132.54.67|89.12[5-7] PROXY_B
SetEnvIf Remote_Addr 222.111.333.44|55 PROXY_C
...
# Meine Geheimnisse (nur ueber Proxy A)
AllowOverride None
Order deny,allow
Deny from all
# Erlaube Proxy Server
Allow from env=PROXY_A
...
# Meine nicht ganz so geheimen Geheimnisse (fuer Proxy A, B und C)
AllowOverride None
Order deny,allow
Deny from all
# Erlaube Proxy Server
Allow from env=PROXY_A env=PROXY_B env=PROXY_C
...
Mit SetEnvIf wird in Abhaengigkeit der Remote_Addr des Clients eine Umgebungsvariable gesetzt. Wenn diese dann gesetzt ist, wird dem Client mit Allow der Zugang erlaubt.
Somit darf man nur rein, wenn man ueber einen dieser Proxy kommt. Wie sicher das ganze ist, weiss ich nicht, aber dahinter geht es mit https und htaccess weiter … mein Ziel war es, nicht bei Google und Co. zu landen und zufaelligen Surfern aus dem Weg zu gehen.
Diesen Zugang auszuhebeln waere vlt. mal eine Demonstration wert 😉
Ich stelle dann gerne eine neu vorbereitete Testumgebung zur Verfuegung.