¡Te damos la bienvenida al nuevo sysarmy --help! Para recuperar tu usuario pedí un password reset.
Seguridad en Apache
Viejas les cuento la situación. Sysadmin anterior partió por lo que los web servers que tiene la empresa administrando me cayeron a mi que tengo prácticamente nula experiencia pero en dos semanas la vengo piloteando bastante bien para mi sorpresa. La cuestión pasa por el escenario que me encuentro y necesito confirmar mis sospechas:
Todos los servers los manejaba con Webmin y las bases con PhpMyAdmin, servidores en producción de clientes muy grosos ¿estoy en lo correcto si esta forma no encaja en lo que se dice "best practice"? bueno, también en la documentación encuentro que la conexión por ssh la hacía directamente con el usuario root...
¿Qué detalles debería ir auditando para armar un informe y comenzar a segurizar los servidores? Nunca pasó nada pero tampoco quiero que pase justo ahora que me caen estas tareas a mi.
Desde ya muchas gracias por lo que me puedan ir recomendando.
Abrazo
Todos los servers los manejaba con Webmin y las bases con PhpMyAdmin, servidores en producción de clientes muy grosos ¿estoy en lo correcto si esta forma no encaja en lo que se dice "best practice"? bueno, también en la documentación encuentro que la conexión por ssh la hacía directamente con el usuario root...
¿Qué detalles debería ir auditando para armar un informe y comenzar a segurizar los servidores? Nunca pasó nada pero tampoco quiero que pase justo ahora que me caen estas tareas a mi.
Desde ya muchas gracias por lo que me puedan ir recomendando.
Abrazo
Este hilo ha sido cerrado.
Respuestas
Como para evitar que te den murra de movida.
Otro tema MUY importante a tener en cuenta son las aplicaciones que corren en esos webservers. Podes tener el servidor mas seguro del mundo, pero con una webapp vulnerable queda tan seguro como eso.
Saludos
A lo de edu fortes le agregaria:
Después haría backups de los archivos más importantes, en cuanto a configuraciones, como /etc y /home así como de las bases de datos usando algo como mysqldump, y dejaría de ser posible una de esas copias fuera de dichos servidores.
Después, si tenés conocimientos como para administrar el servidor "a mano" (ssh o consola), desinstalaría webmin directamente y me olvidaría de tener otra cosa más para mantener actualizada y administrar.
Algo similar con phpMyAdmin. Si te animás a usar el comando sql, desinstalalo o como comentaron anteriormente, usá algún cliente de mysql como el Workbench, que hoy en día no sé qué tan usable estará, cuando lo probé en sus primeros días era imposible de hacer una operación sin que se cerrara la GUI, pero quizás eso cambió.
Pasale un nmap al server para ver qué puertos tiene abiertos y ver si es coherente con los servicios que supuestamente está brindando.
iptables también es un must, pero tené mucho cuidado con las reglas porque si no tenés bastante claro lo que estás haciendo te podés quedar afuera del server y a menos que tengas acceso físico o a través de una consola tipo vnc, se te va a venir la noche.
Hacé limpieza de paquetes que no uses, esto no sólo desocupa lugar sino que quizás termina servicios que no usás, y achica el tamaño y tiempo de las actualizaciones. Cualquier cosa que entorpezca o dificulte el mantener el servidor actualizado, tiene que volar IMHO. No sé qué distro corren los servers, pero si es debian o derivado podés probar el deborphan, que elimina los paquetes huérfanos que muchas veces quedan ahí tirados ocupando espacio y seguís actualizándolos al pedo.
Mantené el servidor actualizado, pero tené cuidado cuando haya saltos de versiones importantes especialmente en Apache o MySQL porque tienen por costumbre cambiar cosas en la configuración y te pueden dejar a pata (true story).
Siempre usuario normal con sudo, nunca root directamente, tanto para acceder por ssh o consola, como para usar mysql. Por ejemplo, en sitios hechos con CMS como Wordpress, no uses el usuario root para acceder a la base (wp-config.php), creale un usuario que tenga todos los permisos pero sólo para la base de datos del sitio.
Cambiale la contraseña a los usuarios de linux que supuestamente ya no se usen. Eventualmente conviene borrarlos pero un mal administrador pudo haber dejado cosas en su carpeta que son útiles como scripts y hasta archivos de configuración que si desaparecen pueden causarte problemas.
Después de cambiar cualquier cosa, verificá que todo ande. Es fácil cambiar una opción en apache y reiniciarlo y no darse cuenta que al reiniciar en realidad te tiró un error por un typo en el archivo de configuración y nunca terminó de arrancar.
No sé si estará dentro de tus posibilidades pero en una empresa en la que trabajé que tenía 5 servidores (que eran CPUs pedorras en realidad) los convencí de comprar una buena máquina para hacer de servidor y le puse Proxmox que es un servidor de máquinas virtuales. Hice imágenes de los servidores y los convertí en servidores virtuales. Algunos los fusioné en un mismo servidor (ej: servidores que sólo corrían apache para alojar unas páginas web o la intranet), y otros los mantuve separados. Esto te da la posibilidad de hacer snapshots tocando un botón, etc.
Buscate o inventate algún script que te mande mails cuando queda poca memoria y/o espacio en disco en los servidores. Yo uso unas líneas de bash + PHPMailer.
Una vez que tengas todo corriendo más o menos bien, programá backups periódicos de las cosas que se actualicen con más frecuencia, que es generalmente son las bases de datos. Si podés, usá uno de los servidores como servidor de backups, montá por NFS las carpetas remotas que querés respaldar y guardá los backups en este servidor de backups y/o en un almacenamiento externo conectado a este servidor.
Esto es lo que se me ocurre hasta el momento, espero que te sirve.
Abrazo