Selfhosting Raspberry

download Selfhosting Raspberry

of 41

description

Selh hosting with rasp

Transcript of Selfhosting Raspberry

  • PROYECTO STROGOFF

    NDICE

    1. Instalacin 1.1 Introduccin 1.2 Instalacin2. Configuracin de red 2.1 Asignacin de ip esttica 2.2 Nombre de equipo y hostname 2.3 Registro de un subdominio redireccionador 2.4 Configuracin del router ALPHA ASL-26555 2.5 Instalacin de software de seguridad3. Instalacin y configuracin del servidor HTTP apache 3.1 Instalacin del servidor HTTP apache 3.2 Configuracin de SSL/TLS para apache4. Instalacin y configuracin de ownclod server 4.1 Descripcin del software 4.2 Instalacin y configuracin5. Instalacin y configuracin del XMPP server Prosody 5.1 Descripcin del protocolo XMPP 5.2 Instalacin 5.3 Configuracin 5.4 Listado de clientes XMPP 5.5 Instalacin y configuracin del cliente web jappix6. Servidor de correo seguro con postfix , dovecot y squirrelmail 6.1 Postfix 6.2 Dovecot 6.3 Squirrelmail7. Pump.io 7.1 Descripcin y especificaciones tcnicas 7.2 Instalacin y configuracin 7.3 Listado de algunos clientes para pump.io8. Copias de seguridad y monitorizacin 8.1 Copias de seguridad 8.2 Monitorizacin 8.3 Acceso remoto y monitorizacin desde smartphones9. Interfaz web10. Fuentes y referencias

  • 1.1 Introduccin El propsito de este proyecto es instalar diferentes servicios de red e internet ( selfhosting ) en una mquina virtualizada mediante Virtualbox, para emular cul sera su funcionamiento en un mini-ordenador Raspberry pi.

    Raspberry pi

    Raspberry Pi

    Fabricante Fundacin Raspberry PiTipo Placa computadora (SBC)Lanzamiento 29 de febrero de 20121Sistema operativo Linux ARM (Debian, Fedora, Arch Linux), RISC OS 2Alimentacin 2,5 W (modelo A), 3,5 W (modelo B)CPU ARM1176JZF-S (armv6k) a 700 MHz 3GPU Broadcom VideoCore IV3

    Memoria 256 MiB (Modelo A y primeros modelos B) / 512 MiB (modelo B)4Capacidad de almacenamiento Tarjeta SD o SDHC

    Raspberry Pi es un ordenador de placa reducida o (placa nica) (SBC) de bajo coste, desarrolladoen Reino Unido por la Fundacin Raspberry Pi, con el objetivo de estimular la enseanza deciencias de la computacin en las escuelas.5 6 7 8

    El diseo incluye un System-on-a-chip Broadcom BCM2835, que contiene un procesador central(CPU) ARM1176JZF-S a 700 MHz (el firmware incluye unos modos Turbo para que el usuariopueda hacerle overclock de hasta 1 GHz sin perder la garanta),9 un procesador grfico (GPU)VideoCore IV, y 512 MiB de memoria RAM (aunque originalmente al ser lanzado eran 256 MiB).El diseo no incluye un disco duro ni unidad de estado slido, ya que usa una tarjeta SD para elalmacenamiento permanente; tampoco incluye fuente de alimentacin ni carcasa. El 29 de febrerode 2012 la fundacin empez a aceptar rdenes de compra del modelo B, y el 4 de febrero de 2013del modelo A.1 10 11

    La fundacin da soporte para las descargas de las distribuciones para arquitectura ARM, Raspbian(derivada de Debian), RISC OS 5, Arch Linux ARM (derivado de Arch Linux) y Pidora (derivadode Fedora) y promueve principalmente el aprendizaje del lenguaje de programacin Python 5 . Otroslenguajes tambin soportados son Tiny BASIC,12 C, Perl 5 y Ruby 13 .

  • El Sistema operativo ser Debian 7.6 wheezy , que es el mismo que Raspbian, instalable en laRaspberry pi. En la mquina virtual configuraremos la misma memoria que en la Raspberry pi, es decir,512MiB. Este proyecto est enfocado al selfhosting como laboratorio de pruebas de tecnologas actualesabastecindolas de una buena seguridad. Para ello utilizaremos diferentes softwares libres, loscuales nos servirn para estudiar, analizar y experimentar con este tipo de servicios.

    1.2 Instalacin Primero abriremos virtualbox y seleccionaremos nueva , en el men tipo seleccionaremos Linux y en Versin Debian.

    Ahora nos pedir cuanta memoria RAM le queremos asignar , pondremos 512MiB para intentar emular el comportamiento de la Raspberry Pi.

  • Seguidamente, tendremos que configurar el disco, le pondremos 32GB, que es la capacidad quetiene la tarjeta de memoria de la Raspberry Pi.

    Una vez creada , para que arranque desde la imagen iso de Debian debemos ir a las propiedades y seleccionar la imagen que hemos descargado de Debian.

  • En la seccin de red pondremos un adaptador puente a nuestra NIC.

    Una vez hecho esto pulsaremos sobre iniciar mquina y comenzar la instalacin. Lo primero que haremos ser instalar openssh-server para tener acceso remoto a nuestro servidor.

    #apt-get install openssh-server

    OpenSSH (Open Secure Shell) es un conjunto de aplicaciones que permiten realizarcomunicaciones cifradas a travs de una red, usando el protocolo SSH. Fue creado como unaalternativa libre y abierta al programa Secure Shell, que es software propietario. El proyectoest liderado por Theo de Raadt, residente en Calgary.

    OpenSSHxeyes a travs de un tnel SSH.

    DesarrolladorProyecto OpenBSDwww.openssh.com

    Informacin general

    ltima versin estable 6.530 de enero de 2014; hace 7 mesesGnero Acceso remotoSistema operativo MultiplataformaLicencia BSDEn espaol No

  • La suite OpenSSH incluye: ssh, reemplaza a rlogin y telnet para permitir shell el acceso remoto a otra mquina. [email protected]

    scp, reemplaza a rcp scp [email protected]:~/archivo . sftp, reemplaza a ftp para copiar archivos entre dos computadoras [email protected]

    sshd, el servidor demonio SSH sshd ssh-keygen, una herramienta para inspeccionar y generar claves RSA y DSA que son usadas

    para la autenticacin del cliente o usuario. ssh-agent y ssh-add, herramientas para autenticarse de manera ms fcil, manteniendo las

    claves listas para no tener que volver a introducir la frase de acceso cada vez que utilice laclave.

    ssh-keyscan, que escanea una lista de clientes y recolecta sus claves pblicas.

    El servidor OpenSSH puede autenticar a los usuarios mediante todos los mtodos estndar delprotocolo ssh.

    2.Configuracin de red 2.1 Asignacin de ip esttica Abrimos el gestor de red que tenemos en al parte inferior derecha, o, desde las preferencias delsistema, y seleccionamos el mtodo manual con la siguiente configuracin:

    2.2 Nombre de equipo y hostnameEsta configuracin se puede realizar al instalar el sistema o posteriormente de la siguiente manera:Para cambiar el nombre del equipo podemos editar el archivo /etc/hostname o poner el comando$hostname nombreEn nuestro caso el hostname ser strogoff.

  • Para el nombre de dominio configuraremos el archivo /etc/hosts aadiendo la linea:127.0.1.1 strogoff.ddns.net strogoff.Dnde strogoff es el hostname; ddns.net es el dominio.

    2.3 Registro de un subdominio redireccionador en www.no-ip.com.Para que nuestra mquina sea visible desde internet debemos registrar un dominio o bien crear unhost para que redireccione a nuestra IP pblica, que adems en este caso es dinmica. Nos registraremos en no-ip y creamos en este caso el subdominio strogoff.ddns.net que tendrque apuntar a nuestra ip pblica, que, mediante un cliente que ofrece no-ip ir actualizandoautomticamente.

    2.4 Configuracin del router ALPHA ASL-26555

    Para una mayor seguridad y correcta configuracin del servidor pondremos a la mquina raspbianen la DMZ.

  • Una vez realizado este paso, pasaremos a abrir los puertos que necesitemos para nuestro servidoren la seccin Advanced --> Virtual server.

    2.5 Instalacin de software de seguridadFirestarter : GUI de iptables para el control de trfico y puertos.Para cada puerto que queramos abrir deberemos ir a la pestaa normativa y en la seccin deltrfico entrante seleccionaremos aadir regla iremos aadiendo los puertos de los servicios quevamos a instalar.

    Puertos a abrir : 22: ssh 25: smtp 80: http 110: pop3 143: imap 443: https 465: smtps 993: imaps 995: pop3s 5222: xmpp-client 5269: xmpp-server

  • RootkitHunter

    Informacin generalltima versin estable

    1.4.224 de Febrero de 2014

    Gnero Detector de rootkit

    Sistema operativo GNU/Linux, BSD, AIX, Mac OS X, SME, Solaris, y otros Sistemas operativos basados en UnixLicencia GPLEn espaol No

    Rkhunter (o Rootkit Hunter) es una herramienta de Unix que detecta los rootkits, los backdoors ylos exploit locales mediante la comparacin de los hashes MD5 de ficheros importantes con sufirma correcta en una base de datos en lnea, buscando los directorios por defecto (de rootkits), lospermisos incorrectos, los archivos ocultos, las cadenas sospechosas en los mdulos del kernel, ylas pruebas especiales para Linux y FreeBSD. Para analizar nuestro sistema debemos introducir el comando: #rkhunter --checkEsta tarea la automatizaremos con cron aadiendo la siguiente linea en /etc/cronttab que ejecutarrkhunter y nos enviar el reporte mediante email.

    0 14 * * * root rkhunter --check --skip-keypress && mail -s rkhunter [email protected] < /var/log/rkhunter.log

    3.Instalacin y configuracin del servidor HTTP apache3.1 Instalacin del servidor HTTP apachePara instalar nuestro servidor apache debemos, como root, o con el comando sudo ejecutar lasiguiente linea en el terminal:

    Como root : #apet-get install apache2.Como usuario : #sudo apet-get install apache2.Ahora s abrimos el navegador y ponemos la direccin: http://localhost deber abrirnos unapgina con un mensaje It Works! sto quiere decir que nuestro servidor apache est funcionando.

    3.2 Configuracin de SSL/TLS para apache

    Descripcin ssl/tls

    Secure Sockets Layer (SSL; en espaol capa de conexin segura) y su sucesor Transport LayerSecurity (TLS; en espaol seguridad de la capa de transporte) son protocolos criptogrficosque proporcionan comunicaciones seguras por una red, comnmente Internet.

    SSL proporciona autenticacin y privacidad de la informacin entre extremos sobreInternet mediante el uso de criptografa. Habitualmente, slo el servidor es autenticado (esdecir, se garantiza su identidad) mientras que el cliente se mantiene sin autenticar.

  • SSL implica una serie de fases bsicas:

    Negociar entre las partes el algoritmo que se usar en la comunicacin. Intercambio de claves pblicas y autenticacin basada en certificados digitales. Cifrado del trfico basado en cifrado simtrico.

    Durante la primera fase, el cliente y el servidor negocian qu algoritmos criptogrficos se van ausar. Las implementaciones actuales proporcionan las siguientes opciones:

    Para criptografa de clave pblica: RSA, Diffie-Hellman, DSA (Digital Signature Algorithm)o Fortezza.

    Para cifrado simtrico: RC2, RC4, IDEA (International Data Encryption Algorithm), DES (Data Encryption Standard), Triple DES y AES (Advanced Encryption Standard).

    Con funciones hash: MD5 o de la familia SHA.

    Transport Layer Security(TLS)

    Familia InternetFuncin Seguridad en la capa de transporteltima versin 1.2

    Ubicacin en la pila de protocolos

    Aplicacin HTTPS, IMAPS,POP3S, SMTPS, ...

    TransporteTLS

    TCPRed IP

    EstndaresRFC 5246, RFC 6176, otros

    Vamos a proceder a la configuracin de apache para que ofrezca el servicio HTTPS.Para ello necesitamos un certificado de seguridad que podemos obtener mediante una CA (opcinrecomendada) o podemos generar un certificado autofirmado mediante openssl, optaremos por pedirun certificado en www.dondominio.com a buen precio, as nos evitamos problemas deverificacin de certificados.Para crear un certificado autofirmado sera de la siguiente manera:

    Activamos el mdulo ssl con el comando : #a2enmod ssl El comando para generar la clave privada y el certificado es el siguiente:

    openssl req -new -x509 -days 365 -nodes -out "strogoff.crt" -newkey rsa:2048 -keyout "strogoff.key".

    Nos pedir una contrasea , informacin sobre el sitio que debemos rellenar.Dnde strogoff.crt es el certificado , RSA:2048 es el algoritmo asimtrico para la clave privadastrogoff.key, de 2048 bits (mayor seguridad). Ahora copiaremos el certificado y la clave en/etc/ssl/certs y /etc/ssl/private respectivamente

  • Ahora editaremos el archivo /etc/apache2/ports.conf de esta manera:

    El puerto 443 es el que corresponde al servicio HTTPS que deberemos abrir en el router.Modificamos el archivo /etc/apache2/sites-aviable/default-ssl, estas lineas deben de quedar as:

    Indicaremos la orden SSLRequireSSL para forzar HTTPS al sitio.

    En esta parte activaremos el ssl con la orden SSLEngine on y tambin le indicaremos la ruta delcertificado y la clave privada.

    Activaremos el sitio con el comando: #a2ensite default-sslReiniciamos apache: #service apache restart

  • Ahora ya podemos comprobar que todo funciona escribiendo en un navegador la siguiente direccinhttps://srtrogoff.ddns.net

    Reforzar la seguridad mediante perfect forward secrecy :Breve explicacin:

    El trmino perfect forward secrecy (siglas PFS), traducido normalmente al castellano por secreto-perfecto-hacia-adelante, es la propiedad de los sistemas criptogrficos que garantiza que eldescubrimiento de las claves utilizadas actualmente no compromete la seguridad de las clavesusadas con anterioridad (no las revela). Por tanto la seguridad de lo que se hizo usando clavesantiguas persiste. Cuando un sistema tiene secreto-perfecto-hacia-adelante se dice que el sistemaes seguro-hacia-adelante (en ingls forward-secure).

    Configuracin:Editamos el archivo /etc/apache2/apache2.conf y aadimos las siguientes lineas:

    En SSLprotocol indicamos los protocolos que utilizaremos.En SSLHonorCipherOrder lo activaremos para que respete el orden de los algoritmos.En SSLCiphersuite indicaremos que algoritmos vamos a utilizar.

    *Nota : Reciente bug encontrado en SSLv3 ( POODLE atack ), tendremos que desactivarlo con-SSLv3 Test de nivel seguridad en SSLLABS : Resultado A ( mximo A+)

    Finlmente crearemos una copia de seguridad del directorio /etc/apache2: #cd /etc #tar -cvfz apache2back0.tgz apache2

  • 4. Instalacin y configuracin de ownclod server4.1 Descripcin del software

    OwnCloud es una aplicacin libre que permite el almacenamiento en lnea y aplicaciones en lnea(cloud computing). owncloud puede ser instalado dentro de un servidor que disponga de unaversin reciente de PHP (mayor o igual a 5.3) y soporte de SQLite (base de datos por defecto),MySQL o PostgreSQL. El proyecto ha sido lanzado en enero del 2010 por Plantilla:Lien,un desarrollador del proyecto KDE, con el objetivo de dar a los usuarios el control de sus datos enla nube. 1 OwnCloud es parte de la comunidad KDE.El 13 de diciembre del 2011 ha sido creada una entidad comercial fundada bajo el proyectoOwnCloud.3 Dicha sociedad es una alternativa a las soluciones propuestas por Dropbox o Box.net,poniendo mucho nfasis en la flexibilidad y la seguridad. OwnCloud es una alternativa libre a lassoluciones privadas presentes en el mercado.

    Funcionalidades Sincronizacin de archivos entre diversos equipos informticos Almacenamiento seguro (cifrado de archivos) Compartimiento de archivos entre usuarios o de una manera pblica Lector de msica en lnea Servidor de archivos WebDAV Calendario (permite la sincronizacin CalDAV) Administracin de contactos (CardDAV) Editor de texto en lnea (propone la coloracin sintctica) Visor de documentos en lnea (pdf, open document) Galera de imgenes, que permite la visualizacin y la clasificacin en lbumes Administracin de favoritos

    DesarrolladorownCloud Inc.

    ComunidadInformacin general

    ltima versin estable 6.0.2 (03/03/14)Gnero Cloud computingSistema operativo MultiplataformaLicencia AGPLv3Idiomas MultilenguaEn espaol S

  • 4.2 Instalacin y configuracin

    Owncloud utiliza los archivos .htaccess de Apache por razones de seguridad. Para poder usarlosnecesitamos activar dos mdulos con los siguientes comandos:#a2enmod rewrite#a2enmod headers

    Podemos abrir el .htaccess de owncloud con el siguiente comando:#nano/var/www/owncloud/.htaccess

    Instalando MySQL#apt-get install mysql-common mysql-server

    Asegurando MySQLAhora debemos asegurar MySQL, escribimos:#mysql_secure_installation

    Cuando te pregunte el password del root de MySQL, introduce el que metiste en el apartado anterior.

    Cuando te pregunte si quieres cambiar el pasword del root, escribe n de no.

    Cuando te pregunte si quieres eliminar los usuarios annimos, escribe s de s

    Cuando te pregunte si quieres deshabillitar el acceso remoto del root, escribe s.

    Cuando te pregunte si quieres eliminar la test database, escribe s.

    Cuando te pregunte si quieres recargar la tabla de privilegios, escribe s.

    Ya tenemos asegurado MySQL.

    Crear la base de datos MySQL para OwnCloudPrimero accedemos como root a MySQL en la terminal con el siguiente comando:#mysql -u root -p

    Una vez dentro creamos la base de datos escribiendo:mysql> CREATE DATABASE owncloud;

    Despus creamos un nuevo usuario owncloud con los privilegios apropiados para la nueva base de datos (Sustituimos password, por una que decidamos nosotros.)mysql> GRANT ALL ON owncloud.* TO 'owncloud'@'localhost' IDENTIFIED BY 'password';

    mysql> quit

    Reiniciamos Apache y MySQL, escribimos:#service apache2 restart

  • #service mysql restart

    Descargamos y instalamos owncloud#apt-get install owncloud

    Como no le hemos puesto la llave nos pregunta si queremos instalar estos paquetes que estn sin verificar. Le decimos que s.

    Le damos permisos del servidor web al directorio owncloud#cd /var/www

    #chown -R www-data:www-data owncloud

    Reiniciamos el servidor apache#service apache2 restart

    Terminar la instalacin:

    En la barra de direcciones del navegador web escribimos:http://192.168.1.10/owncloud

    Entonces se nos mostrar la interfaz web para terminar con la instalacin.

    Creamos una cuenta de administrador y seleccionamos la opcin Avanzado y seleccionamos Configurar la base de datos: MySQL

    Ingresamos nombre de usuario, owncloud nombre de la base de datos owncloud y la contraseade la base de datos.

    Finalmente pulsamos el botn Completar la instalacin.

    Una vez dentro de nuestra cuenta de administrador podremos configurar el servicio y crear usuarios.Para asegurar el acceso desde internet deberemos contar con un servicio de DNS dinmico, comoNo-IP una vez lo tengamos, lo configuramos asi:nano /var/www/owncloud/config/config.php

    En este fichero config.php aadimos la IP de nuestro servidor y el dominio que tengamos en no-ip.org en donde pone trusted_domains quedando algo as:

    0 => 'Direccin IP local'

    1 = > 'dominio_elegido_en_No-IP.no-ip.org'

    Una vez tengamos bien configurado esto, podremos ingresar desde cualquier lugar con internet anuestro servidor OwnCloud usando un navegador con la direccin:http s :// strogoff.ddns.net /owncloud

    Primera copia de seguridad de owncloud

    Crearemos una primera copia de seguridad de el directorio /var/www donde estan alojados todos lossitios virtuales y tambn los datod de MySQL#cd /var#tar -cvzf webs0.tgz www

    #cd /var/lib #tar -cvzf mysql0.tgz mysql

  • 5. Instalacin y configuracin del XMPP server Prosody5.1 Descripcin del protocolo XMPP

    Extensible Messaging and Presence Protocol

    Familia InternetFuncin Mensajera instantnea

    Puertos

    5222/TCP (Cliente a servidor)5269/TCP (Servidor a servidor)

    5223/TCP (SSL)Ubicacin en la pila de protocolos

    Aplicacin XMPPTransporte TCP

    Red IP

    EstndaresRFC 6120 (Principal)

    RFC 6121 (Mensajera instantnea y presencia)RFC 6122 (Formato de direcciones)

    RFC 3922 (CPIM)

    RFC 3923 (Cifrado)

    Extensible Messaging and Presence Protocol, ms conocido como XMPP (Protocolo extensiblede mensajera y comunicacin de presencia) (anteriormente llamado Jabber ), es un protocoloabierto y extensible basado en XML, originalmente ideado para mensajera instantnea.

    Con el protocolo XMPP queda establecida una plataforma para el intercambio de datos XML quepuede ser usada en aplicaciones de mensajera instantnea. Las caractersticas en cuanto aadaptabilidad y sencillez del XML son heredadas de este modo por el protocolo XMPP.

    A diferencia de los protocolos propietarios de intercambio de mensajes como ICQ, Y! y WindowsLive Messenger, se encuentra documentado y se insta a utilizarlo en cualquier proyecto. Existenservidores y clientes libres que pueden ser usados sin coste alguno.

    Tras varios aos de su existencia, ha sido adoptado por empresas como Facebook, Tuenti,WhatsApp Messenger y Nimbuzz, entre otras, para su servicio de chat.

    Google lo adopt para su servicio de mensajera Google Talk, y en 2013 anunci que lo abandonaraen favor de su protocolo propietario Hangouts.

  • VentajasDescentralizacin

    La arquitectura de las redes XMPP es similar a la del correo electrnico; cualquiera puede poner enmarcha su propio servidor XMPP, sin que haya ningn servidor central.

    Estndares abiertos

    La Internet Engineering Task Force ha formalizado el protocolo XMPP como una tecnologa demensajera instantnea estndar, y sus especificaciones han sido publicadas como los RFC 3920 yRFC 3921. El desarrollo de esta tecnologa no est ligado a ninguna empresa en concreto y norequiere el pago de regalas.

    Historia

    Las tecnologas XMPP llevan usndose desde 1998. Existen mltiples implementaciones de losestndares XMPP para clientes, servidores, componentes y bibliotecas, con el apoyo de importantescompaas como Sun Microsystems y Google.

    Seguridad

    Los servidores XMPP pueden estar aislados de la red pblica XMPP, y poseen robustos sistemas deseguridad (como SASL y TLS). Para apoyar la utilizacin de los sistemas de cifrado, la XMPPStandards Foundation pone a disposicin de los administradores de servidores XMPP Autoridad decertificacin en xmpp.net ofreciendo certificados digitales gratis.

    Flexibilidad

    Se pueden hacer funcionalidades a medida sobre XMPP; para mantener la interoperabilidad, lasextensiones ms comunes son gestionadas por la XMPP Software Foundation.

    Desventajas

    Sobrecarga de datos de presenciaTpicamente cerca de un 70% del trfico entre servidores son datos de presencia,y cerca de un 60%de estos son transmisiones redundantes. Actualmente se estn estudiando nuevos protocolos paraaliviar este problema. EscalabilidadXMPP tambin sufre el mismo problema de redundancia en los servicios de chatroom y desuscripcin. Actualmente se est trabajando en su solucin.

    5.2 Instalacin

    El paquete prosody est en los repositorios, as pues lo instalaremos mediante la orden:#aptitude install prosody

    5.3 Configuracin

    Primero debemos abrir los puertos 5222, 5322 y 5269 en el router y firewall.Despus hay que editar el archivo principal de configuracin /etc/prosody/prosody.cfg.lua

  • editando las siguientes lineas:

    En interfaces le indicaremos que equipos utilizaremos , en este caso localhost y 192.168.1.10 , quees el mismo equipo.En c2s_ports le indicaremos a que puerto se conectaran los clientesEn c2s_interfaces le indicaremos el equipo al cul se conectarn los clientes.En legacy_ssl_ssl configuraremos las rutas de los certificados digitales.Utilizaremos el mismo que para el servidor apache , pero en formato .pem donde tendremosencadenados los tres certificados.

    Aadiremos el FQDN en la directiva virtualhostEl campo allow_registration permite el registro o no de usuarios , en nuestro caso dejaremos elvalor false.

    En la directiva admins pondremos las cuentas de los administradores del servidor.Para crear usuarios utilizaremos el comando: #prosodyctl adduser usuario@dominio

    Reforzar la seguridad del servidor

    Instalaremos el paquete lua-sec-prosody que contiene las siguientes caractersticas: Validacin de certificados Perfect forward secrecy suites Otros mecanismos de autenticacin como SCRAM-SHA-1-PLUS SASL

    Tambin utilizaremos el modo authentication = "internal_hashed" para que las contraseasde los usuarios estn cifradas en la base de datos interna de prosody.

    XMPP soporta OTR

    El protocolo "Off-The-Record Messaging", comnmente llamado OTR, es un protocolocriptogrfico que proporciona una fuerte encriptacin para conversaciones de mensajerainstantnea. OTR utiliza una combinacin del algoritmo AES de claves simtricas, el protocolode intercambio de claves Diffie-Hellman y la funcin hash SHA-1. Adems de la autenticacin yla encriptacin, OTR aporta una confidencialidad directa perfecta y cifrado maleable.

  • Activar el componente de salas de chat

    Aadiremos la directiva siguiente: component conference.strogoff.ddns.net mucEn el archivo /etc/hosts debemos aadir la siguiente linea para que resuelva la direccin:192.168.1.10 conference.strogoff.ddns.net

    Ahora podremos conectarnos mediante un cliente xmpp para verfificar que todo funciona, en estecaso utilizaremos gajim.

    Aqu se puede ver como tengo mis dos cuentas activas y usuarios aadidos en las dos.

    Tambin podemos ver en descubrir servicios que tenemos disponible el componente de salas de chat

    Una vez configurado todo reiniciaremos el servicio: #service prosody restart

    Test de seguridad del servidor XMPP prosody en xmpp.net

  • 5.4 Listado de clientes XMPP Para el ordenador:

    Swift. Si eres nuevo usuario es la mejor opcin: es un programa muy sencillo de usar. Jitsi. Un cliente muy completo con el que puedes hacer videollamadas. Gajim. Especialmente si usas GNU/Linux. Tambin permite hacer videollamadas e

    incorpora funciones avanzadas. Psi. Cliente con funciones avanzadas y muy personalizable sin renunciar a la simplicidad. Pidgin. Un cliente multiprotocolo (puedes agregar ms cuentas, no slo de XMPP, tambin

    de facebook , AIM , yahoo...).

    Para Android: Xabber. Recomendado. Soporte para grupos de charla y mensajes cifrados. ChatSecure. Centrado en la mensajera cifrada. JTalk. Permite enviar archivos. Soporte para grupos de charla. Yaxim. Ms bsico.

    Para iOS: Monal IM Boogie chat ChatSecure

    Para el navegador: Jappix

    5.5 Instalacin y configuracin del cliente web jappix Descargamos el archivo desde https://jappix.org/. Lo descomprimimos y lo movemos al directorio /var/www

    Cambiamos los permisos: #chown -R www-data:www-data jappix/

    Editamos el archivo /etc/prosody/prosody.cfg.lua y aadimos los siguientes mdulos :

    Tenemos que abrir los puertos 5280 y 5281 en nuestro router y firewall.

    Si todo esta correcto podemos empezar la instalacin mediante un asistente web :

    https://strogoff.ddns.net/jappix

    Aqu nos saldrn varios campos a rellenar, siendo el ms importante el nombre del host, que serstrogoff.ddns.net , y la direccin del bosh server, que ser https://strogoff.ddns.net:5281/http-bind

  • Debe aparecer una pgina como la siguiente:

    Entramos desde la interfaz web con nuestro nombre de usuario y contrasea. Tendremos la siguienteinterfaz con nuestros contactos y toda la configuracin que hayamos hecho de nuestro usuario, yaque se guarda en el servidor.

    Finalmente creamos una copia de seguridad del directorio /etc/prosody#tar -cvfz prosodybak0.tgz prosody

    6. Servidor de correo seguro con postfix , dovecot y squirrelmailPrimero deberemos abrir los puertos 110 (pop), 25 (smtp), 143(imap), 587(smtps), 995(pop3s) y993 (imaps) en el router y firewall.

    6.1 PostfixPostfix es un servidor de correo de software libre / cdigo abierto, unprograma informtico para el enrutamiento y envo de correo electrnico, creado con laintencin de que sea una alternativa ms rpida, fcil de administrar y segura al ampliamenteutilizado Sendmail. Anteriormente conocido como VMailer e IBM Secure Mailer, fueoriginalmente escrito por Wietse Venema durante su estancia en el Thomas J. WatsonResearch Center de IBM, y contina siendo desarrollado activamente.

    Postfix es el agente de transporte por omisin en diversas distribuciones de Linux y en las ltimas versiones del Mac OS X.

  • Postfix

    DesarrolladorWietse Venema y otroshttp://www.postfix.org/Informacin general

    ltima versin estable 2.10.25 de septiembre de 2013Gnero Agente de Transporte de Correo (MTA)Sistema operativo Tipo UnixLicencia Licencia Pblica IBMEn espaol No

    Instalacin y configuracin Instalamos postfix: #apt-get install postfix

    Nos preguntar por si es una red local o sitio de internet , elegimos esta ltima

    Nos preguntar por el dominio: sotrogoff.ddns.net Configuramos SASLSASL :SASL: Siglas en ingls para Simple Authentication and Security Layer (capa de seguridad yautenticacin simple).

    SASL es un framework para autenticacin y autorizacin en protocolos de Internet. Separa losmecanismos de autenticacin de los protocolos de la aplicacin permitiendo, en teora, a cualquierprotocolo de aplicacin que use SASL usar cualquier mecanismo de autenticacin soportado porSASL. A pesar de que mediante SASL slo se maneja la autenticacin (y se requieren otrosmecanismos --como por ejemplo TLS-- para cifrar el contenido que se transfiere), SASLproporciona medios para un uso negociado del mecanismo elegido. Las especificaciones originalesde SASL fueron editadas por John Meyers en el RFC 2222. Este fue hecho obsoleto por el RFC4422, editado por Alexey Melnikov y Kurt Zeilenga.

    Editamos el archivo /etc/postfix/main.cf . home_mailboxhome_mailbox = Maildir/smtpd_sasl_type = dovecotsmtpd_sasl_path = private/authsmtpd_sasl_local_domain =smtpd_sasl_security_options = noanonymousbroken_sasl_auth_clients = yessmtpd_sasl_auth_enable = yessmtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destinationsmtp_tls_security_level = maysmtpd_tls_security_level = maysmtp_tls_note_starttls_offer = yessmtpd_tls_loglevel = 1smtpd_tls_received_header = yes

  • Indicamos la ruta de los certificados:#postconf-e'smtpd_tls_key_file=/etc/ssl/private/strogoff.key'

    #postconf-e'smtpd_tls_cert_file=/etc/ssl/certs/certificate.pem'

    Editamos /etc/postfix/master.cfsubmission inet n smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING

    Instalamos el paquete SASL de dovecot#apt-get install dovecot-common

    Editamos las siguientes lineas en el archivo /etc/dovecot/conf.d/10-master.conf#Postfix smtp-authunix_listener /var/spool/postfix/private/auth {mode = 0660user = postfixgroup = postfix}

    Ediamos el archivo /etc/dovecot/conf.d/10-auth.conf ( linea 100)auth_mechanisms = plain login

    Reiniciamos los servidores#service postfix restart

    #service dovecot restart

    Comprobamos que nos podemos conectar#telnet strogoff.ddns.net smtp

    Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.220 strogoff.ddns.net ESMTP Postfix (Debian)

    Comprobamos que nos devuelva las siguientes lineasehlo strogoff.ddns.net250-strgoff.ddns.net--------250-STARTTLS250-AUTH PLAIN LOGIN250-AUTH=PLAIN LOGIN---------250 DSN

    Finalmente crearemos una copia de seguridad de directorio /etc/postfix#cd /etc#tar -cvf postfixbak0 postfix

  • 6.2 Instalacin y configuracin de DovecotInstalacin #apt-get install dovecot-imapd dovecot-pop3dEditar el archivo /etc/dovecot/conf.d/10-ssl.conf y editar la linea para activar SSLssl = yes

    Reiniciar el servidor: #service dovecot restartProbamos la conexin a los diferentes puertos 110 , 143 , 993 , 995:telnet strogoff.ddns.net 110Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.+OK Dovecot (Debian) ready.Creamos un usuario de prueba: #useradd -m strogoff -s /sbin/nologin

    Creamos la copia de seguridad del directorio /etc/dovecot:#tar -cvf dovecotbak0.tar dovecot

    6.3 Instalcin y configuracin de squirrelmailInstalacin #apt-get install squirrelmailConfiguracin Debemos activar el sitio en apache mediante los siguientes comandos:#cp /etc/squirrelmail/apache.conf /etc/apache2/sites-available/squirrelmail.conf

    #sudo a2ensite squirrelmail#service apache2 restart

    Comprobamos que funciona introduciendo en el navegador: https://strogoff.ddns.net/squirrelmail

  • Comprobamos que podemos enviar y recibir correo.

    Comprobamos la conexion TLS a nuestro servidor:#openssl s_client -connect 192.168.1.10:25 -starttls smtp

    CONNECTED(00000003)

    depth=2 C = SE, O = AddTrust AB, OU = AddTrust External TTP Network, CN = AddTrust External CA Root

    verify return:0

    ---

    Certificate chain

    0 s:/OU=Domain Control Validated/OU=PositiveSSL/CN=strogoff.ddns.net

    i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=PositiveSSL CA 2

    1 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root

    i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root

    2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=PositiveSSL CA 2

    i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root

    Test de seguridad Open relaySe entiende como Open Relay o (rel abierto en ingls) es un servidor SMTP configurado detal manera que permite que cualquier usuario de Internet lo use para enviar correo electrnico atravs de l, no solamente el correo destinado a, o procedente de usuarios conocidos.1 2 Esta solaser la configuracin por defecto en muchos servidores de correo; de hecho, era la formaen que Internet fue creada inicialmente, pero retransmisiones de correo abiertas se han convertidoen impopulares debido a su explotacin por parte de los spammers y gusanos. Muchos relays secerraron o fueron puestos en listas negras por otros servidores.

    Comprobamos si nuestro servidor acepta Open relay en test-smtp.com

    All tests succeded, no relay accepted. CPU time: 0ms - LA: 0.00 - 92 SMTP requests - 2 disconnection(s) Address: 83.42.164.237 - Reverse: 237.Red-83-42-164.dynamicIP.rima-tde.net ESMTP: yes - TLS: yes - AUTH: yes - VRFY: yes - MTA: Postfix Average time : 0.45sec - Slowest : 1.58sec - Fastest : 0.07sec

  • 7. PUMP.IOPump.io es una activity streams del motor que puede ser utilizado como un protocolo de red socialfederada que "hace la mayor parte de lo que la gente realmente quiere de una red social". Iniciadopor Evan Prodromou, es una continuacin de StatusNet; Identi.ca, que fue el ms grande servicioStatusNet, cambi a pump.io en junio de 2013 Sin embargo, mientras StatusNet ofrece unafuncionalidad similar a Twitter, pump.io ofrece una red social de carcter ms general.

    7.1 Descripcin y especificaciones tcnicasTecnologaDiseado para ser mucho ms ligero y eficiente que su predecesor StatusNet, Pump.io est escritoen Node.js y utiliza Flujos de actividad como el formato de los comandos y transferir datos a travsde una sencilla API REST.

    Pump.io requiere: Node.js

    NGP

    Un servidor de base de datos (bases de datos NoSQL normalmente como MongoDB oRedis, aunque hay otras opciones a travs de la capa de abstraccin de base de datosdenominada databank)

    GraphicsMagick con el comando `gm`

    node.js

    Node.js

    DesarrolladorNode.js Developers

    Joyentnodejs.org

    Informacin generalDiseador Ryan Lienhart DahlLanzamiento inicial 27 de mayo de 2009 1

    ltima versin estable 0.10.3031 de julio de 2014

    ltima versin en pruebas 0.11.1301 de mayo de 2014Gnero Dirigida por eventosProgramado en C++, JavaScriptSistema operativo Windows, Mac OS X, Linux, Solaris, FreeBSD, OpenBSD, webOSLicencia Licencia MITEstado actual Activo

  • Node.js es un entorno de programacin en la capa del servidor basado en el lenguaje deprogramacin Javascript, con I/O de datos en una arquitectura orientada aeventos y basado en el motor Javascript V8. Fue creado con el enfoque de ser til en la creacinde programas de red altamente escalables, como por ejemplo, servidores web.2 Fue creadopor Ryan Dahl en 2009 y su evolucin est apadrinada por la empresa Joyent, que ademstiene contratado a Dahl en plantilla.3 4Node.js es similar en su propsito a Twisted o Tornado de Python, Perl Object Environment de Perl,React de PHP, libevent o libev de C, EventMachine de Ruby, vibe.d de D y de Java existe ApacheMINA, Netty, Akka, Vert.x, Grizzly o Xsocket. Al contrario que la mayora del cdigo JavaScript,no se ejecuta en un navegador, sino en el servidor. Node.js implementa algunas especificaciones deCommonJS.5 Node.js incluye un entorno REPL para depuracin interactiva.

    API REST

    La Transferencia de Estado Representacional (Representational State Transfer) o REST esuna tcnica de arquitectura software para sistemas hipermedia distribuidos como la WorldWide Web. El trmino se origin en el ao 2000, en una tesis doctoral sobre la web escrita porRoy Fielding, uno de los principales autores de la especificacin del protocolo HTTP y hapasado a ser ampliamente utilizado por la comunidad de desarrollo.

    Si bien el trmino REST se refera originalmente a un conjunto de principios de arquitectura descritos ms abajo, en la actualidad se usa en el sentido ms amplio para describir cualquierinterfaz web simple que utiliza XML y HTTP, sin las abstracciones adicionales de los protocolosbasados en patrones de intercambio de mensajes como el protocolo de servicios web SOAP.Es posible disear sistemas de servicios web de acuerdo con el estilo arquitectural REST deFielding y tambin es posible disear interfaces XMLHTTP de acuerdo con el estilo de llamada aprocedimiento remoto (RPC), pero sin usar SOAP. Estos dos usos diferentes del trminoREST causan cierta confusin en las discusiones tcnicas, aunque RPC no es un ejemplo de REST.REST afirma que la web ha disfrutado de escalabilidad como resultado de una serie de diseosfundamentales clave:

    Un protocolo cliente/servidor sin estado: cada mensaje HTTP contiene toda la informacinnecesaria para comprender la peticin. Como resultado, ni el cliente ni el servidor necesitanrecordar ningn estado de las comunicaciones entre mensajes. Sin embargo, en la prctica,muchas aplicaciones basadas en HTTP utilizan cookies y otros mecanismos para mantener elestado de la sesin (algunas de estas prcticas, como la reescritura de URLs, no sonpermitidas por REST)

    Un conjunto de operaciones bien definidas que se aplican a todos los recursos deinformacin: HTTP en s define un conjunto pequeo de operaciones, las ms importantesson POST, GET, PUT y DELETE. Con frecuencia estas operaciones se equiparan a lasoperaciones CRUD en bases de datos (ABMC en castellano: Alta, Baja, Modificacin yConsulta) que se requieren para la persistencia de datos, aunque POST no encajaexactamente en este esquema.

    Una sintaxis universal para identificar los recursos. En un sistema REST, cada recurso esdireccionable nicamente a travs de su URI.

    El uso de hipermedios, tanto para la informacin de la aplicacin como para lastransiciones de estado de la aplicacin: la representacin de este estado en un sistema RESTson tpicamente HTML o XML. Como resultado de esto, es posible navegar de un recursoREST a muchos otros, simplemente siguiendo enlaces sin requerir el uso de registros u otrainfraestructura adicional.

  • Pump.io puede ejecutar fcilmente en hardware de bajo recursos (tales como Raspberry pi oBEAGLEBONE Black). Puede ser utilizado a travs de la interfaz de usuario Web, u otros clientesa travs de la API.

    Como una red social descentralizada, Pump.io no est vinculado a un solo sitio. Existe la muypopular (y ex servidor StatusNet) Identi.ca, pero ahora est cerrado para el registro. Tambin hayvarios sitios E14N (como microca.st, pumpity.net, 1realtime.net, pumpbuddy.us, y otros) y muchosnodos creados por el usuario que funcionan todos juntos.

    Pump.io utiliza el protocolo de autorizacin Oauth

    OAuth (Open Authorization) es un protocolo abierto, propuesto por Blaine Cook y ChrisMessina, que permite autorizacin segura de una API de modo estndar y simple paraaplicaciones de escritorio, mviles y web.

    Para desarrolladores de consumidores, OAuth es un mtodo de interactuar con datos protegidos ypublicarlos. Para desarrolladores de proveedores de servicio, OAuth proporciona a los usuarios unacceso a sus datos al mismo tiempo que protege las credenciales de su cuenta. En otras palabras,OAuth permite a un usuario del sitio A compartir su informacin en el sitio A (proveedor deservicio) con el sitio B (llamado consumidor) sin compartir toda su identidad.

    Utilizaremos MongoDB como base de datos

    MongoDB

    Desarrollador10gen

    http://www.mongodb.org/Informacin general

    Modelo de desarrollo Cdigo abiertoLanzamiento inicial 2009

    ltima versin estable 2.6.0 (info)8 de abril de 2014; hace 4 meses

    ltima versin en pruebas 2.6.0-rc22014 de marzo de 21; hace 5 mesesGnero Base de datos, NoSQLProgramado en C++Sistema operativo MultiplataformaLicencia GNU AGPL v3.0 (drivers: licencia Apache)

    MongoDB (de la palabra en ingls humongous que significa enorme) es un sistema de base dedatos NoSQL orientado a documentos, desarrollado bajo el concepto de cdigo abierto.

    MongoDB forma parte de la nueva familia de sistemas de base de datos NoSQL. En vez de guardarlos datos en tablas como se hace en las base de datos relacionales, MongoDB guarda estructuras dedatos en documentos tipo JSON con un esquema dinmico (MongoDB llama ese formato BSON),haciendo que la integracin de los datos en ciertas aplicaciones sea ms fcil y rpida.

    El desarrollo de MongoDB empez en octubre de 2007 por la compaa de software 10gen. AhoraMongoDB es una base de datos lista para la produccin de uso y con muchas caractersticas

  • (features). Esta base de datos es altamente utilizada en las industrias1 y MTV Network,2 Craiglist3y Foursquare4 son algunas de las empresas que utilizan esta base de datos.

    El cdigo binario est disponible para los sistemas operativos Windows, Linux, OS X y Solaris.

    7.2 Instalacin y configuracinPrimero debemos instalar el paquete node.js mediante la sucesin de los siguientes comandos:#apt-get install python g++ make checkinstall#mkdir ~/src && cd $_#wget -N http://nodejs.org/dist/node-latest.tar.gz#tar xzvf node-latest.tar.gz && cd node-v*#./configure#checkinstall #(remove the "v" in front of the version number in the dialog)#sudo dpkg -i node_*

    Instalacin de la base de datos mongoDB y otros paquetes necesarios#apt-get update && apt-get install mongodb graphicsmagick git-core screen

    Entramos al directorio /opt

    #cd /opt

    Clonamos el repositorio git de pump.io

    #git clone https://github.com/e14n/pump.io.git

    Instalamos pumpio mediante npm

    #cd pump.io#npm install

    Ahora instalaremos el driver de la base de datos

    #cd pump.io/node_modules/databank#npm install databank-mongodb

    Configuracin

    Creamos un directorio para la subida de ficheros

    #mkdir /srv/pump

    #chmod 777 /srv/pump

    Creamos el usuario pumpio

    #adduser pumpio

    Enter new UNIX password: # enter password for this accountRetype new UNIX password: # reenter password for this account

  • Ahora editaremos el fichero de confifguracin de pumpio: #nano /etc/pump.io.json

    {"driver": "mongodb","params": {"host":"localhost"},"secret": "", # Aqu pondremos la contrasea"noweb": false,"site": "strogoff pumpio", # Nuestro nombre del sitio"owner": "Talo", "ownerURL": "https://strogoff.ddns.net", "bounce": false, "port": 4443,urlPort: 443"key": "/etc/ssl/private/strogoff.key", "cert": "/etc/ssl/certs/certificate.pem", "hostname": "pumpio.strogoff.ddns.net", # Aqu pondremos nuestro hostname"address": "127.0.0.1","nologger": false,"serverUser": "pumpio","uploaddir": "/srv/pump","debugClient": false,"firehose": "ofirehose.com","noCDN":true,"requireEmail": false,"disableRegistration": false,"canUpload": true,"sockjs": true}

    Ahora ya podemos iniciar el demonio

    #screen

    #cd /opt/pump.io/bin

    #./pump

    *Conflictos y solucin El demonio pumpio ya trae su propio servidor http por lo que entrar en conflicto con el servidorapache que tenemos instalado .

    Necesitaremos crear un subdominio: pumpio.strogoff.ddns.net

    En el archivo de configuracin de pumpio hemos puesto como puerto de escucha el 4443 para poderhacer una conexin proxy desde apache.

    Para poder hacer una conexin proxy en apache necesitamos cargar los modulos ws_tunnel yproxy_http.

    En debian 7 wheezy el servidor apache 2.2.x , el modulo ws_tunnel no esta disponible, hay unparche disponible con la explicacin de como instalarlo en la siguiente direccin :

    https://i.rationa.li/mark/note/2TWATCchRQGyMA0RlvZSQA

    Una vez cargados los mdulos , deberemos crear un virtualhost en apache con la siguiente configuracin :

  • Finalmente creamos un script para que se inicie en el arranque#!/bin/bash#/etc/init.d/pumpio

    ### BEGIN INIT INFO# Provides: pump.io# Required-Start: $remote_fs $syslog# Required-Stop: $remote_fs $syslog# Default-Start: 2 3 4 5# Default-Stop: 0 1 6# Short-Description: starts pump.io as a background daemon# Description: Starts pump.io on boot### END INIT INFO

    # Author: Bob Mottram

    #SettingsSERVICE='pumpio'COMMAND="forever /opt/pump.io/bin/pump > /var/local/pump.io/daemon.log"USERNAME='pumpio'NICELEVEL=19 # from 0-19 the bigger the number, the less the impact on system resourcesHISTORY=1024INVOCATION="nice -n ${NICELEVEL} ${COMMAND}"PATH='/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/usr/sbin:/bin:/var/local/pump.io'pumpio_start() {echo "Starting $SERVICE..."su --command "screen -h ${HISTORY} -dmS ${SERVICE} ${INVOCATION}" $USERNAME}pumpio_stop() {echo "Stopping $SERVICE"su --command "screen -p 0 -S ${SERVICE} -X stuff "'^C'"" $USERNAME}

    #Start-Stop herecase "$1" in start) pumpio_start ;; stop) pumpio_stop ;; restart)

  • pumpio_stop sleep 10s pumpio_start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 ;;esac

    exit 0

    7.3 Listado de algunos clientes para pump.ioEscritorio

    Dianara (GNU/linux) MSwindows build of Dianara. ( Windows )

    Pumpa - ( GNU/linux) spigot Ciente CLI ( GNU/linux) GPump Cliente GTK+ ( GNU/linux).

    Android Impeller - ICS (4.0) o superior Puma - AndStatus

    iOS Social Monkeys

    Ms informacin en https://github.com/e14n/pump.io/wiki/ClientsCaptura de pantalla de la interfaz web

  • Captura de pantalla del cliente de escritorio para GNU/linux y Windows Dianara

    8. Copias de seguridad y monitorizacin8.1 Copias de seguridadPara realizar copias de seguridad vamos a utilizar la aplicacin deja-dup.

    Primero sealaremos que haga las copias de seguridad automticamente.

    Ahora pondremos la ruta de destino, la cual ser un disco duro externo USB3.0 de 1TiB conectado ala mquina local y que compartiremos mediante samba.

  • Despus debemos seleccionar las carpetas para al copia de seguridad:

    /var/www: contiene las pginas web , owncloud , jappix y squirrelmail.

    /var/mail: Contiene los emails de los usuarios.

    /usr/lib/prosody: Configuracin de Prosody

    /var/lib/prosody: Base de datos interna de Prosody.

    /var/lib/mysql: Donde almacena los datos MySQL

    /srv/pump: Directorio de subida de pump.io

    /var/lib/mongoDB :Base de datos de pump.io

    /var/log: Log del sistema

    Ahora debemos indicarle la frecuencia de tiempo las copias de seguridad y cuanto tiempomantenerlas

  • Cifraremos las copias de seguridad mediante PGP (GnuPG )

    GnuPG

    GNU Privacy Guard (GPG)

    DesarrolladorGNU Project

    http://gnupg.orgInformacin general

    ltima versin estable 2.0.2530 de junio de 2014; hace 3 mesesGnero Pretty Good PrivacySistema operativo MultiplataformaLicencia GNU General Public LicenseEn espaol S

    GNU Privacy Guard (GnuPG o GPG) es una herramienta de cifrado y firmas digitales,que viene a ser un reemplazo del PGP (Pretty Good Privacy), pero con la principal diferencia que essoftware libre licenciado bajo la GPL. GPG utiliza el estndar del IETF denominadoOpenPGP.

    GPG cifra los mensajes usando pares de claves individuales asimtricas generadas por losusuarios. Las claves pblicas pueden ser compartidas con otros usuarios de muchas maneras,un ejemplo de ello es depositndolas en los servidores de claves. Siempre deben sercompartidas cuidadosamente para prevenir falsas identidades por la corrupcin de las clavespblicas. Tambin es posible aadir una firma digital criptogrfica a un mensaje, de esta manera latotalidad del mensaje y el remitente pueden ser verificados en caso de que se desconfe de unacorrespondencia en particular.

    GnuPG tambin soporta algoritmos de cifrado simtricos, por ejemplo CASTS.

    GPG no usa algoritmos de software que estn restringidos por patentes, entre estos se encuentra elalgoritmo de cifrado IDEA que est presente en PGP casi desde sus inicios. En su lugar usa unaserie de algoritmos no patentados como ElGamal, CAST5, Triple DES (3DES), AES y Blowfish.

  • Tambin es posible usar IDEA en GPG descargando un plugin extra, sin embargo este puederequerir una licencia para usuarios de algunos pases en donde est patentada IDEA.

    GPG es un software de cifrado hbrido que usa una combinacin convencional de criptografa declaves simtricas para la rapidez y criptografa de claves pblicas para el fcil compartimiento declaves seguras, tpicamente usando recipientes de claves pblicas para cifrar una clave de sesinque es usada una vez. Este modo de operacin es parte del estndar OpenPGP y ha sido parte delPGP desde su primera versin.

    Hacemos una primera copia de seguridad para comprobar que funciona correctamente

    8.2 MonitorizacinPrimero crearemos un script en bash para saber el estado de todos los servicios, el estado delsistema, y el estado del almacenamiento en /scripts/mon.sh

  • Despus editaremos una entrada en /etc/crontab ejecutado el script y volcando el resultado enmon.txt , para despus enviarlo por email. La frecuencia la haremos a cada 2 horas

    #nano /etc/crontab y aadimos:

    0 */2 * * * root bash /scripts/mon.sh > mon.txt && mail -sServerStatus [email protected] < /scripts/mon.txtComprobamos que recibimos el email con el archivo mon.txt de monitorizacin del sistema

    8.3 Acceso remoto y monitorizacin desde smartphonesEste punto me parece importante ya que hoy en da tenemos siempre a mano el telfono mvil yexisten gran variedad de aplicaciones que nos permiten realizar tareas remotamente en caso dealguna incidencia inesperada. Para ello hemos elegido dos aplicaciones para Android.

    JuiceSSH

    Esta aplicacin nos permite conectarnos mediante ssh a nuestro servidor para poder realizarcualquier tarea, su configuracin es sencilla , tan solo hay que poner el host, nombre de usuario ycontrasea

  • Tambin disponemos de un plugin del rendimiento del sistema

    ControllinoControllino es una aplicacin que nos permite ver el estado de nuestros servicios y tambinmanejarlos. Su interfaz es sencilla ya que varios servicios conocidos vienen preconfigurados.

    Tendremos que ir a la seccin servicios y aadir los que queramos, despus en la seccin perfilaadiremos los servicios que queramos monitorizar; finalmente configuraremos el host con suusuario y contrasea correspondiente. Se conectar mediante SSH , despus al iniciar la aplicaciny simplemente pulsando sobre el servidor configurado podremos ver el estado de los servicios, ascomo modificarlos (start | stop | restart | reload | status).

  • 9. Interfaz webPara crear la interfaz web utilizaremos la herramienta BlueGriffon de Mozilla. BlueGriffon es un editor de pginas web WYSIWYG mayormente libre y decdigo abierto pero con componentes opcionales privativos y comerciales. Estbasado en Gecko, el motor de renderizado dentro de Firefox, y usa XULRunner, el entorno detiempo de ejecucin para Gecko. Se puede bajar gratuitamente y est disponible para Mac OS X,Windows y Linux y est traducido a 17 idiomas.BlueGriffon cumple con los estndares web W3C. Puede crear y editar pginas conforme a HTML 4, XHTML 1.0, HTML 5 y XHTML 5. Es compatible con CSS 2.1 y todas las partes de CSS 3 ya aplicadas por Gecko. BlueGriffon tambin incluye SVG-edit, un XUL editor basado en SVG que se distribuy originalmente como una extensin para Firefox y se adapt a BlueGriffon.

    BlueGriffonDesarrollador

    Daniel Glazmanbluegriffon.org

    Informacin generalModelo de desarrollo Software libre con componentes privativos

    ltima versin estable 1.7.219 de junio de 2013; hace 1 aoGnero Editor de pginas webLicencia MPL, GNU GPL o GNU LGPL Licencia privativa para las extensionesEstado actual ActivoEn espaol S

    Editaremos el archivo /var/www/index.html, quedando de la siguiente manera:

    Ahora podemos acceder a cada servicio pulsando sobre la imagen correspondiente.

  • 10. Fuentes y referencias https://www.debian.org/ Sitio oficial de Debian

    http://www.apache.org/ Sitio oficial del servidor HTTP apache

    http://www.postfix.org/ Sitio oficial del servidor MTA POSTFIX

    http://www.dovecot.org/ Sitio oficial del servidor MUA Dovecot

    http://squirrelmail.org/ Sitio oficial de squirrelmail , WebUI para el email

    https://owncloud.org/ Sitio oficial de Owncloud

    http://prosody.im/ Sitio oficial del servidor XMPP prosody

    https://jappix.org/ Sitio oficial de la webUI para XMPP Jappix

    http://pump.io/ Sitio oficial de el servicio de red social deferada pump

    http://elbinario.net/2014/06/27/autogestion-instalar-owncloud-server-en-debian-wheezy/ elbinario.net , manual de instalacin de owncloud

    http://www.krizna.com/ubuntu/setup-mail-server-ubuntu-14-04/ manual de instalacin y configuracin de POSTFIX y dovecot en Debian/Ubuntu

    http://es.wikipedia.org/wiki/SASL Documentacin sobre el protocolo SASL

    http://es.wikipedia.org/wiki/Transport_Layer_Security Documentacin sobre los protocolos ssl y tls

    http://es.wikipedia.org/wiki/Off_the_record_messaging documentacin sobre el protocolo OTR

    http://es.wikipedia.org/wiki/OAuth Documentacin sobre el protocolo Oauth

    http://whird.jpope.org/pump/ informacin de instalacin y configuracin de pump.io

    http://comunicatelibremente.wordpress.com/ Blog sobre diferentes redes descentralizadas

    Autor: Gonzalo Soler Forns

    FuncionalidadesTest de seguridad del servidor XMPP prosody en xmpp.net5.4 Listado de clientes XMPPAll tests succeded, no relay accepted.AndroidiOS