Squid transparent proxy: Difference between revisions
Line 67: | Line 67: | ||
/etc/init.d/squid restart | /etc/init.d/squid restart | ||
====Näidis | ====Näidis autentimise seadistamisest==== | ||
Konfiguratsiooni faili on vaja sisestada järgmised read: | Konfiguratsiooni faili on vaja sisestada järgmised read: | ||
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid.passwd | auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid.passwd |
Revision as of 00:23, 30 January 2010
Autor
Mikk Mähar AK32
Versioon
Versioon 0.01, muudetud 18.12.2009 (Algse struktuuri paika panek)
Versioon 0.02, muudetud 10.01.2010 (Struktuuri parendamine, sisu kirjutamine)
Versioon 0.03, muudetud 13.01.2010 (Logide analüüsi kohta sisu lisamine)
Versioon 0.04, muudetud 20.01.2010 (Täiendatud varundamise/taastamise osa ning täpsustatud paigalduse osa)
Sissejuhatus
Siit artiklist peaks saama väikse ülevaate, mis asi see proxy on, milleks seda kasutatakse. Mis on on Squid ning kuidas seda autentimist nõudva transparent proxyna seadistada(transparent selles mõistes, et kasutajate päringud suunatakse sinna vaikimisi ja alati).
Mis asi on proxy
Proxy serveri näol on tegu kliendi ja võrgus paiknevate resursside vahelise puhvriga. Proxy servereid kasutatakse mitmetel erinevatel eesmärkidel:
- Võrguühenduste kasutuse optimeerimiseks
- Veebiserverite koormuste leevendamiseks
- Inimeste anonüümsuse kaitsmiseks veebis
- Sisevõrgu kasutajatele võrgust kättesaadavate andmete piiramiseks
Mis asi see Squid on ja mida sellega teha saab
Squidi puhul on tegu täielikult HTTP/1.0 (peaaegu ka HTTP/1.1)ühilduva proxy serveri tarkvaraga, mis toetab HTTP, FTP cachemist. Squidi on võimalik kasutada:
- võrguühenduste optimeerimiseks
- kasutajate autentimiseks
- kasutajatele võrgust kätte saadavate resursside piiramiseks
- veebiserverite koormuse leevendamiseks
Squidiga saab kasutajate autentimiseks on olemas palju erinevaid võimalusi:
- Windows Active Directory
- Radius
- LDAP
- Kerberos
- MySQL
- NTLM
Eeldused/nõuded
- 1 mõne up to date linuxi distributsiooniga server
- server mille peale Squid paigaldatakse on võrgus kasutusel ruuterina / kui on tegu võrgus eraldi seisva masinaga on vaja proxytavate teenuste võrguliiklus suunata WCCP/GRE abiga sinna. (See ei kuulu siin artiklis kaetava osa hulka)
- kasutataval serveril peaks olema piisav vahemälu kogus (Squid tahab iga 1 GB cachetavate andmete kohta 10 MB vahemälu).
Paigaldamine
Squidi ja vajalike komponentide paigaldamiseks Ubuntu serveri korral piisab terminali sisestatud käsust:
sudo apt-get install squid squid-common
Kui on soovi järgida autentimise näidet tuleks paigaldada ka apache2-utils. Selle tegemiseks, kas lisada eelneva käsu lõppu "apache2-utils" või tagant järgi eraldi paigaldades:
sudo apt-get install apache2-utils
Seadistamine
Enne seadistamise alustamist tasuks teha originaal konfiguratsioonidest backupid.
iptables seadistamine
iptables'is on vaja kõik http (port 80) päringud suunata ümber squidi pordile, mis on vaikimisi 3128. Seda saab teha sisestades järgmised käsud:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Squidi seadistamine
Squidi seadistamiseks tuleb muuta squidi konfiguratsiooni failis (/etc/squid/squid.conf) järgneivaid asju:
httpd_accel_host virtual //määrab, et squid töötab http kiirendina httpd_accel_port 80 //pordi number, mille liiklust proxytakse httpd_accel_with_proxy on //lülitab squidi tööle, kui kohaliku httpd kiirendi ja proxyna httpd_accel_uses_host_header on acl lan src 192.168.1.1 192.168.2.0/24 //juurdepääsu piirangud, mis lubavad vaid lokaalses võrgus paiknevatel arvutitel squidi kasutada http_access allow localhost // http_access allow lan //
Peale konfiguratsiooni failis muudatuste sisse viimist tuleb nende aktiveerimiseks Squidile taaskäivitus teha:
/etc/init.d/squid restart
Näidis autentimise seadistamisest
Konfiguratsiooni faili on vaja sisestada järgmised read:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid.passwd auth_param basic children 5 auth_param basic realm NFYE Squid proxy-caching web server auth_param basic credentialsttl 3 hours auth_param basic casesensitive off acl users proxy_auth REQUIRED acl sectionx proxy_auth REQUIRED http_access allow users
Teiste autentimise meetodite seadistamise kohta leiab infot http://wiki.squid-cache.org/ConfigExamples/
Mõningad veebilehed/teenused ei pruugi toimida läbi autentimist nõudva proxy ning sellepärast tuleb teha nendest eraldi nimistu, et nad ilma autentimiseta ka töötaks. Seda saab teha järgnevalt:
Tuleb tekitada fail unauth_sites.acl näiteks /etc/squid kausta ning sinna sisse luua nimistu domeenidest, mille korral autentimist ei nõuta kujul(1 domeen rea kohta):
.domeen1.com .domeen2.com
Samuti on vaja lisada squid.conf faili sisse järgmised:
acl unauth_sites dstdomain "/etc/squid/unauth_sites.acl" http_access allow unauth_sites
blacklist
Teatud domeenidele ligipääsu tõkestamiseks tuleks need koondada ühtsesse nimekirja. Näiteks luua fail /etc/squid/bad_domains ja muuta see loetavaks kasutajale, millena Squid käivitatud on. Blokeeritud saitide listi sisu peaks olema enam vähem selline:
pahaleht .pahaleht1.com .pahaleht2.com
Peale selle listi loomist tuleb sellele viidata ka Squidi konfiguratsiooni failis:
acl BAD_DOMAINS dstdom_regex -i "/etc/squid/bad_domains" http_access deny BAD_DOMAINS
Esimese kasutaja loomiseks sisesta terminali:
sudo htpasswd -c /etc/squid.passwd esimese_kasutajanimi
Järgnevate kasutajate loomiseks:
sudo htpasswd /etc/squid.passwd järgmine_kasutaja
Kuidas kontrollida, et päringud Squidini jõuavad
Selleks, et näha kas päringud proxy serverist läbi tuleb jälgida Squidi access logis toimuvat. Seda saab teha käsuga:
tail -f /var/log/squid/access.log
Peale selle käsu sisestamist proovida veebis mingit lehekülge avada mõne arvutiga, mis antud proxy kaudu veebi pääsema peaks.
Varundamine ja taastamine
Varundamiseks tuleks järgnevad failid kopeerida mõnele alternatiivsele meediale:
/etc/squid/squid.conf //squidi konfiguratsiooni fail /etc/squid/bad_domains //blacklist /etc/squid.passwd //kasutajad /etc/squid/unauth_sites.acl //autentimist mitte nõudvate saitide list
Näiteks võib kasutada secure copyt antud failide teise masinasse tõstmiseks:
scp /etc/squid/squid.conf kasutajanimi@mingiip:/kaust/kuhu/kopeerida
Teenuse taastamiseks tuleb eelnevalt loetletud failid taastada varukoopiast samasse kausta, kust need varundamiseks kopeeritud sai ning muuta failid Squidile loetavateks. Näiteks secure copy'ga tagasi teisest serverist:
sudo -i scp kasutajanimi@mingi_ip:/kaust_kus_fail_on/faili_nimi /etc/squid/faili_nimi chown squidi_kasutaja:kasutaja_grupp /etc/squid/failinimi
Kui konfiguratsiooni failid on taastatud, tuleb teenus taaskäivitada:
/etc/init.d/squid restart
Squidi logide analüüs/statistika
Squidi logide analüüsimiseks ning statistika tegemiseks on olemas palju erinevaid programme, millest üks populaarsem on Calamaris(http://cord.de/tools/squid/calamaris/). Näidist Calamarise raporti kohta võib näha aadressil http://cord.de/tools/squid/calamaris/calamaris-2.out Calamarise väljundi põhjal on võimalik näiteks optimeerida Squidi cache swapi suurust.
Pikema nimekirja programmidest, mida võib kasutada Squidi logide analüüsimiseks leiab http://www.squid-cache.org/Scripts/.
Kasutatud kirjandus
http://www.ubuntugeek.com/how-to-setup-transparent-squid-proxy-server-in-ubuntu.html