Servidor proxy transparente y no transparente

Forums: 

Estimados,

Les comento que tengo un server con dos interfaces de redes la cual funciona como servidor proxy, esta al momento configurado como servidor proxy transparentes para un grupo de usuarios, pero tengo otro grupo de usuarios que va ser filtrado colocando la direccion de servidor el proxy en los browser mas el puerto, pero no me permite navegar en lo absoluto, pero si puedo realizar ping a exterior.

Les detallo lo que tengo hasta ahora:

eno1: Red Interna
eno2: Red externa WAN

Squid:

acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 10000 # webmin
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 acessototal src "/etc/squid/ip_norestringidas"

acl IPrestringidos src "/etc/squid/ip_dominiosrestringidos"
acl dominiorestringidos dstdomain "/etc/squid/dominiosrestringidos"

http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access deny to_localhost
http_access allow localhost
http_access allow acessototal
http_access allow IPrestringidos !dominiorestringidos
http_access deny all

# And finally deny all other access to this proxy

# Squid normally listens to port 3128
http_port 192.168.1.3:3128 intercept

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

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

Firewall:

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3128 -j ACCEPT
-A FORWARD -i eno2 -o eno1 -j ACCEPT
-A FORWARD -i eno1 -o eno2 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A PREROUTING -i eno1 -p tcp ! -d 186.47.80.36 --dport 80 -j REDIRECT --to-port 3128
-A POSTROUTING -s 192.168.1.0/24 -o eno2 -j MASQUERADE

como le mencionaba si le quito la direccion proxy en los browser tiene acceso total, pero le pongo npuedo navegar.

Que sugerencia me dan para poder solucionar el problema.

Saludos

Qué dicen los logs de SQUID

Imagen de deathUser

Qué dicen los logs de SQUID al momento de intentar ingresar con los clientes con problemas ...???

Qué respuesta se obtiene en el cliente ...???

Lo del ping no tiene nada que ver en este caso ya que son protocolos diferentes ...

bye
;)

Qué dicen los logs de SQUID

Lo que sale del squid - access.log es lo siguiente.

1440984780.778 0 192.168.1.151 NONE/409 3889 CONNECT www.google.com.ec:443 - HIER_NONE/- text/html
1440984780.991 0 192.168.1.151 NONE/409 3889 CONNECT www.google.com.ec:443 - HIER_NONE/- text/html
1440984781.183 0 192.168.1.151 NONE/409 3889 CONNECT www.google.com.ec:443 - HIER_NONE/- text/html
1440984781.429 0 192.168.1.151 NONE/409 3889 CONNECT www.google.com.ec:443 - HIER_NONE/- text/html
1440984781.633 0 192.168.1.151 NONE/409 3889 CONNECT www.google.com.ec:443 - HIER_NONE/- text/html

La respuesta que se obtiene del cliente
ERR_TUNNEL_CONNECTION_FAILED

esto ocurre cuando colo el proxy y el puerto.para que realice el filtrado.

Amigos que podría ser para solucionarlo.

Saludos.

El error ERR_TUNNEL

Imagen de deathUser

El error ERR_TUNNEL_CONNECTION_FAILED es emitido por chrome si no me equivoco y lo que dice es que no se puede comunicar con el proxy server , según algunos posts en internet dice que chrome y las nuevas versiones de firefox no reconocen los mensajes HTTP 500 enviados por SQUID cuando niega una conexión, es probable que te estés perdiendo los mensajes de SQUID por ese motivo ...

Solamente vas a aceptar conexiones HTTPS en ese squid ...???

No se ve nada raro en los logs ...

bye
;)

El error ERR_TUNNEL

Gracias por su ayuda,

Lo que se requiere es filtrar conexiones https para un grupo de usuarios y para el resto que no filtre nada, simplemente que sea transparente.

cambie un poco las reglas y quedo asi:

acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 10000 # webmin
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:
#
# 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

# Only allow cachemgr access from localhost
http_access deny manager

# 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

#
# 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 localhost

acl acessototal src "/etc/squid/ip_norestringidas"
http_access allow acessototal

acl IPrestringidos src "/etc/squid/ip_dominiosrestringidos"
acl dominio dstdomain "/etc/squid/dominiosrestringidos"
http_access deny dominio
http_access allow IPrestringidos

acl restringidos src "/etc/squid/ip_restringidas"
http_access deny restringidos

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

# Squid normally listens to port 3128
# http_port 192.168.1.3:3128 intercept

http_port 192.168.1.3:3128 intercept

Pero no me funciona todavia.

Saludos,

pon todas las acls juntas, e

Imagen de deathUser

Pon todas las acls juntas, e inicia con una configuración permisiva y ve agregando las reglas de a poco a ver cual es la que falla, algo como:


acl int src 192.168.1.0/24
acl acessototal src "/etc/squid/ip_norestringidas"
acl IPrestringidos src "/etc/squid/ip_dominiosrestringidos"
acl dominio dstdomain "/etc/squid/dominiosrestringidos"
acl restringidos src "/etc/squid/ip_restringidas"

acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 10000 # webmin
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

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny manager
#http_access deny to_localhost

http_access allow localhost

http_access allow int
#http_access allow acessototal
#http_access deny dominio
#http_access allow IPrestringidos
#http_access deny restringidos

http_access deny all

http_port 192.168.1.3:3128 intercept

Nota en esta configuración que he definido una red 192.168.1.0/24 suponiendo que tu red interna sea esa (por la ip en la configuración de tu proxy) y he dado acceso a dicha red mediante la regla:


http_access allow int

Prueba con esa configuración y deberías tener acceso sin problemas, luego ve comentando la regla antes mencionada y descomentando las reglas de allow y deny una por una hasta que tengas lo que necesitas, comenta por ejemplo "http_access allow int" y descomenta "http_access allow acessototal" y reinicia el servicio (squid -k reconfigure puede funcionar), eso debería darte acceso total a las ips contenidas en el archivo "/etc/squid/ip_norestringidas".

Has las pruebas y revisa los logs si te da algún problema ...

Suerte ...

bye
;)