Squid: Proxy
Serverquid: Proxy Serverquid: Proxy Serverquid: Proxy Server
Los Servidores Intermediarios (Proxy) generalmente se hacen trabajarsimultáneamente como firewall operando en el Nivel de Red, actuando como filtro depaquetes, como en el caso de IPTABLES, o bien operando en el Nivel de Aplicación,controlando diversos servicios, como es el caso de TCP Wrapper. Dependiendo delcontexto, el firewall también se conoce como BPD o Border Protection Device osimplemente filtro de paquetes.Squid es un programa de software libre que implementa un servidor proxy y undemonio para caché de páginas web. Está especialmente diseñado para ejecutarse bajoentornos tipo Unix. Aunque orientado a principalmente a HTTP y FTP es compatible conotros protocolos como Internet Gopher. Implementa varias modalidades de cifradocomo TLS, SSL, y HTTPS...
.....
Instalación y Configuración de SQUID en Ubuntu
Para instalar el servidor Proxy SQUID, utilizamos la siguiente sentencia:
apt get-install squid

después de instalar el servidor Proxy squid, procedemos a crear un archivo, el cualcontendrá las palabras que serán negadas o no admitidas durante la navegación web. Loanterior se realiza mediante el comando
gedit /etc/squid/<nombre del archivo>
o elcomando
nano /etc/squid/<nombre del archivo>
en nuestro caso nuestro archivo sellama palabras_restringidas

Configuración del SQUID Proxy server en modo transparente:
La configuración del Squid proxy server en modo transparente se puede realizar demanera fácil, primero debemos de acceder al archivo de configuración ubicado en
/etc/squid/
. Tecleamos el nombre del archivo para ser abierto con el editor de textos
gedit squid.conf
, insertaremos las siguientes líneas:
visible_hostname <nombre_del_servidor>
Con el comando
visible_hostname

se señala el nombre que tendrá nuestro servidor.
cache_mem 32 MB
La línea
cache_mem 32 MB
, indicará al servidor SQUID cual será el tamaño de sumemoria cache en la memoria RAM.
http_port 8080 transparent
La línea
http_port 8080 transparent
indica al servidor SQUID el numero de puertoque utilizará y que su funcionamiento será en modo transparente. Dentro del servidorSQUID, se puede hacer uso de ACL's
1
tanto de forma standard como de maneraextendida, en nuestro caso para nuestra configuración utilizaremos las siguientes:
acl all src 0.0.0.0/0.0.0.0acl all src proto cache_object

La acl con el nombre all, permite todo el trafico dentro de nuestro servidor.
acl localhost src 127.0.0.1/255.255.255.255

La acl nombrada como localhost permite el tráfico dentro de la dirección de loopbackde las tarjetas de red de nuestro servidor.
acl mired src 192.168.1.0/255.255.255.0
La acl con el nombre mired, permite todo el trafico desde la red interna de nuestroservidor (red LAN) hacia cualquier otra dirección.
acl no_permitidos url_regex "etc/squid/palabras_restringidas"
La acl con el nombre no permitidos es para indicar la ubicación del archivo donde seencuentran las palabras que deseamos ignore el explorador web de los clientes denuestro servidor

acl Safe_ports port 80 # httpacl Safe_ports port 21# ftpacl Safe_ports port 20 # ftp dataaclSafe_ports port 443 # httpsacl Safe_ports port 70# gopheracl Safe_ports port 210 # waisaclSafe_ports port 1025-65535 # unregistered portsacl Safe_portsport 280 # http-mgmtacl Safe_ports port 488# gss-httpacl Safe_ports port 591 # filemakeraclSafe_ports port 777 # multiling httpacl Safe_ports port631 # cupsacl Safe_ports port 873 #rsyncacl Safe_ports port 901 # SWAT
La acl con el nombre Safe_ports lo que hace es indicar el numero de puerto quedeseamos permitir o consideramos como puertos seguros para nuestro servidor.Una vez que hemos creado nuestras respectivas ACL's es momento de irlas aplicandode acuerdo a como nos sea necesario para esto se utiliza el texto
http_access<allow|Deny> <nombre de la ACL>.
Cabe mencionar que las ACL siempre se ejecutande forma secuencial.
http_access deny no_permitidoshttp_access allowSafe_portshttp_access allow localhosthttp_access allowmiredhttp_access allow all
Nótese que se utiliza la palabra
deny
para aquellas ACL para las cuales deseamos seniegue la acción en caso de que se coincida con lo que indica dicha ACL, y se utiliza lapalabra
allow
para aquellas ACL que deseamos permitan la acción contenida en dichasACL.Hemos terminado con la configuración de nuestro servidor Proxy SQUID, debemos decerrar el archivo squid.conf y guardar los cambios con las líneas que hemos insertado,no obstante para que nuestro servidor sea un éxito es necesario redireccionar todo eltráfico hacia nuestro servidor, para esto será necesario hacer uso de las siguientesIPTABLES:1.

Una IPTABLE que redirija el trafico HTTP hacia nuestro servidor.
iptables -t nat -A PREROUTING -i eth0 -p TCP –destination-port 80 -j REDIRECT –to-port 8080
2.

Una IPTABLE que redirija el tráfico HTTPS hacia nuestro servidor.
iptables -t nat -A PREROUTING -i eth0 -p TCP –destination-port 443 -j REDIRECT –to-port 808

3.

una IPTABLE que redirija el tráfico FTP hacia nuestro servidor.
iptables -t nat -A PREROUTING -i eth0 -p TCP –destination-port 21 -j REDIRECT –to-port 8080
En dado caso que se desee redirigir el tráfico de otros puertos, lo único que tenemosque hacer es cambiar el número de puerto en –destination-port.Ahora solo nos queda reiniciar nuestro servidor, lo cual lo podemos hacer medianteel siguiente comando desde una terminal:
/etc/init.d/squid restart




IPTABLESIPTABLESIPTABLESIPTABLES
El kernel Linux incluye el subsistema
Netfilter
, que es usado para manipular o decidirel destino del tráfico de red entre o a través de su red. Todas las soluciones firewallLinux modernas utilizan este sistema para el filtrado de paquetes.El sistema de filtrado de paquetes del núcleo resulta de poca ayuda a losadministradores si no se tiene una interfaz de usuario para gestionarlo.Éste es el propósito de
Iptables
. Cuando un paquete llega a su servidor, éste esgestionado por el subsistema Netfilter para aceptarlo, manipularlo o rechazarlobasándose en las reglas suministradas a éste vía Iptables