[MEGOLDVA] Apache2 authentikáció

Sziasztok!

Azt hiszem megint rossz helyen kerestem eddig, kénytelen vagyok hozzátok fordulni, mert kezd a hajam kihullani :( Itthoni tesztelési célra (Ubuntu-n) feltettem egy apache2-t. Azt akartam elérni, hogy ne legyen piszkálható csak bizonyos gépekről. Gondoltam egy nagyot és merészet és a következő kódrészletet biggyesztettem egy általam alkalmasnak vélt file-be:

AuthName "Nono"
AuthUserFile /etc/apache2/.htpasswd.nesze
AuthType Basic
Require valid-user
Allow from 10.0.0.2
Satisfy Any

Ilyen kódrészletre emlékeztem egy korábbi rendszeren tett kísérleteim után, de ez itt a világon semmi hatással nem járt. Először azt hittem, hogy van valami rész a default konfigban, ami miatt nem jól érvényesül, vagy felül íródik. Aztán a konfigok szerteágazósága is megzavart. Nem akartam sokat, csak egy kis "kérdésfeltevést" az apache által, de tojik a fejemre. Ez az igazi RTFM kérdés, tudom én is, de egyszerűen nem tudom mi a fene bírálhatja felül eme kis pársorosomat...! Cseppet frusztráló érzés, mert eddig egy ilyen konfig jólműködött. Az apache2 configjai viszont megkavarnak cseppet...

A kérdésem a következő: Ubuntu-n egy default apache2-m van. Hol a fenében kéne ennek a pár sornak lenni, hogy történjen is valami rá? :)

Megértő és türelmes válaszotokat várva ;)

--Xterm

Hozzászólások

A .htaccess fájl a következő részt kell tartalmaznia.
AuthUserFile /var/www/.htpasswd
AuthName "Top Secret"
AuthType Basic
require valid-user
A webszerveren abba a könyvtárba tedd be amit védeni szerenél. A htpasswd parancsal tudsz a .htpasswd fájlba új felhasználókat felvenni.
Az apache 1-es verzióinál emlékszem erre a megoldásra, hogy a /etc/apache könyvtárban voltak a konfig fájlok, de ezt megváltoztatták és a webszerverre kell tenni őket.

a probléma az, hogy látszólag minden megvan, de nem veszi figyelembe. pedig már több helyre is bevéstem a fenti konfigrészeket. mintha nem is figyelne rá. megnéztem a .htaccess (mert ott is volt már) jogosultságait is, mert írják a doksik, hogy futtatás is kell rá. szóval tanácstalan vagyok.

--
xterm

Egyrészt kell egy (egyszerűség kedvéért) AllowOverride all, hogy a .htaccess-ből felül tudd definiálni a security beállításokat.

Másrészt, az /etc/apache(2) könyvtárból is megeszi a konfigot, de ott nem mindegy, hova irod, Directory -n belül kell lennie.

Illetve nézd meg hogy a mod_auth modult betölti-e (pl. http://localhost/server-info -val)

Ebből meg kell tudnod csinálni: http://httpd.apache.org/docs/2.0/howto/auth.html

hm... nem is volt annyira hülye a kérdésem. a google-n van pár kérdés erre vonatkozóan. a megfejtés nem a konfigomban van, hanem abban, hogy sehol nem töltődik be az a modul, amit az apache oldal ír erre. a mod_auth és a mod_access. az egyetlen probléma, hogy nem tudom miből származik ez a két modul... lehet, hogy csak nekem nem triviális, de tudna valaki segíteni ubuntu-n ez miből származik?

azóta találtam fórumtopikokat, ahol meglepve tapasztalják, hogy nincs sehol a mod_auth és a mod_access... ez valamiért meg van szüntetve??? vagy mi? meglehetősen alapnak hinném... ha nem jó, akkor majd használnak mást. de kivenni, mert valakinek kevés?? annak ott a többi auth modell, nem?

ötlet?

--
xterm

közben válaszolok saját magamnak is, mert a kérdés egy részét azóta az újraindult ubuntu fórumon megleltem. most már tudom miért nincs külön modul (valszeg) a mod_auth és a mod_access-re. azért, mert bele van fordítva.

viszont továbbra is kérdés, hogy vajon hol lehet szerintetek még olyan beállítás, amivel befolyásolva van az, hogy a defaultból elérhető weboldalak az ubuntu-s apache2-n miért nem korlátozhatóak le alap autentikációval??! az összes olyan sort megnéztem, ami az /etc/apache2/ könyvtáron belül van minden konfigban. kerestem AllowOverride részt, hátha valamivel felül van bírálva ez, de egyszerűen nem találom.

próbaképpen azt a részt is kipróbáltam, ahol a mediawiki konfigja van (annak külön includolt konfig részlete van és odda is beleírtam a fenti kísérletet, de arra is tojik...).

--
xterm

Azt hiszem át kell fogalmazzam a kérdést, mivel egyik irányban se derült ki ezek szerint, hogy _nem_ az a bajom, hogy miképp is kell ilyet csinálni. a módszer ismert. a probléma az, hogy vajon az apache2, ami pl. ubuntun is van, az vajon honnan konfigolhat ilyet, ha _sehol_ nem találok olyat, mely szerint felülbírálhatatlan az általuk gyártott alap beállítás. ezt támasztja alá sztem az is, hogy még a mediawiki által települt plusz konfigot megeszi, de ha én _oda_ beírok valamit, arra már nem reagál (ha másol nem, ott látnom kéne, hogy mi az oka, hiszen vagy van mediawikim és megy az auth, vagy nincs egyik se.

--
xterm

A sorrend titka a httpd.conf (mas neven apache2.conf) fajlban leledzik. Az include file-ok mondjak meg, hogy a mods-enabled vagy a sites-enabled van elobb includolva. Ezutan a megfelelo include filek kerulnek vegrehajtasra, majd - ha az adott vhost engedelyezi - a .htaccess filek. En a vhost configjaba tennek olyant, hogy 'AllowOverride all' es a .htaccess-t konfigolnam be. De ez a te dontesed.

sztem az én problémám az volt, hogy a sorrendet nem tudtam megfejteni (még mindig nem, pedig már lassan minden sora allowoverride ;) ) és emiatt nem érvényesült az, amit akartam. én spec jobb szerettem azt a konfigot, amikor nem volt szétdobálva a konfig külön állományokra, mappákra. ebben is értem a célt, csak nekem a másik szimpatikusabb volt. könnyebb volt egy ilyen "hibát" korrigálni.

--
xterm

újra nekiveselkedtem a dolgoknak, hátha most majd megoldom a keleti kérdést...

van egy kis kódrész, amit szeretnék érvényesíteni:

Order allow,deny
AuthName "adfg"
AuthUserFile /etc/apache2/.htpasswd-phoenix
AuthType Basic
Require valid-user
Allow from ipcím
Satisfy Any

olvasom a konfigokat. AuthOverRide rész nincs csak all-ra állítva. ez alól kivételek a webes szolgáltatások konfig mappái (mediawiki, szerver konfig és statisztika adatok).

elvileg a konfigok betöltési sorrendje az, hogy elkezdi olvasni az apache2.conf file-t. majd beállítja az alap dolgokat. aztán includeolja sorban külső konfigokat. ezeket egyesével megnéztem, nincs a fentieknek ellent mondó állapot.

van egy sites-available c. rész, itt van egy virtual host rész, aminek a neve az, hogy *. kissé meglepő név, de gondolom ez a default szerver, csak virtual hosttal oldja meg. nekem tök mindegy végülis, csak menjen :D szóval itt is beraktam a fenti soraimat és szépen magasról tojik rá...

szerintetek mi lehet a baj?

--
xterm

köszi srácok, holnap csekkolom. (no igen, elzárt háló, itthonról nem tudom tesztelni...). ha csak ennyit állt a dolog, akkor eme rész felett elsiklottam :s mondjuk kár, hogy nincs valami "szintaktikai csekkoló" amivel egy ilyen hibát (ez nem logikai, hanem szintaktikai hibának tűnik számomra) ki lehet buktatni.

--
xterm

köszönöm szépen a megoldáshoz vezető tippeket!

hogy más is okulhasson az én hibámból, leírom a megoldást:

a probléma az volt, hogy nem volt deny from all párja az allow from all-nak. most már szuperül működik.

--
xterm