squid proxy transparente en ubuntu

4

Click here to load reader

Upload: alvaro-lopez

Post on 16-Jul-2015

173 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Squid proxy transparente en ubuntu

SQUID Proxy Transparente en Ubuntu En la configuración propuesta usaré el siguiente escenario:

Los programas a utilizar serán:

squid3 (Servidor Proxy) iptables (Firewall de Linux, todos las distros nuevas con kernel 2.6.x lo traen) dhcp3-server

Instalamos los paquetes: sudo apt-get update && sudo apt-get install squid3 dhcp3-server

Configuración de Squid

El archivo de configuración de Squid está en /etc/squid3/squid.conf Abrimos el archivo con el editor de nuestra preferencia para modificar el parámetro http_port y agregamos las demás acl http_port 3128 transparent acl la_red src 192.168.1.0/24 acl redlocal src 127.0.0.1/255.255.255.255 http_access allow redlocal http_access allow la_red

Page 2: Squid proxy transparente en ubuntu

No voy a hacer filtrado de páginas ni horarios de acceso para los usuarios porque no es el objetivo del tutorial, para eso leer sobre Listas de Control de Acceso (Access Control List, ACL) en el libro de Squid que les recomendé al inicio. Nos puede interesar cambiar el tamaño del caché del proxy, para eso buscamos esta linea: cache_dir ufs /var/spool/squid3 700 16 256

El primer número representa el tamaño del caché en MB Reiniciamos Squid service squid3 restart

Con esto el proxy ya está funcionando, pero aún tenemos que configurar manualmente en cada host los datos de conexión de red y el proxy.

Configuración de IPTables

Primero vaciar la config de IPTables (Si es necesario): iptables -F

iptables -X

iptables -t nat -F

iptables -t nat -X

iptables -t mangle -F

iptables -t mangle -X

Para lograr hacer transparente el proxy tenemos que agregar unas cuantas reglas en la configuración de IPTables modprobe ip_conntrack

modprobe ip_conntrack_ftp

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

Page 3: Squid proxy transparente en ubuntu

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE

iptables --append FORWARD --in-interface eth1 -j ACCEPT

iptables -A INPUT -i eth1 -j ACCEPT

iptables -A OUTPUT -o eth1 -j ACCEPT

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

iptables -A INPUT -j LOG

iptables -A INPUT -j DROP

eth0 es la interfaz del proxy conectada a internet, eth1 es la interfaz del proxy conectada a la LAN. 3128 es el puerto del proxy y 192.168.1.1 es la IP interna del proxy. No voy a explicar cada linea, para eso pueden leer el libro de IPTables que puse al comienzo o leereste post donde se detalla un poco que hace cada linea. Con esto ya tenemos proxy transparente, pero aun tenemos que configurar manualmente los datos de red en los host, aunque ya no sea necesario especificar el proxy, nos falta configurar el servidor DHCP.

Configuración de dhcp3-server

Primero hay que especificar la interfaz donde dhcp3-server va a escuchar las solicitudes. Editamos el archivo /etc/default/dhcp3-serve, en la line: INTERFACES="eth1"

Page 4: Squid proxy transparente en ubuntu

Especificamos la interfaz de escucha, en nuestro caso la eth1. Y configuramos los datos de la red en el archivo /etc/dhcp3/dhcpd.conf (Borrar las configuraciones anteriores): subnet 192.168.1.0 netmask 255.255.255.0 {

option routers 192.168.1.1;

option subnet-mask 255.255.255.0;

option ip-forwarding off;

option domain-name-servers 208.67.222.222, 208.67.220.220;

range dynamic-bootp 192.168.1.50 192.168.1.250;

default-lease-time 21600;

max-lease-time 43200;

}

E iniciamos el servicio DHCP service dhcp3-server restart