Introducción
Cuando crea un nuevo servidor por primera vez, hay algunos pasos de configuración que debe seguir al principio como parte de la configuración básica. Esto aumentará la seguridad y la facilidad de uso de su servidor y le dará una base sólida para acciones posteriores.
Paso Uno-Inicio de sesión de root
Para iniciar sesión en su servidor, deberá conocer la dirección IP pública de su servidor y la contraseña de la cuenta del usuario «root». Si aún no ha iniciado sesión en su servidor, es posible que desee seguir el primer tutorial de esta serie, Cómo conectarse a Su Droplet con SSH, que cubre este proceso en detalle.
Si aún no está conectado a su servidor, siga adelante e inicie sesión como el usuario root
usando el siguiente comando (sustituya la palabra resaltada por la dirección IP pública de su servidor):
- ssh [email protected]_IP_ADDRESS
Complete el proceso de inicio de sesión aceptando la advertencia sobre la autenticidad del host, si aparece, y luego proporcione su autenticación de raíz (contraseña o clave privada). Si es la primera vez que inicia sesión en el servidor, con una contraseña, también se le pedirá que cambie la contraseña de root.
Acerca de Root
El usuario root es el usuario administrativo en un entorno Linux que tiene privilegios muy amplios. Debido a los privilegios elevados de la cuenta root, en realidad no se le recomienda usarla de forma regular. Esto se debe a que parte del poder inherente a la cuenta raíz es la capacidad de hacer cambios muy destructivos, incluso por accidente.
El siguiente paso es configurar una cuenta de usuario alternativa con un alcance reducido de influencia para el trabajo diario. Le enseñaremos cómo obtener mayores privilegios durante los momentos en que los necesite.
Paso Dos: Crear un Nuevo Usuario
Una vez que haya iniciado sesión como root
, estamos preparados para agregar la nueva cuenta de usuario que usaremos para iniciar sesión a partir de ahora.
Este ejemplo crea un nuevo usuario llamado «demo», pero debe reemplazarlo con un nombre de usuario que le guste:
- adduser demo
a continuación, asignar una contraseña para el nuevo usuario (de nuevo, sustituya «demo» con el usuario que acaba de crear):
- passwd demo
Escriba una contraseña segura, y repetirla de nuevo para verificarla.
Paso Tres: Privilegios de root
Ahora, tenemos una nueva cuenta de usuario con privilegios de cuenta normales. Sin embargo, a veces es posible que tengamos que realizar tareas administrativas.
Para evitar tener que cerrar sesión en nuestro usuario normal y volver a iniciar sesión como cuenta root, podemos configurar lo que se conoce como «superusuario» o privilegios de root para nuestra cuenta normal. Esto permitirá a nuestro usuario normal ejecutar comandos con privilegios administrativos poniendo la palabra sudo
antes de cada comando.
Para agregar estos privilegios a nuestro nuevo usuario, necesitamos agregar el nuevo usuario al grupo «rueda». De forma predeterminada, en CentOS 7, los usuarios que pertenecen al grupo «wheel» pueden usar el comando sudo
.
Asroot
, ejecute este comando para agregar su nuevo usuario al grupo de ruedas (sustituya la palabra resaltada por su nuevo usuario):
- gpasswd -a demo wheel
Ahora el usuario puede ejecutar comandos con privilegios de superusuario! Para obtener más información sobre cómo funciona esto, consulte nuestro tutorial sudoers.
Paso cuatro: Agregar autenticación de Clave Pública (Recomendado)
El siguiente paso para proteger su servidor es configurar la autenticación de clave pública para su nuevo usuario. Configurar esto aumentará la seguridad de su servidor al requerir una clave SSH privada para iniciar sesión.
Generar un par de claves
Si aún no tiene un par de claves SSH, que consiste en una clave pública y una privada, debe generar una. Si ya tiene una clave que desea usar, vaya al paso Copiar la Clave pública.
Para generar un nuevo par de claves, ingrese el siguiente comando en el terminal de su máquina local:
- ssh-keygen
Suponiendo que su usuario local se llame «localuser», verá una salida que se parece a la siguiente:
ssh-keygen outputGenerating public/private rsa key pair.Enter file in which to save the key (/Users/localuser/.ssh/id_rsa):
Pulse return para aceptar este nombre y ruta de archivo (o introduzca un nombre nuevo).
A continuación, se le solicitará una frase de contraseña con la que proteger la clave. Puede introducir una frase de contraseña o dejarla en blanco.
Nota: Si deja la frase de contraseña en blanco, podrá usar la clave privada para la autenticación sin introducir una frase de contraseña. Si introduce una frase de contraseña, necesitará tanto la clave privada como la frase de contraseña para iniciar sesión. Proteger sus claves con frases de contraseña es más seguro, pero ambos métodos tienen sus usos y son más seguros que la autenticación básica con contraseña.
de Esta forma se genera una clave privada, id_rsa
, y una clave pública, id_rsa.pub
, en el .ssh
directorio de la usuariolocal su directorio de inicio. Recuerde que la clave privada no debe compartirse con nadie que no deba tener acceso a sus servidores.
Copiar la Clave pública
Después de generar un par de claves SSH, querrá copiar su clave pública a su nuevo servidor. Cubriremos dos maneras fáciles de hacer esto.
Nota: El método ssh-copy-id
no funcionará en DigitalOcean si se seleccionó una clave SSH durante la creación de gotas. Esto se debe a que DigitalOcean deshabilita la autenticación de contraseña si hay una clave SSH presente, y ssh-copy-id
se basa en la autenticación de contraseña para copiar la clave.
Si está utilizando DigitalOcean y seleccionó una clave SSH durante la creación de gotas, use la opción 2 en su lugar.
Opción 1: Use ssh-copy-id
Si su máquina local tiene instalado el script ssh-copy-id
, puede usarlo para instalar su clave pública a cualquier usuario para el que tenga credenciales de inicio de sesión.
Ejecutar el ssh-copy-id
script especificando el usuario y la dirección IP del servidor en el que desea instalar la clave, como este:
- ssh-copy-id [email protected]_IP_ADDRESS
Después de proporcionar su contraseña en el mensaje, su clave pública se agregará al archivo .ssh/authorized_keys
del usuario remoto. La clave privada correspondiente ahora se puede usar para iniciar sesión en el servidor.
Opción 2: Instale manualmente la Clave
Asumiendo que generó un par de claves SSH utilizando el paso anterior, use el siguiente comando en el terminal de su máquina local para imprimir su clave pública (id_rsa.pub
):
- cat ~/.ssh/id_rsa.pub
Esto debería imprimir su clave SSH pública, que debería tener un aspecto similar al siguiente:
id_rsa.pub contentsssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf [email protected]
Seleccione la clave pública, y copiar en el portapapeles.
Agregar Clave pública al Nuevo Usuario remoto
Para habilitar el uso de la clave SSH para autenticarse como el nuevo usuario remoto, debe agregar la clave pública a un archivo especial en el directorio personal del usuario.
En el servidor, como usuario root
, ingrese el siguiente comando para cambiar al nuevo usuario (sustituya su propio nombre de usuario):
- su - demo
Ahora estará en el directorio personal de su nuevo usuario.
Crear un nuevo directorio llamado .ssh
y restringir los permisos con los siguientes comandos:
- mkdir .ssh
- chmod 700 .ssh
Ahora abrir un archivo en .ssh llamado authorized_keys
con un editor de texto. Usaremos vi para editar el archivo:
- vi .ssh/authorized_keys
Ingrese al modo de inserción, presionando i
, luego ingrese su clave pública (que debe estar en su portapapeles) pegándola en el editor. Ahora pulsa ESC
para salir del modo de inserción.
Entrar :x
entonces ENTER
para guardar y salir del archivo.
Ahora restrinja los permisos del archivo authorized_keys con este comando:
- chmod 600 .ssh/authorized_keys
Escriba este comando una vez para volver a root
usuario:
- exit
Ahora puede iniciar sesión en SSH como su nuevo usuario, utilizando la clave privada como autenticación.
Para obtener más información sobre cómo funciona la autenticación de claves, lea este tutorial: Cómo configurar la autenticación basada en claves SSH en un servidor Linux.
Paso cinco-Configurar el demonio SSH
Ahora que tenemos nuestra nueva cuenta, podemos asegurar un poco nuestro servidor modificando su configuración del demonio SSH (el programa que nos permite iniciar sesión de forma remota) para no permitir el acceso SSH remoto a la cuenta raíz.
Comience abriendo el archivo de configuración con su editor de texto como root:
- vi /etc/ssh/sshd_config
Aquí, tenemos la opción de deshabilitar el inicio de sesión de root a través de SSH. Esta es generalmente una configuración más segura, ya que ahora podemos acceder a nuestro servidor a través de nuestra cuenta de usuario normal y aumentar los privilegios cuando sea necesario.
Para deshabilitar los inicios de sesión raíz remotos, necesitamos encontrar la línea que se parezca a esta:
#PermitRootLogin yes
Sugerencia: Para buscar esta línea, escriba /PermitRoot
ENTER
. Esto debería llevar el cursor al carácter » P » en esa línea.
Descomente la línea eliminando el símbolo » # » (presione Shift-x
).
Ahora mueva el cursor al «sí»pulsando c
.
Ahora reemplace» sí»presionando cw
, luego escriba»no». Pulsa Escape
cuando hayas terminado de editar. Debería tener este aspecto:
PermitRootLogin no
Deshabilitar el inicio de sesión de root remoto es muy recomendable en todos los servidores.
Entrar :x
entonces ENTER
para guardar y salir del archivo.
Reload SSH
Ahora que hemos realizado nuestros cambios, necesitamos reiniciar el servicio SSH para que use nuestra nueva configuración.
Escriba esto para reiniciar SSH:
- systemctl reload sshd
Ahora, antes de cerrar sesión en el servidor, debemos probar nuestra nueva configuración. No queremos desconectarnos hasta que podamos confirmar que se pueden establecer nuevas conexiones con éxito.
Abra una nueva ventana de terminal. En la nueva ventana, necesitamos comenzar una nueva conexión a nuestro servidor. Esta vez, en lugar de usar la cuenta raíz, queremos usar la nueva cuenta que creamos.
Para el servidor que configuramos anteriormente, conéctese usando este comando. Sustituya su propia información cuando sea apropiado:
- ssh [email protected]_IP_ADDRESS
Nota: Si está utilizando PuTTY para conectarse a sus servidores, asegúrese de actualizar el número de puerto de la sesión para que coincida con la configuración actual de su servidor.
Se le solicitará la contraseña del nuevo usuario que configuró. Después de eso, se iniciará sesión como su nuevo usuario.
Recuerde, si necesita ejecutar un comando con privilegios de root, escriba «sudo» antes de él de la siguiente manera:
- sudo command_to_run
Si todo está bien, puede salir de sus sesiones escribiendo:
- exit
¿A dónde ir desde aquí?
En este punto, tiene una base sólida para su servidor. Ahora puede instalar cualquier software que necesite en su servidor.
Si no está seguro de lo que desea hacer con su servidor, consulte el siguiente tutorial de esta serie para conocer los Pasos Recomendados Adicionales para los Nuevos servidores CentOS 7. Cubre cosas como habilitar fail2ban
para reducir la efectividad de los ataques de fuerza bruta, la configuración básica del firewall, NTP y los archivos de intercambio. También proporciona enlaces a tutoriales que le muestran cómo configurar aplicaciones web comunes.
Si solo quieres explorar, echa un vistazo al resto de nuestra comunidad para encontrar más tutoriales. Algunas ideas populares son configurar una pila LAMP o una pila LEMP, que le permitirán alojar sitios web.