Enviar email cuando el usuario root se conecta por SSH

Una de las configuraciones que más utilizan los administradores de sistemas Linux es la configuración de envío de mail al administrador cuando se detecta un acceso del usuario root al sistema por medio de SSH.

Para ello lo primero que debemos hacer es encontrar un archivo de sistema en entornos Linux que sepamos se ejecuta cada vez que un usuario se conecta, es decir, cada vez que un usuario hace login. Como muchos de vosotros sabréis, ese archivo de sistema en Linux es el archivo oculto .bash_profile. Este fichero es leído y todos los comandos incluidos en él ejecutados cada vez que un usuario se conecta al sistema.

En este fichero podemos indicarle al sistema que cada vez que un usuario se conecte efectúe cierto número de acciones, entre ellas la que queremos configurar en esta ocasión, el envío del mail al administrador.

Como queremos que se envíe cuando se conecte el usuario root, debemos de modificar el fichero .bash_profile correspondiente. Para ello nos conectamos como root y nos dirigimos a al directorio root. Allí editamos .bash_profile con nuestro editor de texto preferido.

En este caso utilizaré nano:

Continuar leyendo «Enviar email cuando el usuario root se conecta por SSH»

Securizar el Kernel de Linux con Grsecurity

La seguridad se basa en tres características: la prevención, la protección y detección. Grsecurity es un parche para el kernel de Linux que le permite incrementar cada uno de estos puntos.

Esta guía se realizó en un sistema Debian Lenny. Así que hay algunas herramientas específicas de Debian. Sin embargo, las tareas se pueden realizar con otras herramientas específicas de cada distribución o, incluso, con las herramientas universales (make).

Todo se hace con privilegios de root. Sin embargo, puedes realizarlo con una cuenta limitada gracias a sudo y fake-kpkg tools.

Link a la guia.

Securizar y proteger el acceso SSH

SSH (Secure SHell) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red.

Permite manejar por la computadora mediante un el intérprete de comandos instalado en la misma (bash, ksh, etc..), y también puede redirigir el tráfico de X-Windows para poder ejecutar programas gráficos si tenemos un Servidor X arrancado en nuestra máquina local.

Asegurando SSH:

Aunque SSH en sí es un protocolo seguro, podemos afinar los parámetros de configuración para hacer que su utilización resulte todavía más segura.

Pasos que seguiremos:

  • Deshabilitar SSH 1.
  • Autenticación basada en llave RSA.
  • No permitir autenticación mediante login/password.
  • No Permitir acceso como root sin llave.
  • Cambiar el puerto por Defecto.
  • Banear IPs tras 5 logins erróneos.

Deshabilitar SSH 1:

Continuar leyendo «Securizar y proteger el acceso SSH»

Securizar el directorio /tmp a noexect

Buenas como todos sabeis hay un colectivo de gente que se dedica a explotar exploits de scripts estilo php-nuke pos bla bla que lo que hace es colarte en tu directorio /tmp del server un script muy chulo que o se te logea como root o te hace mil putadas bien la mejor manera de evitar esto es hacer que nada se pueda ejecutar desde ese directorio aparte de configurar bien tu firewall y tener una vigilancia constante como es lógico

Como ROOT haceis estos pasos:

cd /dev
dd if=/dev/zero of=tmpMnt bs=1024 count=100000
/sbin/mke2fs /dev/tmpMnt
(Contestad y a la pregunta que os hace)
cp -R /tmp/ /tmp_backup
mount -o loop,rw,nosuid,noexec /dev/tmpMnt /tmp
chmod 0777 /tmp
cp -R /tmp_backup/* /tmp/
rm -rf /tmp_backup

Ahora hay que modificar el /etc/fstab para hacer que el /dev/tmpMnt se monte al reiniciar el server. Es añadir esta linea:

/dev/tmpMnt /tmp ext2 loop,rw,nosuid,noexec 0 0
(OJO: los espacios de esta linea son tabuladores).

Reiniciad los servicios como por ejemplo postgresql , mysql, el clamantivirus, etc… para que se recreen bien los sockets y locks en el dir tmp si es ahi donde los creaban.

Para probarlo cread un shell en el /tmp e intentad ejecurtarlo. Ejemplo:
pegad esto dentro:

#!/bin/sh
echo prueba

lo guardais como en /tmp/test.sh y le haceis un chmod 0755 e intentad ejecutarlo desde dentro del /tmp, y os ha de dar esto:

[root@server tmp]# ./test.sh
bash: ./test.sh: bad interpreter: Permission denied

chapucillas que tb funciona y es bueno tenerlas.
Una formna rápida si no te quieres liar mucho con el asunto es anulando el acceso a wget linx y derivados, si no los usas y al compilador de C.

Para lo primero tienes una forma facil de hacerlo, cambiales el nombre wget ->wlee pr ejemplo y no lo encontrarán.

O chmod -ax cuando no lo utilizes con lo que anulas el acceso a ejecutar.

Es mas facil, mas rápido y menos dolores de cabeza que el poner tmp en noexec.

o bien:

Te creas un archivo de texto pones esto

chmod 000 /usr/bin/wget
chmod 000 /usr/bin/lynx
chmod 000 /usr/bin/*cc*
chmod 000 /usr/sbin/*cc*

Y luego le das permisos de ejecucion, nadie podra utilizar el wget ni el lynx ni compilar, puedes añadir todos los que quieras.

Despues creas el mismo (con otro nombre, por ejemplo abrir)

y le pones

chmod 755 /usr/bin/wget
chmod 755 /usr/bin/lynx
chmod 755 /usr/bin/*cc*
chmod 755 /usr/sbin/*cc

Tambien le das permisos de ejecucion, asi cuando quieras compilar o descargar algo solo tu podras dar esos permisos.
Espero que os guste amigos sysadmins