miércoles, 9 de septiembre de 2009

Configurar squid de manera transparente y no transparente

Hay veces tenemos la necesidad de tener instalado tanto el proxy transparente como el no transparente es decir sin necesidad de colocar en el brownser, editar->preferencias->configuracion manual proxy, el proxy que administra nuestra red, pero que pasa si deseamos colocar proxy transparente a la vez como no transparente, bueno esta fue una tarea en uno de mis trabajos como apoyo del datacenter tiempo que no entraba al blog espero que le sirva a alguien...

primero tenemos que agregar estas lineas al squid

#Configuracion estandar del squid version 1 02/09/09

######################################################################
########################### Opciones de red ##########################
######################################################################

# Puerto de escucha
http_port 3128 transparent

######################################################################
########################## Opciones de cache #########################
######################################################################
# Patrones cuya coincidencia haran que no sean guardadas en la cache
acl QUERY urlpath_regex cgi-bin \? \.php \.asp
no_cache deny QUERY

# Listas de acceso especiales
acl paginas-adm dstdomain "/etc/squid/nocache"

# Modelo de reemplazo de objetos de la cache para su mantenimiento y
# uso de espacio en disco
cache_replacement_policy heap LFUDA

#Modelo de reemplazo de objetos en la memoria para su mantenimiento y uso
memory_replacement_policy heap GDSF

#Maximo tamano de objetos en la cache
maximum_object_size 156 MB

#Maximo tamano de objetos en la memoria
maximum_object_size_in_memory 100 KB

# Cantidad de memoria que se usa para objetos en transito
cache_mem 100 MB
fqdncache_size 2096

# El limite menor y mayor en porcentaje de uso del espacio designado
# para la cache. Dentro de esos limites se maneja el reemplazo de
# objetos antiguos
cache_swap_low 80
cache_swap_high 95

#######################################################################
################ OPTIONS FOR TUNING THE CACHE #########################
#######################################################################
refresh_pattern -i \.deb$ 22320 50% 44640
refresh_pattern -i \.gz$ 22320 50% 44640
refresh_pattern -i \.bz2$ 22320 50% 44640

refresh_pattern -i ^ftp: 2880 100% 28880 override-expire override-lastmod reload-into-ims ignore-no-cache
refresh_pattern -i ^http: 2880 100% 28880 override-expire override-lastmod reload-into-ims ignore-no-cache
refresh_pattern -i ^gopher: 2880 100% 28880 override-expire override-lastmod reload-into-ims ignore-no-cache

######################################################################
##################### Parametros administrativos #####################
######################################################################

# Usuario y grupo con el que se ejecuta Squid
cache_effective_user proxy

cache_effective_group proxy

# Direccion e-mail del administrador del proxy
cache_mgr soporte@uch.edu.pe

#nombre del host a mostrar
visible_hostname proxyuch.uch.edu.pe

#####################################################################
########################## Rutas de archivos #########################
######################################################################

# Directorio de la cache y sus opciones
cache_dir ufs /var/spool/squid 2000 16 256

# Ruta del archivo de registro de consultas de los clientes
cache_access_log /var/log/squid/access.log

#Observas los log de manera mas detallada
debug_options ALL,1 33,2

# Ruta de archivo de registro del desempeño de la cache
cache_log /var/log/squid/cache.log

# Ruta del archivo de registro de los objetos guardados y removidos
# de la cache
cache_store_log none

# Deshabilitar el registro de la swap de la cache
cache_swap_log /var/log/squid/swap.log

# Archivo de registro del campo User-Agent para todas las peticiones
# HTTP
useragent_log /var/log/squid/useragent.log

# Registrar los tipos MIME en cada peticion HTTP
log_mime_hdrs off

# Ruta del archivo PID de Squid
pid_filename /var/run/squid.pid

######################################################################
#################### Soporte de funciones externas ###################
######################################################################

# Direccion a ser validada por servidores FTP en conexiones anonimas
ftp_user soporte@uch.edu.pe

# Usar FTP pasivo
ftp_passive on


######################################################################
######################## Opciones miscelaneas ########################
######################################################################

# Numero de rotaciones a realizar en los logs
logfile_rotate 3

# Idioma usado para los mensajes de error mostrados por Squid
error_directory /usr/share/squid/errors/Spanish

# Aplicacion de redireccion para filtrado
#redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf

# Numero de procesos a ejecutarse del redirector
redirect_children 15

# No mostrar la IP desde la que el cliente hace la peticion
forwarded_for off
mime_table /etc/squid/mime.conf

######################################################################
######################### Control de accesos #########################
######################################################################

# Listas de acceso genericas
acl all src 0.0.0.0/0.0.0.0
acl subred src 172.16.1.0/24

#hi5
acl redsocial url_regex -i "/etc/squid/redsocial"
acl permitidos-redsocial src "/etc/squid/acl/permitidos-redsocial"

#rapidshare
acl webarchivos url_regex -i "/etc/squid/webarchivos"
acl permitidos-webarchivos src "/etc/squid/acl/permitidos-webarchivos"

#Videos para ver
acl webvideos url_regex -i "/etc/squid/webvideos"
acl permitidos-webvideos src "/etc/squid/acl/permitidos-webvideos"

#otras paginas
acl otrasPaginas url_regex -i "/etc/squid/otrosWeb"


## ips que no pasan por delay pools ##
acl subred-libre src "/etc/squid/acl/subred-libre"

# Patron de coincidencia del MSN
acl gtalk url_regex -i mail.google.com/mail/channel/bind
acl gtalk url_regex -i talk.google.com
acl gtalk url_regex -i google.com:5222

# Puertos permitidos
acl Ssl_ports port 403 443 563
acl Safe_ports port 80
acl Safe_ports port 81
acl Safe_ports port 21
acl Safe_ports port 7779
acl Safe_ports port 160
acl Safe_ports port 3000
acl Safe_ports port 5222
acl Safe_ports port 1002
acl Safe_ports port 19638
acl Safe_ports port 2082
acl Safe_ports port 2083
acl Safe_ports port 2095
acl Safe_ports port 2096
acl Safe_ports port 5080
acl Safe_ports port 8000
acl Safe_ports port 8084
acl Safe_ports port 8080
acl Safe_ports port 8800
acl Safe_ports port 10000
acl CONNECT method CONNECT

## acl de extensiones con trafico reducido ##
acl extensiones url_regex -i "/etc/squid/acl/extensiones"
acl tipo_mime_req.videos req_mime_type "/etc/squid/mime_agr.videos"
acl tipo_mime_rep.videos rep_mime_type "/etc/squid/mime_agr.videos"

acl tipo_mime_req.ficheros req_mime_type "/etc/squid/mime_agr.ficheros"
acl tipo_mime_rep.ficheros rep_mime_type "/etc/squid/mime_agr.ficheros"

# Acceso a todos
http_access deny redsocial !permitidos-redsocial
http_access deny webarchivos !permitidos-webarchivos
http_access deny webvideos !permitidos-webvideos
#Estos parametros se deberan comentar...
#http_access deny !Safe_ports !paginas-adm
#http_access deny CONNECT !Ssl_ports
http_access deny gtalk
http_access allow subred
http_access allow subred-libre
http_access deny all

######################################################################
############################# Delay pools ############################
######################################################################

# Numero de delay pools a usar. Se especifica solamente una que es la
# estrictamente necesaria
delay_initial_bucket_level 75
delay_pools 4

# Definicion de las clases de cada delay pool
delay_class 1 2
delay_class 2 2
delay_class 3 2
delay_class 4 2

# Parametros de control de cada delay pool definida
delay_parameters 1 131072/131072 65536/65536
delay_parameters 2 65536/65536 32768/32768
delay_parameters 3 32768/32768 16384/16384
delay_parameters 4 -1/-1 -1/-1


configuracion del firewall

#e Generated by iptables-save v1.4.2 on Thu Jun 18 03:26:50 2009
*nat
:PREROUTING ACCEPT [47:3720]
:POSTROUTING ACCEPT [77:4638]
:OUTPUT ACCEPT [71:4258]

###### Proxy transparente
-A PREROUTING -s 172.16.1.0/24 -d ! 172.16.1.0/24 -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
-A PREROUTING -s 172.16.1.0/24 -d ! 172.16.1.0/24 -i eth1 -p tcp -m tcp --dport 8080 -j REDIRECT --to-ports 3128

##### Enmascaramiento de la red
-A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 192.168.6.9

COMMIT
# Completed on Thu Jun 18 03:26:50 2009
# Generated by iptables-save v1.4.2 on Thu Jun 18 03:26:50 2009
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]

########################################################################
################ ACCESO LOCALHOST
########################################################################
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

#######################################################################
######## OPENVPN
#######################################################################

-A INPUT -i tun+ -j ACCEPT
-A OUTPUT -o tun+ -j ACCEPT

-A FORWARD -i tun+ -j ACCEPT
-A FORWARD -o tun+ -j ACCEPT

-A OUTPUT -o eth0 -p udp --dport 1194 -j ACCEPT
-A INPUT -i eth0 -p udp --sport 1194 -j ACCEPT

#########################################################################
########## ACCESO SSH
#########################################################################

# Acceso ssh interno para las redes locales

## ssh subred-local host_local->proxy
-A INPUT -s 172.16.1.0/24 -i eth1 -p tcp -m tcp --dport 381 -j ACCEPT
-A OUTPUT -d 172.16.1.0/24 -o eth1 -p tcp -m tcp --sport 381 -j ACCEPT

# Acceso ssh externo para las redes locales

## ssh subred-externa host_local->host_externo
-A FORWARD -s 172.16.1.0/24 -p tcp --dport 381 -m state --state NEW,ESTABLISHED -j ACCEPT
-A FORWARD -d 172.16.1.0/24 -p tcp --sport 381 -m state --state ESTABLISHED -j ACCEPT

-A FORWARD -s 172.16.1.0/24 -p tcp --dport 382 -m state --state NEW,ESTABLISHED -j ACCEPT
-A FORWARD -d 172.16.1.0/24 -p tcp --sport 382 -m state --state ESTABLISHED -j ACCEPT

# Acceso host_externo->proxy ssh
-A INPUT -i eth0 -p tcp -m tcp --dport 381 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -i eth0 -p tcp -m tcp --dport 381 -m state --state NEW -m recent --update --seconds 600 --hitcount 6 --name DEFAULT --rsource -j DROP
-A INPUT -i eth0 -p tcp -m tcp --dport 381 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 381 -m state --state ESTABLISHED -j ACCEPT


#########################################################################
########## SALIDA PA EL PROXY
#########################################################################
-A INPUT -p tcp -m tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

# Internet para las redes locales
-A INPUT -s 172.16.1.0/24 -i eth1 -p tcp -m tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth1 -p tcp -m tcp --sport 3128 -d 172.16.1.0/24 -m state --state ESTABLISHED -j ACCEPT

# Para dns
-A INPUT -i eth0 -p udp -m udp --sport 53 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --dport 53 -j ACCEPT

# Dns para la subred local
-A FORWARD -s 172.16.1.0/24 -d ! 172.16.1.0/24 -p udp -m udp --dport 53 -j ACCEPT
-A FORWARD -s ! 172.16.1.0/24 -d 172.16.1.0/24 -p udp -m udp --sport 53 -j ACCEPT

############################################################################
##################### PING
###########################################################################
-A INPUT -i eth0 -p icmp -j ACCEPT
-A OUTPUT -o eth0 -p icmp -j ACCEPT

-A INPUT -i eth1 -p icmp -j ACCEPT
-A OUTPUT -o eth1 -p icmp -j ACCEPT

-A FORWARD -i eth1 -o eth0 -p icmp -j ACCEPT
-A FORWARD -i eth0 -o eth1 -p icmp -j ACCEPT

#########################################################
### Configuracion avanzada #####
#########################################################

# https libre
-A FORWARD -s 172.16.1.0/24 -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -d 172.16.1.0/24 -p tcp -m tcp --sport 443 -j ACCEPT

-A OUTPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --sport 443 -j ACCEPT

COMMIT
# Completed on Thu Jun 18 03:26:50 2009

como podran observar en las lineas deberas dejar habilitado tanto para input, output, forward el puerto 443

kikin.....

No hay comentarios:

 
;