Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=37d9864b-f8a3-4fee-8da9-5745344ead37

3 consejos para hacer hosting de aplicaciones ASP.NET Core con Kestrel

Icono de advertencia ATENCIÓN: este contenido tiene más de 2 años de antigüedad y, debido a su temática, podría contener información desactualizada o inexacta en la actualidad.

ASPNET-vNext-2

Kestrel es el servidor web multi-plataforma que ha creado Microsoft y que sirve para albergar las aplicaciones web creadas con ASP.NET Core y dotarlas de manera sencilla de la infraestructura para poder ejecutarse. No es la única opción existente para ejecutar las apps, pero sí la mas recomendable puesto que está diseñada para ello y además escala mucho y proporciona un gran rendimiento.

De todos modos Kestrel no está pensado para ser el servidor web que deberías usar para servir aplicaciones en producción directamente, sino que es un servidor de desarrollo, por lo que a la hora de exponer tus aplicaciones en Internet deberías tomar ciertas precauciones:

1.- No expongas Kestrel directamente a Internet

Por seguridad y por características, lo suyo sería siempre interponer un servidor web completo y empresarial delante de Kestrel, que delegue las peticiones a éste, es decir, un intermediario de nivel empresarial. Puedes usar un Internet Information Server (un IIS local o en Azure) en Windows, un servidor Apache o Nginx en Linux/Mac. En cualquier caso es indispensable hacerlo excepto en pruebas o aplicaciones pequeñas que no tengan acceso a recursos importantes.

Veremos enseguida que es importante hacerlo por otras razones también.

2.- Debes gestionar y monitorizar los procesos

Tu aplicación web con ASP.NET Core, gestionada por Kestrel, debe ser lanzada y asegurarse de que sigue funcionando incluso si rompe por algún lado. Esto es algo que no puede hacer automáticamente Kestrel ya que precisamente es el proceso que debes controlar.  Es decir, aunque lances la aplicación con Krestel si se produce un error y rompe tendrás que detectarlo y volver a levantarla. Lo mismo si necesitas tener varios procesos en paralelo (web garden) para aprovechar mejor las capacidades de la máquina y servir desde varios núcleos... Cosas por el estilo.

Para ello lo suyo es utilizar las capacidades que ofrecen los servidores web empresariales y que precisamente se ocupan de gestionar, monitorizar y levantar los procesos que albergan aplicaciones web (se llaman servidores de aplicaciones por algo).

En Internet Information Server es fácil de conseguir con el módulo HttpPlatformHandler para IIS 8.x o posterior. En Linux/Mac con Nginx o Apache no es muy complejo tampoco.

3.- Recuerda el principio de menor privilegio

En seguridad, menos es más. Es decir, cuántos menos privilegios tenga el usuario que ejecuta el proceso de Kestrel, mucho mejor. La regla de oro es que jamás utilices una cuenta de administrador (Windows) o de root (Linux/Mac) para ejecutar el proceso de Kestrel.

Crea una cuenta específica que tenga los menos permisos posibles, con acceso nada más que a la carpeta que contenga tu aplicación, y si es posible solo con permisos de escritura en sitios restringidos de ésta. Cuántos menos permisos tenga este usuario menos problemas podrá causar si hay algún problema de seguridad y algún usuario malintencionado logra acceder al sistema.

Fecha de publicación:
campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP
Archivado en: Desarrollo Web

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.