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