Configuración de SSH, diagnóstico de red con ping
, netstat
, dig
1. Configuración del servidor SSH
¡Bienvenido a una inmersión práctica en las capacidades de red de Linux! Hoy es el momento de poner a prueba nuestros conocimientos. Aprenderás a configurar un servidor SSH, conectarte a él mediante un cliente, diagnosticar la red utilizando los comandos más populares y comprobar la disponibilidad de puertos. ¡Sintámonos como verdaderos ingenieros de red!
SSH (Secure Shell) es una herramienta para el acceso remoto seguro a un servidor. Permite conectarse al servidor, administrarlo como si estuvieras frente a él y transferir archivos.
Paso 1: Instalación del servidor SSH
Primero, instalemos el servidor SSH. Si estás usando Ubuntu o Debian, ejecuta el siguiente comando:
sudo apt update
sudo apt install openssh-server -y
Si usas Fedora o CentOS:
sudo yum install -y openssh-server
Después de la instalación, asegúrate de que el servicio SSH esté en ejecución:
sudo systemctl start ssh
sudo systemctl enable ssh # Para que SSH se inicie automáticamente al arrancar el sistema
sudo systemctl status ssh # Comprobamos el estado del servicio
Si todo fue exitoso, verás que el servicio está funcionando.
Paso 2: Configuración del servidor SSH
El archivo de configuración del servidor SSH se encuentra en la siguiente ruta:
sudo nano /etc/ssh/sshd_config
Algunos de los parámetros útiles:
PermitRootLogin no
— prohibir el inicio de sesión como usuarioroot
.PasswordAuthentication yes
— habilitar la autenticación por contraseña.PubkeyAuthentication yes
— habilitar la autenticación mediante claves.
Después de realizar los cambios, reinicia SSH:
sudo systemctl restart ssh
Ahora el servidor está listo para aceptar conexiones.
Paso 3: Conexión al servidor mediante SSH
Desde otra máquina (o desde la misma máquina de forma local usando localhost), intenta conectarte:
ssh your_username@your_server_ip
Si estás trabajando localmente, reemplaza your_server_ip
por 127.0.0.1
. Ingresa la contraseña de tu usuario y estarás dentro del sistema a través del terminal.
2. Configuración de autenticación usando claves
La autenticación con contraseña es cómoda, pero desde el punto de vista de la seguridad, la mejor opción es usar claves SSH.
Paso 1: Generación de claves SSH
En la máquina cliente, ejecuta el comando:
ssh-keygen
Te preguntarán dónde quieres guardar las claves. Por defecto, se guardarán en el directorio ~/.ssh/
. Simplemente presiona Enter.
Paso 2: Copiar la clave al servidor
Copiamos la clave pública al servidor:
ssh-copy-id your_username@your_server_ip
Ahora podrás conectarte sin ingresar una contraseña:
ssh your_username@your_server_ip
Si todo está configurado correctamente, ¡felicitaciones! Ahora tu servidor SSH está protegido con autenticación basada en claves.
3. Diagnóstico de red con ping
Ya conocemos este comando. Vamos a verificar rápidamente la disponibilidad de nuestro servidor SSH.
ping -c 4 your_server_ip
Deberías ver una respuesta del servidor. Si no hay respuesta, verifica si el servidor está en marcha y configurado correctamente.
4. Comprobación de DNS usando nslookup
y dig
Si tu servidor tiene un nombre de dominio, puedes verificar su funcionalidad a través de DNS. Por ejemplo:
Comando nslookup
:
nslookup your-domain.com
Deberías ver una dirección IP asociada con tu dominio.
Comando dig
:
Ahora intentemos obtener un conjunto completo de información:
dig your-domain.com
Verás un montón de datos, pero nos interesa la línea con ANSWER SECTION
, donde estará especificada la dirección IP.
5. Análisis de conexiones de red con netstat
y ss
El servidor SSH escucha en el puerto 22 por defecto. Vamos a comprobarlo con netstat
:
sudo netstat -tln | grep 22
O usando ss
, una herramienta más moderna:
sudo ss -tln | grep 22
Si ves que el puerto 22 está en estado "LISTEN" (esperando conexiones), significa que el servidor está listo para aceptar clientes.
6. Verificación de la accesibilidad del puerto usando nc
El comando netcat
(o nc
) permite probar la accesibilidad de los puertos. Intentemos conectarnos a nuestro servidor SSH:
nc -zv your_server_ip 22
Deberías ver un mensaje como "Connection to your_server_ip 22 port [tcp/ssh] succeeded!"
.
Si la conexión falla, esto puede significar que el puerto está bloqueado por un firewall o que el servidor no está escuchando en el puerto especificado.
7. Tarea práctica
Vamos a combinar todo en un solo escenario práctico. Necesitarás:
- Activar SSH en tu máquina o entorno virtual, como por ejemplo WSL2.
- Generar claves y configurar la autenticación por claves (deshabilitando contraseñas).
- Conectarte al servidor usando SSH.
- Usar
ping
para comprobar la disponibilidad del servidor. - Usar
nslookup
ydig
para verificar el resolvimiento de la dirección IP (si tienes un nombre de dominio). - Verificar el puerto 22 en el servidor usando
netstat
,ss
ync
.
¡Ahora ya estás listo no solo para configurar el acceso remoto, sino también para resolver problemas de red, diagnosticar el servidor y protegerlo como un verdadero pro! Estás en camino de convertirte en un gurú de Linux.
GO TO FULL VERSION