You are on page 1of 8

http://parbaedlo.wordpress.

com/2013/03/08/configurar-proxy-squidtransparente-en-linux-debian-squeeze/ configurar proxy squid transparente en linux debian squeeze


Publicado por parbaedlo el marzo 8, 2013 Publicado en: Uncategorized. Etiquetado: configurar proxy, instalar proxy, instalar proxy transparente. 5 comentarios

Ahora configuraremos proxy transparente pero para poder comenzar previamente tenemos que configurar las tarjetas de red y el DHCP.

para configurar las tarjetas de red editar el archivo /etc/network/interfaces para que quede de la siguiente manera

auto lo eth0 eth1

iface lo inet loopback

#Configuracion para interfaz con red eth0 con internet

allow-hotplug eth0

iface eth0 inet static

address 172.16.2.111

netmask 255.255.255.0

gateway 172.16.2.1

network 172.16.2.0

broadcast 172.16.2.255

dns-nameservers 8.8.8.8 #esto tambin se puede configurar en /etc/resolv.conf

#Configuracion para interfaz eth1 con red lan interna privada

allow-hotplug eth1

iface eth1 inet static

address 192.168.2.1

netmask 255.255.255.0

network 192.168.2.0

broadcast 192.168.2.255

Ahora instalamos y configuramos el servidor DHCP que nos servira para proporcionar ips automaticos a las pcs de la red lan

# aptitude install isc-dhcp-server

Configuramos el servicio de DHCP para que este disponible en la red interna y acepte las conexiones en dicha red, en este caso es la interfaz eth1, esto se configura en el archivo /etc/default/isc-dhcp-server

INTERFACES="eth1"

Ahora tenemos que modificar algunas lineas el archivo /etc/dhcpd.conf para especificar rango de ips y tiempo que se le proporcionara el ip a la maquina cliente

option domain-name "example.org";

option domain-name-servers 8.8.8.8, 4.4.4.4;

default-lease-time 600;

max-lease-time 7200;

#SubNet red lan.

subnet 192.168.2.0 netmask 255.255.255.0 {

range 192.168.2.101 192.168.2.199;

#option domain-name-servers 8.8.8.8;

#similar a la parte superior

#option domain-name "example.org";

#similar a la parte superior

option routers 192.168.2.1;

option broadcast-address 192.168.2.255;

#default-lease-time 86400;

#similar a la parte superior

#max-lease-time 172800;

#similar a la parte superior

Con el servidor DHCP se puede asignar un ip especifica a una determinada mac-address, estas direcciones fijas no deben estar en la gama de las direcciones reservadas para la distribucin dinmica.

host desktop {

hardware ethernet 01:23:45:67:89:10;

fixed-address 192.168.2.2;

host laptop {

hardware ethernet 01:23:45:67:89:11;

fixed-address 192.168.2.3;

Reiniciar el servicio de dhcp:

# /etc/init.d/isc-dhcp-server restart

Ahora el ultimo paso instalacin y configuracin de squid, procedemos a la instalacion con el siguiente comando

# aptitude install squid

Ahora vamos a hacer unos cambios en el fichero de configuracin de squid (/etc/squid/squid.conf). Primero localizamos la lnea con el puerto de entrada de squid (por defecto http_port 3128) y aadimos el parmetro transparente. Debe de quedarnos algo as:

http_port 3128 transparent

A continuacin de esto, y en el mismo fichero, aadimos las siguientes lneas:

acl redlan src 192.168.2.0/24

http_access allow redlan

Ahora slo nos queda configurar la mquina como router y direccionar el trfico web (puerto 80) que recibe por el interfaz interno (eth1) al puerto 3128 que es el que usa squid. Esto lo hacemos gracias a IPtables (que vienen instaladas en Debian por defecto) el script que se detalla a continuacin, se debe configurar para que se ejecute de forma automtica.

#!/bin/sh

# squid server IP

SQUID_SERVER="192.168.2.1"

# Interface connected to Internet

INTERNET="eth0"

# Interface connected to LAN

LAN_IN="eth1"

# Squid port

SQUID_PORT="3128"

# DO NOT MODIFY BELOW

# Clean old firewall

iptables -F

iptables -X

iptables -t nat -F

iptables -t nat -X

iptables -t mangle -F

iptables -t mangle -X

# Load IPTABLES modules for NAT and IP conntrack support

modprobe ip_conntrack

modprobe ip_conntrack_ftp

# For win xp ftp client

#modprobe ip_nat_ftp

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

# Setting default filter policy

iptables -P INPUT DROP

iptables -P OUTPUT ACCEPT

# Unlimited access to loop back

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

# Allow UDP, DNS and Passive FTP

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

# set this system as a router for Rest of LAN

iptables --table nat --append POSTROUTING --out-interface $INTERNET -j MASQUERADE

iptables --append FORWARD --in-interface $LAN_IN -j ACCEPT

# unlimited access to LAN

iptables -A INPUT -i $LAN_IN -j ACCEPT

iptables -A OUTPUT -o $LAN_IN -j ACCEPT

# DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy

iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT

# if it is same system

iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --toport $SQUID_PORT

# DROP everything and Log it

iptables -A INPUT -j LOG

iptables -A INPUT -j DROP

Para guarde el anterior script nos creamos la carpeta /etc/iptables-script y dentro de ahi colocamos el script con el nombre de proxy.sh, de damos permisos de ejecucin:

# chmod +x /etc/iptables-script/proxy.sh

Y le indicamos al SO que ejecute dicho script al iniciar el sistema para esto editamos el archivo /etc/rc.local, y antes de exit colocamos la siguiente linea:

sh /etc/iptables-script/proxy.sh

You might also like