Portál AbcLinuxu, 12. května 2025 01:49
Mam problem se SQUIDem se kterym si nevim rady ja google ani bohate popsany konfigurak ke squidu. Ve SQUIDu mam nadefinovan soubor ve kterem jsou www ktere se nemaji uzivatelum uvedenym v databazi(jen tito mohou pres proxy pristupovat) zobrazovat. No a ja bych potreboval vytvorit dalsi skupinu ktera by mela zase svuj soubor zakazanych stranek. Vytvoreni toho souboru neni problem. Problem je jak vytvorit tu druhou skupinu.
Uvedu jak jsem vytvarel tu prvni.
touch /etc/squid/squid_passwd(soubor s uzivateli a hesly)
htpasswd /etc/squid/squid_passwd www(vytvoreni uzivatele proxy serveru a jeho hesla)
a v konfiguraku squid.conf mam
acl zakazane url_regex -i "/etc/squid/zakazane"(obsahuje zakazane www)
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd
acl ncsa_users proxy_auth REQUIRED (tady mi neni jasne kde se vzal nazev ncsa_users jestli je to nejak implicitne vytvoreno programem ncsa_auth
)
http_access deny zakazane
http_access allow ncsa_users.
Zkratka nevim jak si vytvorit jinou skupinu pro kterou bych definoval adresy napr v souboru ktery si vytvorim(napr zakazane2).
No ted se trochu stydim za asi dost hloupy dotaz. http_access slouzi v tomto pripade na povoleni nabo zakazani pristupu k netu(kdyz to reknu zjednodusene). No a ACL nastavuje v tomto pripade napr. skupiny uzivatelu ktere budou k netu pristupovat. Alespon tak to chapu ja. Nasel jsem na netu tento navod(ktery mi neni zcela jasny):
Vytvorit:
authenticate_program /usr/local/sbin/ncsa_auth /usr/local/etc/squid/squid.passwd(tady mi nezbyva nez predpokladat ze ve squid.passwd jsou ulozena jmena a hesla vsech studentu a stafuu a on si je pak v nasleducich krocich taha z tohoto souboru)
1)acl students proxy_auth "/usr/local/etc/squid/student.users"
2)acl staff proxy_auth "/usr/local/etc/squid/staff.users"
3)acl password proxy_auth 300
4)http_access deny !students !staff
1) je to pravidlo ktere definuje skupinu students do ktere budou v souvislosti s autorizaci zarazeni ti co jsou uvedeni v souboru student.user.
2) to stejne pro jinou skupinu.
3) tady nechpu co znamena to 300.
4) No a nakonec zakazuju pristup vsem krom studentu a staffu.
Ja uz fakt nevim ....podle me je vse spravne ... uz mi to prozradte:) Napsal jsem tohle do konfiguraku:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd1
acl ncsa_users proxy_auth REQUIRED
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid_passwd2
acl ncsa_user proxy_auth REQUIRED
http_access allow ncsa_users
http_access allow ncsa_user
A funguje mi to jen s jednou skupinou(uzivatele te druhe se nemohou prihlasit)
Zdvojenim se to nevyresi ,autentizace je jen jedna. Ale sadou acl na bazi IP to podle meho pujde..
NN
No ale co kdyz nebudu znat IP tech uzivatelu? Chtel bych proste aspon jen vytvorit ty 2 skupiny a pro kazdou z nich udelat URL filter. Pro zacatek me staci kdyz vytvorim 2 skupiny uzivatelu ale zatim nevim jak delam na tom od rana a uz mi z toho mr**!!:((
Resil bych to, nevim, jestli zcela optimalne, s pomoci external_acl_type (viz ten dobre komentovany konfigurak). V souboru pro ncsa_auth budou ucty vsechny, ve druhem souboru budou jen ucty jedne skupiny (staci jen jmena, bez hesel) a ve tretim budou jen ucty druhe skupiny (taky jen jmena). Pak se nadefinuje external_acl_type , ktery muze byt realizovan napr. jednoduchym perlovym skriptem, jenz nacte soubor, ktery dostane jako parametr a squidu pak bude vracet, jestli je dane jmeno v danem souboru. Zbyva pak uz jen vytvorit dve nejak pojmenovane acl, pouzivajici tento external_acl_type - kazdy s jinym souborem jako parametrem - a pouzit je v http_access.
Tomas
Kamo diky za rady ale v s linuxem delam jen par mesicu a PERL jsem nikdy nedelal... i tak ti dekuju za nazor a za vsechno vubec. Skoda ze ten borec co sem napsal jako prvni jak rikal ze je to lehke mi neporadi. Uz mam po dnesku absolutne dost. Diky vsem a pokud by prece jen nekdo mel napad jak to jednoduse udelat tak sem s nim.
OK. Priznam se, ze v situaci, kdy jsou uzivatele takhle overovani, tak jinou cestu nevidim. Jinak jestli byl duvod zamitnuti toho reseni perl, tak ten neni nutny. Muze to byt treba i shell skript. Neco jako:
#!/bin/bash while read USERNAME do if grep -q -E ^$USERNAME$ $1 ; then echo "OK" else echo "ERR" fi done
Tomas
No popravde jsem si predstavovoval nejakou sikovnou modifikaci squid.conf.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.