Mostrando entradas con la etiqueta Instalación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Instalación. Mostrar todas las entradas

sábado, 1 de noviembre de 2014

Securizando ssh con fwknop

La seguridad informática es un problema que preocupa a todos, bueno, lamentablemente esto no es del todo cierto, pero la verdad es que es un tema que cada día preocupa a mas gente del sector. Es algo que siempre tenemos que tener en cuenta, ya que al hacerce mas popular el uso de la tecnología, el botín es mas tentador y hay mas gente intentando adueñarse de lo ajeno.

También es verdad que gracias a internet tenemos mas disponibilidad de toda esta tecnología sin estar fisicamente delante de ella. Para eso necesitamos acceso remoto. Para tener acceso remoto, debemos exponer nuestros equipos a la inseguridad del mundo exterior, y es aquí cuando entra en juego el dilema de cuanto mas necesitamos, mas exponemos y menos seguro estamos. En seguridad informática siempre se intenta primar el mínimo punto de exposición, pero cuanto menos exponemos, menos acceso y mas incómodo resulta el trabajo.

Para seguir con la pauta del menor punto de exposición y aún así, no perder servicios, es para lo que existe la técnica del “port knocking”, literalmente “golpeo de puertos”. Que consiste en tener todos los puertos cerrados exceptuando los del demonio del servicio de port knocking, cuando el demonio detecta una determinada secuencia de “golpeo” en esos puertos determinados, abre el puerto necesario para la comunicación con el host que realizo la “llamada”. Este método se utiliza mucho con ssh.

fwknop es una vuelta de tuerca mas a esta técnica, ya que no utiliza una secuencia de puertos, sino que usa certificados.

Instalar fwknop es muy fácil, veamos como se instala en el servidor y en el cliente.

$sudo apt-get update
$sudo apt-get install fwknop-server

En el cliente es:

$sudo apt-get update
$sudo apt-get install fwknop-client

Creamos las llaves, en el cliente y en el servidor debemos hacer lo mismo:

$gpg --gen-key
$gpg --list-keys
/home/linuxsers/.gnupg/pubring.gpg
------------------------------
pub   2048R/SSSSSSSS 2014-10-31
uid                  linuxsers (linuxsers) <linuxsers@correo.com>
sub   2048R/4BEB2434 2014-10-31

Necesitamos el identificador de la llave pública (en el ejemplo usaremos SSSSSSSS para el identificador del lado servidor y CCCCCCCC del lado cliente), para exportarlo a un archivo, tanto en el servidor como en el cliente:

linuxsers@servidor:~$gpg -a --export SSSSSSSS > servidor.asc
linuxsers@cliente:~$gpg -a --export CCCCCCCC > cliente.asc

Copiamos el archivo del cliente en el servidor y el del servidor en el cliente:

linuxsers@servidor:~$scp linuxsers@cliente:~/cliente.asc .
linuxsers@servidor:~$scp servidor.asc linuxsers@cliente:~

Importamos los archivos:

linuxsers@servidor:~$gpg --import cliente.asc
linuxsers@cliente:~$gpg --import servidor.asc

Firmamos los certificados, el certificado del servidor lo firmamos en el cliente y el del cliente en el servidor:

linuxsers@servidor:~$gpg --edit-key CCCCCCCC
gpg>sign
gpg>save
linuxsers@cliente:~$gpg --edit-key SSSSSSSS
gpg>sign
gpg>save

Modificamos el archivo de configuración de fwknop:

linuxsers@servidor:~$ sudo nano /etc/fwknop/access.conf

SOURCE  ANY;
OPEN_PORTS tcp/22
FW_ACCESS_TIMEOUT 30
REQUIRE_SOURCE_ADDRESS Y
DATA_COLLECT_MODE PCAP
GPG_REMOTE_ID CCCCCCCC
GPG_DECRYPT_ID SSSSSSSS
GPG_DECRYPT_PW (contraseña del certificado)
GPG_HOME_DIR /home/usuario/.gnupg

Ahora resta crear las reglas del cortafuegos, del siguiente modo, sin olvidar guardarlas:

linuxsers@servidor:~$sudo iptables -A INPUT -i eth0 -p tcp --dport 22 
         -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
linuxsers@servidor:~$sudo iptables -A INPUT -i eth0 -p tcp --dport 22 
         -j DROP
linuxsers@servidor:~$sudo iptables-save

Reiniciamos el servicio fwknop-server e ufw:

linuxsers@servidor:~$sudo service fwknop-server restart
linuxsers@servidor:~$sudo service ufw restart

Para conectarse desde el cliente hay que hacer 2 pasos:

linuxsers@cliente:~$ fwknop -A tcp/22 --gpg-recip SSSSSSSS 
         --gpg-sign CCCCCCCC -a IP_CLIENTE -D IP_SERVIDOR
Enter passphrase for signing: 
linuxsers@cliente:~$ ssh linuxsers@IP_SERVIDOR
linuxsers@IP_SERVIDOR's password: 

linuxsers@servidor:~$ tail /var/log/syslog 
Oct 31 23:34:33 servidor fwknopd[4803]: (stanza #1) SPA Packet from IP:
         IP_CLIENTE received with access source match
Oct 31 23:34:33 servidor fwknopd[4803]: Added Rule to FWKNOP_INPUT 
         for IP_CLIENTE, tcp/22 expires at 1414794903
Oct 31 23:35:03 servidor fwknopd[4803]: Removed rule 1 from FWKNOP_INPUT
         with expire time of 1414794903
linuxsers@servidor:~$

Eso es todo por ahora!

miércoles, 27 de marzo de 2013

Actualizar Ubuntu

Una vez tengamos instalado Ubuntu 12.04 LTS, deberíamos actualizarlo, y también las aplicaciones que vienen instaladas por defecto.
Una gran comodidad que tiene Linux es que no necesitamos liarnos buscando nuevas versiones de todo el software que tenemos instalado en el ordenador, si no que el SO lo hace por nosotros.
Esta tarea en Ubuntu se hace automáticamente pero no significa que no podamos hacerla manualmente, para ello deberemos lanzar un terminal. Se puede hacer gráficamente desde Centro de software Ubuntu, pero eso no tiene mayores inconveniente es seguir un asistente y listo.
Como lo que queremos es aprender, si no no utilizaríamos Ubuntu, lo haremos desde un Terminal.

Para ello hacemos click sobre el icono de la Terminal que previamente anclamos a la Barra de Unity, si no sabes como hacerlo puedes consultar la entrada Personalizar la Terminal de este blog,  donde se explica como hacerlo y como cambiarle los colores a la Terminal.

domingo, 10 de febrero de 2013

Instalación de Ubuntu 12.04 LTS

Antiguamente la instalación de un SO y en especial Linux era complicada, casi relegada a usuarios expertos, hoy en día eso ha cambiado ya que todos los SO integran instaladores muy sencillos, básicamente son asistentes donde se presentan varios formularios que hay que rellenar.

Aun así puede resultar complicado la instalación avanzada de un sistema como Ubuntu, ya que como supongo deberás conocer, el modo en que Linux administra el sistema de archivos es bastante diferente a como lo hace Windows. 
Para empezar Linux no tiene unidades, es más nisiquiera tiene diferentes arboles para identificar a las diferentes unidades. Todas las unidades (Discos duros, CD, Pen drives, etc.) se montan bajo un mismo árbol de directorios, cuando pinchas un Pen drive en un puerto USB, Ubuntu lo monta en un directorio, digo Ubuntu porque Linux no tiene por qué montarlo, Ubuntu tiene unos scripts que hace esto de forma automática por nosotros.

sábado, 2 de febrero de 2013

Instalar Java en Mozilla Firefox

Una de las cosas que más se usan hoy en día para mejorar la experiencia en la navegación por internet son las páginas dinámicas. Y muchas de estas páginas implementan el uso de frameworks, que son ni mas ni menos como una especie de ventana incrustada donde se ejecuta un mini programa, por así decirlo.

Uno de estos framework es Flash, que se está dejando de utilizar o eso se intenta, el otro es Java y es del que nos encargaremos en este artículo.