Vous êtes sur la page 1sur 41

PROYECTO STROGOFF

NDICE

1. Instalacin
1.1 Introduccin
1.2 Instalacin
2. 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 seguridad
3. Instalacin y configuracin del servidor HTTP apache
3.1 Instalacin del servidor HTTP apache
3.2 Configuracin de SSL/TLS para apache
4. Instalacin y configuracin de ownclod server
4.1 Descripcin del software
4.2 Instalacin y configuracin
5. 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 jappix
6. Servidor de correo seguro con postfix , dovecot y squirrelmail
6.1 Postfix
6.2 Dovecot
6.3 Squirrelmail
7. Pump.io
7.1 Descripcin y especificaciones tcnicas
7.2 Instalacin y configuracin
7.3 Listado de algunos clientes para pump.io
8. Copias de seguridad y monitorizacin
8.1 Copias de seguridad
8.2 Monitorizacin
8.3 Acceso remoto y monitorizacin desde smartphones
9. Interfaz web
10. 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 miniordenador Raspberry pi.
Raspberry pi
Raspberry Pi

Fabricante
Tipo
Lanzamiento
Sistema operativo
Alimentacin
CPU
GPU
Memoria
Capacidad de
almacenamiento

Fundacin Raspberry Pi
Placa computadora (SBC)
29 de febrero de 20121
Linux ARM (Debian, Fedora, Arch Linux), RISC OS2
2,5 W (modelo A), 3,5 W (modelo B)
ARM1176JZF-S (armv6k) a 700 MHz3
Broadcom VideoCore IV3
256 MiB (Modelo A y primeros modelos B) / 512 MiB (modelo
B)4
Tarjeta SD o SDHC

Raspberry Pi es un ordenador de placa reducida o (placa nica) (SBC) de bajo coste, desarrollado
en Reino Unido por la Fundacin Raspberry Pi, con el objetivo de estimular la enseanza de
ciencias 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 usuario
pueda 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 el
almacenamiento permanente; tampoco incluye fuente de alimentacin ni carcasa. El 29 de febrero
de 2012 la fundacin empez a aceptar rdenes de compra del modelo B, y el 4 de febrero de 2013
del 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 (derivado
de Fedora) y promueve principalmente el aprendizaje del lenguaje de programacin Python5 . Otros
lenguajes tambin soportados son Tiny BASIC,12 C, Perl5 y Ruby13 .

El Sistema operativo ser Debian 7.6 wheezy , que es el mismo que Raspbian, instalable en la
Raspberry 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 actuales
abastecindolas de una buena seguridad. Para ello utilizaremos diferentes softwares libres, los
cuales 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 que
tiene 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 realizar


comunicaciones cifradas a travs de una red, usando el protocolo SSH. Fue creado como una
alternativa libre y abierta al programa Secure Shell, que es software propietario. El proyecto
est liderado por Theo de Raadt, residente en Calgary.
OpenSSH
xeyes a travs de un tnel SSH.
Desarrollador
Proyecto OpenBSD
www.openssh.com
Informacin general
ltima versin estable 6.5

30 de enero de 2014; hace 7 meses

Gnero
Sistema operativo
Licencia
En espaol

Acceso remoto
Multiplataforma
BSD
No

La suite OpenSSH incluye:


ssh, reemplaza a rlogin y telnet para permitir shell el acceso remoto a otra mquina. ssh
tero@ejemplo.com
scp, reemplaza a rcp scp tero@ejemplo.com:~/archivo .
sftp, reemplaza a ftp para copiar archivos entre dos computadoras sftp
tero@ejemplo.com
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 la
clave.
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 del
protocolo 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 del
sistema, y seleccionamos el mtodo manual con la siguiente configuracin:

2.2 Nombre de equipo y hostname


Esta 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 nombre
En 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 un
host 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 tendr
que apuntar a nuestra ip pblica, que, mediante un cliente que ofrece no-ip ir actualizando
automticamente.

2.4 Configuracin del router ALPHA ASL-26555


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

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

2.5 Instalacin de software de seguridad


Firestarter : 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 del
trfico entrante seleccionaremos aadir regla iremos aadiendo los puertos de los servicios que
vamos 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 general
ltima versin
estable
Gnero
Sistema operativo
Licencia
En espaol

1.4.2
24 de Febrero de 2014
Detector de rootkit
GNU/Linux, BSD, AIX, Mac OS X, SME, Solaris, y otros Sistemas
operativos basados en Unix
GPL
No

Rkhunter (o Rootkit Hunter) es una herramienta de Unix que detecta los rootkits, los backdoors y
los exploit locales mediante la comparacin de los hashes MD5 de ficheros importantes con su
firma correcta en una base de datos en lnea, buscando los directorios por defecto (de rootkits), los
permisos incorrectos, los archivos ocultos, las cadenas sospechosas en los mdulos del kernel, y
las pruebas especiales para Linux y FreeBSD.
Para analizar nuestro sistema debemos introducir el comando: #rkhunter --check
Esta tarea la automatizaremos con cron aadiendo la siguiente linea en /etc/cronttab que ejecutar
rkhunter y nos enviar el reporte mediante email.
0 14 * * * root rkhunter --check --skip-keypress && mail -s rkhunter
gsolfor@openmailbox.org < /var/log/rkhunter.log

3.Instalacin y configuracin del servidor HTTP apache


3.1 Instalacin del servidor HTTP apache
Para instalar nuestro servidor apache debemos, como root, o con el comando sudo ejecutar la
siguiente 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 una
pgina 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 Layer
Security (TLS; en espaol seguridad de la capa de transporte) son protocolos criptogrficos
que proporcionan comunicaciones seguras por una red, comnmente Internet.
SSL proporciona autenticacin y privacidad de la informacin entre extremos sobre
Internet mediante el uso de criptografa. Habitualmente, slo el servidor es autenticado (es
decir, 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 a
usar. 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
Internet
Funcin
Seguridad en la capa de transporte
ltima versin 1.2
Ubicacin en la pila de protocolos
HTTPS, IMAPS,
Aplicacin
POP3S, SMTPS, ...
TLS
Transporte
TCP
Red
IP
Estndares
RFC 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 (opcin
recomendada) o podemos generar un certificado autofirmado mediante openssl, optaremos por pedir
un certificado en www.dondominio.com a buen precio, as nos evitamos problemas de
verificacin 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 privada
strogoff.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 del
certificado y la clave privada.

Activaremos el sitio con el comando: #a2ensite default-ssl


Reiniciamos apache: #service apache restart

Ahora ya podemos comprobar que todo funciona escribiendo en un navegador la siguiente direccin
https://srtrogoff.ddns.net
Reforzar la seguridad mediante perfect forward secrecy :
Breve explicacin:
El trmino perfect forward secrecy (siglas PFS), traducido normalmente al castellano por secretoperfecto-hacia-adelante, es la propiedad de los sistemas criptogrficos que garantiza que el
descubrimiento de las claves utilizadas actualmente no compromete la seguridad de las claves
usadas con anterioridad (no las revela). Por tanto la seguridad de lo que se hizo usando claves
antiguas persiste. Cuando un sistema tiene secreto-perfecto-hacia-adelante se dice que el sistema
es 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 server


4.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 una
versin 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 en
la nube. 1 OwnCloud es parte de la comunidad KDE.
El 13 de diciembre del 2011 ha sido creada una entidad comercial fundada bajo el proyecto
OwnCloud.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 las
soluciones 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

Desarrollador
ownCloud Inc.
Comunidad
Informacin general
ltima versin estable 6.0.2 (03/03/14)
Gnero
Cloud computing
Sistema operativo
Multiplataforma
Licencia
AGPLv3
Idiomas
Multilengua
En espaol
S

4.2 Instalacin y configuracin


Owncloud utiliza los archivos .htaccess de Apache por razones de seguridad. Para poder usarlos
necesitamos 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 MySQL
Ahora 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 OwnCloud


Primero 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 contrasea
de 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, como
No-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 noip.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 a
nuestro servidor OwnCloud usando un navegador con la direccin:
https://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 los
sitios 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 Prosody


5.1 Descripcin del protocolo XMPP

Extensible Messaging and Presence Protocol

Familia
Funcin
Puertos

Internet
Mensajera instantnea
5222/TCP (Cliente a servidor)
5269/TCP (Servidor a servidor)

5223/TCP (SSL)
Ubicacin en la pila de protocolos
Aplicacin
XMPP
Transporte
TCP
Red
IP
Estndares
RFC 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 extensible
de mensajera y comunicacin de presencia) (anteriormente llamado Jabber ), es un protocolo
abierto y extensible basado en XML, originalmente ideado para mensajera instantnea.
Con el protocolo XMPP queda establecida una plataforma para el intercambio de datos XML que
puede ser usada en aplicaciones de mensajera instantnea. Las caractersticas en cuanto a
adaptabilidad 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 Windows
Live Messenger, se encuentra documentado y se insta a utilizarlo en cualquier proyecto. Existen
servidores 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 abandonara
en favor de su protocolo propietario Hangouts.

Ventajas
Descentralizacin
La arquitectura de las redes XMPP es similar a la del correo electrnico; cualquiera puede poner en
marcha 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 de
mensajera instantnea estndar, y sus especificaciones han sido publicadas como los RFC 3920 y
RFC 3921. El desarrollo de esta tecnologa no est ligado a ninguna empresa en concreto y no
requiere el pago de regalas.
Historia
Las tecnologas XMPP llevan usndose desde 1998. Existen mltiples implementaciones de los
estndares XMPP para clientes, servidores, componentes y bibliotecas, con el apoyo de importantes
compaas como Sun Microsystems y Google.
Seguridad
Los servidores XMPP pueden estar aislados de la red pblica XMPP, y poseen robustos sistemas de
seguridad (como SASL y TLS). Para apoyar la utilizacin de los sistemas de cifrado, la XMPP
Standards Foundation pone a disposicin de los administradores de servidores XMPP Autoridad de
certificacin en xmpp.net ofreciendo certificados digitales gratis.
Flexibilidad
Se pueden hacer funcionalidades a medida sobre XMPP; para mantener la interoperabilidad, las
extensiones ms comunes son gestionadas por la XMPP Software Foundation.

Desventajas
Sobrecarga de datos de presencia
Tpicamente 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 para
aliviar este problema.
Escalabilidad
XMPP tambin sufre el mismo problema de redundancia en los servicios de chatroom y de
suscripcin. 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 , que
es el mismo equipo.
En c2s_ports le indicaremos a que puerto se conectaran los clientes
En 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 tendremos
encadenados los tres certificados.

Aadiremos el FQDN en la directiva virtualhost


El campo allow_registration permite el registro o no de usuarios , en nuestro caso dejaremos el
valor 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 contraseas
de 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 protocolo
criptogrfico que proporciona una fuerte encriptacin para conversaciones de mensajera
instantnea. OTR utiliza una combinacin del algoritmo AES de claves simtricas, el protocolo
de intercambio de claves Diffie-Hellman y la funcin hash SHA-1. Adems de la autenticacin y
la 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 muc
En 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 este
caso 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 ser
strogoff.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 siguiente
interfaz con nuestros contactos y toda la configuracin que hayamos hecho de nuestro usuario, ya
que 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 squirrelmail


Primero deberemos abrir los puertos 110 (pop), 25 (smtp), 143(imap), 587(smtps), 995(pop3s) y
993 (imaps) en el router y firewall.

6.1 Postfix
Postfix es un servidor de correo de software libre / cdigo abierto, un
programa informtico para el enrutamiento y envo de correo electrnico, creado con la
intencin de que sea una alternativa ms rpida, fcil de administrar y segura al ampliamente
utilizado Sendmail. Anteriormente conocido como VMailer e IBM Secure Mailer, fue
originalmente escrito por Wietse Venema durante su estancia en el Thomas J. Watson
Research 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

Desarrollador
Wietse Venema y otros
http://www.postfix.org/
Informacin general
2.10.2
ltima versin estable
5 de septiembre de 2013
Gnero
Agente de Transporte de Correo (MTA)
Sistema operativo
Tipo Unix
Licencia
Licencia Pblica IBM
En 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 SASL
SASL :
SASL: Siglas en ingls para Simple Authentication and Security Layer (capa de seguridad y
autenticacin simple).
SASL es un framework para autenticacin y autorizacin en protocolos de Internet. Separa los
mecanismos de autenticacin de los protocolos de la aplicacin permitiendo, en teora, a cualquier
protocolo de aplicacin que use SASL usar cualquier mecanismo de autenticacin soportado por
SASL. A pesar de que mediante SASL slo se maneja la autenticacin (y se requieren otros
mecanismos --como por ejemplo TLS-- para cifrar el contenido que se transfiere), SASL
proporciona medios para un uso negociado del mecanismo elegido. Las especificaciones originales
de SASL fueron editadas por John Meyers en el RFC 2222. Este fue hecho obsoleto por el RFC
4422, editado por Alexey Melnikov y Kurt Zeilenga.
Editamos el archivo /etc/postfix/main.cf . home_mailbox
home_mailbox = Maildir/
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtp_tls_note_starttls_offer = yes
smtpd_tls_loglevel = 1
smtpd_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.cf
submission 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-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = 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 lineas


ehlo strogoff.ddns.net
250-strgoff.ddns.net
-------250-STARTTLS
250-AUTH PLAIN LOGIN
250-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 Dovecot


Instalacin
#apt-get install dovecot-imapd dovecot-pop3d

Editar el archivo /etc/dovecot/conf.d/10-ssl.conf y editar la linea para activar SSL


ssl = yes

Reiniciar el servidor: #service dovecot restart


Probamos la conexin a los diferentes puertos 110 , 143 , 993 , 995:
telnet strogoff.ddns.net 110
Trying 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 squirrelmail
Instalacin
#apt-get install squirrelmail

Configuracin
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 relay
Se entiende como Open Relay o (rel abierto en ingls) es un servidor SMTP configurado de
tal manera que permite que cualquier usuario de Internet lo use para enviar correo electrnico a
travs de l, no solamente el correo destinado a, o procedente de usuarios conocidos.1 2 Esta sola
ser la configuracin por defecto en muchos servidores de correo; de hecho, era la forma
en que Internet fue creada inicialmente, pero retransmisiones de correo abiertas se han convertido
en impopulares debido a su explotacin por parte de los spammers y gusanos. Muchos relays se
cerraron 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.IO
Pump.io es una activity streams del motor que puede ser utilizado como un protocolo de red social
federada que "hace la mayor parte de lo que la gente realmente quiere de una red social". Iniciado
por Evan Prodromou, es una continuacin de StatusNet; Identi.ca, que fue el ms grande servicio
StatusNet, cambi a pump.io en junio de 2013 Sin embargo, mientras StatusNet ofrece una
funcionalidad similar a Twitter, pump.io ofrece una red social de carcter ms general.

7.1 Descripcin y especificaciones tcnicas


Tecnologa
Diseado para ser mucho ms ligero y eficiente que su predecesor StatusNet, Pump.io est escrito
en Node.js y utiliza Flujos de actividad como el formato de los comandos y transferir datos a travs
de una sencilla API REST.

Pump.io requiere:

Node.js

NGP

Un servidor de base de datos (bases de datos NoSQL normalmente como MongoDB o


Redis, aunque hay otras opciones a travs de la capa de abstraccin de base de datos
denominada databank)

GraphicsMagick con el comando `gm`

node.js
Node.js

Desarrollador
Node.js Developers
Joyent
nodejs.org
Informacin general
Diseador
Ryan Lienhart Dahl
Lanzamiento inicial
27 de mayo de 20091
0.10.30
ltima versin estable
31 de julio de 2014
0.11.13
ltima versin en pruebas
01 de mayo de 2014
Gnero
Dirigida por eventos
Programado en
C++, JavaScript
Sistema operativo
Windows, Mac OS X, Linux, Solaris, FreeBSD, OpenBSD, webOS
Licencia
Licencia MIT
Estado actual
Activo

Node.js es un entorno de programacin en la capa del servidor basado en el lenguaje de


programacin Javascript, con I/O de datos en una arquitectura orientada a
eventos y basado en el motor Javascript V8. Fue creado con el enfoque de ser til en la creacin
de programas de red altamente escalables, como por ejemplo, servidores web.2 Fue creado
por Ryan Dahl en 2009 y su evolucin est apadrinada por la empresa Joyent, que adems
tiene contratado a Dahl en plantilla.3 4
Node.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 Apache
MINA, 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 de
CommonJS.5 Node.js incluye un entorno REPL para depuracin interactiva.
API REST
La Transferencia de Estado Representacional (Representational State Transfer) o REST es
una tcnica de arquitectura software para sistemas hipermedia distribuidos como la World
Wide Web. El trmino se origin en el ao 2000, en una tesis doctoral sobre la web escrita por
Roy Fielding, uno de los principales autores de la especificacin del protocolo HTTP y ha
pasado 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 cualquier
interfaz web simple que utiliza XML y HTTP, sin las abstracciones adicionales de los protocolos
basados 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 de
Fielding y tambin es posible disear interfaces XMLHTTP de acuerdo con el estilo de llamada a
procedimiento remoto (RPC), pero sin usar SOAP. Estos dos usos diferentes del trmino
REST 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 diseos
fundamentales clave:
Un protocolo cliente/servidor sin estado: cada mensaje HTTP contiene toda la informacin
necesaria para comprender la peticin. Como resultado, ni el cliente ni el servidor necesitan
recordar ningn estado de las comunicaciones entre mensajes. Sin embargo, en la prctica,
muchas aplicaciones basadas en HTTP utilizan cookies y otros mecanismos para mantener el
estado de la sesin (algunas de estas prcticas, como la reescritura de URLs, no son
permitidas por REST)
Un conjunto de operaciones bien definidas que se aplican a todos los recursos de
informacin: HTTP en s define un conjunto pequeo de operaciones, las ms importantes
son POST, GET, PUT y DELETE. Con frecuencia estas operaciones se equiparan a las
operaciones CRUD en bases de datos (ABMC en castellano: Alta, Baja, Modificacin y
Consulta) que se requieren para la persistencia de datos, aunque POST no encaja
exactamente en este esquema.
Una sintaxis universal para identificar los recursos. En un sistema REST, cada recurso es
direccionable nicamente a travs de su URI.
El uso de hipermedios, tanto para la informacin de la aplicacin como para las
transiciones de estado de la aplicacin: la representacin de este estado en un sistema REST
son tpicamente HTML o XML. Como resultado de esto, es posible navegar de un recurso
REST a muchos otros, simplemente siguiendo enlaces sin requerir el uso de registros u otra
infraestructura adicional.

Pump.io puede ejecutar fcilmente en hardware de bajo recursos (tales como Raspberry pi o
BEAGLEBONE Black). Puede ser utilizado a travs de la interfaz de usuario Web, u otros clientes
a travs de la API.
Como una red social descentralizada, Pump.io no est vinculado a un solo sitio. Existe la muy
popular (y ex servidor StatusNet) Identi.ca, pero ahora est cerrado para el registro. Tambin hay
varios sitios E14N (como microca.st, pumpity.net, 1realtime.net, pumpbuddy.us, y otros) y muchos
nodos 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 Chris
Messina, que permite autorizacin segura de una API de modo estndar y simple para
aplicaciones de escritorio, mviles y web.
Para desarrolladores de consumidores, OAuth es un mtodo de interactuar con datos protegidos y
publicarlos. Para desarrolladores de proveedores de servicio, OAuth proporciona a los usuarios un
acceso 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 de
servicio) con el sitio B (llamado consumidor) sin compartir toda su identidad.
Utilizaremos MongoDB como base de datos
MongoDB

Desarrollador
10gen
http://www.mongodb.org/
Informacin general
Modelo de desarrollo
Cdigo abierto
Lanzamiento inicial
2009
2.6.0 (info)
ltima versin estable

8 de abril de 2014; hace 4 meses

ltima versin en pruebas 2.6.0-rc2

2014 de marzo de 21; hace 5 meses

Gnero
Programado en
Sistema operativo
Licencia

Base de datos, NoSQL


C++
Multiplataforma
GNU AGPL v3.0 (drivers: licencia Apache)

MongoDB (de la palabra en ingls humongous que significa enorme) es un sistema de base de
datos 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 guardar
los datos en tablas como se hace en las base de datos relacionales, MongoDB guarda estructuras de
datos 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. Ahora
MongoDB 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 Craiglist3
y 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 configuracin


Primero 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 account
Retype 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": "<YOUR 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 servidor
apache 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 poder
hacer una conexin proxy desde apache.
Para poder hacer una conexin proxy en apache necesitamos cargar los modulos ws_tunnel y
proxy_http.
En debian 7 wheezy el servidor apache 2.2.x , el modulo ws_tunnel no esta disponible, hay un
parche 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:
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop:
# Short-Description:
# Description:
### END INIT INFO

pump.io
$remote_fs $syslog
$remote_fs $syslog
2 3 4 5
0 1 6
starts pump.io as a background daemon
Starts pump.io on boot

# Author: Bob Mottram <bob@robotics.uk.to>


#Settings
SERVICE='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
resources
HISTORY=1024
INVOCATION="nice -n ${NICELEVEL} ${COMMAND}"
PATH='/usr/local/sbin:/usr/local/bin:/usr/bin:/sbin:/usr/sbin:/bin:/var/local/pu
mp.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 here
case "$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.io


Escritorio
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/Clients
Captura de pantalla de la interfaz web

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

8. Copias de seguridad y monitorizacin


8.1 Copias de seguridad
Para 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 a
la 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 tiempo
mantenerlas

Cifraremos las copias de seguridad mediante PGP (GnuPG )


GnuPG
GNU Privacy Guard (GPG)
Desarrollador
GNU Project
http://gnupg.org
Informacin general
ltima versin estable 2.0.25

30 de junio de 2014; hace 3 meses

Gnero
Sistema operativo
Licencia
En espaol

Pretty Good Privacy


Multiplataforma
GNU General Public License
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 es
software libre licenciado bajo la GPL. GPG utiliza el estndar del IETF denominado
OpenPGP.
GPG cifra los mensajes usando pares de claves individuales asimtricas generadas por los
usuarios. 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 ser
compartidas cuidadosamente para prevenir falsas identidades por la corrupcin de las claves
pblicas. Tambin es posible aadir una firma digital criptogrfica a un mensaje, de esta manera la
totalidad del mensaje y el remitente pueden ser verificados en caso de que se desconfe de una
correspondencia 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 el
algoritmo de cifrado IDEA que est presente en PGP casi desde sus inicios. En su lugar usa una
serie 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 puede
requerir 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 de
claves simtricas para la rapidez y criptografa de claves pblicas para el fcil compartimiento de
claves seguras, tpicamente usando recipientes de claves pblicas para cifrar una clave de sesin
que es usada una vez. Este modo de operacin es parte del estndar OpenPGP y ha sido parte del
PGP desde su primera versin.

Hacemos una primera copia de seguridad para comprobar que funciona correctamente

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

Despus editaremos una entrada en /etc/crontab ejecutado el script y volcando el resultado en


mon.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 -s
ServerStatus gsolfor@openmailbox.org < /scripts/mon.txt
Comprobamos que recibimos el email con el archivo mon.txt de monitorizacin del sistema

8.3 Acceso remoto y monitorizacin desde smartphones


Este punto me parece importante ya que hoy en da tenemos siempre a mano el telfono mvil y
existen gran variedad de aplicaciones que nos permiten realizar tareas remotamente en caso de
alguna incidencia inesperada. Para ello hemos elegido dos aplicaciones para Android.
JuiceSSH
Esta aplicacin nos permite conectarnos mediante ssh a nuestro servidor para poder realizar
cualquier tarea, su configuracin es sencilla , tan solo hay que poner el host, nombre de usuario y
contrasea

Tambin disponemos de un plugin del rendimiento del sistema

Controllino
Controllino es una aplicacin que nos permite ver el estado de nuestros servicios y tambin
manejarlos. 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 perfil
aadiremos los servicios que queramos monitorizar; finalmente configuraremos el host con su
usuario y contrasea correspondiente. Se conectar mediante SSH , despus al iniciar la aplicacin
y simplemente pulsando sobre el servidor configurado podremos ver el estado de los servicios, as
como modificarlos (start | stop | restart | reload | status).

9. Interfaz web
Para crear la interfaz web utilizaremos la herramienta BlueGriffon de Mozilla.
BlueGriffon es un editor de pginas web WYSIWYG mayormente libre y de
cdigo abierto pero con componentes opcionales privativos y comerciales. Est
basado en Gecko, el motor de renderizado dentro de Firefox, y usa XULRunner, el entorno de
tiempo 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.
BlueGriffon
Desarrollador
Daniel Glazman
bluegriffon.org
Informacin general
Modelo de desarrollo Software libre con componentes privativos
ltima versin estable 1.7.2
19 de junio de 2013; hace 1 ao

Gnero
Licencia
Estado actual
En espaol

Editor de pginas web


MPL, GNU GPL o GNU LGPL Licencia privativa para las extensiones
Activo
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-instalarowncloud-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

Vous aimerez peut-être aussi