Client-Zertifikate + IP-Filter | Reihenfolge?

Alles, was den Apache betrifft, kann hier besprochen werden.

Client-Zertifikate + IP-Filter | Reihenfolge?

Postby dtr84 » 27. September 2016 15:18

Hallo zusammen!

Ich benötige für eine unternehmensinterne Web-Seite sowohl einen IP-Filter als auch die Validierung des Client-TLS-Zetrifikats. Das erforderliche Verhalten soll so aussehen, dass außerhalb der erlaubten IP-Range sofort geblockt wird, d.h. in diesem Fall soll auch erst gar kein Client-TLS-Zetrifikats vom Browser angefordert werden. Kommt der Request aus der erlaubten IP-Range, dann soll das Client-TLS-Zetrifikat angefordert und validiert werden.

Erfolgreicher Zugriff also nur aus der erlaubten IP-Range und mit gültigem Client-TLS-Zetrifikat.

Der IP-Filter war bisher wie folgt realisiert und das funktioniert auch wie gewünscht:
Code: Select all
Order deny,allow
Deny from all
Allow <erlaubte IP-Adressen>


Nun weist mein Kollege aber zurecht darauf hin, dass diese Syntax seit Apache 2.4 veraltet ("deprecated") ist und womöglich bald nicht mehr unterstützt wird.

Also haben wir auf folgende "neue" Syntax umgestellt:
Code: Select all
Require all denied
Allow <erlaubte IP-Adressen>


Das Ergebnis ist leider, dass nun zwar weiterhin die Zugriffe auf die gewünschte IP-Range begrenzt sind, aber die Prüfung der Client-IP erfolgt offenbar erst nach der Validierung des Client-Zertifikats!

Der Benutzer wird nun also immer aufgefordert sein Client-TLS-Zetrifikat zu übermitteln, egal ob er in der erlaubten IP-Range ist oder nicht.

Erst nach der (scheinbar erfolgreichen) Übermittlung des Client-TLS-Zetrifikats kommt dann ggf. die "Forbidden" Fehlerseite, weil erst dann der IP-Filter zu greifen scheint. Das ist natürlich für den Benutzer höchst verwirrend :?

Gibt es eine Möglichkeit, das "alte" (gewünschte) Verhalten des Apache mit der "neuen" Syntax nachzubauen? Ich finde leider keine Möglichkeit die Reihenfolge der Prüfung zu beeinflussen...

Für Hinweise wäre ich sehr dankbar!
dtr84
 
Posts: 4
Joined: 27. September 2016 15:05
XAMPP version: 2.4
Operating System: Windows 7

Re: Client-Zertifikate + IP-Filter | Reihenfolge?

Postby dtr84 » 27. September 2016 16:31

Folgende Syntax funktioniert ebenfalls nicht wie gewünscht, obwohl hier die Reihenfolge eigentlich explizit festgelegt ist:

Code: Select all
<RequireAll>
    Require ip <erlaubte IP-Adressen>
    Require ssl-verify-client
</RequireAll>


:|
dtr84
 
Posts: 4
Joined: 27. September 2016 15:05
XAMPP version: 2.4
Operating System: Windows 7

Re: Client-Zertifikate + IP-Filter | Reihenfolge?

Postby Nobbie » 27. September 2016 20:27

dtr84 wrote:Also haben wir auf folgende "neue" Syntax umgestellt:
Code: Select all
Require all denied
Allow <erlaubte IP-Adressen>


Ne, das ist nicht die "neue" Syntax, das ist eine Murksmischung aus alt und neu. Es gibt kein "Allow" mehr.

Die Doku findest Du hier: https://httpd.apache.org/docs/2.4/howto/access.html
Nobbie
 
Posts: 8780
Joined: 09. March 2008 13:04

Re: Client-Zertifikate + IP-Filter | Reihenfolge?

Postby dtr84 » 28. September 2016 13:56

Nobbie wrote:
dtr84 wrote:Also haben wir auf folgende "neue" Syntax umgestellt:
Code: Select all
Require all denied
Allow <erlaubte IP-Adressen>


Ne, das ist nicht die "neue" Syntax, das ist eine Murksmischung aus alt und neu. Es gibt kein "Allow" mehr.

Die Doku findest Du hier: https://httpd.apache.org/docs/2.4/howto/access.html


Danke für den Hinweis. Das hatte ich allerdings schon geändert.

Also folgende beiden Varianten schränken zwar erfolgreich die erlaubte IP-Range ein, beide fordern aber dennoch immer das Client-TLS-Zertifikat an, auch wenn vom außerhalb der erlaubten IP-Range zugriffen wird:

Code: Select all
Require ip <erlaubte IP-Adressen>
Code: Select all
<RequireAll>
    Require ip <erlaubte IP-Adressen>
    Require ssl-verify-client
</RequireAll


Mit der folgenden "alten" Syntax verhält es sich anders!

Es wird kein Client-Client-TLS-Zertifikat angefordert, wenn vom außerhalb der erlaubten IP-Range zugriffen wird, sondern nur wenn es von der IP-Adresse her passt:

Code: Select all
Order deny,allow
Deny from all
Allow <erlaubte IP-Adressen>


Das Client-Zertifikat wird unverändert wie folgt angefordert:

Code: Select all
SSLVerifyClient Optional
SSLVerifyDepth 3
SSLOptions +StdEnvVars


Gib es irgendeine Möglichkeit das "alte, gewünschte Verhalten mit der "neuen" Syntax zu bekommen?

Danke!
dtr84
 
Posts: 4
Joined: 27. September 2016 15:05
XAMPP version: 2.4
Operating System: Windows 7

Re: Client-Zertifikate + IP-Filter | Reihenfolge?

Postby Nobbie » 28. September 2016 17:55

Keine Ahnung, ich mache damit so gut wie nichts.
Nobbie
 
Posts: 8780
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 2 guests