martes, 26 de marzo de 2013

Squid proxy gardena FreeBSDn

Proxyak berez, bitartekariak dira, eta haien artean webeko proxyak ezagunenak dira. Kasu honetan web proxya instalatuko dugu gure sarean, proxy gardena, hain zuzen ere, bezeroek inolako konfigurazioa behar ez dezaten.


Ezagunenen artean Squid daukagu eta hori da erabiliko duguna, beraz… Has gaitezen:


# portmaster -d /usr/ports/www/squid (squid-3.5.12)

Port konfigurazioan agertuko zaizkigun aukeren artean hauek erabiliko ditugu:


ARP_ACL (Gaitzen dugu ARP/MAC/EUI autentikazioa, ez dugu beharko)
DOCS (Dokumentazioa eskura izatea beti izaten da ideia ona)
EXAMPLES (Dokumentazioa bezalakoa)
FS_AUFS (IO Asinkronoa erabiliko dugu diska sarbidea arinagoa izateko)
HTCP (HTCP Protokoloa)
ICAP (Honekin ICAP bezero ezaugarriak gehituko dizkiogu gure proxy-ri, etorkizunean adibidez ClamAV gehitzeko)
IDENT (Ident bilaketak, RFC 931)
KQUEUE (Kqueue)
SNMP (SNMP bidez estatistikak har ditzakegu)
TP_PF (Proxy gardena montatzeko PF suebakia erabiliko dugu)
WCCP (Web Cache Coordination Protocol)
WCCPV2 (Web Cache Coordination Protocol v2)

Behin instalatuta gure proxy-a konfiguratzen hasiko gara, lehenik eta behin, kontuan izan behar dugu squid proxy garden bezala erabiltzeko, honek irakurtzeko baimena izan behar duela /dev/pf “fitxategian” (Gogoratu PF erabiliko dugula berbideraketak egiteko). Horretarako /etc/devfs.conf fitxategia aldatuko dugu, honako hau gehituz:


# Eman baimena Squid-i /dev/pf irakurri ahal izateko
own pf root:squid
perm pf 0640

devfs zerbitzua berrabiaraziko dugu:


# /etc/rc.d/devfs restart

Port aukeretan komentatu dugu IO asinkronoa erabiliko dugula, horretarako modulo bat kargatu behar dugu FreeBSDn:


### Moduloa /boot/loader.conf
aio_load="YES"

Ondo! Prest gaude gure /usr/local/etc/squid.conf fitxategia gure beharretara egokitzeko!


Ikusiko dugu /usr/local/etc/squid direktorioan defektuzko squid.conf fitxategia badaukagula, aldaketa txiki batzuk egingo ditugu horretan


### IPv6 erabiliko ez dugunez, komentatuko ditugu hurrengo bi lerroak
#acl localnet src fc00::/7 # RFC 4193 local private network range
#acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines

### Gure proxy gardena izango da, beraz hurrengoa gehituko dugu
http port 3128 #lerro hau badago jatorrizko fitxategian
http_port 3129 intercept #portu honetara berbideratuko dugu http trafikoa

# Gure katxe tipo eta tamaina. aufs erabiliko dugu diskorako
# sarbidea asinkronoa izateko, gure katxea non izango dugun
# eta bere tamaina (MBtan, eredu honetan 2GBkoa izango da),
# eta direktorio estruktura
cache_dir aufs /var/squid/cache/squid 2048 16 256

# Onartuko ditugun datuen tamaina
minimum_object_size 0 KB
maximum_object_size 200 MB

cache_mgr proxymgr@example.com
visible_hostname proxy.example.com
unique_hostname proxy.example.com

# Zelan ordeztu behar dituen datu zaharrak gure proxy-ak
cache_replacement_policy heap LFUDA

Beste direktiba batzuk alda ditzakegu, adibidez gure sare lokalaren tarteak, baina kasu gehienetan honekin nahikoa izango dugu.


Konfigurazio fitxategiaren direktiben azalpen zehatzagoa (askoz zehatzagoa) topatuko ditugu /usr/local/etc/squid/squid.conf.documented fitxategian, eta ez da ideia txarra hara jotzea benetan zer egiten ari garen jakiteko, badakizu, RTFM!


/etc/rc.conf fitxategian hurrengoa gehituko dugu Squid abiarazteko sistemarekin batera:


# /etc/rc.conf
squid_enable="YES"

Ondo, squid abiarazi baino lehen katxe direktorioak sortu behar ditugu, horretarako:


# squid -z

Beno, itxura polita dauka honek, baina azken pausu batzuk falta dira. Gure Squid zoragarria gateway bezala arituko da gure sarean, beraz, FreeBSD-n router gaitasuna aktibatu behar dugu:


# /etc/rc.conf
gateway_enable="YES"

Efektu bera lor dezakegu hurrengo honekin, baina berrabiaraztean… badakizu, ezta?:


sysctl net.inet.ip.forwarding=1

Ondo, squid konfiguratuta, FreeBSD badabil gateway moduan… baina… http trafikoa ez doa proxy-tik! Gogoratu Squid 3128 eta 3129 portuetan ari dela entzuten, ez 80an, beraz PF erabiliko dugu trafiko hori berbideratzeko joan behar den lekura:


# /etc/pf.conf
# $int_if gure barneko sare txartela (edo sare txartelen taldea) # izango da
rdr pass on $int_if inet proto tcp from any to any port www -> 127.0.0.1 port 3129

PF erabiliko dugunez, gure rc.conf fitxategian…:


# /etc/rc.conf
pf_enable="YES"
pf_rules="/etc/pf.conf"

Azkenik zerbitzu guztiak martxan jarriko ditugu eta… Squid garden bat izango dugu martxan gure sarean

No hay comentarios:

Publicar un comentario