Menú principal

Filtrado de SQUID

Publicado por kelvinma, Noviembre 02, 2017, 10:09:23 AM

Tema anterior - Siguiente tema

kelvinma

Buenos Días amig@s tengo un pequeño problemita con mi SQUID todo esta funcionando al a perfección pero en las restricciones de 
paginas web no me esta filtrando la pagina de facebook, yotube y el resto de sociales si las esta denegando al igual que la pagina de
error no se me muestra en la de youtube cuando deniega, solo pasa con youtube y facebook la pagina de error, esta de facebook estaba
funcionando la regla de bloque desde ayer no esta denegando ese dominio, mi configuración de mi squid es esta:

#    WELCOME TO SQUID 3.5.23
#
################################################
#
# Recommended minimum configuration:
#
acl all src all
acl manager proto cache_object
#acl localhost src 127.0.0.1/32
#acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
#
# 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 192.168.1.40/24 # RFC1918 possible internal network
#
###################### Bloqueo de Paginas Web #########################
#
## Regla para los horarios libres
# Horario de trabajo
acl work_time time MTWHF 7:30-11:59
acl work_time time MTWHF 13:31-17:00
# Horario de almuerzo
acl lunch_time time MTWHF 12:00-13:30
# Fuera de horario de trabajo
acl before_work_time time MTWHF 0:00-7:29
acl after_work_time time MTWHF 17:01-23:59
# Fines de Semana (S=>Domingo, A=>Sabado)
acl weekend_time time SA
#
## Regla para filtrar sitios usando listas
# Sitios negados siempre
acl blocked_sites url_regex "/etc/squid/sitios_bloqueados.txt"
# Sitios permitidos siempre
#acl allow_sites url_regex "/etc/squid/sitios_permitidos.txt"
# IPs con acceso libre
#acl full_inet_access src "/etc/squid/MAC_acceso_libre"
# IPs sin acceso a Internet
#acl block_inet_access src "/etc/squid/direcciones_sin_acceso"
#
#### Puertos Seguros ####
acl SSL_ports port 443 995 465 110 26
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 Safe_ports port 995            # SMTP
acl Safe_ports port 465            # POP3
acl CONNECT method CONNECT
##################################################################################
#
####################### APLICAMOS REGLAS PROPIAS #################################
#
### Bloqueamos los IPs no permitidos
#http_access deny block_inet_access
#
### Permitir los IPs con acceso libre
#http_access allow full_inet_access
#
### Permitir las Paginas de Bancos con acceso libre
#http_access allow allow_sites
#
### Permitimos el acceso a los IPs bloqueados en horario almuerzo
#http_access allow block_inet_access lunch_time
### Permitimos el acceso a los IPs bloqueados antes del trabajo
#http_access allow block_inet_access before_work_time
### Permitimos el acceso a los IPs bloqueados despues del trabajo
#http_access allow block_inet_access after_work_time
### Permitimos el acceso a los IPs bloqueados en fines de semana
#http_access allow block_inet_access weekend_time
#
### Bloqueamos el acceso a los sitios bloqueados en horario de trabajo
http_access deny blocked_sites work_time
deny_info http://192.168.1.23:8080/ blocked_sites
### Permitimos el acceso a los sitios bloqueados en horario almuerzo
http_access allow blocked_sites lunch_time
### Permitimos el acceso a los sitios bloqueados antes del trabajo
http_access allow blocked_sites before_work_time
### Permitimos el acceso a los sitios bloqueados despues del trabajo
http_access allow blocked_sites after_work_time
### Permitimos el acceso a los sitios bloqueados en fines de semana
http_access allow blocked_sites weekend_time
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access allow all
icp_access allow localnet
icp_access deny all
http_port 3128
cache_mem 256 MB
cache_replacement_policy lru
cache_dir aufs /var/spool/squid 3100 16 256
cache_swap_low 90
cache_swap_high 95
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
coredump_dir /var/spool/squid
refresh_pattern ^ftp:        1440    20%    10080
refresh_pattern ^gopher:    1440    0%    1440
refresh_pattern -i (/cgi-bin/|\?) 0    0%    0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .        0    20%    4320
cache_effective_user administrador
cache_effective_group administrador
visible_hostname SERVIDOR2
hostname_aliases 208.67.222.222 208.67.220.220
announce_port 3128
hosts_file /etc/hosts

y mi iptables esta:

# squid server IP
SQUID_SERVER="192.168.1.23"
# Interface connected to Internet
EXTERNA="enp2s0"
# Interface connected to LAN
INTERNA="eno1"
# 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 $EXTERNA -m state --state ESTABLISHED,RELATED -j ACCEPT
# set this system as a router for Rest of LAN
iptables --table nat --append POSTROUTING --out-interface $EXTERNA -j MASQUERADE
iptables --append FORWARD --in-interface $INTERNA -j ACCEPT
# unlimited access to LAN
iptables -A INPUT -i $INTERNA -j ACCEPT
iptables -A OUTPUT -o $INTERNA -j ACCEPT
# DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy
iptables -t nat -A PREROUTING -i $INTERNA -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT
# if it is same system
iptables -t nat -A PREROUTING -i $EXTERNA -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
#Abrir puertos para el envio y recepcion de correos externos
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o enp2s0 -j MASQUERADE
iptables -A FORWARD -s 192.168.0.0/24 -i enp2s0 -p tcp --dport 26 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i enp2s0 -p tcp --dport 110 -j ACCEPT


Espero poder contar con su ayuda ya que no consigo la falla evidentemente humana jajaja

firecold

Cita de: kelvinma en Noviembre 02, 2017, 10:09:23 AM
Buenos Días amig@s tengo un pequeño problemita con mi SQUID todo esta funcionando al a perfección pero en las restricciones de 
paginas web no me esta filtrando la pagina de facebook, yotube y el resto de sociales si las esta denegando al igual que la pagina de
error no se me muestra en la de youtube cuando deniega, solo pasa con youtube y facebook la pagina de error, esta de facebook estaba
funcionando la regla de bloque desde ayer no esta denegando ese dominio, mi configuración de mi squid es esta:

#    WELCOME TO SQUID 3.5.23
#
################################################
#
# Recommended minimum configuration:
#
acl all src all
acl manager proto cache_object
#acl localhost src 127.0.0.1/32
#acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
#
# 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 192.168.1.40/24 # RFC1918 possible internal network
#
###################### Bloqueo de Paginas Web #########################
#
## Regla para los horarios libres
# Horario de trabajo
acl work_time time MTWHF 7:30-11:59
acl work_time time MTWHF 13:31-17:00
# Horario de almuerzo
acl lunch_time time MTWHF 12:00-13:30
# Fuera de horario de trabajo
acl before_work_time time MTWHF 0:00-7:29
acl after_work_time time MTWHF 17:01-23:59
# Fines de Semana (S=>Domingo, A=>Sabado)
acl weekend_time time SA
#
## Regla para filtrar sitios usando listas
# Sitios negados siempre
acl blocked_sites url_regex "/etc/squid/sitios_bloqueados.txt"
# Sitios permitidos siempre
#acl allow_sites url_regex "/etc/squid/sitios_permitidos.txt"
# IPs con acceso libre
#acl full_inet_access src "/etc/squid/MAC_acceso_libre"
# IPs sin acceso a Internet
#acl block_inet_access src "/etc/squid/direcciones_sin_acceso"
#
#### Puertos Seguros ####
acl SSL_ports port 443 995 465 110 26
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 Safe_ports port 995            # SMTP
acl Safe_ports port 465            # POP3
acl CONNECT method CONNECT
##################################################################################
#
####################### APLICAMOS REGLAS PROPIAS #################################
#
### Bloqueamos los IPs no permitidos
#http_access deny block_inet_access
#
### Permitir los IPs con acceso libre
#http_access allow full_inet_access
#
### Permitir las Paginas de Bancos con acceso libre
#http_access allow allow_sites
#
### Permitimos el acceso a los IPs bloqueados en horario almuerzo
#http_access allow block_inet_access lunch_time
### Permitimos el acceso a los IPs bloqueados antes del trabajo
#http_access allow block_inet_access before_work_time
### Permitimos el acceso a los IPs bloqueados despues del trabajo
#http_access allow block_inet_access after_work_time
### Permitimos el acceso a los IPs bloqueados en fines de semana
#http_access allow block_inet_access weekend_time
#
### Bloqueamos el acceso a los sitios bloqueados en horario de trabajo
http_access deny blocked_sites work_time
deny_info http://192.168.1.23:8080/ blocked_sites
### Permitimos el acceso a los sitios bloqueados en horario almuerzo
http_access allow blocked_sites lunch_time
### Permitimos el acceso a los sitios bloqueados antes del trabajo
http_access allow blocked_sites before_work_time
### Permitimos el acceso a los sitios bloqueados despues del trabajo
http_access allow blocked_sites after_work_time
### Permitimos el acceso a los sitios bloqueados en fines de semana
http_access allow blocked_sites weekend_time
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access allow all
icp_access allow localnet
icp_access deny all
http_port 3128
cache_mem 256 MB
cache_replacement_policy lru
cache_dir aufs /var/spool/squid 3100 16 256
cache_swap_low 90
cache_swap_high 95
access_log /var/log/squid/access.log squid
cache_log /var/log/squid/cache.log
coredump_dir /var/spool/squid
refresh_pattern ^ftp:        1440    20%    10080
refresh_pattern ^gopher:    1440    0%    1440
refresh_pattern -i (/cgi-bin/|\?) 0    0%    0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .        0    20%    4320
cache_effective_user administrador
cache_effective_group administrador
visible_hostname SERVIDOR2
hostname_aliases 208.67.222.222 208.67.220.220
announce_port 3128
hosts_file /etc/hosts

y mi iptables esta:

# squid server IP
SQUID_SERVER="192.168.1.23"
# Interface connected to Internet
EXTERNA="enp2s0"
# Interface connected to LAN
INTERNA="eno1"
# 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 $EXTERNA -m state --state ESTABLISHED,RELATED -j ACCEPT
# set this system as a router for Rest of LAN
iptables --table nat --append POSTROUTING --out-interface $EXTERNA -j MASQUERADE
iptables --append FORWARD --in-interface $INTERNA -j ACCEPT
# unlimited access to LAN
iptables -A INPUT -i $INTERNA -j ACCEPT
iptables -A OUTPUT -o $INTERNA -j ACCEPT
# DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy
iptables -t nat -A PREROUTING -i $INTERNA -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT
# if it is same system
iptables -t nat -A PREROUTING -i $EXTERNA -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
#Abrir puertos para el envio y recepcion de correos externos
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o enp2s0 -j MASQUERADE
iptables -A FORWARD -s 192.168.0.0/24 -i enp2s0 -p tcp --dport 26 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i enp2s0 -p tcp --dport 110 -j ACCEPT


Espero poder contar con su ayuda ya que no consigo la falla evidentemente humana jajaja


Aqui hay un detalle, como bloquear sitios https (443) que como sabras esta cifrado, osea que solo usa de pasarela a Squid y este no se documenta o no se filtra, como le quieras decir, tu unica opciones es hacer lo a la inversa, denegar todo y solo dejar las webs que necesitas ejemplo:

acl whiteip dst "/etc/acl/whiteip.txt"
acl no_ip url_regex -i [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}
http_access allow whiteip
http_access deny no_ip



O también permitir todo y hacer un filtrado por ips, esto quiere decir que tendras que tener las ips de los sitios a bloquear y denegarlas por defecto, Espero te sirva, Saludos

PD: sigue el enlace de mi amigo Maravento, te dara muchas ideas

ChiChiso

The information in this post is good information for those interested.