340 likes | 534 Views
Proxy Transparent basat en Linux mode text. M. Angel Esteban - ASIX2 24/06/2014. http://www.projectelinux.com. Què és un Proxy?. És un hardware/software que fa d'intermediari entre els nostres clients web i Internet. Què significa Transparent?.
E N D
Proxy Transparent basat en Linux mode text • M. Angel Esteban - ASIX2 • 24/06/2014 http://www.projectelinux.com
Què és un Proxy? • És un hardware/software que fa d'intermediari entre els nostres clients web i Internet
Què significa Transparent? • Un Proxy Transparent és aquell que té els mecanismes necessaris per què no calgui cap configuració per part del client.
Avantatges • Filtrat: Podrem decidir a quins continguts es podran accedir • Velocitat: Sistema de memòria cau que accelera l’accés a pàgines redundants • Simplicitat: No cal cap tipus de configuració als clients
Desavantatges • Autentificació: Els proxies en mode transparent perden les seves característiques d’autentificació d’usuari.
Ingredients (Hardware) Adaptador /dev/eth0 (internet)
Ingredients (Hardware) Adaptador /dev/eth1 (xarxa interna)
Ingredients (Hardware) Esquema
Ingredients (Software) • Sistema Operatiu: Debian Linux • DHCP: isc-dhcp-server • DNS: bind9 • Proxy: squid • Tallafocs / Router: iptables • OpenDNS
Debian Linux 7 • A aquest projecte s’ha optat per treballar amb Debian Linux en mode texte http://www.debian.org
DHCP • DHCP és un servei que permetrà assignar adreces IP automàticament a les màquines de la nostra xarxa Interna. • Utilitzarem el paquet isc-dhcp-server de debian • Per tal de fer-lo funcionat va caldre editar l’arxiu /etc/dhcp/dhcpd.conf on definirem rangs IP i reserves IP
DHCP Reinicia el servei DHCP service isc-dhcp-server restart
DNS • No és 100% necessari, però ens permetrà simplificar l’accés a les nostres màquines ja que no caldrà conèixer la seva IP • El nostre server (172.20.0.1) s’anomenarà trasto i la màquina client windows 8 amb reserva IP tindrá de nom windows8.
DNS • Utilitzarem el software BIND9 • El servei bind es reinicialitzarà amb aquesta ordre: service bind9 restart named.conf.options named.conf.local
DNS db.casa.local db.0.20.172
Squid • Es tracta d’un software que fa que el nostre servidor actuï com a proxy. • Per defecte escolta al port 3128 i haurem de configurar els navegadors clients per tal que puguin navegar a través d’ell. • Permet definir una llista ACL amb regles d’accés.
Squid Configurarem Squid editant l’arxiu squid.conf
Squid: squid.conf acl localhost src 127.0.0.1/32 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 acl entraip src "/etc/squid/entraip" acl nodomini url_regex "/etc/squid/nodomini" acl noextensions url_regex "/etc/squid/noextensions" acl nomac arp "/etc/squid/nomac" acl horarioficina time M T W H F 08:00-14:00 .exe$ .avi$ .mpg$ .mpeg$ .mp3$ .facebook.com .faq-mac.com
Squid: squid.conf http_access allow localhost http_access deny nodomini http_access deny noextensions reply_body_max_size 100 MB all http_access deny nomac http_access allow entraip horarioficina http_access deny all
Squid: Port per defecte Squid escolta per defecte el port 3128. Nosaltres modificarem aquest port pel 8080 i farem que actuï de manera transparent http_port 172.20.0.1:8080 transparent Ara només caldrà ‘enganyar’ a l’ordinador per que redirigeixi totes les peticions rebudes al port 80 cap al port 8080. Això ho farem amb iptables
iptables • Iptables farà que el nostre ordinador actuï com a • Tallafocs • Router
iptables • Cada cop que executem IPTables definirem una regla de tipus • INPUT • OUTPUT • FORWARD
iptables Les definirem mitjançant un script A continuació veurem alguna de les regles que he utilitzat al projecte
iptables: Filtres Generals Amb el paràmetre -P definim filtres generals. Amb els dos comandaments següents tallo tot el tràfic d’entrada però permetré el tràfic de sortida iptables -P INPUT DROP iptables -P OUTPUT ACCEPT Més tard definirem regles més particulars que definiran excepcions com ara accessos ssh (port 22) o web (port 80) que ara per ara estan tallats.
iptables: Filtres Amb el paràmetre -A afegim més normes (append) a les generals ja definides. Aquesta permetrà tot el tràfic d’entrada i sortida de la interficie eth1. La interficie eth0 romandrà tancada per la regla general anterior. iptables -A INPUT -i eth1 -j ACCEPT iptables -A OUTPUT -o eth1 -j ACCEPT
iptables: Filtres També podem obrir ports. La interfície eth0 està tancada per defecte, però aquest comandament obrirà el port 22 de la mateixa, permetent l’accés SSH des de l’exterior. iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
iptables: NAT Regla NAT, modifica el destí de les trames web (port 80) i fa que vagin directes al port 8080 de la IP 172.20.0.1 (servidor proxy transparent) iptables -t nat -A PREROUTING -i eth1 -p tcp -s 172.20.0.0/24 --dport 80 -j DNAT --to 172.20.0.1:8080
OpenDNS 208.67.222.222 208.67.220.220
OpenDNS • OpenDNS ens aporta característiques exteses com ara: • Filtrat de continguts per categories • Protecció contra Phishing, malware, etc… • Personalització