Dicen que comprar una casa o un auto usado es solo comprar los problemas de otra persona. ¿Qué reparaciones de cinta adhesiva se esconden dentro de las paredes o debajo del capó? Sin conocer el historial de mantenimiento, debe investigar para evitar lo inesperado.
Ya sea que haya un servidor no autorizado, administradores que abandonan la empresa o adquisiciones y fusiones, en algún momento de su viaje como administrador de sistemas, heredará un servidor que no construyó pero del que de repente es responsable. Este artículo se centrará en algunas áreas para comenzar a proteger y familiarizarse con el nuevo sistema. Adoptar un enfoque de clasificación es solo un punto de partida:la seguridad es parte del ciclo de vida continuo de la administración de un sistema.
Tenga en cuenta que este sistema aloja una aplicación o un servicio que debe permanecer disponible. Utilice cualquier proceso de gestión de cambios requerido que tenga su empresa. Además, familiarícese con las políticas de seguridad de su empresa y dónde puede consultarlas para obtener la configuración adecuada.
Copias de seguridad
Tenga siempre un buen plan de copias de seguridad... ¡y copias de seguridad recuperables!
Inicie la revisión verificando que se realicen copias de seguridad del sistema con regularidad y que las copias de seguridad sean recuperables. No espere hasta que necesite la restauración para descubrir que está mal. Las comprobaciones de copia de seguridad deben incluir la confirmación de que todos los sistemas de archivos remotos también estén respaldados en alguna parte.
Algunas aplicaciones y bases de datos requieren un proceso o agente especial para obtener buenas copias de seguridad, por lo que este es un buen momento para revisar que esas copias de seguridad adicionales se estén realizando correctamente. La realización de pruebas de recuperación periódicas que incluyen probar la aplicación para la funcionalidad posterior a la recuperación identifica las brechas y los problemas con las copias de seguridad.
También es posible que desee realizar una copia de seguridad única rápida antes de continuar. Es posible que no sea necesaria una restauración completa del sistema, pero si los ajustes salen terriblemente mal, esta copia de seguridad proporciona un estado de funcionamiento al que recurrir. Utilice el control de cambios y documente su trabajo como otro método para ayudar a una posible recuperación.
Cuentas
Sus próximos pasos incluyen una revisión de quién tiene acceso al sistema y cómo se autentica. Cualquier privilegio elevado, como a través de sudo
, también hay que comprobarlo. Conozca las políticas de seguridad de la empresa, como la caducidad de la contraseña y las reglas de complejidad para verificar que se están aplicando. Este artículo de la base de conocimiento explica los detalles sobre cómo configurar políticas de contraseñas.
Veamos ejemplos específicos de problemas que debe considerar y cómo manejarlos.
La cuenta del administrador anterior
Dado que este sistema fue heredado, considere si el administrador anterior todavía necesita una cuenta. De lo contrario, evite eliminar su cuenta. Bloquearlo, en su lugar. Al hacerlo, se conserva la información de la cuenta y se ayuda a evitar la reutilización inadvertida del UID. El usermod
El comando se puede usar para bloquear la cuenta:
$ sudo user mod -L <username>
Cuentas de acceso privilegiado
Revise sudoers para incluir ambos sudoers
archivo (/etc/sudoers
) y el directorio de inclusión (/etc/sudoers.d
). Verifique si hay tareas en particular que incluyan ALL
. Esta tarea normalmente incluye el grupo wheel
. Para eliminar usuarios de grupos, utilice groupmems
comando como este:
$ sudo groupmems -g wheel -d <username>
También puede enumerar cualquier comando permitido por sudo para cualquier usuario como este:
$ sudo -l -U <username>
Otras cuentas
Si hay cuentas que comparten varios usuarios, considere forzar un cambio de contraseña como parte de este traspaso. Un mejor enfoque para las cuentas compartidas sería aprovechar los grupos y las ACL para los permisos de archivos.
Las cuentas de servicio no deben tener acceso de inicio de sesión como práctica recomendada. Estas cuentas normalmente están bloqueadas o no tienen contraseña, y tienen un shell como /usr/sbin/nologin
. Si una cuenta de servicio necesita un shell interactivo, considere otorgarle al administrador sudo su <accountname>
en lugar de inicio de sesión directo.
Otros comandos que pueden ayudar al revisar cuentas son chage
y last
. El chage
El comando proporciona opciones para ver y ajustar la configuración de caducidad de la cuenta. El last
El comando muestra información sobre inicios de sesión recientes.
Para ver la información de caducidad de una cuenta:
$ sudo chage -l <username>
Para ver los últimos cinco inicios de sesión de una cuenta:
$ last <username> -5
Puertos y servicios
Revisar los servicios y puertos en ejecución lo ayuda a identificar aquellos que son innecesarios y se pueden deshabilitar. Detener estos servicios adicionales también los elimina como vectores de ataque.
Una forma rápida de mostrar lo que está escuchando es con ss
dominio. Este ejemplo usa opciones para mostrar sockets que escuchan TCP y UDP, y también incluye detalles del proceso:
$ sudo ss -tulnp
Ejecutar este comando en un servidor web de muestra da lo que ve aquí:
Este resultado muestra que hay httpd
procesos escuchando los puertos 80
, 443
, 8080
y 8443
. Otros procesos de escucha incluyen mariadb
(mysqld
) en el puerto 3306
, xvnc
en el puerto 5901
y vsftpd
en el puerto21
. Estos últimos tres procesos pueden generar algunas preocupaciones.
Todo lo que no sea necesario para que la aplicación o el sistema funcione debe deshabilitarse. Si necesita rastrear un PID hasta el systemd
servicio, ejecute systemctl status
:
$ systemctl status <PID>
Configuraciones de investigación para los servicios restantes. Algunas aplicaciones pueden admitir ACL para agregar otra capa de protección. En sistemas multitarjeta, verifique si solo se necesita un servicio en un segmento de red. La Local Address:Port
La columna muestra si el servicio está escuchando en una IP específica o en todas las redes (*
, 0.0.0.0
, o ::
).
Veamos cosas adicionales que puede hacer para proteger sus puertos y servicios.
Puertos
Escaneo de puertos con una herramienta como nmap
muestra qué puertos son accesibles desde otro sistema. Esta herramienta también se puede utilizar para validar que los cortafuegos funcionan como se espera. Tienes varias opciones con nmap
, pero para un escaneo rápido y simple, solo necesita proporcionar el nombre de host o la dirección IP:
$ nmap <host-to-scan>
Servicios
Acceda a sus servicios para ver qué se está ejecutando y qué es necesario, ya que no todos los servicios tienen un oyente de red activo. Puede obtener una lista de servicios en ejecución utilizando --state
opción con systemctl
, así:
$ systemctl --state=running -t s
Detener y deshabilitar servicios es sencillo con systemctl
:
$ sudo systemctl stop <service name>
$ sudo systemctl disable <service name>
Además, compruebe si hay algún servicio que haya fallado y necesite mantenimiento:
$ systemctl --state=failed
O, si un servicio no es necesario en absoluto, desactívelo con systemctl disable
.
SELinux
SELinux debe estar habilitado y configurado para aplicar. Este estado se puede verificar usando sestatus
:
$ sestatus -v
Si es necesario, puede cambiar SELinux para que se cumpla con el comando:
$ sudo setenforce Enforcing
Mantenga el cambio persistente yendo a /etc/selinux/config
buscando SELINUX=disable
o SELINUX=permissive
, luego cambie la línea a:
SELINUX=enforcing
La solución de problemas de SELinux va más allá de esta guía, pero una buena referencia inicial es este artículo de la base de conocimiento.
Parcheo
Mantener y asegurar un sistema incluye actualizaciones. Para el servidor heredado, comience por verificar que el sistema esté suscrito y configurado para recibir actualizaciones. En Red Hat Enterprise Linux (RHEL), use este comando para mostrar información sobre el servicio de administración de suscripciones:
$ sudo subscription-manager config --list
El baseurl
listado en el [rhsm
] proporciona información sobre a qué está suscrito este sistema. Si cdn.redhat.com
aparece en la lista, el sistema está suscrito directamente a Red Hat Content Delivery Network.
Este ejemplo muestra un sistema suscrito directamente a Red Hat. Si el baseurl
es un servidor satélite, verifique los repositorios sincronizados allí para asegurarse de que el contenido sincronizado esté actualizado.
Confirme qué repositorios están habilitados para el sistema con este comando:
$ yum repolist --all
Esta salida muestra los repositorios configurados y su estado. Si un repositorio está deshabilitado, no se buscarán parches cuando se actualice el sistema.
yum
fue reemplazado por dnf
. El yum
las opciones son casi las mismas que las de dnf
y yum
en sí mismo es solo un enlace simbólico a dnf
.
Ejecutando yum check-update
enumerará los paquetes y las versiones que están disponibles para la actualización. Las mejores prácticas aplican todos los parches disponibles, pero puede haber algunos casos en los que solo se deseen arreglos relacionados con la seguridad. Es posible hacer esto usando --security
opción.
Esta opción se puede combinar con el check-update
para devolver una lista de parches que brindan alivio a una vulnerabilidad de seguridad, pero omitirán cualquier otra cosa. También se puede incluir con la update
comando.
$ yum check-update
Agrega el --security
opción para limitar esta salida a actualizaciones relacionadas con la seguridad.
Para los sistemas Red Hat Enterprise Linux, puede revisar la criticidad de cada actualización desde Red Hat Satellite o el portal del cliente. Cada errata de seguridad tiene una calificación (crítica, importante, moderada o baja) basada en el riesgo potencial. La calificación lo ayuda a determinar con qué anticipación debe programar cualquier actualización del sistema.
Cuando esté listo para parchear, ejecute la yum update
comando:
$ sudo yum update
Revisa el resultado y presiona Y cuando se le solicite.
yum-utils
el paquete también incluye un needs-restarting
utilidad que comprueba si es necesario reiniciar.
Siguientes pasos
Los escaneos de vulnerabilidades y las verificaciones de cumplimiento deben programarse y realizarse según lo permita el tiempo. Dos herramientas para explorar este tema son OpenVAS y OpenSCAP. Estas herramientas brindan un análisis más profundo del sistema, informando sobre cualquier vulnerabilidad existente y brechas en el cumplimiento. Si no ha usado estas herramientas antes, es posible que le tome algún tiempo configurarlas y familiarizarse con ellas, pero deberían convertirse en sus herramientas de referencia para proteger todos los sistemas que administra.
Cerrándolo
Ser asignado para administrar un sistema que alguien más construyó ciertamente puede ser intimidante. A lo largo de esta revisión de su sistema heredado, debería estar más familiarizado con él y habrá mejorado su seguridad. Continúe con revisiones de seguridad periódicas para todos sus sistemas como parte del ciclo de vida del sistema.
Asegúrese de consultar los artículos futuros a medida que profundizamos en el análisis de vulnerabilidades y los procesos STIG.
[¿Quiere probar Red Hat Enterprise Linux? Descárguelo ahora gratis.]