Páginas

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

viernes, 11 de enero de 2013

Instalar ipkg Synology


Instalar ipkg, en un Synology ds112+


Nivel: Avanzado

DSM 4.1 CPU 2.0 DDR3

Que es un servidor Synology:

Un servidor Synology es un potente dispositivo basado en Linux diseñado como Network Attached Storage (NAS). Es muy similar a un ordenador personal con sistema operativo Linux, pero con menos RAM, menos potencia de CPU, y sin el hardware para apoyar directamente a un monitor, teclado, ratón. De muy bajo consumo permanecerá activo 24 horas 7 días a la semana 365 días al año.

A pesar de no ser un PC, usando la interfaz de administración web proporcionada y la interfaz de línea de comandos que puede tomar el control total del dispositivo, cambiar su forma de operar e instalar software adicional. Gran parte del software está disponible de forma gratuita producida por usuarios de la comunidad synology.

Modificando el sistema:

Red 192.168.1.0/24
IP Router ADSL 192.168.1.1
Dirección IP del nas synology 192.168.1.254

Habilitar ssh:


Entrar por consola al synology desde un cliente linux:
^_^ carlos:~ $ ssh -l root 192.168.1.254
root@192.168.1.254's password:
BusyBox v1.16.1 (2012-12-11 12:47:34 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ds112plus>

BusyBox v1.16.1 (2012-12-11 12:47:34 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

ds112plus>


Sacando información a nuestro NAS

cat /proc/cpuinfo
Processor : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS : 1985.74
Features : swp half thumb fastmult edsp
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant : 0x2
CPU part : 0x131
CPU revision : 1

Hardware : Synology 6282 board
Revision : 0000
Serial : 0000000000000000


x12 Series
Modelo = DS112+
Tipo de Procesador = Marvell Kirkwood mv6282
CPU MODEL = 88FR131 2.0GHz 16-bit DDR3 512MB de RAM

Ques es un bootstrap:

Un bootstrap es un script que instala ipkg. Los bootstraps son específicos del procesador que utilice el servidor Synology, así que asegúrese de usar uno compatible. En el caso que nos ocupa:

El bootstrap del ds112+ = syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh

Descargar bootstrap:

wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh

Hacerlo ejecutable:

chmod +x syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh

Instalar bootstrap:
sh syno-mvkw-bootstrap_1.2-7_arm-ds111.xsh


ipkg update



Acceder a synology via remota:

Abrir puertos en el router huawei hg532c de jazztel


Antes de instalar paquetes con ipkg hacemos un par de cosas para que todo funcione:

1) editar el archivo /etc/rc.local y añadir la línea en negrita:
#!/bin/sh
mount -o bind /volume1/@optware /opt
# Optware setup
[ -x /etc/rc.optware ] && /etc/rc.optware start
exit 0


2) editar el archivo /root/.profile y agregar lo marcado en negrita:
PATH= /opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:...


3) Reiniciar el servidor. ipkg y otros servicios que residen en /opt ahora deberían funcionar sin ningún problema:

Instalando herramientas adicionales:
ipkg install mlocate bzip2 unrar unzip zlib p7zip tar

Lo siguiente será Instalar y configurar squid y dansguardian en synology ...


http://www.naschenweng.info/category/gadgets/synology/   
http://kvz.io/blog/2011/02/28/optimize-your-synology-for-downloading/
http://wl500g.info/showthread.php?17287-NAS-Create-your-own-caching-proxy  http://forum.synology.com/wiki/index.php/Overview_on_modifying_the_Synology_Server,_bootstrap,_ipkg_etc


Linux es genial!.