Usar /conf/crontab
, como señaló dlawson, me parece una excelente idea. Esto me permite ejecutar un script una vez por minuto que garantiza que todo, excepto http y ssh, se apague:
/etc/init.d/cdserver stop
/etc/init.d/fdserver stop
/etc/init.d/cim_sfcb stop
/etc/init.d/webgo stop
Eso todavía me deja con un servidor web con control de acceso basado en contraseña (no veo forma de validar los certificados del cliente) y quién sabe qué vulnerabilidades remotas. Apagarlo cuando no lo estoy usando (que es la mayoría de las veces) parece una solución razonable; agregar una entrada crontab para apagarlo cada cinco o diez minutos detectaría aquellos casos en los que alguien olvida cerrarlo cuando haya terminado.
El demonio ssh es una versión de dropbear que parece estar bastante modificada. Lee los nombres de usuario y las contraseñas de texto sin formato /conf/PMConfig.dat
(que también utiliza el servidor web), registra cualquier nombre y contraseña válidos como usuario raíz e ignora el ~/.ssh/authorized_keys
archivo. Este último problema es molesto; te obliga a permitir el inicio de sesión con contraseña y abre la posibilidad de puertas traseras dependiendo de dónde obtiene todos sus nombres y contraseñas.
Así que ese es el dilema que enfrenta: ¿cuánto confía realmente en este demonio ssh modificado instalado en un sistema que obviamente fue diseñado por desarrolladores sin experiencia en seguridad? No mucho, dada la cantidad de fragmentos rotos de cruft que he visto en sus guiones de shell. Hay convenciones de nomenclatura inusuales (/etc/rc?.d/sshd es un enlace simbólico a /etc/init.d/ssh), una gran cantidad de código que parece no estar usado y funciones en el script de inicio ssh, como el /conf/portcfg_ssh
archivo e incluso el restart
comando están completamente rotos. (No intente usar estos; sshd no se reiniciará y se perderá a menos que tenga un inicio de sesión existente. Reiniciamos el BMC y terminamos teniendo que volver a actualizarlo).
La mejor opción que se me ocurre, si alguien va a usar la cosa, es comenzar ssh en un puerto alternativo usando un trabajo cron, por lo que al menos es menos probable que aparezca en un escaneo de puertos.
El componente final son los puertos de administración de red IPMI; No puedo ver cómo apagarlos.