Apache 2.4 access control
Αλέξανδρος Διαμαντίδης
adia at hellug.gr
Fri Apr 11 14:12:31 EEST 2014
Καλησπέρα σε όλους!
Διαχειρίζομαι έναν HTTP-based Mercurial server, που έχει κάποια
δημόσια repositories όπου επιτρέπεται το push με HTTP authentication,
καθώς και κάποια private όπου θέλουμε να είναι προσβάσιμα μόνο
από συγκεκριμένες διευθύνσεις.
Σε πρόσφατη αναβάθμιση του Apache σε 2.4, έμπλεξα λιγάκι και
τελικά κατέληξα σε ένα config κάπως έτσι:
<Location />
Include sites-enabled/require-valid-user
</Location>
<Location /secret1>
<RequireAll>
<RequireAny>
Require host myhost.mydomain.gr
Require ip 192.168.10.0/24 10.20.30.40
</RequireAny>
Include sites-enabled/require-valid-user
</RequireAll>
</Location>
όπου το require-valid-user περιέχει:
<LimitExcept GET>
AuthType Basic
AuthName "mercurial"
AuthBasicProvider file
AuthUserFile /var/lib/hg/hgusers
Require valid-user
</LimitExcept>
Φανταστείτε ότι το <Location /foo> επαναλαμβάνεται αρκετές φορές για τα
διάφορα private repositories, για τα οποία ισχύουν διαφορετικοί host /
IPs κάθε φορά. Σε Apache 2.2 είχα τις ρυθμίσεις του <LimitExcept GET>
μια φορά στο <Location />, και στα <Location /foo> είχα μόνο τον
έλεγχο πρόσβασης βάσει IP/host. Φανταστείτε το κάπως έτσι:
<Location />
Include sites-enabled/require-valid-user
</Location>
<Location /secret1>
Require host myhost.mydomain.gr
Require ip 192.168.10.0/24 10.20.30.40
</Location>
Μετά την αναβάθμιση όμως νομίζω ότι δεν λάμβανε υπόψιν το
<LimitExcept GET> για τα επί μέρους <Location /foo> και έτσι τα
push αποτύχαιναν γιατί δε ζητούσε authentication.
Τώρα λειτουργεί σωστά και θα μπορούσα να το αφήσω έτσι, έχετε όμως καμιά
ιδέα μήπως μπορεί να απλοποιηθεί;
Ευχαριστώ!
Αλέξανδρος
More information about the Linux-greek-users
mailing list