Páginas

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!.

martes, 12 de marzo de 2013

Pfsense acceder remotamente


 Pfsense una distribución personalizada de FreeBSD adaptado para su uso como Firewall y Router. Por supuesto codigo abierto.

Se trata de una red conectada a internet a través de un router adsl Huawei HG532C de Jazztel, un servidor nas Synology del cual ya hemos hablado con anterioridad synology dns squid filtrado, un pc Pentium IV 3.2 2Gb de RAm y pfsense 2.0.1 instalado que hará de cortafuegos de la red interna con tres tarjetas de red físicas instaladas de las que de momento solo utilzaremos 2. La tercera fxp0 puede activarse si fuera necesario desde webconfigurator de pfsense:


re0 WAN 192.168.1.250
re1 LAN 192.168.3.1

Router network 192.168.1.0/24
Router IP 192.168.1.1
Nas Synology 192.168.1.254
WAN pfsense IP 192.168.1.250
LAN pfsense IP 192.168.3.0/24

La instalación y configuración de Squid y squidGuard en pfsense por tratarse de un tema sencillo y con suficiente documentación en la red no lo abordaremos.

Desactivar en Synology squid, desde consola y DNS servidor desde la interfaz web,.


Los clientes de la red 192.168.3.0/24 recibirán las direcciones IP vía DHCP desde la interfaz LAN de pfsense. Activo ssh en pfsense para acceder via consola.


Squid hará de proxy de la red y squidGuard para añadir filtrado de contenido a squid tanto en la red 192.168.1.0/24 (clientes conectados por cable como inalámbricos como en la 192.168.3.0/24 en la que todos los clientes utilizan cable.

Con anterioridad hemos creado dos cuentas Dynamic DNS ambas gratuitas. La primera synology.me para acceder remotamente al nas synology y la segunda  de no-ip para acceder a pfsense de manera remota utilizando https y el puerto 8443. Ambas configuradas en el router adsl de nuestro proveedor isp y en los servidores synology y el firewall pfsense.

Esta es la parte más significativa de la configuración, la que se refiere a las reglas del firewall. Como una imagen vale más que mil palabras:

Aliases pfsense
Nat Port Forward pfsense:
Nat Outbound:
Rules WAN:
Rules LAN:

System Advanced Admin access
General Setup:
Dynamic DNS clients:
Router adsl huawei:
Services:
DNS forwarder pfsense:
DHCP server pfsense:
Router adsl NAT:

Generar certificados


Conectar a pfsense desde una red externa:
Conectar a synology desde otra red:
Copia de seguridad de la configuración pfsense muy útil:



Configuración cliente vpn synology


http://www.pumawifi.org
http://forum.pfsense.org/index.php/board,10.0.html
http://doc.pfsense.org/index.php/Main_Page

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!.