22. August 2011

FischTux

Apache ACL mit IP und/oder Username

Auch eine Aufgabenstellung, die wohl jeder Admin irgendwann mal auf den Schreibtisch bekommt:

Anruf vom Chef: “Der neue Intranet-Server mit den ganz wichtigen und vertraulichen Daten muss auch über das Internet erreichbar sein, ich will von überall schauen können, was die Telefonnummer von der Azubine aus dem Marketing ist. Das ganze bitte gestern, geht doch schnell!!1elf”

Nun das große Problem: Der Server darf nur vom Firmennetz 172.16.0.0/16 erreicht werden derzeit, wenn das ganze aber ans Internet soll, muss da natürlich eine Kennwortabfrage vor. Wenn man aber im Firmennetz ist, stört die Kennwortabfrage ja nur. Das Zauberwort heisst “satisfy” (Hex, Hex ;) )
Mit satisfy wird definiert, ob alle Authentifizierungen notwendig sind (default) oder ob es reicht, dass eine Schranke sich öffnet.

Hier ein ganz einfacher Konfigurationseintrag, den man einfach so übernehmen kann (nachdem man die Pfade angepasst und die Userdatenbank angelegt hat):

<Directory /var/www/intranet/>
    Order deny,allow
    Deny from all
    Allow from 172.16.0.0/16
    AuthName "AREA51"
    AuthType Basic
    AuthUserFile /etc/httpd/conf/htusers
    AuthGroupFile /etc/httpd/conf/htgroups
    Require group intranet
    Satisfy Any
</Directory>
  

Die erste Zeile gibt an, auf welchen Verzeichnis sich die ACL bezieht. Die Zeilen 2-4 sagen aus, dass die IP-Adressen des Firmennetzes freigeschaltet sind. In den Zeilen 7-9 wird definiert, welche User Zugriff haben und in der 10. Zeile steht dann, dass es reicht, wenn eine Regel den Zugriff erlaubt (IP oder Username). Wenn man aus dem “Satisfy any” ein “Satisfy all” macht, dürften übrigens nur Leute aus dem lokalen Netzwerk auf den Server zugreifen, wenn sie auch einen passenden Usernamen haben.

Noch ein paar Infos: Natürlich würde kein Chef “mal eben” sagen oder “geht doch schnell”, weil er weiß, dass er dafür 5€ ins Sparschwein werfen muss. Ausserdem würde wohl kein Admin htuser-Files pflegen für eine ganze Firma, wenn er doch eine LDAP-Datenbank hat (ob als AD oder was auch immer). Mir ging es in diesem Artikel nur darum, dass man bestimmte IPs ohne Usernamen durchlassen kann. (Das Beispiel selber ist übrigens auch erfunden, im echten Leben ging es um einen Vertriebler, der sich das Kennwort für einen Showcase nicht merken wollte ;) )

Hinterlasse eine Antwort

© 2012 Tuxtorials.de All rights reserved - Wallow theme v0.46.5 by ([][]) TwoBeers - Powered by WordPress - Have fun!