Asegurar un servidor privado virtual (I)
Un servidor proporciona muchos servicios a los usuarios: Web, repositorio de archivos o control de código fuente. Para realizar estas funciones necesita tener por una parte aplicaciones escuchando en unos puertos concretos y por otra parte que esos puertos sean accesibles desde el exterior. Los usuarios legítimos usarán los servicios de forma adecuada y los atacantes intentarán conseguir el acceso al servidor aprovechando vulnerabilidades o accesos remotos. Como no tenemos acceso físico al servidor propiamente dicho utilizaremos un acceso remoto siendo el más conocido la conexión SSH. Si bien se puede usar Telnet para la misma tarea, es un suicidio utilizar una herramienta que no realiza cifrado de los datos para las tareas de gestión.
El servidor de SSH escucha las peticiones por el puerto 22. A priori no sabe si la petición de conexión es legítima o no. Por esta razón se pide un usuario y una contraseña. Sólo el usuario que tiene la contraseña puede entrar, pero ésto no evita que los atacantes intenten acceder al servidor utilizando usuarios y contraseñas genéricos. ¿De qué forma podemos evitar estas conexiones? Si permitimos únicamente el acceso por una IP corremos el riesgo de perder el acceso al servidor si cambia nuestra IP. En cambio, si bloqueamos por países evitaremos una parte de los ataques pero no los que vengan del mismo país en el que gestionemos el servidor. Para conocer la forma de detectar los ataques y minimizar su efecto podéis leer esta serie de artículos.
Autor de la fotografía del artículo: Bob Mical
Hay dos tipos de alojamiento Web que podemos usar dependiendo de si es o no mantenido. En el primer caso el proveedor del alojamiento se encarga de gestionar la infraestructura de la máquina, el sistema operativo y las herramientas que incluya el contrato. Dependiendo del mismo tendremos disponibles varias bases de datos o un número concreto de cuentas de correo. Si necesitamos más recursos el siguiente paso suele ser contratar un alojamiento con más prestaciones a costa de pagar más dinero (como es lógico). Sobre esta base instalaremos los diferentes servidores y trabajaremos con ellos.
Es posible que nos hagan falta más recursos para trabajar en un proyecto Web concreto. Por ejemplo, tenemos un servidor Web que utilizamos para comunicarnos con dispositivos móviles usando una aplicación específica. En estas condiciones necesitamos utilizar un servidor dedicado. Hay dos tipos de servidores según tengan una máquina real o una virtual. Los primeros pueden utilizar todo el hardware del equipo mientras que en los segundos se comparte el hardware entre varios equipos virtuales y reciben el nombre de VPS (servidor virtual privado). Recordad que se pueden utilizar tanto servidores que se encuentren en España como en otros países obteniendo en este último caso precios más competitivos.
Servidor (Autor del clipart: cyberscooty)- Nombre del host: 116.10.191.168
- País: China.
- Region: Guangxi
- Ciudad: Nanning
MapaConclusiones
El log del servidor es el que realmente nos indica que estamos ante un ataque. Para reducir su efecto podemos tomar varias medidas. La primera consiste en bloquear países. Al usar la conexión SSH únicamente para gestionar el servidor sería una medida rápida y efectiva. El problema aparece si recibimos ataques desde países más cercanos como Francia e incluso España. En estos casos el bloqueo de todo el país sería un problema por lo que hay que tomar otras medidas.
Si no podemos bloquear un rango de direcciones IP podemos configurar el servidor para que no permite las conexiones que cumplan unos determinados requisitos. El bloqueo tiene que ser dinámico y adaptarse a las peticiones que recibe el servidor. Lo podremos realizar con la aplicación fail2ban que veremos en la siguiente entrega.




Dejar un comentario
¿Quieres unirte a la conversación?Siéntete libre de contribuir!