Páginas

Mostrando entradas con la etiqueta filtro. Mostrar todas las entradas
Mostrando entradas con la etiqueta filtro. Mostrar todas las entradas

viernes, 11 de julio de 2014

Privoxy Squid Freebsd

Servidor FreeBSD

Interfaz LAN = em0 (Interna) 192.168.3.0/24
Interfaz WAN = em1 (Internet) 192.168.1.0/24
Sistema Oper = FreeBSD 9.1 RELEASE
Firewall     = IPFilter
Nombre del servidor = freebsdsvr

Privoxy es un proxy web sin almacenamiento en caché con capacidades avanzadas de filtrado para mejorar la privacidad, la modificación de los datos de las páginas web y las cabeceras HTTP, el control de acceso, y la eliminación de los anuncios y otra basura de Internet.

Un proxy caché, como Squid es utilizado para reducir el tráfico externo sobre la red para páginas con frecuencia extravagantes, como Google. Esto también mejora la respuesta de la red local, el tráfico se almacena en la caché local para recuperar páginas utilizadas con frecuencia.

A menudo, el uso de otras cachés de su proveedor ISP en Internet para dar forma al flujo de tráfico y ciertos países utilizan una combinación de firewalls y proxies con Listas de exclusión para limitar el contenido entregado a sus ciudadanos. Esto también se puede utilizar a la inversa, y un usuario competente puede utilizar otro proxy en un no-estándar puerto evitando así el filtro de contenido original. Por tanto, es importante para bloquear la red y vigilar cualquier actividad extraña.

Vamos a usar Privoxy para el contenido de filtrado. Webmin es útil, ya que permite visualizar estadísticas de memoria caché a través de un navegador.

Además de las características principales de bloqueo de anuncios y gestión de cookies, Privoxy proporciona numerosas funciones complementarias, que le dan al usuario final más control, más privacidad y más libertad:

Soporte "Connection: keep-alive". Las conexiones salientes se pueden mantener con vida de forma independiente desde el cliente.

Soporta el etiquetado que permite cambiar el comportamiento basado en cabeceras cliente y servidor.

Se puede ejecutar como un "intercepting" proxy, lo que evita la necesidad de configurar los navegadores de forma individual.

Acciones y filtros sofisticados para manipular el servidor y el cliente.

Configuración y control de la utilidad integrada basada en navegador en http://config.privoxy.org/ (atajo: http://p.p/).

Rastreo basada en navegador de reglas y filtros de efectos. Conmutación remoto.

Filtrado de páginas Web (reemplazos de texto, elimina banners basados ​​en el tamaño, invisibles "web-bugs" y molestias HTML, etc)

Soporte para expresiones regulares de Perl compatibles en los archivos de configuración y una sintaxis de configuración más sofisticada y flexible.

GIF de animación.

Bypass muchos click-tracking (scripts de seguimiento de clics) (evita scripts de redirección).

Auto-detección y relectura de los cambios del archivo de configuración

Si tiene intención de encadenar Privoxy y Squid localmente, entonces el encadenamiento navegador > Squid > Privoxy es la forma recomendada.

Instalar los ports:
# pkg install privoxy squid webmin

Configuración de privoxy:
Copiar el archivo de user.action a la carpeta de privoxy
# cp /usr/local/share/examples/privoxy/user.action /usr/local/etc/privoxy/

Archivo de configuración de privoxy:
# ee /usr/local/etc/privoxy/config

user-manual /usr/local/share/doc/privoxy/user-manual
confdir /usr/local/etc/privoxy
logdir /var/log/privoxy
actionsfile match-all.action # Actions that are applied to all sites
actionsfile default.action   # Main actions file
actionsfile user.action # User customizations
filterfile default.filter
logfile logfile
debug     1 # Log the destination for each request Privoxy let through. See also debug 1024.
debug  1024 # Log the destination for requests Privoxy didn't let through, and the reason why.
debug  4096 # Startup banner and warnings.
debug  8192 # Non-fatal errors
toggle  1
enable-remote-toggle  0
enable-remote-http-toggle  0
enable-edit-actions 1
enforce-blocks 0
buffer-limit 4096
enable-proxy-authentication-forwarding 0
listen-address 127.0.0.1:8118
forwarded-connect-retries  0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
tolerate-pipelining 1
socket-timeout 300

Iniciar privoxy:
# echo 'privoxy_enable="YES"' >> /etc/rc.conf

# /usr/local/etc/rc.d/privoxy start
Starting privoxy..

Configurar Squid:
Archivo de configuración de Squid:

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
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 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
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/squid/logs/access.log squid
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
cache_peer localhost parent 8118 7 no-query
never_direct allow all
always_direct deny all
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
forwarded_for off
coredump_dir /var/squid/cache
# Define ACL for protocol FTP
acl ftp proto FTP
# Do not forward FTP requests to Privoxy
always_direct allow ftp


Iniciar Squid:
# echo 'squid_enable="YES"' >> /etc/rc.conf

# /usr/local/etc/rc.d/squid start
Starting squid.

Perfecto!.
Establecer la IP y puerto del proxy de la red en un pc cliente freebsd:


Configurar servidor proxy en Opera:

Configurar proxy en Chromium:




Entramos en una página que contiene mucha publicidad, por ejemplo, thepiratebay.se. Previamente hemos desactivado Adblock:



Listas de sockets abiertos (servidor):
# root@freebsdsvr: / # sockstat -4



Iniciar webmin:
# echo 'enable_webmin="YES"' >> /etc/rc.conf

Tiene que ejecutar /usr/local/lib/webmin/setup.sh script con el fin de configurar los distintos ficheros de configuración, escriba:
# /usr/local/lib/webmin/setup.sh
...

Web server port (default 10000):  [Press Enter]
Login name (default admin):  [Press Enter]
Login password: [type password]
Password again:
Use SSL (y/n): y

...

# /usr/local/etc/rc.d/webmin start
Starting webmin.
Pre-loaded WebminCore

Desde un navegador cliente de la red:
https://192.168.3.1:10000


BSD Magazine. - Rob Somerville
http://body0r.wordpress.com/2009/06/24/tor-privoxy-squid-a-little-howto/
http://www.privoxy.org/user-manual/index.html
http://www.privoxy.org/user-manual/introduction.html

Unix es genial!.

sábado, 30 de marzo de 2013

Pfsense squidguard

Dansguardian es un software de filtro de contenido, diseñado para controlar el acceso a sitios web.

Tenemos los paquetes necesarios instalados en nuestro pfsense:

En el caso de que Squid sea configurado como proxy transparente el bloqueo de sitios como facebook se realiza a través un alias de sus direcciones IP:
Después añadimos una regla de bloqueo en la interfaz Lan:
 Tiene este aspecto:
En caso contrario, con la opción transparente deshabilitada (es la configuración de la red del centro) nos iremos a squidguard, pestaña target categories y tecleamos facebook.com para bloquear el dominio:
Como segundo paso se activa la acl y aplican los cambios:

Realizar comprobación:

Michel Bonnefond Guide pfsense SlideShare

Linux es genial!.

viernes, 15 de febrero de 2013

Servidor DNS Squid y Filtrado

Instalar ipkg en Synology ds112plus

La idea es que los clientes de la red salgan a Internet a través del proxy e implementar un sistema de filtrado para bloquear publicidad de terceros, sitios conocidos de malware, spyware, filtrar contenido, etc. Esto último desde el propio squid y utilizando el paquete de listas negras blacklists.

La versión DSM 4.1 de Synology ya incluye un servidor DNS por lo que sencillamante se instala y ejecuta. Para integrar toda la red puede utilizarse un dominio interno o grupo de trabajo. En este caso linux.bcn. Si se fija en la parte inferior de la imagen verá que pone Report Bugs, esto es porque acabo de actualizar (no es recomendable) a la versión Beta 4.2 del sistema operativo de Synology.

Entramos al nas a través del explorador:


Archivo /etc/hosts


Desde el cliente configurar resolv.conf impedir que el gestor de redes NetworkManager lo modifique al reiniciar y comprobar que el servidor dns funcione. En la primera consulta (Query time) tarda 78 mseg y en la segunda 1 mseg
[carlos@gentoo ~]$ dig @ds112plus google.es




Conectarnos al nas via ssh desde la terminal de Arch linux



Instalar squid utilizando ipkg en mi caso lo había instalado con anterioridad desde un cliente centos 6:
ds112plus> ipkg install squid


Inicializar directorios cahe:
ds112plus> squid -z

Iniciar squid:
ds112plus> /opt/etc/init.dS80squid start


Squid se inicia sin errores. Configurar squid utilizando el archivo de configuración squid.conf que he movido a la carpeta /opt/etc/squid/squid.conf. A continuación el archivo completo construido a partir del archivo de http://wl500g.info y de un pdf encontrado en la red cuya autoría pertenece a Jorge García Delgado con licencia crative commons (adjuntar listas negras a servidor proxy squid).
Comprobado en un nas Synology ds112+.

Descargar listas negras completas desde squidguard, crear carpeta listasnegras y descomprimir blacklists:
ds112plus> wget http://squidguard.mesd.k12.or.us/blacklists.tgz




# configuracion avanzada original mas wl500 url
# http://wl500g.info/showthread.php?17287-NAS-Create-your-own-caching-proxy
cache_mgr foot@gmail.com
visible_hostname fake.domain 
cache_replacement_policy lru
# directorio cache 20 Gb
cache_dir ufs /opt/var/squid/cache/ 20000 16 256
minimum_object_size 0 KB
maximum_object_size 2097152 KB
maximum_object_size_in_memory 1024 KB
#
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
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 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 listanegra1 urlpath_regex "/opt/etc/squid/listasnegras/blacklists/redirector/urls"
acl listanegra2 urlpath_regex "/opt/etc/squid/listasnegras/blacklists/spyware/urls"
acl listanegra3 urlpath_regex "/opt/etc/squid/listasnegras/blacklists/gambling/urls"
acl CONNECT method CONNECT
http_access allow manager localhost
icp_access deny all
http_port 192.168.1.254:3128
http_port 192.168.1.254:8080
hierarchy_stoplist cgi-bin ?
access_log /opt/var/squid/logs/access.log squid
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
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
coredump_dir /opt/var/squid/cache
# Leave coredumps in the first cache dir
coredump_dir /opt/var/squid/cache
#
# Disable cachemgr password
cachemgr_passwd none all
#
refresh_pattern \.gif 1440 50% 40320 reload-into-ims
refresh_pattern \.jpg 1440 50% 40320 reload-into-ims
refresh_pattern \.tif 4320 50% 43200
refresh_pattern \.png 1440 50% 40320 reload-into-ims
refresh_pattern \.jpeg 1440 50% 40320 reload-into-ims
refresh_pattern ^http://*.google.*/.* 720 100% 4320
#
# refresh patterns to enable caching of MS windows update
refresh_pattern windowsupdate\.microsoft\.com/.*\.(cab|exe|psf) 4320 100% 120960 reload-into-ims
refresh_pattern update\.microsoft\.com/.*\.(cab|exe|psf) 4320 100% 120960 reload-into-ims
refresh_pattern office\.microsoft\.com/.*\.(cab|exe|psf) 4320 100% 120960
refresh_pattern windowsupdate\.com/.*\.(cab|exe|psf) 4320 100% 120960 reload-into-ims
refresh_pattern download\.microsoft\.com/.*\.(cab|exe|psf) 4320 100% 120960 reload-into-ims
refresh_pattern microsoft\.com 4320 100% 10080
#
# Rendre le proxy indetectable
via off
forwarded_for off # permet de masquer l'ip du client
header_access From deny all
header_access Server deny all
header_access WWW-Authenticate deny all
header_access Link deny all
header_access Cache-Control deny all
header_access Proxy-Connection deny all
header_access X-Cache deny all
header_access X-Cache-Lookup deny all
header_access Via deny all
header_access Forwarded-For deny all
header_access X-Forwarded-For deny all
header_access Pragma deny all
header_access Keep-Alive deny all
#
# limpieza automatica del cache de squid
cache_swap_low 90
cache_swap_high 95
# paginas de error castellano
error_directory /opt/share/squid/errors/Spanish

Comprobar fichero de configuración:
ds112plus> squid -k parse


Si se inicia Squid como root sin establecer cache_effective_user, Squid utiliza nobody como valor por defecto.
ds112plus> ps | grep squid 
 9537 root      5032 S    /opt/sbin/squid -f /opt/etc/squid/squid.conf
 9549 nobody   16484 S    (squid) -f /opt/etc/squid/squid.conf
13581 root      3552 S    grep squid


Configurar clientes para utilizar proxy: 


En Gentoo Linux
export http_proxy=http://192.168.1.254:8080

Arch linux Firefox:


Arch linux Chromium



Arch linux utilizando NetworkManager automático o manual:



Linux es genial!.