configurar proxy squid transparente en linux debian squeeze
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-serverINTERFACES="eth0"
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 clienteoption 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
EXCELENTE APORTE!! amigo todo funciono ala perfeccion saludos!
ResponderEliminar