Seguridad-apache

6 Tips de seguridad para servidores apache

Cuando hablamos de apache nos referimos a él como el servidor web más utilizado en el mundo desde su lanzamiento en 1995. Entre sus virtudes podemos destacar su estructura modular, el hecho de ser código abierto y multi-plataforma, además de contar con una gran comunidad de usuarios.

Otra de sus conocidas virtudes es la sencillez de su instalación, no obstante y aunque pensemos que una vez instalado simplemente basta con tenerlo actualizado para protegernos de posibles vulnerabilidades, es necesario realizar algunos cambios en la configuración inicial para intentar minimizar los posibles riesgos. A continuación os indico una serie de tips de seguridad en Apache, que yo considero básicos (ya profundizaremos más adelante) para segurizar tu servidor apache.

Tips de seguridad en Apache

 

1.- Siempre actualizado.

Como he comentado antes, es indispensable tener la última versión de apache disponible, ya que de esta forma tendremos los últimos parches que nos ayudarán a evitar posibles vulnerabilidades,  para ello el primer paso es saber la versión de apache que tienes instalada, puedes comprobarlo fácilmente con este comando:

apache2 –v (Debian/Ubuntu)

httpd –v (RHEL)

seguridad-apache-tip1

2.-Desactiva módulos que no estés utilizando.

Seguramente si acabas de instalar apache, por defecto vendrá con una serie de módulos activados y posiblemente no requieras de todos ellos, al desactivar módulos apache, además de evitar posibles vulnerabilidades, reduciremos el consumo de memoria del servidor.  Para ver un listado de los módulos activos puedes hacerlo con el siguiente comando:

apache2ctl -M ( Debian/Ubuntu)

httpd -M (RHEL)

apache2-2

En sistemas basados en Debian, utilizamos a2enmod para habilitar el módulo y a2dismod para deshabilitarlo:

apache2-3

Para sistemas basados en Red Hat, podemos renombrar los módulos alojados en /etc/httpd/conf.d/ o comentar las líneas correspondientes a los módulos en el fichero de configuración alojado en /etc/httpd/conf/httpd.conf.

Tal y como se muestra en la captura, necesitaremos reiniciar el servidor apache para que se apliquen los cambios después de activar / desactivar un módulo.

3.-Oculta la información del servidor Apache.

Por defecto la instalación de Apache suele mostrar la versión que se está ejecutando y el sistema operativo instalado cuando por ejemplo, se muestra un error 404. Lógicamente no querrás que ningún usuario tenga acceso a este tipo de información, para evitar que se muestre es tan sencillo como añadir estas dos líneas a tu archivo de configuración (httpd.conf  o apache2.conf).

ServerSignature Off

ServerTokens Prod

4.-Desactiva el listado de directorios.

Apache por defecto habilita la opción de listado de directorios, lo que significa que al navegar por un directorio que no tenga fichero “index” nos mostrará un listado de los ficheros que se encuentran disponibles en el directorio en lugar de un mensaje de error.  Por defecto se mostraría así:

seguridad-apache-tip4

Para deshabilitarlo utilizamos la opción “Options -Indexes” en el directorio donde queramos deshabilitarlo dentro del fichero de configuración (httpd.conf o apache2.conf).

Para este ejemplo he deshabilitado el listado en el directorio /var/www

apache2-5

De esta forma al intentar acceder nos muestra acceso denegado:

apache2-6

5.- Desactiva los enlaces simbólicos.

Por razones de seguridad en Apache también es aconsejable desactivar los enlaces simbólicos que por defecto vienen activados, para ello simplemente basta con agregar la siguiente opción en el fichero de configuración (apache2.conf o httpd.conf).

Options -FollowSymLinks

6.-Verifica el usuario con el que se está ejecutando Apache.

Apache debe ejecutarse con un usuario y grupo propio, ya que de otra forma puede suponer un grave riesgo de seguridad. Para comprobarlo, puedes ir al archivo de configuración (apache2.conf o httpd.conf) y revisar las líneas “user” y “group”. Posteriormente puedes comprobar con el comando “apachectl -S”.

seguridad-apache-tip6

Como se indica en el título del post, esta configuración es sólo una pequeña base para tener segurizado nuestro servidor web apache. Más adelante veremos las posibles restricciones de acceso  a directorios, los módulos mod_security y mod_evasive y la limitación de peticiones entre otras configuraciones.

 
Windows Server 2016 Containers

Contenedores en Windows Server 2016 – Primeros Pasos

Como sabéis Windows server 2016 containers y Windows 10 en su versión 1607 “Anniversary Edition” ya incluyen la posibilidad de crear, configurar y gestionar contenedores (Dockers). Estos contenedores conocidos como el futuro de la virtualización pueden sernos útiles para correr aplicaciones aisladas del sistema operativo host. Todo suena bastante bien, así que nos ponemos manos a la obra.

Configurando containers en Windows Server 2016

Lo primero que solemos hacer cuando queremos un nuevo rol o característica es instalarlo desde la administración del servidor (o vía powershell) así que accedemos al wizard e instalamos la característica de “Contenedores»:

Windows Server 2016 Containers - Primeros pasos

Hasta aquí todo sobre ruedas, el problema es que como casi todos leemos poco y probamos mucho, si solo hacemos esto nos daremos cuenta de que con la característica ya instalada no aparece nada sobre “Contenedores” en nuestro flamante Windows Server 2016… No pasa nada, vamos a intentar levantar un contenedor por línea de comandos que eso nunca falla:

containers02

O sí… a veces pasa. El problema es que aunque la característica está correctamente instalada nos falta OneGet provider PowerShell module ya que la característica como tal solo nos permite poder usarlo, pero antes tenemos que configurarlo. Para ello ejecutamos el siguiente comando en un powershell como administrador e instalaremos el modulo de PowerShell de OneGet:

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

containers03

Aceptamos y dejamos que se configure. Una vez finalizado, usaremos el modulo recién configurado para instalar la versión más reciente del docker (contenedor) con el siguiente comando:

Install-Package -Name docker -ProviderName DockerMsftProvider

containers04

Por último, reiniciamos el servidor para que funcione:

Restart-Computer –Force

 

Ahora ya podemos ejecutar nuestro contenedor de ejemplo y debería funcionar correctamente:

docker run microsoft/sample-dotnet

containers05

Después de un rato de descarga…. Ya tenemos un bonito ASCII de .NET:

containers06

Una vez ya tenemos el sistema funcionando vamos a montar un pequeño contenedor con IIS para ver su funcionamiento. Ejecutamos el siguiente comando:

docker run -d –name myIIS -p 80:80 microsoft/iis

docker exec -i myIIS cmd

containers07

Este primer paso tarda un rato ya que la imagen del Windows Server Core son más de 3GB y se los tiene que descargar. Con la Shell del contenedor ya activa vamos a realizar una modificación en el contenedor para que no arranque la pantalla de inicio del IIS:

del C:\inetpub\wwwroot\iisstart.htm

Y el siguiente comando para cambiar el sitio de IIS predeterminado:

echo «Hola SiemLab» > C:\inetpub\wwwroot\index.html

Hacemos un ipconfig para saber la IP que tenemos en el contenedor y probamos el acceso a la web del IIS:

containers08

containers09

Ya tenemos nuestro contenedor con nuestro IIS funcionando.

 
Novedades en la seguridad de Windows Server 2016

Novedades en la seguridad de Windows Server 2016

En el nuevo Windows Server 2016 han añadido varias medidas de seguridad de las cuales nos vamos a quedar con estas cinco por ser las más interesantes:

Novedades en seguridad en Windows Server 2016

Máquinas Virtuales Blindadas

Hasta ahora en los sistemas operativos de Microsoft era muy simple para un administrador de sistemas acceder a los datos de las máquinas virtuales de Hyper-V o incluso exportarlas y poder llevarse el servidor completo para montarlo en otro sistema con Hyper-V. En Windows Server 2016 han añadido dos características que evitan la posible fuga de información en caso de que exista un administrador malicioso. Son las siguientes:

  • Ejecución de la VM en la infraestructura designada
  • Protección de VMs frente a administradores
Novedades Seguridad en Windows server 2016

Caracteristicas de la seguridad de Windows server 2016

Esto nos ofrece varias ventajas, ya que el cifrado del disco y del estado de la VM no va a permitir el acceso por parte del administrador, además con el nuevo servicio de host guardian no se puede ejecutar una VM en un host que no cumpla los requisitos establecidos para ello.

Protección de credenciales de administrador

Con esta nueva protección vamos a evitar el uso de las credenciales de administrador en ataques de escala de privilegios en los que el atacante utilice algún malware como Mimikatz ya que si tenemos la protección activa las credenciales utilizadas en el sistema operativo se almacenarán encriptadas y no podrán ser utilizadas por el atacante.

Esta protección también es útil para los accesos por terminal server a nuestros equipos, ya que también se protegen dichas conexiones.

Device Guard

Con el nuevo sistema de Device Guard podemos proteger el sistema de la ejecución de aplicaciones que no estén permitas según la política definida en el sistema. Se puede configurar de modo que solo genere avisos en el visor de eventos cuando se ejecute una aplicación no registrada o incluso para que las bloquee y no permita la ejecución de las aplicaciones.

Es bastante simple de configurar con varios comandos de PowerShell, aunque la herramienta perfecta para gestionarlo es el Operations Manager de la Suite de System Center con la que de forma mucho más visual podemos revisar las aplicaciones permitidas en cada sistema.

Características avanzadas de auditoría


En combinación con la Suite de Operations Manager, Windows Server 2016 nos permite centralizar todos los logs del visor de eventos de nuestros sistemas a modo de servidor de Syslog centralizado y tener así una visión en tiempo real de lo que está ocurriendo en nuestros servidores.

La ventaja que nos ofrece es que al contrario que otras soluciones está completamente integrado con el sistema y es muy visual y configurable.

Contenedores de Hyper-V

En esta nueva versión del sistema operativo de servidores de Microsoft no solo nos ofrecen el uso y configuración de contenedores (dockers) que ya habíamos visto en otras plataformas, sino que además nos ofrece la capa de aislamiento adicional previamente reservado a máquinas físicas o virtuales completamente dedicadas con Hyper-V.

Seguridad Windows Server 2016 Hyper-V

Seguridad Windows Server 2016 Hyper-V

Con esto finalizamos el resumen de novedades en seguridad de Windows Server 2016, tal como hicimos en semanas anteriores con la nueva tecnología de contenedores iremos publicando artículos con el uso práctico de estas nuevas características.

 
Raspberry pi 3 Thin Client, instalacion y experiencias

Experiencias con Raspberry Pi 3 y Thin Client HP

En la empresa tenemos una sala de formación con Thin Clients de HP que conectan a VMs en un servidor. Nos surgió la necesidad de añadir 4 Thin Clients para ampliar esta sala de formación, y buscamos alternativas a los que ya teníamos.

Encontramos el proyecto  Raspberry Pi Thin Client y nos decidimos a comprar unas Raspberry Pi 3 Thin client y empezar a jugar con ellas.

La documentación está muy bien, la podemos encontrar aquí. Sin embargo vamos a resumir la instalación, puesta en marcha y aspectos interesantes.

Instalación y configuración del Thin Client

Primero descargamos la imagen:

Descarga

Como cualquier imagen de Raspberry, necesitamos flasehar la imagen en una microSD. Extraemos la imagen del ZIP y, bien con Windows con Win32 Disk Imager, bien desde Linux con dd if=RPiTC.img of=/dev/pathsd bs=4M, escribimos la imagen.

Los usuarios/pass son rpitc/rpitc, root/rpitc.

Podemos conectar a ella, bien por VNC, bien por SSH, o bien conectarla directamente a un monitor (recomiendo esto último). Lo primero que nos encontramos es la herramienta RPiTC Builder, que nos va a permitir modificar la configuración, tanto del sistema, como de protocolos que necesitemos para nuestro Thin Client. En mi caso me ha funcionado bastante bien xFreeRdp para conectar por escritorio remoto.

Tras realizar todos los ajustes que necesitemos. Pulsamos BashMe! Esto nos mostrará el script que ejecutaremos para configurar lo que hemos seleccionado. Tras realizar todo, reiniciamos el sistema y lo tendremos todo aplicado.

Como lo tendremos todo en perfecto Inglés, vamos a cambiarlo a Español. Abrimos terminal:

# Para cambiar a idioma es_es, UTF-8

sudo dpkg-reconfigure locales

# Al ejecutarlo, tras cambiar el idioma, automáticamente nos coge la configuración del teclado

sudo dpkg-reconfigure keyboard-configuration

# Configuramos nuestra zona horaria

sudo dpkg-reconfigure tzdata

# Actualizamos sistema

sudo apt-get update && sudo apt-get upgrade -y

raspberry-pi-siemlab

Con esto se nos queda el sistema configurado y actualizado para nuestras necesidades, pero siempre podemos cambiar más cosas. En la configuración del sistema, Sesión e Inicio, tenemos disponibles los componentes que se inician con el sistema, y podemos modificar algunos scripts de muestra que nos facilitan los desarrolladores para el inicio automático (Autostart), y para que siempre esté activo un proceso, aunque se cierre accidentalmente o por intervención del usuario (Keep Me Up!).

En mi caso, tras realizar varias pruebas y configuraciones distintas, no terminan de funcionar siempre correctamente. Por lo que en vez de configurar el inicio automático de una conexión RDP, finalmente decidí que el propio usuario lo hiciese manualmente. También pensé que, usuarios sin demasiada experiencia, cuantas menos cosas vean, mejor.

Lo primero que hice es desactivar el inicio automático de cosas que no iba a necesitar (SSH, VNC, Conky, Docky…). Tras esto cambié la configuración del escritorio, para que se mostrasen los elementos, como por ejemplo los lanzadores.

Generé un par de lanzadores, uno para la conexión RDP, otro para apagar la Raspberry, y les dí permisos de ejecución.

 

 
extensiones-ramsonware

Listado de extensiones Ransonware

El famoso Ransomware es uno de los tipos de malware más peligroso con el que nos hemos enfrentado. Es un malware extremadamente difícil de detectar y eliminar y puesto que genera y ha generado importantes ingresos para los piratas informáticos que lo han puesto en circulación, cada vez hay más interés por otros piratas en utilizar variantes de este malware, mucho más complejas y que amenazan la integridad de los datos de los usuarios conectados a Internet.

A continuación os adjuntamos un útil Listado de extensiones Ransonware que os ayudará a identificar los archivos que han podido ser infectados.

*.*AES256
*.*cry
*.*crypto
*.*darkness
*.*enc*
*.*exx
*.*kb15
*.*kraken
*.*locked
*.*nochance
*.*oshit
*._ryp
*.{CRYPTENDBLACKDC}
*.0x0
*.1999
*.2ed2
*.73i87A
*.777
*.8lock8
*.7z.encrypted
*.aaa
*.abc
*.AES256
*.AESIR
*.better_call_saul
*.biz
*.bloc
*.blocatto
*.bleep
*.block
*.btc
*.btcbtcbtc
*.btc-help-you
*.canihelpyou
*.cbf
*.ccc
*.cerber
*.cerber3
*.chifrator@qq_com
*.clf
*.code
*.coverton
*.crime
*.crinf
*.crjoker
*.cry
*.cryp1
*.crypt
*.crypted
*.crypto
*.crypto*
*.cryptolocker
*.cryptotorlocker*
*.CryptoTorLocker2015!
*.crypz
*.CrySiS
*.css
*.ctbl
*.ctb2
*.CTB2
*.czvxce
*.darkness
*.da_vinci_code
*.darkness
*.dyatel@qq_com
*.ecc
*.enc
*.encedRSA
*.enciphered
*.EnCiPhErEd
*.encmywork
*.encrypt
*.Encrypted
*.encrypted*
*.encryptedAES
*.encryptedRSA
*.enigma
*.exx
*.ezz
*.fileiscryptedhard
*.flyper
*.frtrss
*.fuck
*.fucked
*.fun
*.good
*.gruzin@qq_com
*.gsw
*.gws
*.H3LL
*.GWS
*.hannah
*.ha3
*.HA3
*.hb15
*.helpdecrypt@ukr*.net
*.helpdecrypt@ukr.net
*.html
*.hydracrypt*
*.infected
*.iloveworld
*.JUST
*.justbtcwillhelpyou
*.KEYH0LES
*.KEYZ
*.kb15
*.keybtc@inbox_com
*.kimcilware
*.KKK
*.korrektor
*.kraken
*.kyra
*.lechiffre
*.lock
*.locked
*.locky
*.lol!
*.magic
*.micro
*.nalog@qq_com
*.nochance
*.no_more_ransom
*.nolvalid
*.nuclear55
*.obleep
*.odin
*.odcodc
*.omg
*.OMG!
*.only-we_can-help_you
*.oplata@qq_com
*.oshit
*.p5tkjw
*.payransom
*.pizda@qq_com
*.PoAr2w
*.porno
*.pornoransom
*.pzdc
*.r16m*
*.R16M01D05
*.R4A
*.R5A
*.RAD
*.r5a
*.RADAMANT
*.RDM
*.relock@qq_com
*.remind
*.rokku
*.RRK
*.RSNSlocked
*.RSplited
*.sanction
*.scl
*.Silent
*.shit
*.sport
*.supercrypt
*.SUPERCRYPT
*.surprise
*.thor
*.toxcrypt
*.troyancoder@qq_com
*.trun
*.ttt
*.tzu
*.vault
*.vscrypt
*.vvv
*.xort
*.xrnt
*.XRNT
*.xrtn
*.xtbl
*.XTBL
*.xxx
*.xyz
*.Z81928819
*.zcrypt
*.zyklon
*.zzz
*.zzzzz
*.zendr4
*@gmail_com_*
*@india.com*
*_H_e_l_p_RECOVER_INSTRUCTIONS*
*_LAST
*cpyt*
*crypt*
*decipher*
*help_restore*.*
*help_your_files*.*
*how_to_recover*.*
*install_tor*.*
*keemail.me*
*qq_com*
*restore_fi*.*
*ukr.net*
*want your files back.*
_crypt
_DECRYPT_INFO_*
_ryp
AllFilesAreLocked*.bmp
ATTENTION!!!.txt
confirmation.key
Decrypt.exe
DECRYPT_INSTRUCTION.HTML
DECRYPT_INSTRUCTION.TXT
DECRYPT_INSTRUCTIONS.HTML
DECRYPT_INSTRUCTIONS.TXT
DecryptAllFiles*.txt
DecryptAllFiles.txt
enc_files.txt
HELP_DECRYPT.HTML
HELP_DECRYPT.lnk
HELP_DECRYPT.PNG
HELP_DECRYPT.TXT
HELP_RESTORE_FILES.txt
HELP_TO_DECRYPT_YOUR_FILES.txt
HELP_TO_SAVE_FILES.txt
how to decrypt aes files.lnk
How_Decrypt.html
How_Decrypt.txt
HowDecrypt.txt
last_chance.txt
message.txt
MESSAGE.txt
oor*.
recovery_file.txt
recovery_key.txt
restore_files*.txt
restore_files.txt
vault.hta
vault.key
vault.txt
*.zepto
*.venusf