squid proxy transparente problema no bloquea paginas

Imagen de maxstoro

Forums: 

Saludos soy nuevo en el mundo de Linux e configurado un servidor proxy con dos tarjetas de red en Centos 5 y SQUID 2.6.STABLE21 el cual navega bien sin problemas pero tengo pequeños problemas que no he podido solucionar espero que me puedan ayudar.

Bueno configure el proxy como transparente navega bien pero no me bloquea ninguna página pero si me permite visitar ftp, https ósea no tengo ningún problema en lo que es navegación, le coloco proxy al explorador y hay si me bloquea las paginas pero no me permite navegación ftp ni descarga ftp.

A continuación coloco mi squid y mi firewall

#WELCOME TO SQUID 2.6.STABLE21

#Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8

#reglas locales
acl redlocal src "/etc/.scripts/permitidos"
acl bloqueadas url_regex "/etc/squid/bloqueadas"
acl SSL_ports port 443 563

acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

#http_access allow manager administrador

http_access allow manager localhost
http_access allow localhost
http_access allow redlocal !bloqueadas
http_access deny all
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
#Allow ICP queries from everyone
icp_access allow all

# Squid normally listens to port 3128
http_port 3128 transparent
visible_hostname server

#Default:
cache_mem 16 MB

#Default:
cache_dir ufs /var/spool/squid 2000 16 256

#Default:
ftp_passive on

#Suggested default:
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320


scrpt firewall

#!/bin/bash
OK="\033[1;0m [ \033[00;32mOK \033[1;0m]\033[0m"
ROUTE=/sbin/route
IPTABLES=/sbin/iptables
PERMITIDOS=/etc/.scripts/permitidos

# PARAMETROS RED EXTERNA
OUTERIF=eth0
OUTERIP=10.26.26.13/32
OUTERNET=10.26.26.0/24

# IP ETH0
IP_WAN=x.x.x.x/32

# RANGO DE IP PRIVADO
LAN_IP_RANGE=192.168.0.0/24
LAN_IP=192.168.0.1
LAN_BCAST_ADRESS=192.168.0.255

# IP PRIVADA ETH1
STATIC_IP1=x.x.x.x/32

PUBLIC_IP_RANGE=200.xx.xxx.xxx/30
PUBLIC_IP=200.xx.xxx.xxx
PUBLIC_BCAST_ADRESS=200.xx.xxx.xxx

LOCALHOST_IP=127.0.0.1/32
REMOTENET=0/0
PRIVPORTS="0:1023"
UNPRIVPORTS="1024:65535"

INET_IFACE=eth0
LAN_IFACE=eth1

# Eliminado Ruta por default
if netstat -nr 2>/dev/null |grep -q 169.254.0.0; then
$ROUTE delete -net 169.254.0.0/16 gw 0.0.0.0 dev eth1
echo -e "Descartando Rutas no Necesarias: $OK"
fi

echo -e "FIREWALL: Cargando modulos necesarios: $OK"
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ipt_owner
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat_ftp
modprobe ip_nat_irc

echo -e "Activando Forwarding: $OK"
echo 1 > /proc/sys/net/ipv4/ip_forward

echo -e "Flushing de Reglas por Default: $OK"
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X

echo -e "Cargando Reglas Generales Para el FireWall: $OK"
# Politicas ICMP
CONFIG_DIR=/etc/rc.d/security/

# Enmascaramiento

PERMITIR_NAT_IPS=($(cat $PERMITIDOS | awk '{print $1}' | sed '/#/d'))
INDICE=0
NUM_IPS=${#PERMITIR_NAT_IPS[*]}
while [ $INDICE -lt $NUM_IPS ]; do
$IPTABLES -t nat -A POSTROUTING -o eth0 -s ${PERMITIR_NAT_IPS[$INDICE]} -j MASQUERADE
echo ${PERMITIR_NAT_IPS[$INDICE]}
let INDICE++
done

$IPTABLES -t nat -A POSTROUTING -o eth0 -s $IP_WAN -d 0/0 -j MASQUERADE
$IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

#port 80 al 3128

$IPTABLES -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

# ACEPTA CONEXIONES POR LOS PUERTOS FTP

$IPTABLES -A INPUT -i eth1 -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT

#vincular ip con mac

ip neig replace 192.168.0.19 lladdr 00:1C:C0:7E:D3:C3 dev eth1 nud perm

# ===>> Fin de las Reglas <<=== #

de antemano les quedo muy agradecidos

hay varias formas de hacer lo

Imagen de falcom

hay varias formas de hacer lo del mac+ip una es esta: con iptables es la mas segura
haber en tu 2da preg prueba colocando esta linea

ip neig replace 192.168.0.19 lladdr 00:1C:C0:7E:D3:C3 dev eth0 nud perm

claro cambias e incrementas las ips mas las macs a libre albedrio (no se si escribe asi pero se me ocurrio) }:)
sobre la 1era preg
[quote]Primer problema
Bueno configure el proxy como transparente navega bien pero no me bloquea ninguna página pero si me permite visitar ftp, https ósea no tengo ningún problema en lo que es navegación, le coloco proxy al explorador y hay si me bloquea las paginas pero no me permite navegación ftp ni descarga ftp.[/quote]
squid es un proxy q soporta trafico http nada q ver o algo de ftp - https
busca las ocpines de acl y denegacion en tu archivo squid.conf y con eso tienes listo todo..

gracias

Imagen de maxstoro

gracias al colocar la ipneig ya pude solucionar y me ligo la ip con la mac hoy voy hacer mas pruebas pa ver como trabaja

Al parecer no está bien el

Imagen de antares

Al parecer no está bien el proxy transparente, ya que al configurar a mano en el navegador recién te bloquea, eso quiere decir que la regla iptables que debe redirigir el tráfico http al puerto del squid no está funcionando, y en lugar de ello está enmascarando el puerto 80, por eso no te bloquea.

Por cierto, el proxy transparente sólo sirve para http, el resto de protocolos salen enmascarados, incluso el https. Si lo configuras a mano en el navegador, entonces el tráfico https y ftp pasan por el squid.

Para lo del control ip mac lo haces con el comando ip neig.

Por cierto, está línea me parece que te está sobrando:

http_access allow manager redlocal !bloqueadas

Saludos,

antares

Gracias por lo de la línea

Imagen de maxstoro

Gracias por lo de la línea demás en el squid se me había pasado por alto estaba probando jeje y te agradecería si me podrías dar una mano ya que la iptable para redireccionar del puerto 80 al 3128 es la que tengo en mi firewall y hasta el momento mi problema es que no bloquea el squid cuando esta transparente si tienes alguna sugerencia te agradecería me la hiciera gracias.

A y en versión SQUID 2.6.STABLE21 solo basta con colocar http_port 3128 transparent y en el firewall redireccionar bueno de antemano le agradezco

es correcto en squid

Imagen de falcom

es correcto en squid unicamente agregas

http_port 3128 transparent

y listo ademas de las siguientes lineas en tu script de firewall

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to dir_ip_de_tu_proxy:3128
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE

la 1era linea hace el forward de paquetes
la 2da hace q todo lo que venga x el trafico intern se lo redirecciona para q salgan x el pto q usa squid
la 3ra el enmascaramiento

aca hay otra forma para la 2da linea
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128

gracias ya solucione el

Imagen de maxstoro

gracias ya solucione el problema era la iptable que supuestamente redireccionaba al squid no estaba funcionando ahora si coloque la iptable que me dio y hay si ya me bloquea paginas gracias por todo igual el script del firewall y el squid estan corregidos gracias

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

Estimado no puedo q squid me bloquee las paginas

Imagen de gabux

Amigos Ecualug por favor ayudenmen con este incoveniente, he levantado el servicio de squid, y me indica con reload y rstart que el servicio esta activo pero no consigo que bloquee ningun sitio.

Por favor helpme, les detallo el archivo de configuracion...

#
# Recommended minimum configuration:
#
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl localhost src ::1/128
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl to_localhost dst ::1/128

# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines

acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

#
# Recommended minimum Access Permission configuration:
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager

# Deny requests to certain unsafe ports
http_access deny !Safe_ports

# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports

# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost

#
cache_mem 64 MB
visible_hostname mailsrvr
http_port 192.168.8.1:3128 transparent

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost

acl admin src "/etc/squid/total"
http_access allow admin

acl https port 443
http_access allow https

acl noway url_regex "/etc/squid/prohibido"
http_access deny noway

acl red_lan src "/etc/squid/otros"
http_access allow red_lan

# And finally deny all other access to this proxy
http_access deny all

# Squid normally listens to port 3128
#http_port 192.168.8.1:3128

# We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?

# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 100 16 256
cache_dir ufs /var/spool/squid 1024 16 256

# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid

# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320