[{"data":1,"prerenderedAt":219},["ShallowReactive",2],{"seo-verification":3,"blog-auditoria-seguridad-mensual-vps-clientes-agencia-checklist-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-auditoria-seguridad-mensual-vps-clientes-agencia-checklist-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":30,"intro":33,"sections":34,"ctaTitle":168,"ctaBody":169,"ctaButton":170,"ctaUrl":171,"relatedPosts":172},521,"auditoria-seguridad-mensual-vps-clientes-agencia-checklist",{"fr":12,"en":13,"ar":14,"es":10},"checklist-audit-securite-mensuel-vps-clients-agence","monthly-security-audit-checklist-client-vps-agency","قائمة-تدقيق-أمان-vps-شهرية-للعملاء-للوكالات","Auditoría mensual de un VPS cliente: checklist en 45 min","Siete controles para repetir cada mes en un VPS cliente: actualizaciones, kernel, cuentas SSH, puertos, certificados, copias, registros. Con informe fechado.",10,0,false,"2026-10-28T00:00:00+00:00","2026-10-29T03:10:22+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},8,"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fchecklist-audit-securite-mensuel-vps-clients-agence-poster.svg","Un cliente no pregunta si su VPS es seguro, pregunta desde cuándo lo sabe usted. Una agencia sin rutina no puede responder ni el día de una vulnerabilidad ni en la renovación del contrato. Esta checklist recorre en 45 minutos, por VPS, siete controles de solo lectura: actualizaciones pendientes, kernel, cuentas y claves SSH, puertos abiertos, certificados, copias de seguridad restauradas y registros de autenticación. Termina con un informe fechado de una página que entrega al cliente y compara de un mes a otro.",[35,39,42,52,77,111,114,117,138,142,150,153,156,165],{"type":36,"title":37,"body":38},"h2","Verificar un estado, no reconstruirlo","El endurecimiento inicial de un VPS se hace una vez, en la entrega: claves SSH, cortafuegos, fail2ban, actualizaciones automáticas. Nuestra checklist de endurecimiento ya lo detalla. Aquí damos por hecho que todo eso existe y nos preguntamos si sigue en pie. Un paquete que quedó pendiente, una cuenta creada para un proveedor y nunca eliminada, un puerto abierto para una prueba, un certificado cuya renovación falla en silencio: nada de eso se ve mientras no se mira. La auditoría mensual es por tanto una rutina de control, no de configuración. Cada control produce una salida que se archiva y un estado verde, naranja o rojo en el informe del cliente. Una desviación se anota, nunca se corrige sin acuerdo.",{"type":36,"title":40,"body":41},"Fijar el perímetro antes de la primera auditoría","Antes del primer comando, deje por escrito quién es responsable de qué. ¿El VPS pertenece al cliente o a la agencia? ¿Quién guarda la cuenta root, quién recibe las alertas, quién decide un reinicio? Sin respuestas, la primera desviación se convierte en una disputa: ¿podía la agencia corregirla, estaba el cliente avisado? Incluya cinco puntos en su contrato o pedido: los VPS cubiertos, la frecuencia de la auditoría, los accesos concedidos de solo lectura, el plazo de respuesta ante una desviación roja y la lista de acciones que la agencia puede hacer sola, como aplicar una actualización de seguridad, frente a las que exigen validación del cliente, como un reinicio o la eliminación de una cuenta.",{"type":43,"title":44,"items":45},"ul","Para preparar una sola vez, antes de auditar",[46,47,48,49,50,51],"**Una cuenta de auditoría dedicada** — un usuario nominal con `sudo` limitado a leer registros e inspeccionar la red, en lugar de un root compartido.","**Una lista esperada por VPS** — puertos que deben escuchar, cuentas autorizadas, dominios servidos, herramienta de copia y repositorio. Sin referencia, una desviación no se distingue del funcionamiento normal.","**Un script de recogida de solo lectura** — encadena los comandos de la checklist y escribe todo en un archivo fechado, para teclear cada comando una sola vez.","**Una carpeta de archivo por cliente** — una subcarpeta por mes, conservada fuera del VPS auditado, para poder comparar los meses.","**Una plantilla de informe** — el mismo formato para todos los clientes, rellenado a partir de las salidas recogidas.","**Un calendario** — un día fijo del mes por cliente, anotado en la agenda del equipo; si no, la auditoría se salta en el primer mes cargado.",{"type":53,"title":54,"steps":55},"steps","Los siete controles, con su presupuesto de tiempo",[56,59,62,65,68,71,74],{"title":57,"body":58},"Actualizaciones pendientes (6 min)","`sudo apt update`\n`apt list --upgradable 2>\u002Fdev\u002Fnull`\n`apt list --upgradable 2>\u002Fdev\u002Fnull | grep -i security`\nAísle los paquetes cuyo origen termina en `-security`: salen primero. Los demás pasan por validación humana, porque un salto de versión mayor puede romper una aplicación. En AlmaLinux o RHEL, `sudo dnf check-update --security` cumple el mismo papel. Aun con las actualizaciones automáticas activas, este control muestra lo que sigue bloqueado.",{"title":60,"body":61},"Kernel y reinicio pendiente (4 min)","`uname -r`\n`ls \u002Fboot\u002Fvmlinuz-*`\n`ls \u002Fvar\u002Frun\u002Freboot-required`\n`sudo needrestart -b -r l`\nSi el kernel instalado más reciente difiere de `uname -r`, o si existe `\u002Fvar\u002Frun\u002Freboot-required`, hay un reinicio pendiente. En la salida de needrestart, la línea `NEEDRESTART-KSTA` indica si el kernel cargado está al día, y la lista muestra los servicios que aún usan bibliotecas antiguas. El reinicio nunca se hace en solitario: se planifica con el cliente.",{"title":63,"body":64},"Cuentas y claves SSH (8 min)","`awk -F: '$3>=1000' \u002Fetc\u002Fpasswd`\n`getent group sudo`\n`sudo ssh-keygen -lf \u002Fhome\u002F\u003Ccuenta>\u002F.ssh\u002Fauthorized_keys`\n`lastlog | grep -v 'Never logged in'`\n`last -n 20`\nCada cuenta humana debe corresponder a una persona conocida del cliente o de la agencia. Cada huella de clave debe pertenecer a alguien que sigue trabajando en el proyecto. Una cuenta sin conexión desde hace meses, o una clave desconocida, pasa a naranja y va al cliente para su validación.",{"title":66,"body":67},"Puertos abiertos (5 min)","`sudo ss -tlnp`\n`sudo ss -ulnp`\n`sudo ufw status verbose`\nCompare el resultado con la lista esperada para este VPS. Una base de datos que escucha en todas las interfaces en lugar del bucle local, un puerto de prueba olvidado, un servicio desconocido: cada desviación se anota con el proceso que la abre, sin cerrarla de inmediato, porque un servicio puede depender de ese puerto.",{"title":69,"body":70},"Certificados (4 min)","`openssl s_client -connect su-dominio.com:443 -servername su-dominio.com \u003C\u002Fdev\u002Fnull 2>\u002Fdev\u002Fnull | openssl x509 -noout -enddate`\nLea la fecha de caducidad en el servicio realmente expuesto, no solo la presencia de un temporizador de renovación: un temporizador activo puede fallar cada noche. Si el dominio pasa por una CDN, este comando lee el certificado de la CDN. Para el origen, sustituya el host de `-connect` por la dirección IP del VPS y conserve `-servername`.",{"title":72,"body":73},"Copias restauradas (10 min)","`restic snapshots`\n`restic restore latest --target \u002Ftmp\u002Fprueba-restauracion --include \u002Fetc\u002Fnginx`\nAnote la fecha del último punto de restauración, luego restaure de verdad un archivo o una base de datos en un directorio temporal y ábralo. Una copia nunca restaurada no es una prueba, es una hipótesis. Elimine después el directorio temporal. Si el cliente usa otra herramienta, la lógica es la misma: lista de puntos, restauración parcial, comprobación del contenido.",{"title":75,"body":76},"Registros de autenticación (8 min)","`sudo journalctl -u ssh --since '30 days ago' --no-pager | grep -c 'Failed password'`\n`sudo journalctl -u ssh --since '30 days ago' --no-pager | grep 'Accepted'`\n`sudo journalctl _COMM=sudo --since '30 days ago' --no-pager`\nCuente los fallos, liste las conexiones correctas y busque las que vienen de una dirección desconocida. Revise los usos de `sudo`. En RHEL y derivadas, la unidad se llama `sshd`, no `ssh`.",{"type":78,"title":79,"headers":80,"rows":84},"comparison","El presupuesto de 45 minutos por VPS",[81,82,83],"Control","Comando clave","Tiempo",[85,89,93,97,101,104,108],[86,87,88],"Actualizaciones pendientes","`apt list --upgradable`","6 min",[90,91,92],"Kernel y reinicio","`needrestart -b -r l`","4 min",[94,95,96],"Cuentas y claves SSH","`ssh-keygen -lf authorized_keys`","8 min",[98,99,100],"Puertos abiertos","`ss -tlnp`","5 min",[102,103,92],"Certificados","`openssl s_client`",[105,106,107],"Copias restauradas","`restic restore`","10 min",[109,110,96],"Registros de autenticación","`journalctl -u ssh`",{"type":36,"title":112,"body":113},"Un script de recogida en lugar de siete sesiones a mano","La mayor parte de los 45 minutos es lectura, no tecleo, siempre que no se vuelvan a escribir los comandos. Escriba un script `audit-vps` que ejecute los comandos de los controles uno a siete y redirija cada salida a un archivo con el nombre del cliente y la fecha, por ejemplo `~\u002Faudits\u002Fclient-a\u002FAAAA-MM\u002Fsalida-bruta.txt`. Solo contiene comandos de lectura: ningún `apt upgrade`, ningún `systemctl restart`, ningún `rm`. Láncelo por SSH desde su equipo, recupere el archivo y léalo con calma. La restauración de la copia sigue siendo el único paso manual, porque exige juzgar si el contenido restaurado es coherente.",{"type":36,"title":115,"body":116},"Archivar y comparar: ahí se ven las derivas","Una auditoría aislada da una foto; dos auditorías consecutivas dan una tendencia. Conserve la salida bruta de cada mes y compárela con la anterior mediante `diff -u auditoria-anterior.txt auditoria-actual.txt`. Un puerto que aparece, una cuenta de más, un número de fallos de conexión multiplicado por diez, un punto de restauración que ya no avanza: todas estas señales destacan en unas pocas líneas de diferencia, mientras que son invisibles en una salida leída sola. Archive también el informe entregado al cliente. El día en que este pregunte desde cuándo existía una cuenta o cuándo se aplicó una corrección, la respuesta es un archivo fechado, no un recuerdo.",{"type":53,"title":118,"steps":119},"El informe de una página entregado al cliente",[120,123,126,129,132,135],{"title":121,"body":122},"La cabecera","Nombre del cliente, identificador del VPS, dirección IP, fecha de la auditoría, nombre de la persona que la realizó.",{"title":124,"body":125},"La tabla de los siete controles","Una línea por control con un estado: verde si no hay nada que señalar, naranja si una desviación requiere una decisión del cliente, rojo si se necesita una acción urgente.",{"title":127,"body":128},"Las desviaciones constatadas","Cada desviación en una frase factual, con la prueba: la línea de salida, el puerto, la cuenta afectada.",{"title":130,"body":131},"Las acciones realizadas","Lo que la agencia aplicó sola, dentro del perímetro acordado, por ejemplo una actualización de seguridad.",{"title":133,"body":134},"Las acciones que el cliente debe validar","Reinicio, eliminación de una cuenta, cierre de un puerto, con el riesgo de no hacer nada.",{"title":136,"body":137},"La próxima fecha","La fecha de la próxima auditoría y, para cada desviación naranja o roja, un plazo límite de tratamiento.",{"type":139,"title":140,"body":141},"tip","Anote la desviación, no la corrija sobre la marcha","El reflejo de cerrar el puerto o eliminar la cuenta sospechosa durante la auditoría es el más caro: cae un servicio del cliente y la agencia lo decidió sola. El papel de la auditoría es hacer visible y fechada la desviación. La corrección sigue el circuito de validación acordado al inicio, incluso para lo que parece evidente.",{"type":43,"title":143,"items":144},"Cuando una salida no dice lo que parece decir",[145,146,147,148,149],"**`needrestart` no encontrado** — el paquete no está instalado por defecto en todas partes. Instálelo una vez con el acuerdo del cliente, o compare a mano `uname -r` y los kernels presentes en `\u002Fboot`.","**Ningún fallo SSH en los registros** — compruebe el nombre de la unidad antes de concluir. Según la distribución, la autenticación se registra bajo `ssh`, `sshd` o, en las versiones recientes de OpenSSH, `sshd-session`. Pruebe `sudo journalctl _COMM=sshd-session --since '30 days ago'`.","**`ss -tlnp` no muestra los procesos** — sin `sudo`, la columna de procesos queda vacía para los servicios de otros usuarios.","**Un certificado válido mientras el sitio muestra un error** — ha leído el de una CDN o de otro vhost. Apunte a la dirección del VPS y pase el `-servername` correcto.","**`restic` pide una contraseña** — el repositorio está cifrado. Obtenga el secreto del cliente antes de la auditoría, no durante ella; de lo contrario el control se salta.",{"type":36,"title":151,"body":152},"La objeción del tiempo: 45 minutos por cliente, cada mes","Veinte clientes suman quince horas al mes, y la objeción es legítima. Tres palancas la reducen. Primero, el tiempo se mide por VPS, no por cliente: un cliente con un solo servidor cuesta 45 minutos, y menos desde el segundo mes, porque las referencias esperadas ya están fijadas. Segundo, el script lo recoge todo, usted solo lee, y el informe se rellena desde una plantilla. Por último, compare con el coste de un incidente no detectado: un acceso olvidado o una copia inutilizable se descubren el día de la caída, con un cliente molesto y una factura de recuperación. La rutina cuesta menos que un solo incidente evitable.",{"type":36,"title":154,"body":155},"Cuando la cartera crece","Con diez VPS, la checklist cabe en una jornada. Con cincuenta, la dificultad pasa a ser de organización: saber qué cliente tiene qué, qué vencimientos caen este mes, quién ha sido auditado. El espacio de agencia de ServOrbit.com reúne los servicios y vencimientos de cada cliente en una sola interfaz, lo que evita mantener una hoja de cálculo paralela. Si la agencia prefiere no asumir ella misma la base del sistema, existe la opción de administración de VPS, que se estudia aparte. Esta guía se facilita tal cual, sin soporte: la ejecución de la auditoría y la responsabilidad frente al cliente siguen siendo suyas.",{"type":43,"title":157,"items":158},"Para ir más lejos",[159,160,161,162,163,164],"**Montar la base** — \u002Fblog\u002Flinux-hardening-vps-checklist describe el endurecimiento inicial que esta auditoría verifica.","**Automatizar las correcciones** — \u002Fblog\u002Fsecurite-vps-mises-a-jour-automatiques-debian-ubuntu explica unattended-upgrades, cuyos restos mide el primer control.","**Respaldar bien** — \u002Fblog\u002Fbackup-vps-restic-s3-3-2-1 cubre la puesta en marcha de Restic, cuya restauración verifica el sexto control.","**Vigilar de forma continua** — \u002Fblog\u002Falertes-disque-ram-vps-monitoring-proactif completa la auditoría mensual con alertas entre dos pasadas.","**Inventariar las versiones de PHP** — \u002Fblog\u002Finventaire-versions-php-parc-sites-clients-agence aplica la misma disciplina al parque de sitios.","**Reaccionar ante una vulnerabilidad** — las guías de corrección de la categoría Seguridad y monitorización del blog muestran lo que permite un inventario al día el primer día.",{"type":36,"title":166,"body":167},"La documentación oficial","Opciones de apt: https:\u002F\u002Fmanpages.debian.org\u002Fstable\u002Fapt\u002Fapt.8.en.html\n\nProyecto needrestart: https:\u002F\u002Fgithub.com\u002Fliske\u002Fneedrestart\n\nActualizaciones automáticas en Debian: https:\u002F\u002Fwiki.debian.org\u002FUnattendedUpgrades\n\nComando ss: https:\u002F\u002Fman7.org\u002Flinux\u002Fman-pages\u002Fman8\u002Fss.8.html\n\nComando openssl s_client: https:\u002F\u002Fdocs.openssl.org\u002Fmaster\u002Fman1\u002Fopenssl-s_client\u002F\n\nComando journalctl: https:\u002F\u002Fwww.freedesktop.org\u002Fsoftware\u002Fsystemd\u002Fman\u002Flatest\u002Fjournalctl.html\n\nDemonio sshd: https:\u002F\u002Fman.openbsd.org\u002Fsshd.8\n\nComando last: https:\u002F\u002Fman7.org\u002Flinux\u002Fman-pages\u002Fman1\u002Flast.1.html","Una cartera de VPS legible desde un solo lugar","Auditar un parque a mano se vuelve inmanejable cuando la cartera crece. El espacio de agencia de ServOrbit.com reúne los servicios y vencimientos de cada cliente en una sola interfaz, y la opción de administración de VPS permite delegar la base del sistema.","Descubrir la oferta para agencias","\u002Fsolutions\u002Fagences",[173,190,205],{"id":174,"slug":175,"slugs":176,"title":180,"excerpt":181,"readTime":182,"views":183,"isPinned":19,"publishedAt":184,"updatedAt":185,"category":186,"categories":187,"featuredImage":30,"bgImage":31,"posterImage":189,"relatedSolution":30},317,"hardening-linux-vps-checklist-para-agencias-tras-la-entrega",{"fr":177,"en":178,"ar":179,"es":175},"linux-hardening-vps-checklist","linux-vps-hardening-checklist-for-agencies","قائمة-تصليب-خادم-لينكس-للوكالات-بعد-التسليم","Hardening Linux VPS : checklist para agencias tras la entrega","Checklist de hardening Linux reproducible para agencias: auditd, sudo, clave SSH, UFW, fail2ban y desactivación de root — con trazabilidad por cliente.",11,1,"2026-08-30T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[188],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Flinux-hardening-vps-checklist-poster.svg",{"id":191,"slug":192,"slugs":193,"title":197,"excerpt":198,"readTime":182,"views":18,"isPinned":19,"publishedAt":199,"updatedAt":200,"category":201,"categories":202,"featuredImage":30,"bgImage":31,"posterImage":204,"relatedSolution":30},508,"inventario-de-versiones-php-de-sitios-cliente-metodo-de-agencia",{"fr":194,"en":195,"ar":196,"es":192},"inventaire-versions-php-parc-sites-clients-agence","php-version-inventory-for-client-sites-an-agency-method","جرد-إصدارات-php-لمواقع-العملاء-منهج-للوكالات","Inventario de versiones PHP de sitios cliente: método de agencia","Registro de la versión PHP de cada sitio cliente en varios proveedores: niveles de acceso, scripts por lotes, prioridades, mensaje al cliente y prueba fechada.","2026-10-27T00:00:00+00:00","2026-10-27T23:58:39+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[203],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Finventaire-versions-php-parc-sites-clients-agence-poster.svg",{"id":206,"slug":207,"slugs":208,"title":212,"excerpt":213,"readTime":182,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":214,"category":215,"categories":216,"featuredImage":30,"bgImage":31,"posterImage":218,"relatedSolution":30},523,"probar-restauracion-copia-seguridad-vps-cliente-agencia-procedimiento",{"fr":209,"en":210,"ar":211,"es":207},"tester-restauration-sauvegarde-vps-client-agence-procedure","test-client-vps-backup-restore-agency-procedure","اختبار-استعادة-نسخة-احتياطية-vps-عميل-وكالة-إجراء","Probar la restauración de la copia de un cliente: procedimiento","Procedimiento trimestral para restaurar el sitio de un cliente en un VPS desechable, medir el RTO y el RPO reales y entregar al cliente un registro de prueba fechado.","2026-10-29T03:10:23+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[217],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Ftester-restauration-sauvegarde-vps-client-agence-procedure-poster.svg",1793251421935]