{"id":24522,"date":"2026-09-16T14:43:29","date_gmt":"2026-09-16T14:43:29","guid":{"rendered":"https:\/\/www.mailgun.com\/blog\/guia-seguridad-seguridad-basica-infraestructura\/"},"modified":"2026-09-16T14:43:29","modified_gmt":"2026-09-16T14:43:29","slug":"guia-seguridad-seguridad-basica-infraestructura","status":"publish","type":"blog","link":"https:\/\/www.mailgun.com\/es\/blog\/it-and-engineering\/guia-seguridad-seguridad-basica-infraestructura\/","title":{"rendered":"Gu\u00eda de seguridad: C\u00f3mo proteger tu infraestructura de los ataques b\u00e1sicos"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Ejecutar tu infraestructura con una configuraci\u00f3n segura es una tarea desalentadora incluso para los profesionales de la seguridad. Esta gu\u00eda proporciona consejos pr\u00e1cticos para ayudar al equipo de ingenier\u00eda a crear una infraestructura siguiendo las mejores pr\u00e1cticas de seguridad para que puedan implementar sus servicios en la Internet p\u00fablica con confianza y reducir las posibilidades de sufrir vulnerabilidades. Esta gu\u00eda se centra espec\u00edficamente en los sistemas basados en Linux; sin embargo, las mejores pr\u00e1cticas se aplican a todos los sistemas inform\u00e1ticos.<\/p>\n\n\n\r\n    <nav data-content-type=\"longform\" class=\"toc-block longform-spacings px-5 py-6 px-md-6 px-lg-7 py-md-7 bg-light fs-sm rounded-lg\" aria-labelledby=\"toc-title-9088\"><p class=\"h5 m-0\" id=\"toc-title-9088\">\u00cdndice<\/p><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">01<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#lista-de-comprobacion-de-seguridad-de-la-red\">Lista de comprobaci\u00f3n de seguridad de la red<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">02<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#vulnerabilidades-de-software\">Vulnerabilidades de software<\/a><a class=\"scrollme link-body-color\" href=\"#como-protegerse-frente-a-las-vulnerabilidades-de-software\">C\u00f3mo protegerse frente a las vulnerabilidades de software<\/a><a class=\"scrollme link-body-color\" href=\"#como-reducir-el-dano-de-las-vulnerabilidades-del-software\">C\u00f3mo reducir el da\u00f1o de las vulnerabilidades del software<\/a><a class=\"scrollme link-body-color\" href=\"#resumen\">Resumen<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">03<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#refuerzo-de-la-red\">Refuerzo de la red<\/a><a class=\"scrollme link-body-color\" href=\"#que-es-el-refuerzo-de-la-red\">\u00bfQu\u00e9 es el refuerzo de la red?<\/a><a class=\"scrollme link-body-color\" href=\"#como-reducir-el-dano-al-reforzar-la-red\">C\u00f3mo reducir el da\u00f1o al reforzar la red<\/a><a class=\"scrollme link-body-color\" href=\"#resumen\">Resumen<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">04<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#seguridad-del-firewall-de-red\">Seguridad del firewall de red<\/a><a class=\"scrollme link-body-color\" href=\"#como-revisar-las-reglas-del-firewall\">C\u00f3mo revisar las reglas del firewall<\/a><a class=\"scrollme link-body-color\" href=\"#resumen\">Resumen<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">05<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#inicio-de-sesion-remoto\">Inicio de sesi\u00f3n remoto<\/a><a class=\"scrollme link-body-color\" href=\"#descripcion\">Descripci\u00f3n<\/a><a class=\"scrollme link-body-color\" href=\"#resumen\">Resumen<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">06<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#limites-de-confianza\">L\u00edmites de confianza<\/a><a class=\"scrollme link-body-color\" href=\"#descripcion\">Descripci\u00f3n<\/a><a class=\"scrollme link-body-color\" href=\"#refuerzo-del-punto-de-conexion-de-la-api\">Refuerzo del punto de conexi\u00f3n de la API<\/a><a class=\"scrollme link-body-color\" href=\"#refuerzo-del-punto-de-conexion-del-servicio-y-de-todo-lo-demas\">Refuerzo del punto de conexi\u00f3n del servicio (y de todo lo dem\u00e1s)<\/a><a class=\"scrollme link-body-color\" href=\"#resumen\">Resumen<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">07<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#monitorizacion-y-registro\">Monitorizaci\u00f3n y registro<\/a><a class=\"scrollme link-body-color\" href=\"#descripcion\">Descripci\u00f3n<\/a><a class=\"scrollme link-body-color\" href=\"#registros-de-aplicacion-generales\">Registros de aplicaci\u00f3n generales<\/a><a class=\"scrollme link-body-color\" href=\"#registros-del-sistema\">Registros del sistema<\/a><a class=\"scrollme link-body-color\" href=\"#resumen\">Resumen<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">08<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#uso-de-criptografia\">Uso de criptograf\u00eda<\/a><a class=\"scrollme link-body-color\" href=\"#descripcion\">Descripci\u00f3n<\/a><a class=\"scrollme link-body-color\" href=\"#resumen\">Resumen<\/a><\/div><\/div><div class=\"d-flex mt-3\"><div class=\"w-auto fw-bold text-accent d-flex me-2\">09<\/div><div class=\"d-flex flex-column\"><a class=\"fw-bold scrollme link-body-color text-accent\" href=\"#copias-de-seguridad\">Copias de seguridad<\/a><a class=\"scrollme link-body-color\" href=\"#descripcion\">Descripci\u00f3n<\/a><a class=\"scrollme link-body-color\" href=\"#resumen\">Resumen<\/a><\/div><\/div><\/nav>\n\n\n<p class=\"wp-block-paragraph\">Ejecutar tu infraestructura con una configuraci\u00f3n segura es una tarea desalentadora incluso para los profesionales de la seguridad. Esta gu\u00eda proporciona consejos pr\u00e1cticos para ayudar al equipo de ingenier\u00eda a crear una infraestructura siguiendo las mejores pr\u00e1cticas de seguridad para que puedan implementar sus servicios en la Internet p\u00fablica con confianza y reducir las posibilidades de sufrir vulnerabilidades. Esta gu\u00eda se centra espec\u00edficamente en los sistemas basados en Linux; sin embargo, las mejores pr\u00e1cticas se aplican a todos los sistemas inform\u00e1ticos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Parte de gestionar una infraestructura con confianza consiste en comprender contra qu\u00e9 y contra qui\u00e9n la est\u00e1s protegiendo. Esta gu\u00eda acabar\u00e1 teniendo tres versiones: B\u00e1sica, Intermedia y Avanzada, y cada una se centrar\u00e1 en defender tu infraestructura frente a un tipo distinto de atacante. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Est\u00e1s leyendo la versi\u00f3n B\u00e1sica, cuyo objetivo es proteger frente a ataques automatizados y script kiddies que entienden las herramientas de explotaci\u00f3n m\u00e1s que las t\u00e9cnicas de explotaci\u00f3n. Este tipo de atacante es m\u00e1s oportunista que selectivo y pasa r\u00e1pidamente a objetivos m\u00e1s f\u00e1ciles. <b>Si est\u00e1s llevando a cabo un proyecto paralelo o fundando una empresa, este es el mejor lugar para empezar, ya que te ayudar\u00e1 a crear una base s\u00f3lida sobre la que construir.<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mientras lees esta gu\u00eda, ten en cuenta el tipo de atacante y los tipos de ataque de los que quieres defenderte. Las mejores pr\u00e1cticas que sigues y las que no dependen de lo que intentas defender y de contra qui\u00e9n te intentas defender.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lista de comprobaci\u00f3n de seguridad de la red<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Esta gu\u00eda sigue los siguientes principios rectores en su an\u00e1lisis de la seguridad del software:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><b>Defiende, detecta y reacciona. <\/b>Esto significa aplicar unas buenas pr\u00e1cticas de seguridad para defender tu infraestructura, as\u00ed como registrar cualquier comportamiento sospechoso y, en caso de vulnerabilidad, restaurarla a un estado seguro.<\/li>\n\n\n\n<li><b>Todo el software se puede vulnerar.<\/b> Cualquier software que no sea trivial tiene fallos que permiten a un atacante con la motivaci\u00f3n suficiente aprovecharse de \u00e9l.<\/li>\n\n\n\n<li><b>La simplicidad es seguridad. <\/b>Los sistemas demasiado complejos resultan m\u00e1s dif\u00edciles de procesar para el equipo de desarrollo y m\u00e1s f\u00e1ciles de vulnerar para un atacante. Los sistemas m\u00e1s sencillos que se pueden procesar suelen ser m\u00e1s seguros. No implementes una soluci\u00f3n de seguridad que no comprendes.<\/li>\n\n\n\n<li><b>La oscuridad no es seguridad. <\/b>Conf\u00eda en la seguridad de los protocolos que utilizas para defender tu infraestructura y no en puertos oscuros y en otros trucos para intentar ocultar protocolos inseguros.<\/li>\n\n\n\n<li><b>Considera hostil toda entrada del usuario. <\/b>Considera hostiles todas las entradas aceptadas de los usuarios y verifica de manera estricta lo que aceptas.<\/li>\n\n\n\n<li><b>Principio del m\u00ednimo privilegio. <\/b>Proporciona el privilegio m\u00ednimo necesario para que se lleve a cabo una operaci\u00f3n. Si se vulnera un proceso o sistema, querr\u00e1s evitar que el atacante obtenga m\u00e1s acceso del m\u00ednimo requerido.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Vulnerabilidades de software<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00f3mo protegerse frente a las vulnerabilidades de software<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La aplicaci\u00f3n estricta de las actualizaciones de seguridad de un software que t\u00fa no has programado puede parecer una mala forma de proteger tu infraestructura y quiz\u00e1 hasta in\u00fatil. Sin embargo, es una de las mejores inversiones de tiempo que puedes hacer desde una perspectiva de seguridad. A continuaci\u00f3n, te mostramos dos ejemplos de problemas de seguridad recientes de los que <b>los atacantes sin experiencia que utilizan herramientas automatizadas se pueden aprovechar si no has instalado en tus servidores<\/b> los parches de seguridad m\u00e1s recientes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><i>Heartbleed<\/i>: permite que el atacante robe tus certificados privados y descifre tu tr\u00e1fico cifrado<\/li>\n\n\n\n<li><i>Shellshock<\/i>: permite que el atacante ejecute de forma remota c\u00f3digo arbitrario en tus servidores<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ya solo con estos dos problemas, un atacante lograr\u00eda hacerse con el control total de toda tu infraestructura. Afortunadamente, solucionar estos errores <b>no es dif\u00edcil<\/b>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00f3mo reducir el da\u00f1o de las vulnerabilidades del software <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Aplica de manera constante las actualizaciones de seguridad que proporciona el proveedor de tu sistema operativo. La mayor\u00eda de proveedores cuentan con un m\u00e9todo automatizado. Por ejemplo, para los sistemas basados en Debian, puedes utilizar\u00a0<a href=\"https:\/\/wiki.debian.org\/UnattendedUpgrades\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>Unattended Upgrades<\/i><\/a><i>,<\/i> y para los sistemas basados en Red Hat, puedes usar\u00a0<a href=\"http:\/\/fedoraproject.org\/wiki\/AutoUpdates\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>AutoUpdates<\/i><\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La aplicaci\u00f3n automatizada de parches es genial; sin embargo, tiene un posible inconveniente (para tu empresa) si no pruebas el software antes de aplicar los parches en los servidores de producci\u00f3n: <b>las cosas se pueden romper de manera imprevista<\/b>. Por mucho que las personas encargadas del mantenimiento de los paquetes intenten asegurarse de que las actualizaciones de seguridad no contienen cambios importantes, no pueden probar todas las combinaciones que pueden estar ejecut\u00e1ndose en alg\u00fan lugar antes del lanzamiento. Por ese motivo, es importante tener un entorno de pruebas con sistema de integraci\u00f3n continua\/implementaci\u00f3n continua (CI\/CD) o comprobar manualmente las actualizaciones de seguridad antes de implementarlas en los servidores de producci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, no basta solo con aplicar estas actualizaciones de seguridad. Si el problema se encuentra en una biblioteca compartida, estar\u00e1s utilizando la versi\u00f3n antigua de dicha biblioteca y seguir\u00e1s siendo vulnerable a que la exploten hasta que reinicies el proceso que est\u00e1 vinculado a ella. Para comprobar si tienes alg\u00fan binario que se deba reiniciar, puedes usar\u00a0<a href=\"http:\/\/manpages.debian.org\/cgi-bin\/man.cgi?query=checkrestart\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>checkrestart<\/i><\/a>\u00a0para los sistemas basados en Debian y\u00a0<a href=\"http:\/\/man7.org\/linux\/man-pages\/man1\/needs-restarting.1.html\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>needs-restarting<\/i><\/a>\u00a0para los sistemas basados en Red Hat.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Resumen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>S\u00cd: aplica parches en tus servidores frente a las \u00faltimas vulnerabilidades de seguridad.<\/li>\n\n\n\n<li>S\u00cd: usa las actualizaciones autom\u00e1ticas del proveedor de tu SO siempre que puedas.<\/li>\n\n\n\n<li>S\u00cd: reinicia cualquier servicio que dependa de bibliotecas compartidas que se hayan actualizado.<\/li>\n\n\n\n<li>NO: implementes actualizaciones en un servidor sin realizar pruebas.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Refuerzo de la red<b> <\/b><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 es el refuerzo de la red? <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Reforzar tu aplicaci\u00f3n usando las funciones a nivel de SO es un enfoque eficaz para <b>limitar el alcance del da\u00f1o que los atacantes pueden infligir<\/b> una vez hayan explotado una vulnerabilidad de tu aplicaci\u00f3n. Esta secci\u00f3n se centra en utilizar las funciones de control de acceso de Unix tradicionales con las que la mayor\u00eda de usuarios se han familiarizado para restringir tu aplicaci\u00f3n al conjunto de acceso m\u00ednimo que necesita para funcionar. Las funciones son los permisos de los archivos, el identificador de usuario (UID) y el acceso root.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El objetivo de esta secci\u00f3n no es reforzar tu aplicaci\u00f3n de tal forma que ning\u00fan atacante la pueda poner en riesgo. Ese es un objetivo pr\u00e1cticamente inalcanzable. El objetivo es limitar lo que el atacante puede hacer una vez se haya puesto en riesgo tu aplicaci\u00f3n. Una vez que el atacante haya explotado tu aplicaci\u00f3n, podr\u00e1 realizar acciones como si fuera tu aplicaci\u00f3n, y es posible que hasta eleve sus privilegios al nivel root, lo que le permitir\u00eda tener acceso total y completo a tu sistema operativo. En su lugar, el objetivo consiste en <b>restringir las acciones que puede realizar tu aplicaci\u00f3n al limitado conjunto que necesita para funcionar<\/b>, lo que a su vez restringe al atacante.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00f3mo reducir el da\u00f1o al reforzar la red <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Deber\u00e1s restringir tu aplicaci\u00f3n de tal modo que, incluso si el atacante explota tu proceso y logra ejecutar el c\u00f3digo como si fuera esa cuenta de usuario, el usuario tenga derechos de acceso limitados al sistema de archivos. El mismo concepto se aplica al proceso bajo el que se est\u00e1 ejecutando la cuenta: restringir el tiempo de la CPU, la memoria y el recuento del descriptor de archivos para mitigar los ataques de tipo DOS, en los que el atacante agota tus recursos. El objetivo es <b>obligar al atacante a utilizar un ataque de escalado de privilegios<\/b> (explotar otra parte de tu sistema operativo para que sus privilegios sean superiores a los de la aplicaci\u00f3n en ejecuci\u00f3n) <b>para hacer cualquier cosa de peso en tu sistema.<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para restringir la cuenta en la que se ejecuta tu aplicaci\u00f3n, utiliza las directrices siguientes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Nunca ejecutes tu aplicaci\u00f3n como root o como un usuario con funciones sudo. Si se explota tu aplicaci\u00f3n, el atacante puede lograr obtener privilegios root.<\/li>\n\n\n\n<li>Si tienes varias aplicaciones, y cada una accede a datos confidenciales distintos, considera la posibilidad de ejecutar cada una con su propia cuenta y, a continuaci\u00f3n, utilizar los privilegios del sistema de archivos para aislar el acceso a los datos confidenciales entre s\u00ed. Esto significa que los datos confidenciales de la aplicaci\u00f3n nunca deben tener configurados otros permisos que permitan su lectura y escritura a cualquiera. Por ejemplo, nunca configures los permisos con un valor como <code>0777<\/code>; en su lugar, utiliza un valor como <code>0660<\/code>.<\/li>\n\n\n\n<li>Aseg\u00farate de que tanto el usuario como el grupo de la aplicaci\u00f3n tengan privilegios limitados. Esto significa crear un nuevo usuario y grupo limitados para la cuenta y no darle un shell al usuario. Imagina que tienes una aplicaci\u00f3n llamada <code>foo<\/code>. Crea un usuario llamado <code>fooapp <\/code>y haz que su directorio principal sea <code>\/var\/appdata\/fooapp<\/code>: <code>sudo useradd -r -s \/bin\/false --home \/var\/appdata\/fooapp fooapp sudo mkdir \/var\/appdata\/fooapp sudo chown fooapp:fooapp \/var\/appdata\/fooapp<\/code><\/li>\n\n\n\n<li>Demoniza tu aplicaci\u00f3n para que se inicie autom\u00e1ticamente como un usuario concreto. Hay dos enfoques generales para resolver este problema. El primero consiste en utilizar las facilidades del sistema operativo (como los scripts de inicio de System V (<a href=\"https:\/\/blog.hazrulnizam.com\/create-init-script-centos-6\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Red Hat<\/a> \/ <a href=\"https:\/\/wiki.debian.org\/Daemon\" target=\"_tabs\" rel=\"noopener noreferrer\">Debian<\/a>) o systemd (<a href=\"https:\/\/access.redhat.com\/documentation\/en-US\/Red_Hat_Enterprise_Linux\/7\/html\/System_Administrators_Guide\/chap-Managing_Services_with_systemd.html\" target=\"_tabs\" rel=\"noopener noreferrer\">Red Hat<\/a>\/ <a href=\"https:\/\/wiki.debian.org\/systemd\" target=\"_tabs\" rel=\"noopener noreferrer\">Debian<\/a>) para iniciar y detener tu aplicaci\u00f3n y luego utilizar una herramienta de monitorizaci\u00f3n de procesos (como <a href=\"https:\/\/mmonit.com\/monit\" target=\"_tabs\" rel=\"noopener noreferrer\">monit<\/a>) para reiniciar tu aplicaci\u00f3n si falla. El otro enfoque consiste en utilizar un sistema de control de procesos (como <a href=\"http:\/\/supervisord.org\" target=\"_tabs\" rel=\"noopener noreferrer\">supervisord<\/a>, <a href=\"http:\/\/skarnet.org\/software\/s6\" target=\"_tabs\" rel=\"noopener noreferrer\">skarnet s6<\/a>, <a href=\"http:\/\/cr.yp.to\/daemontools.html\" target=\"_tabs\" rel=\"noopener noreferrer\">daemontools<\/a>) que inicie tu aplicaci\u00f3n como proceso secundario y tambi\u00e9n la reinicie si falla. Ambos enfoques son completamente v\u00e1lidos y utilizar uno u otro depender\u00e1 de cu\u00e1l se adapte mejor a tu flujo de trabajo.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Para restringir el proceso que ejecuta tu aplicaci\u00f3n, <b>sigue estas directrices<\/b>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Asigna l\u00edmites por proceso utilizando el archivo <code>\/etc\/security\/limits.conf <\/code>. Por ejemplo, si deseas limitar el n\u00famero de descriptores de archivo abiertos a 10 y limitar la memoria a 1 GB, a\u00f1ade las siguientes l\u00edneas al archivo <code>\/etc\/security\/limits.conf <\/code>:<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><code>fooapp hard nofile 10  # l\u00edmite de 10 descriptores de archivo abiertos fooapp hard as 1000000 # l\u00edmite de 1 GB<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No vincules tu aplicaci\u00f3n a un puerto bajo. Normalmente debes ejecutar tu aplicaci\u00f3n con privilegios administrativos para hacer esto. En su lugar, vinc\u00falala a un n\u00famero de puerto alto y utiliza un proxy inverso para desviar las peticiones a tu aplicaci\u00f3n. A continuaci\u00f3n, utiliza las capacidades de Linux para permitir que tu proxy inverso se vincule a un puerto bajo sin ning\u00fan otro privilegio. Por ejemplo, si tienes un proxy inverso en\u00a0<code>\/opt\/rproxy<\/code>, puedes configurar sus capacidades de la siguiente manera:<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><code>setcap 'cap_net_bind_service=+ep' \/opt\/rproxy<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Por \u00faltimo, considera utilizar <code>chroot<\/code>, pero ten en cuenta que requiere un cierto trabajo de mantenimiento. <code>chroot <\/code>te permite limitar el alcance de lo que puede ver un proceso en el sistema de archivos; en concreto, cambia tu directorio ra\u00edz a un directorio de tu elecci\u00f3n. Por ejemplo, si defines <code>\/var\/chroot <\/code>como tu nuevo directorio ra\u00edz, los procesos ver\u00e1n los archivos bajo <code>\/var\/chroot <\/code>como <code>\/<\/code>. Aunque esto es m\u00e1s seguro, significa que las bibliotecas compartidas que pueda utilizar tu proceso deben copiarse y residir en <code>\/var\/chroot<\/code>, lo que a su vez implica que, cada vez que apliques actualizaciones de seguridad, tambi\u00e9n deber\u00e1s volver a copiar cualquier biblioteca compartida actualizada. P<b>uedes evitar este mantenimiento con enlaces f\u00edsicos, pero entonces estar\u00e1s ofreciendo una ruta exterior que un atacante puede explotar. <\/b>Otros enfoques (basados en cgroups) que puedes adoptar para obtener beneficios similares se analizar\u00e1n en la versi\u00f3n intermedia de esta gu\u00eda.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Resumen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>S\u00cd: crea una cuenta restringida para ejecutar tu aplicaci\u00f3n, lo que significa sin shell y con acceso limitado al sistema de archivos.<\/li>\n\n\n\n<li>S\u00cd: vincula tu aplicaci\u00f3n a un puerto alto, lo que te permitir\u00e1 ejecutarla como usuario sin privilegios.<\/li>\n\n\n\n<li>S\u00cd: utiliza capacidades en lugar del usuario ra\u00edz siempre que puedas.<\/li>\n\n\n\n<li>NO: utilices chroot a menos que est\u00e9s preparado para asumir el trabajo de mantenimiento.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Seguridad del firewall de red <\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00f3mo revisar las reglas del firewall <\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Unas reglas de firewall s\u00f3lidas te permiten definir qu\u00e9 comunicaciones entrantes y salientes se permiten desde tus servidores. Empezar con una pol\u00edtica de denegaci\u00f3n predeterminada y permitir solo tr\u00e1fico espec\u00edfico de entrada y salida te obliga a pensar en el conjunto m\u00ednimo de servicios que deseas exponer, lo que a su vez puede reducir el riesgo de sufrir ataques. <b>Un proceso err\u00f3neo no puede exponer toda tu infraestructura al p\u00fablico general a menos que lo permitas espec\u00edficamente.<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta secci\u00f3n se centra en las reglas del firewall para el tr\u00e1fico entrante y en los ajustes de la pila TCP\/IP. Aunque las reglas del firewall para el tr\u00e1fico saliente son muy eficaces a la hora de limitar hasta d\u00f3nde puede llegar un atacante una vez que ha entrado en tu infraestructura, la pr\u00f3xima versi\u00f3n de esta gu\u00eda se centrar\u00e1 en ellas.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Mitigaci\u00f3n<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Primeras reglas de firewall. Al crear un script para las reglas del firewall, utiliza los siguientes principios b\u00e1sicos.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Borra las reglas de firewall existentes. Al desarrollar las reglas del firewall, necesitas tener una idea coherente de lo que est\u00e1s bloqueando y permitiendo. Descartar todas las reglas existentes y empezar desde cero logra este objetivo.<\/li>\n\n\n\n<li>Configura la regla predeterminada para el tr\u00e1fico entrante como DROP. Esto sigue el <b><i>principio de privilegios m\u00ednimos<\/i><\/b>. Tras definir la pol\u00edtica predeterminada como DROP, podr\u00e1s ir abriendo tu red poco a poco.<\/li>\n\n\n\n<li>Permite el libre acceso a la interfaz de bucle invertido. A diferencia de las interfaces externas, vincular tu proceso a localhost suele ser bueno para la seguridad y, por lo tanto, restringir el acceso a la interfaz de bucle invertido causa m\u00e1s da\u00f1o que beneficio. Esto te deja expuesto a un ataque de un usuario local, pero es un riesgo que debes sopesar t\u00fa mismo.<\/li>\n\n\n\n<li>No finalices las conexiones establecidas. Debes evitar finalizar tu propia conexi\u00f3n SSH a un servidor y asegurarte de que cualquier petici\u00f3n en curso pueda terminar antes de cerrarse.<\/li>\n\n\n\n<li>No restrinjas todo el tr\u00e1fico del Protocolo de mensajes de control de Internet (ICMP). Permitir el protocolo ICMP es fundamental para que Internet funcione; los enrutadores y los hosts lo utilizan para comunicar informaci\u00f3n cr\u00edtica como la disponibilidad de los servicios, el tama\u00f1o de los paquetes y la existencia del host. Los tipos 3 y 4 (Destination Unreachable y Source Quench) son cr\u00edticos, y <b>restringirlos causar\u00e1 m\u00e1s da\u00f1o que beneficio en el futuro.<\/b> Si te preocupa que un atacante pueda trazar un mapa de tu red, un t\u00e9rmino medio razonable es limitar primero la velocidad de todo el tr\u00e1fico ICMP y, a continuaci\u00f3n, permitir un subconjunto limitado de tr\u00e1fico ICMP en tus hosts de borde, al tiempo que permites un acceso sin restricciones para la comunicaci\u00f3n interna entre hosts.<\/li>\n\n\n\n<li>Aplica las comprobaciones de seguridad b\u00e1sicas. Cierto tr\u00e1fico entrante no tiene un prop\u00f3sito leg\u00edtimo; restringe ese tr\u00e1fico. Si recibes ataques frecuentes de un tipo particular de tr\u00e1fico, podr\u00eda resultarte \u00fatil transformarlo en su propia cadena en caso de que te encuentres a\u00f1adiendo normas con frecuencia a esta secci\u00f3n.<\/li>\n\n\n\n<li>A menos que utilices IPv6 y tengas un plan para crear reglas de firewall para el tr\u00e1fico IPv6, <b>restringe todo el tr\u00e1fico IPv6 entrante<\/b>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n, se muestra un script comentado que cumple todos estos objetivos:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n, se muestra un peque\u00f1o script para el tr\u00e1fico IPv6:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Estas reglas se est\u00e1n ejecutando ahora en la memoria y debes asegurarte de que se carguen la pr\u00f3xima vez que se reinicie tu sistema operativo. Para los sistemas basados en Debian, eso significa a\u00f1adir tus reglas de firewall a\u00a0<a href=\"https:\/\/wiki.debian.org\/iptables\" target=\"_tabs\" rel=\"noopener noreferrer\">\/etc\/network\/ip-pre-up.d\/<\/a>\u00a0o bien a\u00f1adir un comando pre-up a\u00a0<a href=\"https:\/\/help.ubuntu.com\/community\/IptablesHowTo\" target=\"_tabs\" rel=\"noopener noreferrer\">\/etc\/network\/interfaces<\/a>. Para los sistemas Red Hat, esto suele hacerse utilizando <a href=\"http:\/\/docs.fedoraproject.org\/en-US\/Fedora\/html\/Security_Guide\/sect-Security_Guide-IPTables-Saving_IPTables_Rules.html\" target=\"_tabs\" rel=\"noopener noreferrer\">\/sbin\/service iptables<\/a>\u00a0 (comando save).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, se recomienda el siguiente refuerzo\/ajuste de la pila TCP\/IP:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si utilizas reglas de firewall con estado, como en el ejemplo anterior, aseg\u00farate de aumentar el n\u00famero m\u00e1ximo de conexiones de las que puedes hacer seguimiento. De lo contrario, un atacante podr\u00eda utilizar un ataque distribuido de denegaci\u00f3n de servicio (DDoS) contra ti.<\/li>\n\n\n\n<li>Utiliza cookies SYN para evitar los ataques DoS de inundaci\u00f3n SYN. <a href=\"http:\/\/security.stackexchange.com\/a\/20917\" target=\"_tabs\" rel=\"noopener noreferrer\">Thomas Pornin ofrece una excelente explicaci\u00f3n sobre qu\u00e9 son los ataques de inundaci\u00f3n SYN<\/a> y c\u00f3mo las cookies SYN mitigan este tipo de ataques.<\/li>\n\n\n\n<li>Registra todos los <a href=\"https:\/\/en.wikipedia.org\/wiki\/Martian_packet\" target=\"_tabs\" rel=\"noopener noreferrer\">paquetes marcianos<\/a> ya que cualquier paquete que provenga de una direcci\u00f3n de origen o destino no enrutable ser\u00e1 malicioso con toda probabilidad.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes probar todos los ajustes anteriores con el siguiente script:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para mantener estos ajustes tras un reinicio, actualiza\u00a0<code>\/etc\/sysctl.conf<\/code>:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Resumen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>S\u00cd: deniega el tr\u00e1fico de forma predeterminada. Permite de forma expl\u00edcita solo el tr\u00e1fico que sepas que debe atravesar tu red.<\/li>\n\n\n\n<li>NO: restrinjas el protocolo ICMP de forma unilateral.<\/li>\n\n\n\n<li>S\u00cd: permite el libre acceso a la interfaz de bucle invertido.<\/li>\n\n\n\n<li>S\u00cd: fuerza algunas comprobaciones de seguridad b\u00e1sicas.<\/li>\n\n\n\n<li>S\u00cd: aseg\u00farate de que tus reglas se carguen al reiniciar.<\/li>\n\n\n\n<li>S\u00cd: ajusta tu pila TCP\/IP para aumentar el n\u00famero de conexiones rastreadas y protegidas contra inundaciones SYN.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Inicio de sesi\u00f3n remoto<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Descripci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En cuanto al inicio de sesi\u00f3n remoto, debes asegurarte no solo de que la comunicaci\u00f3n con tus servidores est\u00e9 cifrada, sino tambi\u00e9n de que solo los usuarios autorizados tengan acceso a tus servidores. Estos son los objetivos habituales a la hora de proteger el inicio de sesi\u00f3n remoto:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ofrece <b>acceso limitado a los usuarios<\/b> para que, si una cuenta se ve comprometida, no comprometa toda tu infraestructura.<\/li>\n\n\n\n<li>Una criptograf\u00eda fuerte garantiza que nadie pueda espiar o leer tus comunicaciones.<\/li>\n\n\n\n<li>Los atacantes no pueden usar t\u00e9cnicas de fuerza bruta para iniciar sesi\u00f3n en tus servidores.<\/li>\n\n\n\n<li>Incluso si tu clave se ve comprometida, un atacante no podr\u00e1 obtener acceso a tu infraestructura.<\/li>\n\n\n\n<li>Un atacante que utilice t\u00e9cnicas de fuerza bruta <b>no podr\u00e1 agotar los recursos del servidor<\/b>.<\/li>\n\n\n\n<li>Solo los usuarios autorizados tienen acceso a tus servidores.<\/li>\n\n\n\n<li>No existe el inicio de sesi\u00f3n para cuentas administrativas de prop\u00f3sito general. Todas las acciones administrativas se realizan mediante alg\u00fan tipo de escalado de privilegios (<code>sudo<\/code>) para registrar las acciones llevadas a cabo.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">No alcanzar cualquiera de estos objetivos puede suponer un riesgo para la seguridad. Una criptograf\u00eda d\u00e9bil (o inexistente) puede permitir que un atacante vea tus comunicaciones. Una autenticaci\u00f3n d\u00e9bil puede permitir a usuarios no autorizados acceder a tus sistemas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por suerte, Secure Shell (SSH) mitiga la mayor\u00eda de estos riesgos, y con unos pocos ajustes en tus sistemas, se pueden mitigar todos.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Mitigaci\u00f3n<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Para empezar, genera tu clave SSH correctamente; aseg\u00farate de usar un tama\u00f1o de clave lo suficientemente grande y de que tu clave est\u00e9 protegida por contrase\u00f1a. Puedes hacerlo usando\u00a0<code>ssh-keygen<\/code>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>ssh-keygen -t rsa -b 4096 -C foo@example.com  <\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n, cuando se te pida, introduce una frase de contrase\u00f1a. Una frase de contrase\u00f1a garantiza que, incluso si alguien roba tu clave, no podr\u00e1 utilizarla sin conocer tambi\u00e9n la frase de contrase\u00f1a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">OpenSSH tiene una configuraci\u00f3n predeterminada razonable que es bastante segura. Sin embargo, algunas distribuciones pueden debilitar estos valores predeterminados para hacer que OpenSSH interopere con servidores heredados. La siguiente configuraci\u00f3n simplemente garantiza que tu versi\u00f3n de OpenSSH aplique esos\u00a0<b>valores predeterminados razonables<\/b>. Para obtener informaci\u00f3n m\u00e1s detallada sobre la configuraci\u00f3n de OpenSSH, consulta\u00a0<a href=\"https:\/\/wiki.mozilla.org\/Security\/Guidelines\/OpenSSH\" target=\"_tabs\" rel=\"noopener noreferrer\">la Gu\u00eda de configuraci\u00f3n de Mozilla para OpenSSH<\/a>\u00a0y la\u00a0<a href=\"http:\/\/wiki.centos.org\/HowTos\/Network\/SecuringSSH\" target=\"_tabs\" rel=\"noopener noreferrer\">Protecci\u00f3n de SSH<\/a>\u00a0p\u00e1gina para CentOS. Ambos son recursos excelentes y nos basaremos en esas configuraciones en futuras versiones de esta gu\u00eda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el servidor, aseg\u00farate de tener las siguientes l\u00edneas en el archivo\u00a0<code>\/etc\/ssh\/sshd_config<\/code>\u00a0:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta configuraci\u00f3n logra los siguientes objetivos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El Protocolo 2 garantiza que est\u00e1s utilizando una versi\u00f3n segura del protocolo SSH. <a href=\"http:\/\/www.snailbook.com\/faq\/ssh-1-vs-2.auto.html\" target=\"_tabs\" rel=\"noopener noreferrer\">La versi\u00f3n 1 del protocolo tiene bastantes problemas y se considera defectuosa<\/a>.<\/li>\n\n\n\n<li><code>PasswordAuthentication no <\/code>y <code>PubkeyAuthentication yes <\/code>te obligan a utilizar criptograf\u00eda de clave p\u00fablica, y no contrase\u00f1as, para autenticarte en tus servidores. Aunque puedes tener una contrase\u00f1a segura, si tienes una contrase\u00f1a de 2048 bits generada de forma aleatoria y codificada en ASCII, <a href=\"https:\/\/www.yahoo.com\/tech\/here-are-500-passwords-you-probably-shouldnt-be-using-96467697789.html\" target=\"_tabs\" rel=\"noopener noreferrer\">m\u00e1s contrase\u00f1as son malas<\/a> y <b>las longitudes de contrase\u00f1a que se usan habitualmente tienen un espacio de b\u00fasqueda mucho menor que el de una clave grande<\/b>.<\/li>\n\n\n\n<li><code>PermitRootLogin no <\/code>desactiva la posibilidad de iniciar sesi\u00f3n de forma remota como usuario ra\u00edz. Aunque este no es un problema directamente explotable, desactivar el inicio de sesi\u00f3n remoto te ayuda a mantener buenos registros de auditor\u00eda para comprender qu\u00e9 ocurre en tus servidores. La cuenta ra\u00edz act\u00faa como una cuenta administrativa compartida, lo que limita tu capacidad para auditar qu\u00e9 usuario est\u00e1 realizando cada acci\u00f3n con privilegios. Si obligas a todos los usuarios a pasar por sus propias cuentas, <b>obtendr\u00e1s un rastro auditable de qu\u00e9 usuario ha realizado cada acci\u00f3n<\/b>. En una secci\u00f3n posterior se ofrecen detalles sobre c\u00f3mo configurar el registro de auditor\u00eda.<\/li>\n\n\n\n<li><code>LogLevel VERBOSE <\/code>registra el usuario y la huella digital de la clave que intent\u00f3 autenticarse. De nuevo, este ajuste no mitiga directamente una vulnerabilidad, pero es bueno para la auditor\u00eda.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">En el cliente, aseg\u00farate de tener las siguientes l\u00edneas en el archivo\u00a0<code>\/etc\/ssh\/ssh_config<\/code>\u00a0:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta configuraci\u00f3n logra los siguientes objetivos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El Protocolo 2 garantiza que est\u00e1s utilizando una versi\u00f3n segura del protocolo SSH. <a href=\"http:\/\/www.snailbook.com\/faq\/ssh-1-vs-2.auto.html\" target=\"_tabs\" rel=\"noopener noreferrer\">La versi\u00f3n 1 del protocolo tiene bastantes problemas y se considera defectuosa<\/a>.<\/li>\n\n\n\n<li><code>HashKnownHosts yes <\/code>genera un hash de los nombres de host y las direcciones en tu archivo <code>~\/.ssh\/known_hosts <\/code>. Incluso si un atacante roba tu archivo de hosts conocidos, no podr\u00e1 enumerar sin m\u00e1s los hosts a los que te conectas con tu clave.<\/li>\n\n\n\n<li><code>StrictHostKeyChecking ask <\/code>comprueba la clave que se te presenta frente a la de tu archivo <code>~\/.ssh\/known_hosts <\/code>y, si ha cambiado (o si es la primera vez que visitas ese host), te pregunta si aceptas esa clave. <b>Esto ayuda a mitigar los ataques de hombre en el medio.<\/b><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Por \u00faltimo, da a los usuarios un acceso limitado a tu infraestructura. Por ejemplo, no todos los usuarios necesitan acceder a tus servidores de copia de seguridad; solo da acceso a los usuarios que realmente sepan c\u00f3mo restaurar las copias. Esto garantiza que, incluso si se ve comprometida una cuenta de usuario sin capacidad para gestionar copias de seguridad, la integridad de tus copias de seguridad no estar\u00e1 en peligro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para lograr esto, dos de los enfoques m\u00e1s comunes son:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Cuentas de usuario locales. En este enfoque, creas cuentas Unix locales para tus usuarios y solo creas cuentas en los servidores a los que necesitan acceder. Puedes utilizar los comandos <code>newusers <\/code>y <code>userdel <\/code>para lograrlo y automatizar\/orquestar este proceso utilizando herramientas de gesti\u00f3n de configuraci\u00f3n como <a href=\"https:\/\/www.chef.io\" target=\"_tabs\" rel=\"noopener noreferrer\">Chef<\/a> o <a href=\"http:\/\/www.ansible.com\" target=\"_tabs\" rel=\"noopener noreferrer\">Ansible<\/a>.<\/li>\n\n\n\n<li>Servicio de autenticaci\u00f3n centralizado como <a href=\"https:\/\/en.wikipedia.org\/wiki\/Lightweight_Directory_Access_Protocol\" target=\"_tabs\" rel=\"noopener noreferrer\">LDAP<\/a>. Con este enfoque, los servidores a los que cada usuario tiene acceso se definen y almacenan en la configuraci\u00f3n del servidor LDAP.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Resumen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>S\u00cd: protege tu clave con una frase de contrase\u00f1a.<\/li>\n\n\n\n<li>NO: asumas que tu distribuci\u00f3n tiene valores predeterminados aceptables; define de forma estricta lo que es importante para tu infraestructura.<\/li>\n\n\n\n<li>S\u00cd: utiliza criptograf\u00eda de clave p\u00fablica para la autenticaci\u00f3n en lugar de autenticaci\u00f3n basada en contrase\u00f1as.<\/li>\n\n\n\n<li>NO: proporciones a todos los usuarios un acceso sin restricciones, limita el acceso solo a las partes necesarias de tu infraestructura.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">L\u00edmites de confianza<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Descripci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Los l\u00edmites de confianza son un punto habitual en el que se producen vulnerabilidades de seguridad. El l\u00edmite entre el mundo exterior y tu infraestructura interna es sagrado y debes hacer todo lo posible por defenderlo y asegurarte de que solo los usuarios autorizados puedan atravesarlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Deben preocuparte dos l\u00edmites de confianza principales.<\/b> El primero es el l\u00edmite entre el Internet p\u00fablico y el punto de conexi\u00f3n de tu API; este es el l\u00edmite que tus clientes cruzar\u00e1n cada d\u00eda al usar tu servicio. El segundo es un punto de acceso para que tu equipo de desarrollo y los administradores del sistema puedan desplegar y dar servicio a tu aplicaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En cuanto al l\u00edmite de confianza de la API que cruzar\u00e1 tu clientela, debes considerar cualquier entrada del usuario como hostil y asumir que cada petici\u00f3n realizada es, en realidad, un intento de explotar tu infraestructura. Cuando piensas en las peticiones de los usuarios de esa manera, resulta evidente que necesitas minimizar la superficie de ataque que proporcionas y aislar el da\u00f1o que pueda ocurrir cuando, en un momento dado, un usuario logre explotar tu servicio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el caso del l\u00edmite de confianza que cruzas para dar servicio a tus aplicaciones, lo ideal es aislar todos tus servicios para que no queden expuestos al Internet p\u00fablico y, a continuaci\u00f3n, obligar a quienes accedan a ellos desde Internet a cruzar por un punto de acceso bien vigilado que puedas defender (llam\u00e9moslo host basti\u00f3n). Puedes concentrar todos tus recursos en ese \u00fanico punto de acceso y preocuparte menos por c\u00f3mo se comunican tus servicios entre s\u00ed cuando se encuentran dentro de ese l\u00edmite de confianza.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Mitigaci\u00f3n<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Para mitigar estos problemas con los l\u00edmites de confianza, necesitas imaginar los distintos cuadros en los que puedes ubicar el Internet p\u00fablico y tu infraestructura (consulta el siguiente diagrama). Una vez que lo tengas, puedes empezar a pensar c\u00f3mo puedes defender tu infraestructura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El primer cuadro grande es el Internet p\u00fablico. No debes confiar nunca en nadie ni en nada en el Internet p\u00fablico. De hecho, debes considerar a todos los actores del Internet p\u00fablico como hostiles, incluso cuando se trate de tu propia plantilla conect\u00e1ndose por SSH a tus servidores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El segundo cuadro grande es tu infraestructura interna. Estos son tus hosts de confianza. Los servicios que se ejecutan en estos servidores deben escuchar solo en interfaces de red privadas si es posible y no estar expuestos de forma directa al Internet p\u00fablico.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Los dos cuadros que abarcan ambos son tu host de salto y los hosts de tu API. <\/b>Estos hosts deben tener acceso tanto al Internet p\u00fablico como a tu infraestructura interna. Puesto que est\u00e1n expuestos de forma directa al Internet p\u00fablico, deben estar reforzados y ejecutar el conjunto m\u00ednimo de servicios necesarios para cumplir sus tareas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Refuerzo del punto de conexi\u00f3n de la API<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque no podemos esperar que ning\u00fan servicio est\u00e9 libre de errores, s\u00ed que podemos limitar hasta qu\u00e9 punto un atacante podr\u00e1 explotar tu infraestructura en caso de vulnerar tu servicio. Por eso te recomendamos aislar los servicios que acepten peticiones entrantes y ejecutarlos en sus propios servidores dedicados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes lograr esto <b>dividiendo las peticiones entrantes en dos partes<\/b>: equilibrio de carga y terminaci\u00f3n TLS (Seguridad de la capa de transporte) de las peticiones entrantes, y el propio manejo de la petici\u00f3n por parte del servicio. Ambas partes deber\u00edan ser, como m\u00ednimo, procesos propios, o bien ejecutarse en servidores distintos, de manera que el equilibrio de carga y la terminaci\u00f3n TLS se sit\u00faen en el l\u00edmite entre Confianza \/ Sin confianza. Esta secci\u00f3n se centrar\u00e1 en el equilibrio de carga y la terminaci\u00f3n (el refuerzo de las aplicaciones ya se ha tratado en una secci\u00f3n anterior).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al separar el equilibrio de carga y la terminaci\u00f3n TLS de tu aplicaci\u00f3n, limitas la posibilidad de que un error en tu equilibrador de carga o software TLS acabe en la vulneraci\u00f3n de toda tu aplicaci\u00f3n, la cual normalmente tendr\u00e1 informaci\u00f3n confidencial cargada en la memoria. Tambi\u00e9n te proporciona un \u00fanico punto de mantenimiento (y de error) que puedes parchear cuando se descubre una vulnerabilidad y necesitas actualizar tu biblioteca TLS, algo que se est\u00e1 convirtiendo en una tarea cada vez m\u00e1s com\u00fan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, supongamos que un atacante dispone de un error de ejecuci\u00f3n remota de c\u00f3digo (RCE) como GHOST o un error de lectura de memoria arbitraria (como Heartbleed) en tu servidor HTTP o software TLS. Si tu servidor HTTP, la terminaci\u00f3n TLS y la l\u00f3gica de la aplicaci\u00f3n se encuentran en el mismo proceso, un error en cualquiera de ellos proporciona al atacante acceso a informaci\u00f3n confidencial dentro del resto de partes. Por ejemplo, un error en OpenSSL puede dar a un atacante acceso a claves confidenciales que tu aplicaci\u00f3n haya cargado en la memoria. Por el contrario, un fallo en tu aplicaci\u00f3n puede dar a un atacante la posibilidad de acceder a tus certificados SSL. <b>Sin embargo, si separas estas partes, en caso de explotarse una de ellas, la otra se mantendr\u00e1 a salvo, y solo perder\u00e1s\u00a0<\/b><b><i>algunos<\/i><\/b><b>\u00a0datos confidenciales.<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para el equilibrio de carga, las opciones m\u00e1s habituales son NGINX,\u00a0<a href=\"http:\/\/www.haproxy.org\/\" target=\"_tabs\" rel=\"noopener noreferrer\">HAProxy<\/a>, y\u00a0<a href=\"http:\/\/httpd.apache.org\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Apache<\/a>. La terminaci\u00f3n TLS suele realizarse con\u00a0<a href=\"https:\/\/www.openssl.org\/\" target=\"_tabs\" rel=\"noopener noreferrer\">OpenSSL<\/a>; sin embargo, existen alternativas como\u00a0<a href=\"http:\/\/www.libressl.org\/\" target=\"_tabs\" rel=\"noopener noreferrer\">LibreSSL<\/a>\u00a0y\u00a0<a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Projects\/NSS\" target=\"_tabs\" rel=\"noopener noreferrer\">Mozilla NSS<\/a>\u00a0. Otra alternativa es utilizar algo parecido a\u00a0<a href=\"https:\/\/github.com\/mailgun\/vulcand\" target=\"_tabs\" rel=\"noopener noreferrer\">vulcand<\/a>, que act\u00faa como equilibrador de carga y utiliza la biblioteca Go TLS para la terminaci\u00f3n TLS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Refuerzo del punto de conexi\u00f3n del servicio (y de todo lo dem\u00e1s)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes reforzar el punto de conexi\u00f3n de tu servicio limitando el acceso a tus servidores desde el Internet p\u00fablico y obligando a que toda la autenticaci\u00f3n pase por un\u00a0<i>host de salto<\/i>. Esta restricci\u00f3n suele lograrse sin exponer tu infraestructura directamente al Internet p\u00fablico; en su lugar, se construye una especie de red interna a la que solo se puede acceder a trav\u00e9s del host basti\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hay muchas formas de crear una red interna, y tu enfoque depender\u00e1, en gran medida, de <b>c\u00f3mo configure tu infraestructura<\/b> tu proveedor de servicios y de tus preferencias.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, supongamos que alojas tus servidores en Amazon Web Services (AWS). Entonces puedes empezar con una\u00a0<a href=\"http:\/\/aws.amazon.com\/vpc\" target=\"_tabs\" rel=\"noopener noreferrer\">Virtual Private Cloud<\/a>\u00a0(VPC) con una \u00fanica subred p\u00fablica. Tus servidores estar\u00e1n aislados del resto de servidores de AWS y residir\u00e1n en su propio bloque CIDR\u00a0<code>10.0.0.0\/16<\/code>\u00a0. Sin embargo, seguir\u00e1n teniendo acceso a Internet sin restricciones. Para restringir el acceso desde Internet, crea\u00a0<a href=\"http:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/UserGuide\/using-network-security.html\" target=\"_tabs\" rel=\"noopener noreferrer\">Grupos de seguridad<\/a>que a\u00edslen tanto los puertos que est\u00e1n abiertos como los servidores que pueden acceder a esos puertos. Por ejemplo, configurar\u00edas tus hosts de trabajo para aceptar conexiones en los puertos 22 y 80, pero \u00fanicamente desde tu host de salto y equilibrador de carga, respectivamente. Sin embargo, tu servidor de salto aceptar\u00eda conexiones en el puerto 22 desde cualquier servidor del Internet p\u00fablico.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si tu proveedor de servicios no ofrece estas herramientas, puedes lograr lo mismo siempre que ofrezca asistencia para alg\u00fan tipo de red privada, ya sea compartida o dedicada, que te permita aislar el tr\u00e1fico p\u00fablico del privado. Esta funci\u00f3n suele ofrecerla la mayor\u00eda de los proveedores: como hemos mencionado antes, Amazon la llama VPC, Rackspace la denomina\u00a0<a href=\"http:\/\/www.rackspace.com\/knowledge_center\/frequently-asked-question\/what-is-servicenet\" target=\"_tabs\" rel=\"noopener noreferrer\">ServiceNet<\/a>y Digital Ocean la llama\u00a0<a href=\"https:\/\/www.digitalocean.com\/blog\/introducing-private-networking\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Private Networking<\/a>. Todos ofrecen b\u00e1sicamente la misma capacidad: <b>al crear tu servidor virtual, puedes vincularlo a la interfaz p\u00fablica, a la privada o a ambas<\/b>. Si tu proveedor de servicios no cuenta con esta funci\u00f3n durante el tiempo de compilaci\u00f3n, puedes activar y desactivar estas interfaces t\u00fa mismo en el archivo\u00a0<code>\/etc\/network\/interfaces<\/code>\u00a0de un sistema basado en Debian y en el archivo\u00a0<code>\/etc\/sysconfig\/network-scripts\/ifcfg*<\/code>\u00a0de un sistema basado en Red Hat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez que tengas servidores con interfaces p\u00fablicas y privadas, utiliza\u00a0<code>iptables<\/code>\u00a0para restringir el tr\u00e1fico entrante a las interfaces de acceso p\u00fablico de los servidores que act\u00faen como hosts de salto o ejecuten la API de acceso p\u00fablico. Los servidores que gestionan todos los servicios internos, como la aplicaci\u00f3n y el servidor de la base de datos, rechazan cualquier tr\u00e1fico entrante a las interfaces p\u00fablicas y restringen el tr\u00e1fico entrante a las interfaces privadas para que solo provenga del grupo de servidores de confianza.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez hecho esto, la \u00fanica forma que tiene un atacante de vulnerar tu infraestructura desde el Internet p\u00fablico es entrar desde tu host basti\u00f3n reforzado o explotar tu API de alg\u00fan modo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por \u00faltimo, para acceder a estos servidores, no utilices\u00a0<code>ssh-agent<\/code>; en su lugar, utiliza\u00a0<code>ProxyCommand<\/code>. Aunque\u00a0<code>ssh-agent<\/code>\u00a0tiene su utilidad, no resulta adecuado para este caso de uso en concreto. Si lo hicieras, cualquiera con un exploit local de escalado de privilegios para tu servidor basti\u00f3n podr\u00eda acceder a cualquier servidor de tu infraestructura suplantando la identidad de cualquier usuario cuyas claves estuvieran actualmente cargadas en memoria por\u00a0<code>ssh-agent<\/code>. En cambio, con\u00a0<code>ProxyCommand<\/code>, tus claves no se quedar\u00e1n en la memoria para que alguien pueda robarlas y tu clave privada vivir\u00e1 exclusivamente en tu estaci\u00f3n de trabajo local; <b>solo tu clave p\u00fablica se copiar\u00e1 a cada servidor al que necesites acceder.<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para usar\u00a0<code>ProxyCommand<\/code>, copia tu clave p\u00fablica a\u00a0<code>~\/.ssh\/authorized_hosts<\/code>\u00a0en todos los servidores a los que necesites acceder. A continuaci\u00f3n, actualiza el archivo\u00a0<code>~\/.ssh\/config<\/code>\u00a0de tu estaci\u00f3n de trabajo con la siguiente informaci\u00f3n:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta configuraci\u00f3n te permite acceder a\u00a0<code>server1.example.com<\/code>\u00a0y\u00a0<code>server2.example.com<\/code>\u00a0desde\u00a0<code>workstation.example.com<\/code>\u00a0a trav\u00e9s de SSH en sus interfaces privadas \u201csaltando\u201d a trav\u00e9s de jump.example.com, que tiene acceso tanto a las interfaces p\u00fablicas como a las privadas. Para conectarte, solo tienes que escribir\u00a0<code>ssh server1.example.com<\/code>\u00a0o\u00a0<code>ssh server2.example.com<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Resumen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>S\u00cd: utiliza un equilibrador de carga para separar el servidor HTTP de tu aplicaci\u00f3n del servidor HTTP de cara al p\u00fablico.<\/li>\n\n\n\n<li>S\u00cd: termina el TLS en el equilibrador de carga.<\/li>\n\n\n\n<li>S\u00cd: utiliza un host de salto reforzado para controlar el acceso a tu infraestructura.<\/li>\n\n\n\n<li>NO: utilices un agente SSH, a ser posible. Deja todas tus claves en peligro de exposici\u00f3n si alguien encuentra un exploit local de escalado de privilegios.<\/li>\n\n\n\n<li>S\u00cd: utiliza las interfaces p\u00fablicas y privadas de tu proveedor de servicios para aislar tus servicios internos del Internet p\u00fablico.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Monitorizaci\u00f3n y registro<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Descripci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Todas y cada una de las medidas de seguridad pueden ser burladas y, de hecho, lo ser\u00e1n en alg\u00fan momento. Dado que no existe ninguna medida pr\u00e1ctica que pueda proporcionar garant\u00edas de seguridad f\u00e9rreas, es importante contar con instalaciones de supervisi\u00f3n y registro s\u00f3lidas que te ayuden a entender d\u00f3nde y c\u00f3mo se vieron comprometidos tus sistemas. Cuanto mejor comprendas qu\u00e9 se est\u00e1 ejecutando en tus sistemas y c\u00f3mo lo hace, m\u00e1s capacidad tendr\u00e1s para detectar comportamientos an\u00f3malos. De la misma manera que un banco instala c\u00e1maras de seguridad aunque ya cuenta con cajas fuertes reforzadas, disponer de buenas herramientas de monitorizaci\u00f3n resulta clave para atrapar a los intrusos que consigan sortear tus medidas de seguridad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>La monitorizaci\u00f3n y el registro adoptan dos formas<\/b>. La primera es la monitorizaci\u00f3n en vivo, que te permite ver qu\u00e9 ocurre en tu sistema en cualquier momento. Esto engloba todo, desde los sockets de red que est\u00e1n abiertos hasta los procesos que se est\u00e1n ejecutando en la actualidad. La segunda son los datos de registro de las acciones que ya se han llevado a cabo. Esto abarca todo, desde el registro l\u00f3gico de la aplicaci\u00f3n hasta los registros del sistema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta secci\u00f3n, veremos c\u00f3mo analizar los registros del sistema en los propios servidores individuales. En la versi\u00f3n intermedia de esta gu\u00eda, hablaremos sobre la suma y las alertas de registros.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Mitigaci\u00f3n<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Las siguientes herramientas vienen integradas en la mayor\u00eda de los sistemas operativos basados en UNIX. Resultan muy \u00fatiles cuando sospechas que se est\u00e1 produciendo un incidente de seguridad, pero tambi\u00e9n es crucial emplearlas de antemano para poder comprender cu\u00e1l es su resultado normal.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Monitorizaci\u00f3n en vivo<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n, se indican algunos comandos y el resultado esperado en condiciones normales de funcionamiento. Estos ejemplos ilustran el aspecto que deber\u00eda tener el resultado en tu<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>who<\/code>\u00a0\u2013 Te muestra qui\u00e9n ha iniciado sesi\u00f3n en este momento. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>last -a\u00a0<\/code>\u2013 Te muestra una lista de los \u00faltimos usuarios que han iniciado sesi\u00f3n. Imprime el nombre de usuario, la hora de inicio de sesi\u00f3n y las direcciones IP desde las que se ha accedido.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>netstat -plntu<\/code>\u00a0\u2013 Muestra los nombres de los procesos y los puertos en los que escuchan conexiones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>netstat -ap<\/code>\u00a0\u2013 Muestra una transmisi\u00f3n en vivo de todas las conexiones, incluidas las conexiones salientes establecidas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>find \/ -mtime -1 -ls | head -n 20<\/code>\u00a0\u2013 Enumera los 20 archivos principales modificados en las \u00faltimas 24 horas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>faillog -a<\/code>\u00a0para ver un resumen de los errores de inicio de sesi\u00f3n. Esto tambi\u00e9n resulta \u00fatil para limitar el n\u00famero m\u00e1ximo de intentos fallidos de inicio de sesi\u00f3n por usuario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>tcpdump -i eth1 -s 0 -A tcp port http <\/code>\u2013 Vuelca todo el tr\u00e1fico HTTP en la interfaz <code>eth1<\/code>. Esto es \u00fatil si has encontrado algo sospechoso utilizando <code>netstat <\/code>y deseas indagar m\u00e1s al respecto. Esta gu\u00eda no puede ofrecerte todos los detalles sobre <code>tcpdump<\/code>, <b>pero existen <\/b><a href=\"http:\/\/bencane.com\/2014\/10\/13\/quick-and-practical-reference-for-tcpdump\" target=\"_tabs\" rel=\"noopener noreferrer\"><b>m\u00faltiples recursos<\/b><\/a><b> en Internet que te ayudar\u00e1n a entender el funcionamiento de <\/b><b><code>tcpdump<\/code><\/b>.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Monitorizaci\u00f3n de registros<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n te indicamos algunas reglas generales sobre c\u00f3mo tratar el registro de aplicaciones e indicadores hacia los registros importantes del sistema.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Registros de aplicaci\u00f3n generales<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Agrupa los registros de tu aplicaci\u00f3n en una ubicaci\u00f3n central, ya sea un \u00fanico archivo de registro o un directorio. El enfoque m\u00e1s com\u00fan para ello es utilizar\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Syslog\" target=\"_tabs\" rel=\"noopener noreferrer\"><i>syslog<\/i><\/a>\u00a0para esta capacidad. Utilizar syslog facilitar\u00e1 en el futuro el env\u00edo de los registros a un servidor de registros central.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Mant\u00e9n tus registros durante todo el tiempo que te permita el espacio en el disco<\/b>. Conservar registros en el disco hasta un total de 90 d\u00edas no es ninguna locura si cuentas con el espacio para ello.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Registros del sistema<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Al igual que con la monitorizaci\u00f3n en vivo, te recomendamos vigilar de forma peri\u00f3dica los siguientes archivos de registro del sistema a fin de desarrollar una buena l\u00ednea de base de resultados esperados. Contar con l\u00edneas de base facilita en gran medida la detecci\u00f3n de comportamientos sospechosos en el futuro. Esta es una lista parcial de algunos registros del sistema interesantes que debes vigilar:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>\/var\/log\/auth.log <\/code>\u2013 Registros de autenticaci\u00f3n del sistema.<\/li>\n\n\n\n<li><code>\/var\/log\/syslog <\/code>\u2013 Si no env\u00edas los registros a una instalaci\u00f3n concreta de syslog, se ubicar\u00e1n aqu\u00ed.<\/li>\n\n\n\n<li><code>\/var\/log\/messages <\/code>\u2013 Mensajes de registro generales del sistema.<\/li>\n\n\n\n<li><code>~\/.bash_history <\/code>\u2013 Lista de comandos Bash que ha ejecutado el usuario. Los atacantes m\u00e1s sofisticados pueden borrar o manipular f\u00e1cilmente este registro.<\/li>\n\n\n\n<li><code>\/var\/log\/utmp <\/code>y <code>\/var\/log\/wtmp <\/code>\u2013 Estos registros contienen los usuarios actuales que han iniciado sesi\u00f3n y el historial de todos los usuarios que han iniciado sesi\u00f3n. Utiliza <code>last -f  <\/code> para ver estos archivos.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Resumen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Aprende un par de comandos b\u00e1sicos que pueden ayudarte a averiguar qu\u00e9 est\u00e1 ocurriendo en tus servidores ahora mismo. Estos comandos incluyen <code>who<\/code>, <code>last<\/code>, <code>lsof<\/code>, <code>netstat<\/code>, <code>faillog<\/code> y <code>find<\/code>.<\/li>\n\n\n\n<li>Averigua qu\u00e9 necesitas registrar. Los registros no resultan \u00fatiles si no capturan aquellos eventos cr\u00edticos para la seguridad. Como m\u00ednimo, deber\u00edas monitorizar los siguientes archivos: <code>\/var\/log\/auth.log<\/code>, <code>\/var\/log\/syslog<\/code> y <code>\/var\/log\/messages<\/code>.<\/li>\n\n\n\n<li>Empieza a centralizar tus registros lo antes posible. Utilizar syslog ahora en lugar de un marco de registro personalizado facilitar\u00e1 el env\u00edo de los registros a un servidor de registros central en el futuro.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Uso de criptograf\u00eda<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Descripci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La criptograf\u00eda es un tema muy complejo del que se debe hablar por separado. Incluso los despistes o fallos m\u00e1s leves pueden comprometer por completo la seguridad de un producto. Por este motivo se repite tan a menudo el mantra de \u201cno programes tu propia criptograf\u00eda\u201d. Dos buenas fuentes que puedes leer antes de empezar a trabajar con la criptograf\u00eda son\u00a0<a href=\"https:\/\/www.crypto101.io\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Crypto101<\/a>\u00a0escrito por Laurens Van Houtven (lvh) y\u00a0<a href=\"http:\/\/cryptopals.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">los retos criptogr\u00e1ficos de Matasano<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dicho esto, mantener tu infraestructura a salvo <b>requiere el uso de cierta criptograf\u00eda<\/b>, y existen patrones comunes que pueden emplearse de forma segura. Esta secci\u00f3n aborda uno de esos patrones: c\u00f3mo almacenar datos confidenciales en el c\u00f3digo fuente (o en el disco).<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Mitigaci\u00f3n<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando almacenes credenciales, ya sea en el control de c\u00f3digo fuente o en el disco, no lo hagas sin cifrar. Puede que creas que tus contrase\u00f1as est\u00e1n seguras si utilizas un repositorio privado de GitHub, pero no es recomendable que conf\u00edes en GitHub para mantener a salvo de los atacantes toda tu infraestructura. Si cifras tus credenciales, podr\u00e1s mantener tu seguridad incluso si GitHub se ve comprometido.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al buscar una herramienta o biblioteca para cifrar peque\u00f1as cantidades de datos, ten en cuenta las siguientes recomendaciones:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Utiliza un cifrado sim\u00e9trico moderno. Dos opciones habituales son AES y Salsa20 (NaCl).<\/li>\n\n\n\n<li>Si tu cifrado sim\u00e9trico admite distintos modos, selecciona el modo con cuidado. Por ejemplo, CBC es un buen modo de uso para AES, pero no ECB.<\/li>\n\n\n\n<li>Utiliza un c\u00f3digo de autenticaci\u00f3n de mensajes (MAC) para asegurarte de que nadie haya manipulado los datos cifrados. Las opciones HMAC-SHA-512 o Poly1305 son buenas.<\/li>\n\n\n\n<li>Utiliza una fuente de valores aleatorios de alta calidad, lo que normalmente significa utilizar <code>\/dev\/urandom <\/code>para obtener los n\u00fameros aleatorios empleados en claves, salts y nonces.<\/li>\n\n\n\n<li>Si la biblioteca o herramienta funciona con frases de contrase\u00f1a, aseg\u00farate de que utiliza un KDF para transformar la frase de contrase\u00f1a en una clave.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes construir t\u00fa mismo una herramienta de cifrado; sin embargo, como ya se ha mencionado, <b>puede resultar complejo y no es recomendable<\/b>. No obstante, si te empe\u00f1as en construirla, utiliza una biblioteca como\u00a0<a href=\"http:\/\/nacl.cr.yp.to\/\" target=\"_tabs\" rel=\"noopener noreferrer\">NaCl<\/a>\u00a0o\u00a0<a href=\"https:\/\/www.cryptography.io\/\" target=\"_tabs\" rel=\"noopener noreferrer\">cryptography.io<\/a>\u00a0que, por lo menos, ejecutar\u00e1 la criptograf\u00eda de forma correcta para ti. Sin embargo, es todav\u00eda mejor usar una \u201creceta\u201d que haya construido alguien para hacer esto, como\u00a0<a href=\"http:\/\/github.com\/mailgun\/lemma\" target=\"_tabs\" rel=\"noopener noreferrer\">lemma<\/a>\u00a0o\u00a0<a href=\"https:\/\/cryptography.io\/en\/latest\/fernet\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Fernet<\/a>\u00a0que exponen una sencilla API que puedes emplear para cifrar y descifrar datos de forma segura.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Resumen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>NO: elijas al azar el modo en que est\u00e1s empleando tu cifrado sim\u00e9trico.<\/li>\n\n\n\n<li>S\u00cd: utiliza un cifrado sim\u00e9trico autenticado con un MAC.<\/li>\n\n\n\n<li>S\u00cd: utiliza <code>\/dev\/urandom <\/code>para generar material aleatorio.<\/li>\n\n\n\n<li>S\u00cd: utiliza una \u201creceta\u201d parecida, si puedes.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Copias de seguridad<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Descripci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque es posible que las copias de seguridad no parezcan encontrarse en la misma categor\u00eda que el resto de temas tratados en esta gu\u00eda, son igual de importantes para la seguridad de la infraestructura. Las copias de seguridad tienen dos objetivos principales: restaurar el sistema en caso de un fallo del hardware no malicioso, y restaurarlo si un atacante compromete tu infraestructura. Recuerda: en caso de que ocurra una vulneraci\u00f3n, <b>es mejor borrar tu servidor y crear uno nuevo que tratar de eliminar el malware<\/b>, algo que puede resultar muy dif\u00edcil, o casi imposible, para alguien novato. Por este motivo, en caso de vulneraci\u00f3n, las copias de seguridad son vitales a la hora de devolver tu infraestructura a un estado de confianza.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Mitigaci\u00f3n<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Los siguientes enfoques son una buena estrategia general a seguir a la hora de trabajar con copias de seguridad:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No dejes tus copias de seguridad desprotegidas por el simple hecho de que no parezcan de vital importancia para tu servicio. Esa es la raz\u00f3n por la que los atacantes atacan frecuentemente la infraestructura de copias de seguridad.<\/li>\n\n\n\n<li>Haz copias de seguridad con la frecuencia adecuada para las necesidades de tu empresa. Una vez al d\u00eda es razonable.<\/li>\n\n\n\n<li>Tus servidores de copias de seguridad deben tener acceso limitado, y las cuentas que existan deben utilizar mecanismos de autenticaci\u00f3n y autorizaci\u00f3n distintos a los empleados en el resto de tu infraestructura. Por ejemplo, tus servidores de copias de seguridad deben usar una clave SSH distinta para el inicio de sesi\u00f3n. Si sigues estos pasos y tu entorno principal se ve comprometido, <b>seguir\u00e1s teniendo copias de seguridad fiables<\/b> desde las que restaurar.<\/li>\n\n\n\n<li>Si no quieres gestionar tu propia infraestructura de copias de seguridad, haz copias de seguridad en el almac\u00e9n de datos de un tercero como Amazon S3. Ten en cuenta que, si vas a utilizar alg\u00fan servicio de terceros, debes cifrar tus copias de seguridad antes de enviarles tus datos. Trabaja asumiendo que tu almac\u00e9n de datos es de acceso p\u00fablico y utiliza el cifrado para proteger tu informaci\u00f3n. Si trabajas con esta mentalidad, aunque tu host se vea vulnerado, tus datos estar\u00e1n a salvo.<\/li>\n\n\n\n<li>Si utilizas Amazon S3 o Rackspace CloudFiles, usa una receta de cifrado autenticado como <a href=\"http:\/\/github.com\/mailgun\/lemma\" target=\"_tabs\" rel=\"noopener noreferrer\">lemma<\/a> o <a href=\"https:\/\/cryptography.io\/en\/latest\/fernet\" target=\"_tabs\" rel=\"noopener noreferrer\">Fernet<\/a>. Si no quieres preocuparte por la criptograf\u00eda, usa un servicio que cifre tus datos en el cliente y solo env\u00ede blobs cifrados a su servicio, como <a href=\"http:\/\/www.tarsnap.com\" target=\"_tabs\" rel=\"noopener noreferrer\">Tarsnap<\/a>.<\/li>\n\n\n\n<li>Haz copias de seguridad de tus repositorios de c\u00f3digo fuente, de cualquier software de terceros que emplee tu aplicaci\u00f3n y de tu base de datos. El ejemplo reciente de FoundationDB ilustra la importancia de hacer copias de seguridad de cualquier software que utilices. <b>El equipo de desarrollo puede revocar las descargas de software en cualquier momento y por cualquier motivo.<\/b><\/li>\n\n\n\n<li>Aunque los sistemas de control de versiones distribuidas (DVCS) como Git ofrecen cierta redundancia, no sustituyen a las verdaderas copias de seguridad. No debes depender de que una rama concreta se encuentre en la estaci\u00f3n de trabajo de una persona del equipo para garantizar la continuidad del negocio.<\/li>\n\n\n\n<li>Haz una copia de seguridad de tu base de datos utilizando el m\u00e9todo que prescribe la propia base de datos.<\/li>\n\n\n\n<li>Restaura desde copias de seguridad con la misma frecuencia con la que ejecutas las propias copias. Las copias de seguridad no sirven de nada si no se pueden utilizar. En el mejor de los casos, puedes ejecutar algunos servicios auxiliares que no requieran tener los datos m\u00e1s recientes frente a tus copias de seguridad restauradas. De este modo, si algo sale mal, lo sabr\u00e1s de inmediato.<\/li>\n\n\n\n<li>Aseg\u00farate de que <b>varias personas de tu equipo<\/b> sepan c\u00f3mo realizar restauraciones desde copias de seguridad. Tal vez seas capaz de averiguar c\u00f3mo restaurar tus copias de seguridad, o tal vez no. Podr\u00eda llevarte una hora o diez horas. Es mejor dedicar unas horas cada trimestre a revisar tu infraestructura de copias de seguridad junto al equipo.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Resumen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>NO: utilices para las copias de seguridad las mismas cuentas que en tu entorno principal.<\/li>\n\n\n\n<li>S\u00cd: haz copias de seguridad de los repositorios fuente, del software de terceros y de las bases de datos.<\/li>\n\n\n\n<li>S\u00cd: intenta realizar restauraciones desde copias de seguridad con la misma frecuencia con la que ejecutas el procedimiento para obtenerlas.<\/li>\n\n\n\n<li>S\u00cd: ejecuta servicios auxiliares a partir de copias de seguridad restauradas si tienes la oportunidad.<\/li>\n\n\n\n<li>NO: tengas un \u00fanico punto de fallo, aseg\u00farate de que varias personas de tu equipo puedan llevar a cabo restauraciones desde copias de seguridad.<\/li>\n\n\n\n<li>S\u00cd: cifra tus copias de seguridad con un cifrado autenticado. Utiliza una herramienta como\u00a0<a href=\"http:\/\/github.com\/mailgun\/lemma\" target=\"_tabs\" rel=\"noopener noreferrer\">lemma<\/a>\u00a0o\u00a0<a href=\"https:\/\/cryptography.io\/en\/latest\/fernet\" target=\"_tabs\" rel=\"noopener noreferrer\">Fernet<\/a>, o una soluci\u00f3n alojada como\u00a0<a href=\"http:\/\/www.tarsnap.com\/\" target=\"_tabs\" rel=\"noopener noreferrer\">Tarsnap<\/a>.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Ejecutar tu infraestructura con una configuraci\u00f3n segura es una tarea desalentadora incluso para los profesionales de la seguridad. Esta gu\u00eda proporciona consejos pr\u00e1cticos para ayudar al equipo de ingenier\u00eda a crear una infraestructura siguiendo las mejores pr\u00e1cticas de seguridad para que puedan implementar sus servicios en la Internet p\u00fablica con confianza y reducir las posibilidades de sufrir vulnerabilidades. Esta gu\u00eda se centra espec\u00edficamente en los sistemas basados en Linux; sin embargo, las mejores pr\u00e1cticas se aplican a todos los sistemas inform\u00e1ticos.<\/p>\n","protected":false},"author":13,"featured_media":4843,"menu_order":0,"template":"","meta":{"_acf_changed":false,"footnotes":""},"blog_category":[23],"class_list":["post-24522","blog","type-blog","status-publish","has-post-thumbnail","hentry","blog_category-it-and-engineering"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>C\u00f3mo proteger tu infraestructura frente a los atacantes - Transactional Email API Service For Developers | Mailgun<\/title>\n<meta name=\"description\" content=\"Mailgun repasa algunos consejos pr\u00e1cticos para ayudar al equipo de ingenier\u00eda a crear infraestructuras seguras y lograr unas implantaciones fiables.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mailgun.com\/es\/blog\/it-and-engineering\/guia-seguridad-seguridad-basica-infraestructura\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo proteger tu infraestructura frente a los atacantes - Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:description\" content=\"Mailgun repasa algunos consejos pr\u00e1cticos para ayudar al equipo de ingenier\u00eda a crear infraestructuras seguras y lograr unas implantaciones fiables.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mailgun.com\/es\/blog\/it-and-engineering\/guia-seguridad-seguridad-basica-infraestructura\/\" \/>\n<meta property=\"og:site_name\" content=\"Transactional Email API Service For Developers | Mailgun\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png\" \/>\n\t<meta property=\"og:image:width\" content=\"720\" \/>\n\t<meta property=\"og:image:height\" content=\"448\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"29 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/it-and-engineering\\\/guia-seguridad-seguridad-basica-infraestructura\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/it-and-engineering\\\/guia-seguridad-seguridad-basica-infraestructura\\\/\",\"name\":\"C\u00f3mo proteger tu infraestructura frente a los atacantes - Transactional Email API Service For Developers | Mailgun\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/it-and-engineering\\\/guia-seguridad-seguridad-basica-infraestructura\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/it-and-engineering\\\/guia-seguridad-seguridad-basica-infraestructura\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"datePublished\":\"2026-09-16T14:43:29+00:00\",\"description\":\"Mailgun repasa algunos consejos pr\u00e1cticos para ayudar al equipo de ingenier\u00eda a crear infraestructuras seguras y lograr unas implantaciones fiables.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/it-and-engineering\\\/guia-seguridad-seguridad-basica-infraestructura\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/it-and-engineering\\\/guia-seguridad-seguridad-basica-infraestructura\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/it-and-engineering\\\/guia-seguridad-seguridad-basica-infraestructura\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/MG-Blog-IT-Engineering.png\",\"width\":720,\"height\":448},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/it-and-engineering\\\/guia-seguridad-seguridad-basica-infraestructura\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Gu\u00eda de seguridad: C\u00f3mo proteger tu infraestructura de los ataques b\u00e1sicos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"description\":\"Potentes API de email transaccional que te permiten enviar, recibir y hacer seguimiento de emails, creadas pensando en los desarrolladores. \u00a1Descubre m\u00e1s!\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#organization\",\"name\":\"Transactional Email API Service For Developers | Mailgun\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"contentUrl\":\"https:\\\/\\\/www.mailgun.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-android-chrome-512x512-1.png\",\"width\":512,\"height\":512,\"caption\":\"Transactional Email API Service For Developers | Mailgun\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mailgun.com\\\/es\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"C\u00f3mo proteger tu infraestructura frente a los atacantes - Transactional Email API Service For Developers | Mailgun","description":"Mailgun repasa algunos consejos pr\u00e1cticos para ayudar al equipo de ingenier\u00eda a crear infraestructuras seguras y lograr unas implantaciones fiables.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mailgun.com\/es\/blog\/it-and-engineering\/guia-seguridad-seguridad-basica-infraestructura\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo proteger tu infraestructura frente a los atacantes - Transactional Email API Service For Developers | Mailgun","og_description":"Mailgun repasa algunos consejos pr\u00e1cticos para ayudar al equipo de ingenier\u00eda a crear infraestructuras seguras y lograr unas implantaciones fiables.","og_url":"https:\/\/www.mailgun.com\/es\/blog\/it-and-engineering\/guia-seguridad-seguridad-basica-infraestructura\/","og_site_name":"Transactional Email API Service For Developers | Mailgun","og_image":[{"width":720,"height":448,"url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"29 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mailgun.com\/es\/blog\/it-and-engineering\/guia-seguridad-seguridad-basica-infraestructura\/","url":"https:\/\/www.mailgun.com\/es\/blog\/it-and-engineering\/guia-seguridad-seguridad-basica-infraestructura\/","name":"C\u00f3mo proteger tu infraestructura frente a los atacantes - Transactional Email API Service For Developers | Mailgun","isPartOf":{"@id":"https:\/\/www.mailgun.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mailgun.com\/es\/blog\/it-and-engineering\/guia-seguridad-seguridad-basica-infraestructura\/#primaryimage"},"image":{"@id":"https:\/\/www.mailgun.com\/es\/blog\/it-and-engineering\/guia-seguridad-seguridad-basica-infraestructura\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","datePublished":"2026-09-16T14:43:29+00:00","description":"Mailgun repasa algunos consejos pr\u00e1cticos para ayudar al equipo de ingenier\u00eda a crear infraestructuras seguras y lograr unas implantaciones fiables.","breadcrumb":{"@id":"https:\/\/www.mailgun.com\/es\/blog\/it-and-engineering\/guia-seguridad-seguridad-basica-infraestructura\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mailgun.com\/es\/blog\/it-and-engineering\/guia-seguridad-seguridad-basica-infraestructura\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.mailgun.com\/es\/blog\/it-and-engineering\/guia-seguridad-seguridad-basica-infraestructura\/#primaryimage","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/07\/MG-Blog-IT-Engineering.png","width":720,"height":448},{"@type":"BreadcrumbList","@id":"https:\/\/www.mailgun.com\/es\/blog\/it-and-engineering\/guia-seguridad-seguridad-basica-infraestructura\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mailgun.com\/es\/"},{"@type":"ListItem","position":2,"name":"Blog","item":"https:\/\/www.mailgun.com\/es\/blog\/"},{"@type":"ListItem","position":3,"name":"Gu\u00eda de seguridad: C\u00f3mo proteger tu infraestructura de los ataques b\u00e1sicos"}]},{"@type":"WebSite","@id":"https:\/\/www.mailgun.com\/es\/#website","url":"https:\/\/www.mailgun.com\/es\/","name":"Transactional Email API Service For Developers | Mailgun","description":"Potentes API de email transaccional que te permiten enviar, recibir y hacer seguimiento de emails, creadas pensando en los desarrolladores. \u00a1Descubre m\u00e1s!","publisher":{"@id":"https:\/\/www.mailgun.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mailgun.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.mailgun.com\/es\/#organization","name":"Transactional Email API Service For Developers | Mailgun","url":"https:\/\/www.mailgun.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.mailgun.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","contentUrl":"https:\/\/www.mailgun.com\/wp-content\/uploads\/2025\/06\/cropped-android-chrome-512x512-1.png","width":512,"height":512,"caption":"Transactional Email API Service For Developers | Mailgun"},"image":{"@id":"https:\/\/www.mailgun.com\/es\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/blog\/24522","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/users\/13"}],"version-history":[{"count":0,"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/blog\/24522\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/media\/4843"}],"wp:attachment":[{"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/media?parent=24522"}],"wp:term":[{"taxonomy":"blog_category","embeddable":true,"href":"https:\/\/www.mailgun.com\/es\/wp-json\/wp\/v2\/blog_category?post=24522"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}