c. Prevención de ataques de sniffing por implementación de tráfico cifrado
Mitigar ataques de sniffing e implementar cifrado en el tráfico de red de un sistema es posible gracias a herramientas como OpenVPN o WireGuard para crear túneles de comunicación segura.
Utilizando OpenVPN
# Instalar OpenVPN en Debian
sudo apt update
sudo apt install openvpn easy-rsa
# Instalar OpenVPN en Arch
sudo pacman -Syu
sudo pacman -S openvpn --noconfirm
# Instalar OpenVPN en CentOS/RHEL
sudo yum install epel-release
sudo yum install openvpn easy-rsa
# Crear la estructura de directorios para Easy-RSA y editar fichero vars a conveniencia
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
sudo nano vars
# Generar certificados yarchivos con claves
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca nopass
sudo ./easyrsa gen-req server nopass
sudo ./easyrsa sign-req server server
# Generar claves Diffie-Hellman y el archivo HMAC para asegurar comunicación VPN
sudo ./easyrsa gen-dh
sudo openvpn --genkey --secret ta.key
# Configurar servidor OpenVPN modificando la configuración del archivo /etc/openvpn/server.conf
sudo nano /etc/openvpn/server.conf
port 21890
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA256
tls-auth ta.key 0
cipher AES-256-CBC
persist-key
persist-tun
# Configurar cliente OpenVPN generando claves y certificados para estos
sudo ./easyrsa gen-req client1 nopass
sudo ./easyrsa sign-req client client1
# Crear configuración para cliente, generando archivo con extensión .ovpn que contenga
client
dev tun
proto udp
remote [IP_SERVIDOR] 21890
ca ca.crt
cert client1.crt
key client1.key
tls-auth ta.key 1
cipher AES-256-CBC
auth SHA256
# Ejecutar servicio a nivel de sistema
sudo systemctl start openvpn@server
sudo systemctl enable openvpn@server
Utilizando WireGuard
# Instalar OpenVPN en Debian
sudo apt update
sudo apt install wireguard
# Instalar OpenVPN en Arch
sudo pacman -Syu
sudo pacman -S wireguard --noconfirm
# Instalar OpenVPN en CentOS/RHEL
sudo yum install epel-release
sudo yum install wireguard-tools
# Generar claves para el servidor de WireGuard
sudo wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey
# Generar claves para el cliente de WireGuard
sudo wg genkey | tee ~/client_privatekey | wg pubkey > ~/client_publickey
# Crear configuración del servidor WireGuard desde fichero /etc/wireguard/wg0.conf
sudo nano /etc/wireguard/wg0.conf
[Interface]
PrivateKey = [SERVER_PRIVATE_KEY]
Address = 10.0.0.1/24
ListenPort = 51820
[Peer]
PublicKey = [CLIENT_PUBLIC_KEY]
AllowedIPs = 10.0.0.2/32
# Habilitar el reenvío de tráfico de red desde variables de kernel para protocolo IPv4
sudo sysctl -w net.ipv4.ip_forward = 1
# Crear configuración para el cliente de WireGuard desde fichero /etc/wireguard/wg0.conf
sudo nano /etc/wireguard/wg0.conf
[Interface]
PrivateKey = [CLIENT_PRIVATE_KEY]
Address = 10.0.0.2/24
[Peer]
PublicKey = [SERVER_PUBLIC_KEY]
Endpoint = [SERVER_IP]:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
# Iniciar interfaz de WireGuard y verificar conexión
sudo wg-quick up wg0
sudo wg