Está en la página 1de 8

http://parbaedlo.wordpress.

com/2013/03/08/configurar-proxy-squid-
transparente-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 también 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 pc’s 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 distribución dinámica.

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 instalación y configuración de squid, procedemos a la instalacion con el siguiente comando

# aptitude install squid

Ahora vamos a hacer unos cambios en el fichero de configuración de squid (/etc/squid/squid.conf). Primero localizamos la

línea con el puerto de entrada de squid (por defecto http_port 3128) y añadimos el parámetro transparente. Debe de

quedarnos algo así:

http_port 3128 transparent

A continuación de esto, y en el mismo fichero, añadimos las siguientes líneas:

acl redlan src 192.168.2.0/24

http_access allow redlan


Ahora sólo nos queda configurar la máquina como router y direccionar el tráfico 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 continuación, se debe configurar para que se ejecute de forma automática.

#!/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 --to-


port $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 ejecución:

# 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

También podría gustarte