PDA

Bekijk Volledige Versie : Apache toegang vanaf LAN of met client certificate



Joolz
29/05/05, 12:15
Hoi,

Op een Apache server (1.3.26-0woody6) op Debian Stable probeer ik het
volgende te doen: alle clients die vanaf het LAN naar een door Apache
geservde site gaan moeten toegang krijgen. Alles van buiten het LAN,
mag alleen binnen met een geldig OpenSSL client certificaat. In beide
gevallen gaat het verkeer over HTTPS.

De losse zaken heb ik aan het lopen, dus alleen toegang vanaf het LAN
werkt, en alleen toegang met client certificates werkt. Nu de
combinatie nog. Ik heb allerlei variaties op onderstaande geprobeerd:

<DirectoryMatch /var/www/mywebdir/>
Options Indexes FollowSymLinks
AuthType Basic
AuthName "only for the good guys"
Satisfy any
Order Deny,Allow
Deny from All
Allow from 12.34.56.789 127.0.0.0/8 10.0.0.0/8
# de rest van de SSL directives staan elders
# SSLVerifyClient 2
</DirectoryMatch>

Het probleem is dat als ik de SSLVerifyClient regel de-remark, je van
het LAN moet komen *en* een geldig certificaat moet hebben. Die *en*
moet een *of* worden maar ik heb geen idee hoe dat te bereiken. (veel
trial && error hielp niet :)

Iemand enig idee? Thanks!

Daniel Tryba
29/05/05, 22:35
Joolz <root@localhost.localdomain.invalid> wrote:
> Iemand enig idee? Thanks!

Voor de rest... De vraag komt oorspronkelijk uit nl.comp.os.linux.overig
(news:429589b1$0$149$e4fe514c@news.xs4all.nl).

Zoals ik daar reeds in news:42971d50$0$148$c5fe704e@news6.xs4all.nl
uitlegde kan dit makkelijk door het probleem uit te besteden aan een
serverside script. Een simpel voorbeeld is te zien op
https://tmp.tryba.nl/controller/example/

Tenzij het remote_addr waarmee geconnect wordt in een whitelist staat
wordt de request geredirect naar een controller die dan afhankelijk van
het wel of niet aanwezig zijn van een correct certificaat (geen idee of
selfsigned werkt (getest met cacert.org certificaten die op die machine
ook in de trusted CA lijst staat)) als proxy speelt (staat zelf in de
whitelist natuurlijk) of een access denied geeft.

Als extern gewhitelist IP staat 69.26.222.234, die een open proxy op
poort 80 draaien! Handig om mee te testen :)

Eisen, php met curl op een apache doos. Dus wat is het je waard....

Joolz
30/05/05, 05:45
On 29 May 2005 20:28:39 GMT, Daniel Tryba
<partmapsswen@invalid.tryba.nl> wrote:
> Joolz <root@localhost.localdomain.invalid> wrote:
>> Iemand enig idee? Thanks!
>
> Voor de rest... De vraag komt oorspronkelijk uit
> nl.comp.os.linux.overig
> (news:429589b1$0$149$e4fe514c@news.xs4all.nl).

Thanks, dat had ik zelf ook ff kunnen doen :)

> Zoals ik daar reeds in news:42971d50$0$148$c5fe704e@news6.xs4all.nl
> uitlegde kan dit makkelijk door het probleem uit te besteden aan een
> serverside script. Een simpel voorbeeld is te zien op
> https://tmp.tryba.nl/controller/example/

Heb je misschien ook een link naar de source? Thanks!

> Tenzij het remote_addr waarmee geconnect wordt in een whitelist
> staat wordt de request geredirect naar een controller die dan
> afhankelijk van het wel of niet aanwezig zijn van een correct
> certificaat (geen idee of selfsigned werkt (getest met cacert.org
> certificaten die op die machine ook in de trusted CA lijst staat))
> als proxy speelt (staat zelf in de whitelist natuurlijk) of een
> access denied geeft.
>
> Als extern gewhitelist IP staat 69.26.222.234, die een open proxy op
> poort 80 draaien! Handig om mee te testen :)
>
> Eisen, php met curl op een apache doos. Dus wat is het je waard....
>

Joolz
30/05/05, 15:55
On 29 May 2005 20:28:39 GMT, Daniel Tryba <partmapsswen@invalid.tryba.nl> wrote:
<snip>
> Eisen, php met curl op een apache doos. Dus wat is het je waard....

Ik heb het Apache-only weten op te lossen (eindelijk! :)

SSLRequire %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 and \
%{TIME_HOUR} >= 7 and %{TIME_HOUR} <= 23 and \
( ( %{REMOTE_ADDR} =~ m/^12\.34\.56\.789+$/ or \
%{REMOTE_ADDR} =~ m/^10\.[0-9]+\.[0-9]+\.[0-9]+$/ or \
%{REMOTE_ADDR} =~ m/^127\.[0-9]+\.[0-9]+\.[0-9]+$/ ) or \
%{SSL_CLIENT_VERIFY} == "SUCCESS" )

(de openingstijden hebben niks met de vraag te maken maar zijn een
leuke bonus)