Squid transparent proxy: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mmahar (talk | contribs)
Mmahar (talk | contribs)
Line 100: Line 100:
  /etc/squid/bad_domains  //blacklist
  /etc/squid/bad_domains  //blacklist
  /etc/squid.passwd    //kasutajad
  /etc/squid.passwd    //kasutajad
/etc/squid/unauth_sites.acl //autentimist mitte nõudvate saitide list


Teenuse taastamiseks tuleb eelnevalt loetletud failid taastada varukoopiast ning teenusele taaskäivitus teha  
Teenuse taastamiseks tuleb eelnevalt loetletud failid taastada varukoopiast ning teenusele taaskäivitus teha  

Revision as of 12:18, 10 January 2010

Autor

Mikk Mähar AK32

Versioon

Versioon 0.01 muudetud 18.12.2009

Versioon 0.02 muudetud 10.01.2010

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 puhvirga. 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
  • jne

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 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    //

Autentimisega seotud parameetrid:

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

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:

porr
.porr1.com
.porr2.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

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


Peale konfiguratsiooni failis muudatuste sisse viimist tuleb nende aktiveerimiseks Squidile taaskäivitus teha:

/etc/init.d/squid restart

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

Teenuse taastamiseks tuleb eelnevalt loetletud failid taastada varukoopiast ning teenusele taaskäivitus teha

/etc/init.d/squid restart

Kasutatud kirjandus

http://www.squid-cache.org/

http://www.ubuntugeek.com/how-to-setup-transparent-squid-proxy-server-in-ubuntu.html

http://www.brennan.id.au/11-Squid_Web_Proxy.html