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:

Si te interesa este artículo, podrás conocer más información en el blog de Clavei.

Leer más

 
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