Proxy server so squidom

Úvod

Prv než prejdeme k samotnej konfigurácii proxy servera(dalej squida) ako takého povieme si čo to vlastne to proxy je.
Tí čo mali niekedy dočinenia s proxy alebo v principe vedia ako funguje a čo je zač môžu tento úvod veselo preskočiť ;).

Proxy server v minulosti využívaný ako cachovaci proxy server za čias pomalého internetu ;) ,
v dnešnej dobe kedy weby menia svoj obsah dynamicky sa tento typ uz väčšmi nepoužíva vo veľkom ,ale predsa ma svoje opodstatnenie aj teraz ktore si predvedieme.
V prvom rade keď ide o využitie squida ako prostredníka pri komunikácii klient --> server je jeho pokročilá schopnosť filtrovať obsah čo je uzitočné vo väčšine firmách a vzdelávacích inštitúciách
ďalej je to možnosť riadenia prístupu k internetu alebo siete ako takej,či už sú to rôzne časti firemnej siete,oddelenia ku ktorým sa ku príkladu účtovničky majú alebo nemajú prečo dostať.
Riadenie prístupu len v určitý čas pre príklad školská sieť pre študentov alebo internátistov.
Využitia si viete hádam predstaviť sami :). Ak nie nižšie sa s niekoľkými oboznámime.

Squid

Squid-Cachovaci proxy server,podporovane platformy:

BSD,Windows(2K3..)Unix(HP UX,AIX),Linux(CentOS,Debian,Fedora...),Solaris

Viac o squidovi squid-cache.org

Prečo použiť proxy server a načo je vhodný?



V úvode som spomenul len pár praktických ale nie podrobných príkladov použitia proxy servera ako prostredníka medzi klientami a servermi.Všetky dôvody si zhrnieme do pár bodov:

1.Skrytie identity-v internete existuje kopa free proxy serverov kt. poskytujú toto skrytie identity ale svojou rýchlosťou odrádzajú a obmedzujú bežného „surfera“ ,tieto free proxiny využíva veľa anonymizérov ako napr plugin thor atp..Pokiaľ vlastníme mašinu s verejnou IP a dobrým connectom môžme si takýto „anonymizér“ urobiť sami,ale pozor pre nekalé zámery by som vlastnú proxinu nepoužíval myslim ze to je logicke :).

2.Cachovanie požiadaviek-v tomto prípade squid hraje rolu prostredníka ako transparentné proxy a medzi prevádzkou je voči serveru viditeľný ako jeden client,okrem toho hlavnou úlohou pri cachovani je uchovávať požiadavky clientov vo svojej pamati a tym rychlejsie reagovat pri tej iste poziadavke napr.iného klienta kedy už squid nemusí kontaktovať vzdialený server ale odpovie clientovi zo svojej pamäte tým aj šetrí a nezaplňuje siet opätovnými požiadavkami. Približná,zjednodušená schéma takéhoto prenosu vyzera takto,realne server kde bezi transparentne proxy sluzi aj ako brana do internetu a takisto vytvara NAT pre podnikovu siet:

schemasiete

3.Filtrovanie obsahu Velmi casto pouzivane vo vzdelavacich instituciach ako som spominal v uvode,filtrovanie nevhodneho obsahu pre ziakov kedy sa nechrania len tito ziaci ale aj skolska siet pred neziaducimi malwarmi a podobnym svinstvom a o zazname v blacklistoch ani nehovorim ;). K filtrovaniu sa dostaneme podrobnejsie neskor. Vyhod a pouziti proxiny je vela a to snad kazdy zisti casom :) Transparentne proxy: nacrtnute v cheme vyssie,sluzi ako prostrednik ako som spominal,funguje nasledovne: ak pride poziadavka od klienta z vnutornej siete na port 80 napr. Na servery googlu. Napr. Google.com,proxy vsetky poziadavky kt. Su adresovane na jeho interface a na port ku prikladu 80 alebo 443 prehodi na port na ktorom pocuva squid defaultne 3128.Toto docielime v linuxe pomocou iptables kt. Si neskor predvedieme na praktickom priklade.

Prakticky priklad

V tomto priklade si nainstalujeme a nastavime squida tak aby plnil ulohu „anonymizera“ nie free ale nasho „osobneho“ s autentifikaciou cize pri napr. Browsovanie sa budeme skryvat za verejnou IP nasho serveru a nie IP ktoru nam pridelil provider. Ako OS som zvolil Debian ,preco debian?mam ho rad:) a nejako som si uz zvykol tym nechem odradit nikoho od svojej oblubenej distribucie alebo vyvolat flame ;). Pv si nainstalujeme squid ;)

apt-get install squid



v /etc/squid/squid.conf najdeme husto zakomentovany konfigurak ku squidovi co ma velmi tesi :)

pre istotu si ho skopirujeme keby nieco :)

cp /etc/squid/squid.conf /etc/squid./squid.old.conf



otvorime si squid.conf vo vasom oblubenom editore ;) ja som pouzil joe

joe /etc/squid/squid.conf



a pridame nasledujuce riadky

http_port 8080 #urcime port na ktorom chceme aby squid pocuval defaultne to je 3128

cache_mem 8 MB #alokujeme pamät pre cachovanie

acl all src 0.0.0.0/0.0.0.0 #zavedieme access list ktory povoluje vsetky IP pre pristup ku proxine

http_access allow all # povoli acl pre http pristup

cache_dir ufs /var/spool/squid 100 16 256 #urci dir pre cachovanie

access_log /var/log/squid/access.log squid #kde sa loguje

visible_hostname proxy.debix

unique_hostname proxy.debix

auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd #autentifikacna sablona ncsa,pri autentifikacii cita z /etc/squid/passwd hesla v zasifrovanej podobe

auth_param basic children 5 #urci maximum spustacich procesov autetifikacie

auth_param basic realm debix.home proxy server #viditelne meno pri autetifikacii

auth_param basic credentialsttl 2 hours #time to live,ako dlho caka na zadanie mena hesla

auth_param basic casesensitive off # zapnutie alebo vypnutie rozlisovania velkych a malych pismen pri logine len pri username

acl ncsa_users proxy_auth REQUIRED

http_access allow ncsa_users #povolenie pristupu acl ncsa

cache_effective_user nobody



restartneme squida,aby si nacital novy configurak.

/etc/init.d/squid restart



a vytovrime strukturu pre cachovanie

squid -z

overime si ci squid naozaj bezi

ps aux | grep squid

Teraz si zavedieme sablonu pre autentifikaciu ,ako ste mohli z konfiguraku vycitat autentifikacne udaje sa nacitavaju zo suboru /etc/squid/passwd ktory si teraz vytvorime:

htpasswd /etc/squid/passwd uzivatel

vyziada si to od nas heslo ktore nasledovne zasifruje a ulozi do suboru passwd teraz restartneme squida odznova

/etc/init.d/squid restart

skusime ci naozaj bezi

ps aux | grep squid

ak bezi mozme skusit si nastavit nas prehliadac, aby pouzival nas proxy server :)
Internet ide,ale kde je ta autentifikacia?
Pozorni si urcite vsimli nelogicky parameter v konfiguraku,ak chceme pristupovat k proxine len my,ti co maju autentifikacne udaje.
Staci zakomentovat

#http_access allow all

Po restarte a po nastaveni prehliadaca a pri „vstupe do internetu“;)by uz na nas malo cakat autentikacne okno,do ktoreho zadame udaje ktore sme vyssie vytvorili a ulozili.
Teraz pri browsovani po internete sa vydavate za vas server a jeho IP.
Nabuduce sa pozrieme blizsie na transparentne proxy a filtorvanie obsahu.;)

Contact

Email:kimkil(at)cicolina.org
ICQ:337-225-757
Jabber: kimkil@jabbim.cz