Entradas

Mostrando entradas de abril, 2014

Password en el Grub

Es posible proteger la edición de los parámetros de arranque del sistema operativo, concretamente de RedHat. La edición de parámetros funciona para los administradores, y los curiosos, que busquen entrar al sistema sin autenticación para llevar a cabo tareas de mantenimiento.

En una terminal escribe el siguiente comando:

# grup-md5-crypt
Introducimos la contraseña que deseamos, y pegamos la salida en el archivo menu.lst (o grub.conf):

# vi /boot/grub/menu.lst
Y a continuación pegamos después de la directiva timeout.


password --md5 SUPASSWORDENCRIPTADO
Para validar que sea correcto, reiniciamos el ordenador y verificamos que nos pida desbloquear las opciones tecleando la letra p.
Esto no es un truco ni mucho menos, es mas bien, una tarea de administración básica, e incluso una medida de seguridad contra los script kiddies.

Hping (SYN Scann)

Imagen
Hping es una herramienta potente en la construcción de paquetes de red, con funciones para escanear puertos. Los paquetes que podemos construir son TCP, ICMP y UDP. Otra característica es que podemos modificar los encabezados de los paquetes, pudiendo hacer prácticamente lo que sea y atravesando muchas de las reglas de firewall.
Escaneando puertos

Las opciones que tenemos para usarlo como escaneador de puertos son:

-F --fin-S --syn-R --rst-P --push-A --ack-U --urg
Vamos a ver un ejemplo sumamente práctico.

$ hping -S -c 4 -p 80 google.com.mx
El comando anterior tiene la función de crear un paquete TCP con el bit de SYN activado. La bandera -c 4 indica que tan solo se manden 4 paquetes. El puerto destino es el 80 y la url google.com.mx


Como la imagen muestra, el puerto nos respondió con paquetes. 
Con este método, podemos hacer escanear puertos, aprovechándonos de el método de conexión de TCP (orientado a conexión).
Otra característica interesante es cómo escanear puertos, únicamente con…

Análisis de conexiones TIME_WAIT

Imagen
El tema de las conexiones mal utilizadas es un dolor de cabeza para muchos administradores de servidores de aplicaciones. Es común que las aplicaciones que mantenemos en nuestro resguardo sufran degradación, e incluso fallos, por el "simple" hecho de no cerrar las conexiones o tardar demasiado en hacerlo (vía sistema operativo). Como sabemos, una conexión pasa por varios estados, mismos que salen de la intención de este escrito.



Las conexiones establecidas (ESTABLISHED) son demasiado costosas cuando abren y cierran, debido a eso, se han creado manejadores de conexiones (pooles) que mantienen abiertas las conexiones para reutilizarlas dependiendo la demanda. Es por eso, que en medida de lo posible, hay que utilizar un manejador de conexiones, ya sea a base de datos o algún broker.

Entrando de lleno al tema, las conexiones en estado TIME_WAIT son un problema por el consumo de memoria, ocupando cada una 64k de memoria no paginable, es decir,  todo el tiempo se mantienen en mem…

SSH sin password

Mi trabajo se va entre terminales, y no es que las odie, al contrario, son una elección de vida. Toda elección contrae desventajas. En mi caso, son las tareas repetitivas que día con día tengo que hacer.

Una de las tareas que más odio, es autenticarme a cada cuenta, a cada servidor que tengo que acceder. Una forma de evitarlo es generar un par de llaves, una privada y una pública, para que el otro sistema confíe en nosotros.

Lo primero es ejecutar el siguiente comando. Con él, generamos la llave privada y pública. Elegimos la ruta (yo la dejé por defecto), si queremos o no contraseña (¡¡yo no quiero más contraseñas!!)

lyonn@mictlan:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/lyonn/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/lyonn/.ssh/id_rsa.
Your public key has been saved in /home/lyonn/.ssh/id_rsa.pub.
The key fingerprint is:
54:92:fa:…

Securitizando SSH

En todas las distribuciones de GNU/Linux y Solaris he encontrado SSH como vía estándar de comunicación remota. ¿Por qué? Es simple de implementar, de utilizar y sumamente segura por su carácter de encriptación de los puentes que se hacen. No solo podemos sustituir Telnet, también podemos hacer túneles que nos permiten escapar de los firewalls restrictivos. 
Al ser un punto de entrada,  por ello capital, es necesario aplicar ciertas políticas de seguridad, especialmente en aquellos sistemas que son productivos.
Las siguientes políticas podrían ser útiles para tal tarea.
No permitir validación de rootReducir la cantidad de usuarios que pueden autenticarseSólo permitir la versión 2 de SSHUsar llaves para autenticarse
El root es digamos que el usuario más perseguido en las intrusiones, pues su carácter casi bíblico lo hace ser el súper usuario, el usuario de usuarios. Para evitar que por algún descuido alguien pueda robarnos la cuenta, y robarnos lo que sea, desactivamos la directiva del …

Comunicación entre terminales

Imagen
En el mundo de GNU/Linux, las funciones de los distintos comandos y complementos son ofertados de manera individual, la mayoría de las veces. El poder de este sistema operativo no radica en su construcción primera, mas bien, en el multiproposito y la flexibilidad con la que podemos armar nuestro sistema.

Hay legados que son imposibles de negar, y mucho menos, de sustituir. En el mundo del Software Libre, se utiliza el término alternativa, que no es meramente retórico, sino mas bien, se recarga en el acoplamiento de los componentes nuevos y viejos, o que simplemente "hacen lo mismo".


Entrando de lleno al tema, para muchos el uso de nc, o netcat, es indispensable para sus tareas administrativas. Esta utilería está llena de opciones y funciones, sin embargo, yo presentaré quizá la más simple de todas.

Cuando deseamos validar reglas de firewall o aperturas de puerto, podemos utilizar en dos vías nc. En el servidor ejecutamos:

$ nc -l -p 1234 Estas opciones dictan:

-l En modo de…