Hace un tiempo le di una contraseña a root para poder iniciar sesión como root y hacer algunas cosas. Ahora quiero deshabilitar el inicio de sesión raíz para reforzar la seguridad, ya que expondré mi servicio a Internet. He visto varias formas de hacerlo ( sudo passwd -l root
jugando con /etc/shadow
, y así sucesivamente), pero en ninguna parte eso dice cuál es la mejor / más sensata forma de hacerlo. Lo he hecho, sudo passwd -l root
pero he visto consejos que dicen que esto puede afectar las secuencias de comandos de inicio, y que no es tan seguro como parece, ya que aún solicita una contraseña si intenta iniciar sesión, en lugar de negar el acceso. Entonces, ¿cuál sería la forma de lograr eso?
EDITAR: para aclarar, esto es para inicio de sesión local como root; Ya he deshabilitado el inicio de sesión remoto a través de SSH. Aunque intentar iniciar sesión como root a través de SSH todavía solicita la contraseña de root (que siempre falla). ¿Es tan malo?
rm
comando fuera de lugar o tal. Algo que aprendí por las malas. Sí, uno simplemente NO puede iniciar sesión como root, pero deshabilitarlo tiene sentido desde el punto de vista del administrador del sistema.Respuestas:
Para mí es discutible que deshabilitar la raíz valga la pena por los posibles problemas. Nunca he probado un servidor configurado de esa manera. Mi preferencia es permitir solo el acceso local raíz. Si un atacante tiene acceso físico a su servidor, puede olvidar todo lo que ha hecho para "asegurar" su instalación de todos modos.
Deshabilite el
ssh
acceso raíz editando/etc/ssh/sshd_config
para contener:Jugueteando
/etc/shadow
,chsh -s /bin/false root
todo se puede deshacer con un simple CD / memoria USB de arranque.Actualización por su comentario:
De help.ubuntu.com : "Por defecto, la contraseña de la cuenta raíz está bloqueada en Ubuntu ". Consulte la sección "Rehabilitar su cuenta raíz" específicamente. Para restablecer el estado de la cuenta de root, para instalar por defecto, use el siguiente comando:
fuente
Supongo que se refiere al inicio de sesión remoto a través de ssh. Agregue la siguiente línea a
/etc/ssh/sshd_config
:y reiniciar el servicio ssh
Eso debería hacer el trabajo y puede mantener su cuenta raíz tal como está (o intentar desactivarla de todos modos si lo considera necesario).
fuente
La pregunta principal ha sido respondida varias veces, pero la secundaria no. SSH solicita la contraseña después de ingresar la raíz después de que se deshabilita como una característica de seguridad. También se activará si intenta iniciar sesión como lkjfiejlksji.
Esto es para evitar que alguien pruebe un montón de nombres de usuario, para tratar de averiguar cuáles son válidos en su sistema. Sin embargo, desde el punto de vista de la seguridad, si ha deshabilitado la raíz sobre SSH, también configuraría un programa de detección de fuerza bruta (como fail2ban), y lo configuraría de modo que si alguien incluso intenta iniciar sesión como root, los bloquee intentando cualquier ataque adicional.
fuente
Reemplazar la contraseña cifrada con un * en / etc / shadow (segundo campo, después del primer ':') es la mejor manera, en mi humilde opinión. Además, desactive el inicio de sesión de root para ssh (de esta manera es simplemente imposible iniciar sesión a través de ssh como root) y tal vez restrinja ssh a inicios de sesión de certificados, que es mucho más seguro que los inicios de sesión basados en contraseña.
En la mayoría de los casos, SSH debería ser el único servicio accesible desde el exterior que potencialmente permite el inicio de sesión de root, por lo que esta puerta estaría bloqueada.
Para restringir aún más esto, puede instalar algo como fail2ban, que prohíbe las direcciones IP durante un cierto período de tiempo después de varios intentos de inicio de sesión fallidos.
fuente
JR y col.
Tus AllowUsers me llevaron a esto https://help.ubuntu.com/community/SSH/OpenSSH/Configuring
sudo vi / etc / ssh / sshd_config
PermitRootLogin sí (cambiado a no)
(agregue la línea en la parte inferior del archivo) DenyUsers user1 user2
guardar y salir y luego
sudo service ssh restart
Resuelto mi problema Gracias a todos.
fuente
Si desea deshabilitar el inicio de sesión raíz local, puede intentar modificar / etc / passwd y reemplazar / bin / bash por / bin / false. SIN EMBARGO, como no lo he probado, diría que deje una sesión raíz abierta al lado, pruébela y, si hay algún efecto secundario extraño, cámbielo de nuevo.
fuente
Re: Seguridad.
En mi humilde opinión, solo hay mucho que puede hacer, en términos de seguridad, sin desconectar la caja, desconectarla de la red y soldarla dentro de una caja de acero al carburo a prueba de balas de 3 "de espesor.
Piénselo de esta manera: si la gente puede hackear el Departamento de Defensa, la CIA, el FBI y Citibank, el resto de nosotros, simples mortales, no podemos hacerlo mucho mejor.
Re: seguridad SSH.
No solo prohíbo el acceso a la raíz a través de ssh, también configuro el parámetro "AllowUsers" en mi nombre de usuario y solo en mi nombre de usuario. De esta manera, nadie más que mi propio usuario puede iniciar sesión a través de ssh. Esto puede ser redundante ya que en mi propio caso, solo creo UN usuario no root de todos modos.
Desafortunadamente, como otros han dicho muchas veces antes, tan pronto como alguien obtiene acceso físico a la caja, ¡todas las apuestas están APAGADAS!
¿Intercambio de certificados para inicio de sesión ssh? Hmmmm . . . suena bien. ¿Cómo lo haces?
Jim (JR)
fuente