Skip to content

Commit 5f679db

Browse files
committed
add post for vm with kvm, libvirt and qemu
1 parent 966793e commit 5f679db

File tree

2 files changed

+153
-0
lines changed

2 files changed

+153
-0
lines changed
Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
---
2+
title: Maquinas virtuales casi nativas con kvm
3+
description: Aprende cómo configurar y asegurar tu servidor OpenSSH siguiendo prácticas
4+
recomendadas para reducir riesgos y proteger tus conexiones remotas.
5+
author: Vor
6+
date: 2024-11-16
7+
categories: [Guides, Virtualization, KVM, Qemu, Libvirt]
8+
tags: [Virtualiization, Linux]
9+
image:
10+
path: /assets/img/posts/guides/linux/Linux-KVM-logo-transparent.png
11+
alt: KVM Logo
12+
---
13+
14+
## Introducción
15+
16+
17+
En este post, exploraremos cómo configurar el servidor OpenSSH para fortalecer la seguridad
18+
de tu sistema. SSH es una herramienta poderosa para acceder remotamente a servidores, pero
19+
configurarlo de manera segura es crucial para evitar vulnerabilidades y ataques. En esta guía,
20+
aprenderás a optimizar y asegurar tu configuración SSH.
21+
22+
**Temas que abordaremos:**
23+
- Introducción al protocolo SSH.
24+
- Configuración básica de OpenSSH.
25+
- Buenas prácticas para asegurar tu servidor SSH.
26+
27+
## ¿Qué es el protocolo SSH?
28+
29+
El protocolo SSH (Secure Shell) nos permite realizar conexiones remotas a servidores de manera
30+
segura mediante la encriptación de los datos. A diferencia de otros protocolos como Telnet, SSH
31+
garantiza la confidencialidad e integridad de la información intercambiada entre el cliente
32+
(tú computadora) y el servidor.
33+
34+
### Características clave de SSH:
35+
- **Encriptación:** Toda la comunicación se cifra, asegurando que los datos no sean interceptados.
36+
- **Autenticación:** SSH admite diferentes métodos de autenticación, como contraseñas y claves públicas.
37+
- **Túneles seguros:** SSH permite crear túneles seguros para redirigir tráfico a través de la conexión.
38+
39+
## Instalación de OpenSSH
40+
41+
Para asegurarte de que OpenSSH está instalado en tu sistema, sigue estos pasos segun
42+
tu sistema:
43+
44+
### En sistemas basados en Debian/Ubuntu:
45+
```bash
46+
sudo apt update
47+
sudo apt install openssh-server
48+
```
49+
50+
### En sistemas basados en RHEL/CentOS:
51+
```bash
52+
sudo yum install openssh-server
53+
```
54+
55+
Una vez instalado, asegúrate de que el servicio esté en ejecución:
56+
```bash
57+
sudo systemctl start ssh
58+
sudo systemctl enable ssh
59+
```
60+
61+
## Configuración de OpenSSH
62+
63+
### 1. **Deshabilitar el acceso root**
64+
Es una buena práctica deshabilitar el inicio de sesión de root para prevenir accesos no autorizados
65+
a un usuario privilegiado.
66+
67+
En el archivo `/etc/ssh/sshd_config`, busca la siguiente línea:
68+
```bash
69+
PermitRootLogin yes
70+
```
71+
Cámbiala a:
72+
```bash
73+
PermitRootLogin no
74+
```
75+
Luego, reinicia el servicio SSH para aplicar los cambios:
76+
```bash
77+
sudo systemctl restart ssh
78+
```
79+
80+
### 2. **Usar claves SSH en lugar de contraseñas**
81+
82+
La autenticación basada en claves SSH es mucho más segura que las contraseñas. Para configurarlo:
83+
84+
1. Genera un par de claves en tu máquina local:
85+
86+
**RSA (Más común):**
87+
```bash
88+
ssh-keygen -t rsa -b 4096 -C "<comentario>"
89+
```
90+
91+
**Ed25519 (Recomendada, más moderna):**
92+
```bash
93+
ssh-keygen -t ed25519 -C "<comentario>"
94+
```
95+
96+
2. Copia la clave pública al servidor:
97+
```bash
98+
ssh-copy-id usuario@servidor
99+
```
100+
3. Asegúrate de que el servidor permite la autenticación por claves en el archivo `/etc/ssh/sshd_config`:
101+
```bash
102+
PasswordAuthentication no
103+
PubkeyAuthentication yes
104+
```
105+
106+
### 3. **Cambiar el puerto por defecto**
107+
El puerto predeterminado para SSH es el 22, que es uno de los mas atacados por bots.
108+
Cambiar el puerto puede añadir una capa de protección.
109+
110+
En `/etc/ssh/sshd_config`, busca y cambia la línea:
111+
```bash
112+
Port 22
113+
```
114+
Por otro puerto, por ejemplo, 2222:
115+
```bash
116+
Port 2222
117+
```
118+
No olvides abrir el nuevo puerto en tu firewall y reiniciar el servicio SSH:
119+
```bash
120+
sudo systemctl restart ssh
121+
```
122+
123+
### 4. **Configurar el límite de intentos de autenticación**
124+
125+
Para proteger el servidor de ataques de fuerza bruta, limita el número de intentos fallidos
126+
de autenticación.
127+
128+
En el archivo `/etc/ssh/sshd_config`, añade las siguientes líneas:
129+
```bash
130+
MaxAuthTries 3
131+
MaxSessions 2
132+
```
133+
134+
### 5. **Deshabilitar la autenticación por contraseñas**
135+
136+
Si utilizas claves SSH, puedes deshabilitar el acceso mediante contraseñas para aumentar
137+
aun más la seguridad.
138+
139+
En `/etc/ssh/sshd_config`:
140+
```bash
141+
PasswordAuthentication no
142+
PermitEmptyPasswords no
143+
```
144+
145+
## Monitoreo y Auditoría de SSH
146+
147+
Una buena práctica es monitorear los intentos de acceso y asegurarse de que no haya actividad
148+
sospechosa en el servidor.
149+
150+
- Revisa los logs de SSH regularmente usando `journalctl -fu ssh` en GNU/Linux con systemd.
151+
Como alternativa, puedes usar `tail -f /var/log/auth.log` o `tail -f /var/log/secure`.
152+
- Configura un sistema de detección de intrusos como **Fail2Ban** para bloquear automáticamente
153+
las IPs que intentan acceder con ataques de fuerza bruta.
68.4 KB
Loading

0 commit comments

Comments
 (0)