Mostrando entradas con la etiqueta Seguridad. Mostrar todas las entradas
Mostrando entradas con la etiqueta Seguridad. 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.

03 septiembre 2013

Conociendo Nmap, Scanner Puertos de Comunicación (Seguridad)

Aqui les traigo otro post enfocado tambien en seguridad.

Nmap es una utilidad que nos sirve para explorar y auditar la seguridad de una red de comunicación o un dominio. Detecta Host, que puertos tiene abierto, servicios y aplicaciones que corren, sus sistema operativo,Firewalls, entre otros. Es una Excelente herramienta para realizar auditoria de redes y se usa para llevar a cabo escaneo rapidos en una gran cantidad de redes pero se pueden utilizar en host individuales.

Es capaz se utilizar diferentes técnicas de evasión de detección como escaneo stealth. Soporta escaneos sobre ciertos puertos específicos, entre rangos IP específicos, uso se paquetes Null, FIN, Xmas y ACK, además SYN que es el paquete por defecto. Esto significa que se mandan cierto tipo de paquetes a cada puerto y estos responderán con alguna señal que permitirá a scanner encontrar versiones y servicios.
Para instalar esta herramienta simplemente corremos estos comandos con root.
#yum install nmap
o
#apt-get install nmap
Ahora bien, nmap tienes varias opciones, aqui solo les mostraré algunas.
Si queremos hacer un escaneo basico podemos correr el comando nmap seguido de una ip o dominio pero solo nos devolvera los puertos que estan abiertos.

#nmap 192.168.1.2
o
#nmap ejemplo.com
Para escanear un rango de puertos especificos.
#nmap -p 22-60 192.168.1.1
Si queremos activar la detección de Sistema Operativo.
#nmap -O 192.168.1.1
o
#nmap -O ejemplo.com
Escanear con detección de puertos, sistema operativo y mas informaciones
#nmap -A -v 192.168.1.1
o
#nmap -A -v ejemplo.com
Cuando les hablaba en un post anterior sobre tips de seguridad, tocamos el tema de los puertos, con estos comandos podemos detectar que puertos abiertos tiene nuestro servidor y de ahi podemos proceder a cerrar lo que entendemos que no son necesarios. Como les hable esto es muy importante para reforzar la seguridad de nuestro servidor.
Aqui les dejo un Link para que vean mas a fondo todo sobre esta herramienta y las diferentes opciones. Les recomiendo que lo lean y lo pongan en práctica.

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.

06 agosto 2013

OpenSSH, Instalación y Configuración

Secure Shell (SSH) es un protocolo de red que nos permite ejecutar un shell en una maquina remota mediante un canal seguro. Hoy veremos como instalar OpenSSH que es una implementación del protocolo SSH de código abierto, que nos permite la comunicación encriptada a un host remoto mediante una red. Esto tipo de conexiones es vital para los administradores de sistema ya que nos ayuda a realizar cualquier tarea administrativa dentro del servidor desde una ubicación remota. Si queremos configurar el acceso SSH en un servidor o maquina en linux podemos instalar OpenSSH.

Para instalar OpenSSH  ejecutamos los siguientes comandos.

#yum -y install openssh-server openssh-clients

o

#apt-get install openssh-server

Ahora subimos el servicio

#service sshd start

Si queremos que el servicio inicie automáticamente cuando linux suba ejecutamos lo siguiente:

#chkconfig –level 235 sshd on

Con este comando el servicio subirá automaticamente en los Runlevel que especificamos.

Ya en este punto, pueden conectarse a la maquina remotamente por el puerto 22, usando un cliente SSH como putty por ejemplo.

Ahora por cuestiones de Seguridad es necesario que cambiemos algunas configuraciones. Para esto podemos modificar el archivo de configuración de sshd el cual se encuentra en la ruta/etc/ssh/sshd_config.

Vamos a ver algunos de las opciones que pueden modificar y como accesar al archivo para modificarlo.

Ejecutamos el comando,

#vi /etc/ssh/sshd_config

Aquí tenemos el archivo listo para modificarlo, las opciones que nos interesaría modificar serian las siguientes. Cuando este listo para modificar, presionamos la tecla i para poner a vi en modo insertar.

port 22 ( por defecto, sshd escucha por el puerto 22. Cambiandolo a otro puerto (ej: 2022)  es posible que podamos evitar ataques dirigidos a nuestro servidor por los hackers usando este puerto)

ListenAddress ( Si nuestra maquina linux tiene mas de una interface de red, y queremos especificar a que interface sshd se debe unir, podemos usar esta opción. Esto nos permitirá mejorar la seguridad limitando las conexiones SSH por una interfaz especifica.

PermitRootLogin no ( Esta opción permite o no que el usuario root se loguee por ssh )

AllowUsers ( Aqui podemos permitir el acceso via SSH a usuarios particulares. Si vamos a especificar multiples usuarios lo separamos por coma.

Una vez finalicemos de configurar el archivo, le damos esc, :,  wq y enter.

Procedemos a reiniciar el servicio.

#service sshd restart

Ya tenemos nuestro servicio ssh corriendo y permitiendo conexiones.

En un proximo post les voy a mostrar cuales son las mejores prácticas de seguridad para OpenSSH.


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.




04 agosto 2013

Buscando vulnerabilidades en Linux con Lynis

     

 
Hoy quiero iniciar con un poco de seguridad en Linux, y este es solo una de las muchas publicaciones que veremos referente a seguridad en Linux.

Ya sea que somos administrador de sistemas Linux, Auditor de seguridad o auditor de Sistemas, nuestra responsabilidad incluye tareas como:  Instalación de parches de Seguridad o Software, Escaneo de Malware, Verificación de la integridad de los archivos, auditoría de seguridad, verificación de errores en la configuración y muchas tareas mas. Si contamos con herramientas capaz de buscar vulnerabilidades automáticamente  nos puede ayudar bastante al momento en que estemos verificando nuestro sistema por fallas de seguridad.

Una de esas herramientas es Lynis que nos ayuda a detectar problemas de configuración que pueden ser aprovechadas para atacar nuestro sistema. Esta herramienta es soportada por multiples plataformas incluyendo CentOS, Debian, Fedora, FreeBSD, MacOS, Ubuntu, OpenSolaris, Red Hat entre otros.

Cuando escaneamos nuestro sistema con Lynis, este realizará una auditoría en varias categorías, tales como:

  • Herramientas del Sistema
  • Booteo y Servicios
  • Kernel
  • Procesos y memoria
  • Usuarios, Grupos y metodos de autenticación
  • Shells
  • Sistema de Archivos
  • Almacenamiento
  • Sistemas de Archivos en la Red, NFS
  • Aplicaciones
  • Servicios de Nombre: DNS, Bind
  • Puertos
  • Paquetes
  • Servicios de Red
  • Servicios de Impresión
  • Correo y mensajería
  • Servicios de Red: Nginx, Apache
  • SSH
  • SNMP
  • Base de Datos: MySQL, Oracle, MariaDB
  • LDAP
  • PHP
  • Squid
  • Archivos y Logging
  • Servicios Inseguros: Inetd
  • Tareas Programadas: Cron, atd
  • Criptografía
  • Virtualización
  • Integridad de los archivos
  • Malware
  • Directorios
  • y mas.

El reporte de auditoría nos dara avisos de vulneraribilidades encontradas en nuestro sistema. Tambien nos dará sugerencia para reforzar la seguridad  de este,

Para instalar esta valiosa herramienta solo tenemos que seguir estos pasos.

Entramos a una terminal en nuestro sistema linux y ejecutamos los siguientes comandos como root, entramos a una carpeta temporal o a donde queremos instalar la herramienta, en este caso creare una carpeta dentro de /tmp llamado Lynis

# cd /tmp

Creamos la Carpeta Lynis

# mkdir lynis

Accedemos a la carpeta

# cd /lynis

Descargamos lynis

# wget http://www.rootkit.nl/files/lynis-1.3.0.tar.gz

Finalmente extraemos los archivos.

# tar xvfvz lynis-1.3.0.tar.gz

Para correr la herramienta simplemente ejecutamos el siguiente comando.

# /tmp/lynis/lynis-1.3.0/lynis –check-all -Q

Una vez la Herramienta termine de escanear, este guardará su reporte de auditoría a la ruta /var/log/lynis.log 

Aqui les muestro un fragmento del log de Lynis para que visualicen como detecta una vulnerabilidad y la sugerencia para solucionarlo.

[15:51:37] Info: performing tests from categories:

[15:51:37] ===—————————————————————===

[15:51:37] Performing test ID BOOT-5121 (Check for GRUB boot loader presence)

[15:51:37] Test: Checking for presence GRUB conf file (/boot/grub/grub.conf or /boot/grub/menu.lst)…

[15:51:37] Found file /boot/grub/grub.conf, proceeding with tests.

[15:51:37] Result: Didn’t find MD5 hashed password line in GRUB boot file!

[15:51:37] Risk: user can switch to single user mode by editing current menu items or bypassing them.

[15:51:37] Additional information: Do NOT use a plaintext password, since the grub.conf or menu.lst file is most likely to be world readable!

[15:51:37] If an unsecured OS like DOS is used, add ‘lock’ below that entry and setup a password with the password option, to prevent direct system access.

[15:51:37] Warning: No password set on GRUB bootloader [test:BOOT-5121] [impact:M]

[15:51:37] Suggestion: Run grub-md5-crypt and create a hashed password. Add a line below the line timeout=<value>, add: password –md5 <password hash> [test:BOOT-5121]

[15:51:37] Hardening: assigned 0 hardening points (max for this item: 2), current: 0, total: 2

[15:51:37] ===—————————————————————===


28 marzo 2012

Ubuntu 12.04, nuevas funciones de privacidad

Una de las mejoras acerca de la privacidad que tanto renombre tiene en estos días ha aparecido en la última versión de Ubuntu 12.04, como podemos ver en la siguiente imagen en la configuración del sistema hay un nuevo icono llamado privacidad

Desde este menú podemos configurar qué queremos que Ubuntu guarde de nuestra actividad.

También es posible decirle de qué carpetas o aplicaciones guarde/permita que se guarde información

Espero que prueben y comenten acerca de esta nueva funcionalidad que nos trae Ubuntu, que no sé que tan nueva sea, o si lo nuevo es solo la interfaz gráfica, pero lo cierto es que es un cambio muy acertado.

via : tech drive-in