Mostrando entradas con la etiqueta tips. Mostrar todas las entradas
Mostrando entradas con la etiqueta tips. Mostrar todas las entradas

08 septiembre 2013

Mas Recomendaciones para Asegurar Nuestros Servidores Linux



Vamos con más recomendaciones para mejorar la seguridad de nuestros servidores, pero esta vez nos vamos a centrar un poco en reforzar la seguridad física de nuestros servidores que es otro punto importante para garantizar la integridad de los servicios y datos que alojan estos.. Vamos a ver unas medidas que podemos tomar para aumentar mucho más la seguridad de estos.


1- Coloque un Password al BIOS

Todos conocemos lo que es el BIOS, controla muchos parámetros importantes incluyendo desde donde bootea nuestro servidor y en qué orden. Esto puede ser una gran brecha de seguridad ya que si un malintencionado tiene acceso a nuestro servidor podría subir un sistema operativo alterno y tener acceso a informaciones  que tal vez consideremos delicadas. Así que es una medida que debemos tomar de colocarle un password al acceso al BIOS.

2- Coloque un Password a GRUB

Por defecto las distribuciones más populares de Linux usan GRUB como su Bootloader. GRUB puede ser utilizado para seleccionar diversas imágenes de Kernel disponibles en la partición del sistema operativo, así como pasarle parámetros de booteo al kernel. También nos permite bootear desde otra partición o dispositivo. GRUB puede ser utilizado para evadir cualquier medida de seguridad incluyendo la autenticación mediante el modo single User. Así que debemos proteger GRUB mediante un Password para mejorar la seguridad y que no puedan modificar los parámetros de booteo. Esto se logra con el comando grub-md5-crypt. Estaré publicando un tutorial sobre cómo lo logramos.

3- Activemos la Autenticación para el modo Single-user

El modo Single-user es usado para la recuperación del sistema. Por defecto, no se requiere autenticación cuando usamos este modo. Esto puede ser utilizado para evadir la seguridad del servidor y obtener acceso root. Así que es muy importante que activemos la autenticación para el modo Single User. Para lograr esto seguimos estos pasos como root:
# vi /etc/inittab
Al final del archivo agregamos.
su:S:wait:/sbin/sulogin
Ahora cuando queramos acceder al modo Single-user nos pedirá el password de root.

4- Deshabilite Ctrl-Alt-Delete

Cualquier mal intencionado que tenga acceso físico a nuestro servidor puede usar el teclado o conectar uno y simplemente usar la combinación de tecla Ctrl-Alt-Delete para reiniciar el servidor sin necesidad de loguearse. Imaginemos que nos reinicien un servidor crítico en un momento Crítico, así que lo mejor es que aseguremos esta parte por igual. Para deshabilitarlo y nos aseguramos que la siguiente línea estas comentada en /etc/inittab.
# vi /etc/inittab
ca::ctrlaltdel:/sbin/shutdown -t3 -r now ( Esta línea debe estar comentada)
Para que los cambios tengan efecto:
# init q

 5- Deshabilite el Booteo interactivo

Algunas distribuciones de Linux le permiten al usuario al momento del booteo entrar en modo interactivo presionando la tecla I. Usando este modo, un atacante puede deshabilitar el firewall y otros servicios del sistema. Para deshabilitar el modo interactivo seguimos los siguientes pasos como root.
Modificamos el Archivo /etc/sysconfig/init
# vi /etc/sysconfig/init
Modificamos lo siguiente:
PROMPT=no
Recuerden que una de nuestras responsabilidades cuando somos administradores de servidores es la seguridad y debemos de tratar de tener los mayores niveles para mantener la integridad de los datos.

07 agosto 2013

Mejores Prácticas de Seguridad para OpenSSH

OpenSSH es una implementación del protocolo SSH, es recomendado para login remoto, hacer backups, transferencia de archivos vía scp o sftp y mucho más. SSH es perfecto para mantener la confidencialidad y la integridad de los datos intercambiados dentro de una red o sistema. Ahora bien, es necesario seguir algunos lineamientos para mejorar la seguridad de un servidor OpenSSH. Aquí les voy a enumerar las más importantes.

1- Solo use el Protocolo SSH versión 2

La versión 1 del protocolo SSH tiene un problema de vulnerabilidades de Seguridad. SSH-1 ya está obsoleto y debemos evitarlo. Para asegurarnos que estamos corriendo la versión 2 lo verificamos el archivo sshd_config.
# vi /etc/ssh/sshd_config
Y verificamos que este la siguiente línea, si no está lo agregamos.
Protocol 2

2- Limite el acceso de usuarios vía SSH

Por Defecto todos los usuarios creados en un sistema linux pueden loguearse vía SSH usando sus contraseñas o llave pública. A veces creamos cuentas de usuarios para ftp, email u otro propósito, sin embargo estos usuarios también se pueden loguear al sistema vía ssh lo que es una gran vulnerabilidad de seguridad. Estos usuarios tendrán acceso a herramientas del sistema y la capacidad de correr scripts ya sea para abrir puertos o hacer cualquier cosa. Así que la mejor recomendación seria de limitar quien tiene acceso o no vía SSH.
Para esto accesamos al archivo sshd_config
# vi /etc/ssh/sshd_config
Si solo queremos que se loguee vía ssh root, usuario1 y usuario2 modificamos lo siguiente en sshd_config
AllowUsers root usuario1 usuario2
Si solo quiero bloquear los usuarios usuario3 y usuario4
DenyUsers usuario3 usuario4
Estas directivas están en sshd_config, si no están lo pueden agregar.

3- Configure el LogOut por tiempo de inactividad

Es recomendable configurar esta directiva para evitar sesiones SSH desatendidas. Esto se configurar por igual en el archivo sshd_config.
# vi /etc/ssh/sshd_config
Y modificamos o agregamos lo siguiente
ClientAliveInterval 300
Aquí le estoy diciendo que pasado los 300 segundos sin entrada que desconecte el usuario.

4- Cambie el puerto por Defecto de SSH y Limite las conexiones por IP

Por Defecto SSH conecta desde todas las interfaces de Red y Direcciones ip del sistema. Limite las direcciones por donde conecta y cambie el puerto por defecto de SSH (22). Por lo general los ataques de fuerza bruta intentan conectarse por el puerto 22. Para configurar esto accesamos a sshd_config y modificamos o agregamos lo siguiente:
# vi /etc/ssh/sshd_config
port 2022
ListenAddress 192.168.3.1
ListenAddress 100.88.21.2
Aquí le estoy diciendo que solo permita conexiones por las direcciones 192.168.3.1, 100.88.21.2 y por el puerto 2022

5- Utilice contraseñas complejas

Es de vital importancia el uso de contraseñas complejas ya que los ataques de fuerza bruta utilizan claves basadas en diccionario.

6- Utilice Autenticación basada en llaves públicas

Más adelante publicare un post hablando exclusivamente de esto y cómo podemos configurarlo.

 7- Deshabilite la autenticación basada en Host

Para deshabilitar este método de autenticación, modificamos o agregamos lo siguiente en sshd_config.
# vi /etc/ssh/sshd_config
HostbasedAuthentication no

8- Filtrar las conexiones

Por defecto SSH permite conexiones desde cualquier dirección ip. Lo mejor es definir algunas reglas en Iptables para limitar las conexiones a una ip o segmento de red especifico. En este caso usare el puerto por defecto de SSH (22) o si configuramos otro pues utilizamos ese. Para permitir la conexión SSH desde un segmento de red especifico y bloquear las otras conexiones hacemos lo siguiente como root:
# iptables -A INPUT -p tcp -m tcp -s 192.168.3.0/24 –dport 22 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp -s 0.0.0.0 –dport 22 -j DROP
Siguiendo estas recomendaciones tendremos un servidor mucho mas seguro.

05 agosto 2013

Asegurando nuestros servidores Linux

Vamos con otra publicación de seguridad y que recomiendo que se le ponga mucha atención. Mas todavia si somos administradores de sistemas y cuando nuestros servidores corren servicios críticos.

Asegurando nuestro servidor Linux es importante para proteger nuestros datos y propiedad intelectual de la mano de los Hackers. El Administrador de Sistema es responsable de la Seguridad de un servidor Linux. En esta parte le voy a suministrar varios tips para reforzar la seguridad de un servidor con una instalación de Linux.

Minimizar los Sofware para Minimizar las Vulnerabilidades

Realmente una de las cosas mas importantes es verificar los softwares instalados y si realmente los necesitamos. Hay que evitar tener software innecesario y de esa manera evitamos tener vulnerabilidades en los softwares. Usemos herramientas como Yum, dpkg, RPM, o apt-get dependiendo de la distribución que estemos utilizando para listar los software que tenemos instalados y asi eliminar lo que entendemos que no son necesarios.
Algunos ejemplos,

# yum list installed
# yum list nombredelpaquete
# yum remove nombredelpaquete

# dpkg –list
# dpkg –info nombredelpaquete
# apt-get remove nombredelpaquete

#rpm -qa
#rpm -e nombredelpaquete

Mantener el Kernel y los Sofwares Actualizados

Aplicar Parches de Seguridad es una parte vital en el mantenimiento de un servidor Linux. Linux provee todas las herramientas necesarias para mantener nuestro sistema actualizado y con los ultimos parches de seguridad. Aqui podemos utilizar las herramientas de administracion de paquetes como yum, apt-get o dpkg.


# yum update
# apt-get update && apt-get upgrade

Encriptar la comunicación de Datos

Todos los datos que se transmiten por una red puede ser interceptada, por eso es de vital importancia encriptar los datos donde sea posible usando claves, llaves o certificados.
Evitemos el Uso de FTP, Telnet. Rsh. En muchas configuraciones de red los nombres de usuarios, claves y archivos durante una transferencia por FTP, Telnet o rsh pueden ser capturados por cualquiera que este en la red mediante un Sniffer. La mejor práctica es usar OpenSSH, SFTP o FTPS ( FTP sobre SSL), los cuales agregan niveles de encriptación haciendo mucho mas difícil la captura de esos datos que están viajando.

Un solo servicio de Red por Servidor Fisico o Virtual

Es recomendable correr los servicios de red en servidores separados. Esto limita el número de los servicios que pueden ser comprometidos. Para dar un ejemplo, si un hacker logra accesar al sistema por una vulnerabilidad de algún software o servicio, como apache, este también tendría acceso a otros servicios, digamos MySQL, servidor de correo, Etc, si estos corren en el mismo servidor.

Deshabilite servicios innecesarios

Deshabilite servicios innecesarios que corren en Segundo plano y que no estan siendo utilizados. Es recomendable también deshabilitarlos en el booteo. Si queremos un listado de los servicios que están activos en un Runlevel específico corremos el siguiente comando como root.

#chkconfig –list | grep ’3:on’

Aqui estamos listando los servicios que suben en RunLevel 3

Si queremos deshablitar un servicio

# service nombredelservicio stop
# chkconfig nombredelservicio off

 Cierre cualquier puerto de comunicación que no sea necesario

Podemos correr los siguientes commandos para listar los puertos abiertos en nuestro sistema y los programas asociados.

#netstat -tulpn

o

#nmap -sT -O localhost
#nmap -sT -O ejemplo.com

Es recomendable solo dejar abierto los puertos que estemos utilizando y los que no pues lo mejor es cerrarlos o filtrarlos por Iptables. Mientras menos puertos tengamos abiertos menos posibilidad tenemos de que puedan accesar a nuestro servidor. Y si filtramos lo que tenemos abiertos pues reforzamos todavía mas la seguridad.

Mas adelante les estará hablando con mas profundidad sobre la Herramienta NMAP  y como podemos filtrar las conexiones a estos puertos.

Estos son solo algunos de los tips de muchos otros que tengo para ustedes y que estaremos viendo y analizando.




16 julio 2013

[tip] Vista de Arbol de directorios desde la terminal

Encontre este comando que lista los directorios en forma de arbol desde la terminal.

Muchas veces el comando ls o ls -R  no son suficientes este comando puede que sea util

find . -type d | sed -e "s/[^-][^\/]*\// |q" -e "s/|\([^ ]\)/|-\1"

22 marzo 2013

Agregar 'Abrir en terminal' al menu de Nautilus

Algunas veces queremos o necesitamos abrir la terminal en una carpeta especifica y un poco tedioso buscar desde el inicio e ir cambiando uno a uno los directorios hasta llegar al directorio deseado. La solucion? agregar la opcion 'Abrir en temrinal al menu de Nautilus.
Aca los pasos:

sudo apt-get install nautilus-open-terminal gconf-editor


luego abrimos gconf-editor o editor de configuraciones buscandolo en el menu de aplicaciones o podemos con alt+f2 y  gconf-editor

y seleccionamos
/ ->desktop ->gnome -> interface

Y alli seleccionamos can_change_accels

luego desde la terminal escribimos el siguiente comando

nautilus -q

y listo! ahora podemos abrir cualquier directorio en la terminal desde nautilus


fuente: askubuntu

Y no olviden el sorteo que ociolinux tiene para este mes http://ociolinux.blogspot.com/2013/03/ociolinux-rifa-2-humble-bundle-5.html