SUSE Enterprise 10, updatedb y locate

Posted on July 22nd, 2008 in Linux, tutoriales by Miggs

Los de Suse Enterprise cada dia lo hacen peor, no hay duda… Si queréis contar con updatedb y locate os tendréis que bajar los fuentes e instalarlos vosotros mismos… El paquete se llama findutils y los podréis encontrar aqui o dentro de /gnu/findutils/ en vuestro repositorio favorito; ex: ftp://mirrors.kernel.org/gnu/findutils/

Instalacion

Muy sencillo, lo de siempre

$ wget ftp://mirrors.kernel.org/gnu/findutils/findutils-4.4.0.tar.gz
$ tar -xvvf findutils-4.4.0.tar.gz
$ cd findutils-4.4.0
$ sudo ./configure
$ sudo make
$ sudo make install
# Por ultimo
$ sudo updatedb

Ya podréis utilizar el locate como habéis echo siempre.


awk: elemento separador

Posted on July 1st, 2008 in Linux, Programacion, tutoriales by Miggs

Nota rápida pero quite handy. Como cambiar el símbolo separador de argumentos en awk (por defecto es el espacio)

# awk -F. ‘{…}’

Saludos


Forma Rapida Segura y Sencilla de ELIMINAR archivos

Posted on July 1st, 2008 in Linux, Programacion, Seguridad, tutoriales by Miggs

El otro dia mi jefe me pidio que le llamase antes de borrar un archivo para asegurarnos de que realmente los datos eran eliminados. El proceso es simple, sobreescribir el contenido del archivo con datos. Idilicamente se debería de hacer con datos aleatorios, pero tampoco es cuestion de ser paranoicos. Basta con repetir el proceso unas cuantas veces antes de borrarlo. En cualquier si alguien tiene a mano como hacerlo correctamente que escriba un comentario y lo anado.

$ sed -i -e ’s/./X/g’ ./path/to/fichero

Saludos


Generador de palabras. Wordgenerator.c

Posted on May 23rd, 2008 in FreeBSD, Linux, Programacion, Seguridad, tutoriales by Miggs

beastyHace tiempo, trasteando con las redes wifi y la clásica encriptacion WEP llegue a un punto en el que necesitaba una diccionario de claves. Como las claves eran ’semi-aleatorias’ no me servia cualquier diccionario, necesitaba algo que me generase todas las posibles claves de determinada longitud con un determinado juego de caracteres. Así que decidí poner en buen uso mis conocimientos de C y crearme una herramienta que me lo hiciera. El problema era conceptual mente simple así que me puse manos a la obra.

Inicialmente resolví el problema con recursividad (lento), mejorandolo mas tarde utilizando un algoritmo lineal (mucho mucho mas rápido). Aquí os dejo el código fuente.

Compilar

Si dispones de gcc el proceso es muy sencillo.

$ gcc -o wordgenerator.c wordgenerator

Ejecucion

Desde la linea de comandos basta con

$ ./wordgenerator

Código

//Librerias necesarias
#include<stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
//Prototipos
int getOptions(int,char**,char**,int*,int*);
void ayuda();
void generator(char *, char *,int, int);
//
//Funcion: wordgenerator.c
//Description: Genera palabras linear o recursivamente.
//Autor: Miggs
//Date: 18/10/2006
//
int main (int argc, char *argv[])
{
//Caracteres a usar por defecto
char *c = “1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM”;
int len;
//Usamos recursividad?
int r = 0; //No a no ser que nos lo pidan…

if(getOptions(argc,argv,&c,&len,&r)<0)
ayuda();

char actual[len + 1];
actual[len] = ‘\0′;

if(r == 0){
//Lineal = rapido
int i,j;
for(i = 0; i < len ; i ++)
for(j = 0; j< strlen(c) ; j ++){
actual[i] = c[j];
printf(”%s\n”,actual);
}
}else
//Recursividad = lento
generator(c,actual,len,0);
return 0;
}
//
//Funcion: generator
//Description: funcion recursiva
//Date: 18/10/2006
//
void generator(char *c,char *actual, int len, int level)
{
int i;
if(level < len)
{
for(i = 0; i < strlen(c);i = i + 1){
actual[level] = c[i];
generator(c,actual,len,level+1);
}
}
else
printf(”%s\n”,actual);
}

//
//Funcion: getOptions
//Description: Interpreta las opciones de la linea de comandos
//Date: 18/10/2006
//
int getOptions(int argc, char **argv, char **vC, int *l, int *r)
{
int c;
int retValue = -1;

while((c = getopt(argc, argv, “l:c:r”)) != -1){
switch(c){
case ‘l’:
*l = atoi(optarg);
if(*l > 0)
retValue = 1;
break;
case ‘c’:
*vC =optarg;
break;
case ‘r’:
*r = 1;
default:
break;
}
}
return retValue;
}

//
//Funcion: ayuda
//Description: Imprime la ayuda por pantalla
//Date: 18/10/2006
//
void ayuda()
{
printf(”\n// wordGenerator 0.1 6/Feb/2008\n”);
printf(”// icaix.com//\n”);
printf(”\n Uso:\n”)//
printf(” ./wordGenerator [-C CaracteresAUsar] [-r] -l <longitudPalabra> \n”);
printf(”\n Generacion palabras de longitud 3, metodo lineal\n”);
printf(” ./wordGenerator -l 3\n”);
printf(”\n Generacion palabras de longitud 3, metodo recursivo\n”);
printf(” ./wordGenerator -r -l 3\n”);
printf(” Generacion palabras de longitud 3 con vocabulario abcdefghABCDEFGH\n”);
printf(” ./wordGenerator -l 3 -C abcdefghABCDEFGH\n\n”);
_exit(0);
}


Instalacion por red con PXE. Ubuntu/Debian

Posted on December 26th, 2007 in Linux, tutoriales by Miggs

Requisitos

  • Un servidor DHCP
  • Un servidor tftp (trivial ftp) con soporte hpa.

Instalación Requisitos

Suponiendo que disponemos de una maquina con Debian o alguna de sus variantes, obtengamos los paquetes necesarios:

$ sudo apt-get install dhcp3-server tftpd-hpa

Configuración

Servidor Dhcp

Una vez instalados es necesario configurar el servidor de dhcp. El archivo de configuración suele encontrar en /etc/dhcp3/dhcpd.conf, es bueno hacer un backup.

$ sudo cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.confBackup

Edita lo con tu editor favorito. Aquí os dejo el contenido de mi fichero de configuración:

option domain-name-servers 192.168.1.1;
default-lease-time 86400;
max-lease-time 604800;
authoritative;

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.70 192.168.1.100;
filename “pxelinux.0″;
next-server 192.168.1.106;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
}

Es importante que NO SOLO copiéis y peguéis. Comprobar que los parámetros son correctos, con especial atencion a:

  • option domain-name-servers -> servidor de dns, en mi caso el propio gateway.
  • subnet -> Rango de la propia LAN.
  • range -> Rango en el que el servidor de dhcp concedera ips.
  • filename -> Nombre del archivo desde que el que comenzar el proceso de arranque. Este fichero en mi caso se encuentra en el directorio raiz del servidor de tftp.
  • next-server -> direccion donde se encuentra el servidor de tftp.
  • routers -> Direccion del gateway

Reiniciad el servidor para que los cambios tengan efecto

$ sudo /etc/init.d/dhcp3-server restart

Servidor de tftp

Una vez instalado el servidor de tftp descarguemos los ficheros que utilizaremos para el inicio de la instalación.

Si usas Ubuntu -> netboot.tar.gz

Si prefieres Debian -> netboot.tar.gz

Una vez descargado descomprime lo en /var/lib/tftpboot/

$ sudo tar -xvvf NombreFichero.tar.gz –directory /var/lib/tftpboot/

En este caso NO es necesario reiniciar el servidor de tftp.

Comprobación que los servidores están arrancados

Intoduciendo $ netstat -uap. Deberian de aparecer dos procesos en escucha udp en el puerto 68 para dhcpd y 69 para tftpd. En caso de que falte alguno de los dos intenta arrancarlos.

DHCP: $ sudo /etc/init.d/dhcp3-server start
TFTP: $ sudo /etc/init.d/tftpd-hpa start


Transferir archivos con netcat

Posted on April 22nd, 2007 in Linux, tutoriales by Miggs

Introducción

Como transferir archivos entre dos maquinas interconectadas entre si de una manera rápida y sencilla usando netcat.

Requisitos

Descripción

Servidor

  • Al equipo donde se encuentra el archivo a copiar lo denominamos ‘Servidor’.
  • El servidor permanecerá en escucha hasta que el cliente se conecte a el.
  • Una vez el cliente se conecte, el servidor transferirá el contenido del archivo.
  • Una vez completada la transmisión, se cierra la conexión.

# nc -l -p 1234 < fichero.ext -q 0

-l modo de escucha.
-p puerto de escucha.
‘fichero.ext’ nombre del fichero a copiar
-q tiempo en segundos antes de salir una vez completada la transferencia.

Cliente

  • Al equipo donde queremos recibir la información lo denominaremos ‘Cliente’.
  • El cliente se conecta al servidor.
  • La información reciba una vez conectado la guardaremos en ‘fichero.ext’.
  • Una vez completada la transmisión, se cierra la conexión.

# nc servidor 1234 > Copiafichero.ext

servidor Hostname o ip del servidor
1234 puerto de escucha en el servidor
‘Copiafichero.ext’ nombre de la copia

Limitaciones

  • Netcat no usa ningún tipo de encriptación.
  • Por cada archivo a transferir es necesario crear un servidor.
  • Puertos por debajo de 1024 [0-1023] necesitan privilegios de administrador.

Video Tutorial: Backtrack 2 | Remote brute force attack

Posted on April 13th, 2007 in Linux, Seguridad, tutoriales by Miggs

Una de las responsabilidades de los administradores de sistemas es limitar el acceso a aquellos usuarios con autorización para entrar en el mismo. Con el fin de bloquear el acceso a terceros se crearon las contraseñas. Cada usuario posee un ‘nombre de usuario’ y una contraseña. Cada vez que un usuario quiere acceder al sistema se le piden dichos datos. Si el nombre de usuario y la contraseña coinciden con los almacenados en el servidor le permitimos el acceso, si no, se lo denegamos.

Uno de los problemas de este sistema surge cuando una tercera persona se hace pasar por uno de nuestros usuarios. Siempre y cuando conozca el nombre de usuario y su password se le permitirá el acceso, independientemente de que la persona no sea quien dice ser.

Otro problema es que si el acceso a sido denegado, el usuario puede volver a intentar acceso n numero de veces (normalmente n es infinito). Por lo general, limitar el número de intentos puede bloquearnos el acceso, haciendo del remedio peor que la enfermedad.

Un ataque muy común que se hace uso de dichas ‘vulnerabilidades’ son los ‘ataques basados en diccionarios’ (dictionary-based attack). El ataque consiste en bombardear al servidor con nombres de usuarios y contraseñas aleatorios. Es algo parecido a intentar abrir una caja fuerte introduciendo números al azar. Si alguna vez te has encargado de algún servidor ssh o ftp seguramente los hayas sufrido.

Ya que el número de posibles combinaciones de usuarios y passwords posibles es demasiado alto, en este tipo de ataque normalmente se usan diccionarios. Un diccionario (de passwords y/o usuarios) es un fichero de texto con nombres de usuario y passwords frecuentemente usados. Por ejemplo, en la mayor parte de sistemas nos solemos encontrar un usuario ‘root‘, y, estadísticamente hablando, passwords como ‘1234‘ o ‘qwerty‘ son usadas mas frecuentemente que ‘a\/gW1~3|23‘. Como te podrás imaginar, para diferentes idiomas se usan diferentes diccionarios.

Pero entonces…? SI!, La única manera de que este ataque funcione es que la combinación usuario-password este en tu diccionario, o en otras palabras, una mala gestión de usuarios/passwords.

El motivo por el que este tipo de ataques están tan extendidos es porque con un simple script podemos testear cientos o miles de servidores de forma automática sin necesidad de intervenir en el proceso. Otro motivo es que los ‘chicos malos’ necesitan ordenadores desde los que realizar sus ataques.

En un ataque real conseguir acceso al sistema es solo el primer paso. Una vez dentro se suele instalar como mínimo algún troyano con el cual garantizar el acceso en caso de que se cambie la password. Hay ocasiones en el que el atacante simplemente cambia la password para levantar sospecha y darle a conocer al usuario que su password es débil.

En este video tutorial os muestro un ejemplo práctico de cómo realizar este tipo de ataques y por supuesto como detectar su presencia.

Detalles técnicos

  • La distro usada para realizar el ataque es Backtrack 2, versión Live.
  • Para escanear la red y localizar posibles víctimas se uso nmap.
  • Para el ataque en si utilizamos medusa (~# man medusa).
  • El diccionario usado pertenece a ‘john the ripper‘ (Incluido por defecto en Backtrack 2).
  • El servidor de ssh en la víctima es una instalación estándar de OpenSSH.

Ver video tutorial

Video Tutorial: Backtrack 2 | Remote brute force attack

Pulsa aquí o sobre la imagen para acceder al vídeo tutorial.

Detección y prevención

La mejor forma de detectar este y cualquier tipo de ataque es comprobando los logs y analizando cualquier anomalía. En su día escribí un post llamado ‘Navegando entre los logs’ donde hable de cómo el servidor en el que se encuentra alojado esta web, Fujiyama, estaba en constante estado de alerta.

En ‘Consejos básicos: Mantener un servidor del ssh’ menciono las practicas mas habituales para evitar este tipo de ataques sobre servidores de ssh. En esa época decidí cambiar el puerto de escucha del servidor de ssh y desde entonces no he recibido ningún ataque en los dos últimos meses.


Review: Netdiscover, analizando la red.

Posted on March 27th, 2007 in Linux, Reviews, Seguridad, tutoriales by Miggs

Anoche saliste de fiesta, la ocasión se lo merecía, habías construido tu primer USB-KeyLogger. Desgraciadamente, se te fue un poco la mano con el alcohol y hoy te levantas en un lugar en el que nunca antes habías estado… Seguramente, lo primero que harás una vez levantado es mirar a tu alrededor y observar el entorno. Buscar elementos que te resulten familiares que te sirvan para hacerte una idea de donde estas y contra que es lo que te enfrentas.

No!, no me he vuelto loco. Sin embargo la situación es similar a cuando conectas tu ordenador a una red desconocida (ya sea por cable o Wireless). Inicialmente, si tienes suerte, habrá un servidor de DHCP que te proveerá de la mínima información necesaria para poder hacer uso de la red; una ip, una mascara de red y una puerta de enlace. Sin embargo nosotros queremos saber un poco mas sobre los aquello que nos rodea. Porque?, imagínate por ejemplo que alguien esta haciendo un mitm (man in the middle attack) con ettercap

Pues bien, hoy os presento netdiscover. Haciendo uso del ARP (Address resolution protocol), Netdiscover localizará todos los equipos de la red devolviéndonos una relación entra la ip local y la MAC de cada equipo.

Los que creyeseis (yo mismo hace una semana) que con broadcast un ping (ICMP echo request) es suficiente estáis equivocados. En muchas ocasiones os encontrareis que la función ping esta deshabilitada (por motivos de seguridad).

Esta es la pagina oficial de netdiscover. También es posible que os podáis hacer con el a través de alguno de los repositorios de tu distro.

Una vez instalado es bueno leerse el manual (man netdiscover). A groso modo estas son algunas de las opciones disponibles

Opciones Principales:

-i dispositivo: interfaz de red que quieres usar; eth0, eth1, wlan.

-r rango: rango que de deseas escanear. Ex: 192.168.1.0/24 escaneara todas las ips entre 192.168.1.0 y 192.168.1.255.

-p: modo pasivo. No infectará nada, solo escucha las peticiones ARP que lleguen a nuestro equipo (eficaz pero mas lento).

-s time: tiempo en milisegundos entre peticiones ARP. Útil si no quieres saturar la red o no quieres ser detectado por algún IDS.

-f: fast mode.

Ejemplos de Uso:

  • Búsqueda de direcciones comunes en eth0

# netdiscover -i eth0

  • Búsqueda en modo rápido de direcciones comunes en eth0 (solo la puerta de enlace)

# netdiscover -i eth0 -f

  • Ejemplo de análisis de algunos rangos

# netdiscover -i eth0 172.26.0.0/24
# netdiscover -i eth0 192.168.0.0/16
# netdiscover -i eth0 10.0.0.0/8

  • Idem que el primer ejemplo pero con un intervalo de 0.5ms (1ms por defecto)

# netdiscover -i eth0 -s 0.5

  • Búsqueda pasiva. Solo analiza el trafico entrante. No infectará nada a la red.

# netdiscover -i eth0 -p

Conclusion:

Personalmente estoy encantado con esta sencilla aplicacion. Obviamente netdiscover no tiene la potencia de otras aplicaciones como nmap, pero sin embargo “lo que hace lo hace bien” de una manera rápida y sencilla. Puede resultar muy útil en las primeras etapas del análisis de una red.


BackTrack 2

Posted on January 30th, 2007 in Linux, Seguridad by Miggs

Backtrack 2, es una de las distribuciones live mas populares del momento (en temas de seguridad). Para los novatos, Backtrack es una live creada y mantenida por remote-exploit.org, actualmente en su version 2.0.

Backtrack 2 esta basado en Slackware con un kernel 2.6.18 (lo cual esta muy bien), cuenta con mas de 300 aplicaciones con las que hacer prácticamente todo permitiéndote el uso o bien de KDE o de Fluxbox como GUI. Como muchas otras live, si te gusta, podras instalarla en el disco duro.

Lo primero me llamo la atención al arrancarla es lo estéticamente agradable que es el arranque del sistema (Aquí os dejo un screenShot). Una vez completado el arranque te permite elegir o bien usar la consola a modo texto o arrancar Fluxbox o KDE. A mi persona mente no me gusta KDE pero si Fluxbox.

El theme en Fluxbox lo han adaptado a sus necesidades y la verdad es que lo han dejado muy bien. Lo que mas me gusto es que la barra de aplicaciones ahora ocupa todo el ancho de pantalla. El menú por otro lado esta organizado según el tipo de aplicaciones (Scanners, Password Attacks, etc), eso puede engranar, ya que muchas de las utilidades entrarían en varias de las categorías (ex: ettercap), lo cual si no estas familiarizado con ellas puede llevar a cierta confusión.

La mayor parte de las aplicaciones incluidas vienen ya preconfiguradas listas para la acción! (yei), que aunque parezca algo trivial no es nada fácil. No he tenido la oportunidad de probarlas todas (ya que hay muchas que desconozco), pero por ahora contento.

Sin embargo no todo bueno y bonito. Un pequeño “bug” que me encontré en mi portátil es el DHCP en BackTrack no es capaz de inicializar correctamente los parámetros de la red, lo cual es curioso ya que si que carga correctamente todos los drivers (tanto de la tarjeta de red normal y de la wireless). Un detalle que si que me ha fastidiado profundamente es el uso del “elvis 2.2.0” en vez del clásico “vim”. No conozco el motivo de esta decisión, pero a mi personalmente me fastidia.

Otro problema que me he encontrado es que en el otro ordenador donde la he probado he sido incapaz de arrancar el entrono gráfico por incompatibilidad de drivers. Este es el “talón de Aquiles” de las lives, así que no se lo voy a tener muy en cuenta.

BackTrack 2 por tanto es una distro completa y bien mantenida y que si tienes la suerte de que soporte tu hardware te puede ser muy util. Sin embargo, en este área hay magnificas alternativas, las cuales complementan unas a otras (el monopolio es una mala practica!). Yo personalmente procuro siempre llevar al menos una “Knoppix STD” (algo vieja pero aun de las mejores) y una “nUbuntu” (mi favorita) siempre encima, ya depender de una siempre es un riesgo por problemas de compatibilidad de drivers. A partir de hoy BackTrack se une a la lista tercera opción (debido principalmente a la ausencia del vim). Aun así os aconsejo que la probéis y me mandéis vuestras conclusiones.

Un saludo. Miggs


Consejos basicos: Mantener un servidor del ssh

Posted on January 22nd, 2007 in Linux, Seguridad, tutoriales by Miggs

Ayer, de nuevo, un amigo mio fue víctima de un ‘dictionary-based attack’, afortunadamente, parece que el atacante lo único que hizo fue cambiarle la password del usuario en cuestión. Aun así, si alguna vez alguien se “cuela” en tu equipo, la única manera de asegurarse que la seguridad del equipo no esta comprometida es formatear y reinstalar el sistema.

Hoy voy a detallar un pelin mas como blindar nuestro servidor de ssh para disminuir el riesgo de éxito de este tipo de ataques.

Una conexión Shh consta al menos de dos elementos basicos; cliente y servidor. Las distribuciones basadas en Debian Linux, el cliente se llama ssh y su fichero de configuración se encuentra en “/etc/ssh/ssh_config”. Y el servidor se llama sshd y su configuración se encuentra en “/etc/ssh/sshd_config”. Como deberes, echale un ojo y navega entre la opciones enterandote de para que sirven cada una de las opciones, deshabilitando aquellas que no sean necesarias.

Los cambios realizados en el servidor no se harán efectivos mientras no se reinicie el servicio (“/etc/init.d/ssh restart”)!

Cambia el puerto de escucha. El puerto estándar de escucha de los servidores ssh es el 22. Mi consejo es que siempre que puedas lo cambies. Si tu servidor esta detrás de un router basta con que cambies el puerto de escucha en la NAT. Si también quieres que el cambio afecte al área local, entonces tendrás que actualizar el parámetro “Port” en “/etc/ssh/ssh_config”.

Ventajas:
Eliminas completamente las posibilidades de éxito de scripts que se dedican a ‘barrer’ ips (La gran mayoría de los intentos)

Desventajas:
En sistemas con un elevado numero de usuarios, el cambiar de puerto solo complicara la vida de los usuarios (un parámetro mas que memorizar). Siendo no siempre posible de cambiar.
Complica ligeramente el mantenimiento del sistema.

Deshabilita aquellas opciones que no se usen. Shh nos proporciona una gran cantidad de opciones y posibilidades; autenticación mediante llaves criptográficas, uso de passwords vacías, root loging, X11Fordwarding, etc. Cuanto mas controladas tengamos dichas opciones mejor (o por lo menos que sepamos lo que están activadas). Una cosa que mucha gente olvida es que con el de llaves criptográficas el uso de passwords deja de ser necesario, y el cambiar de password algún usuario no le impedirá el acceso al sistema si tiene configurada dicha opción.

Ventajas:
Conocimiento y control de todo aquello que se podrá hacer a través de ssh y por tanto eliminación de posibles sorpresas.

Desventajas:
Ninguna

Restringir el acceso a determinadas ips. Ssh nos permite dos tipos de poéticas; denegación de acceso a determinadas ips (o rangos de ips), o autorización a uno o varios rangos de ips.
En caso de que quisiéramos bloquear a todos los usuarios de telefónica, lo único que debemos hacer es denegar el acceso al rango de ips reservado para telefónica. De la misma manera si quisiéramos permitir el acceso a usuarios de Brasil, aceptaríamos aquellas ips provenientes de Brasil.
Cuidado al ser demasiado permisivos o restrictivos a la hora de permitir o limitar acceso, ya que puede ser que bloquemos a gente a la que no debamos bloquear. además recordar que mediante el uso de proxys se puede enmascarar la ip de origen y saltarse dicha limitación.

Ventajas:
Pocas

Desventajas:
Este método suele resultar problemático. El motivo por el que lo nombro es para que sepáis de su existencia, es equivalente al filtrado de MAC en redes wifi.

Uso de llaves criptográficas. Esta es la forma mas segura de conectarse a un servidor ssh. Cada usuario posee una llave publica y una privada. La llave publica se guarda en el servidor (para encriptar), y la privada es guardada por el usuario (para desencriptar). Cada vez que nos conectemos al servidor este se encargara de comprar si la nuestra llave privada concuerda con alguna de las llaves publicas alojadas almacenadas en dicho servidor. Si alguna de estas concuerda entonces nos permitirá el acceso (evitando el introducir passwords).

Ventajas:
Muy cómodo en caso de múltiples accesos desde un mismo equipo.
Evita ataques “man in the middle”.
Cada usuario se encarga de mantener, y actualizar sus llaves.
Muy complicado de acceder por fuerza bruta.

Desventajas:
Necesidad de transportar la llave privada de un sitio a otro (algo engorroso si cambias constantemente de equipo).
Responsabilidad de mantener segura la llave privada (ya que en caso de que alguien se haga con ella podrá acceder al sistema).
Puede resultar algo abstracto para gente con conocimientos limitados en criptografía.

Limitar el número de intentos fallidos. Esta técnica es independiente del servidor de ssh. Consiste en bloquear el acceso a una determinada ip después de n intentos fallidos. Aquí os dejo un link de cómo implementarlo con iptables. Lo importante es que sepáis que esta existe y se puede implementar con relativa facilidad.

Ventajas:
Reduce drásticamente la posibilidad de éxito de ‘dictionary-based attacks’.

Desventajas:
Posibilidad de bloquear a nuestros propios usuarios.
Abierto a ataques DoS.

Conclusión:
Una buena gestión de usuarios y passwords es clave. Eliminar usuarios en desuso, el uso de aplicaciones como “Johnny the ripper” para localizar passwords “vulnerables”, y el cambio periódico de passwords son la mejor manera de mantener un sistema seguro!
Como en todo el peor enemigo de cualquier administrador es el desconocimiento del sistema. Por lo general, para el típico servidor de archivos casero, con cambiar el puerto de escucha y limitar los servicios disponibles es suficiente, aunque no siempre posible. Para equipos donde la seguridad es critica mi consejo es el uso exclusivo de llaves criptográficas como método de acceso. El restringir el acceso de ips puede parecer una buena idea, sin embargo no lo recomiendo bajo ninguna circunstancia.


Next Page »