Quiero configurar ufw (firewall sin complicaciones) para OpenVPN.
Las conexiones solo se permiten a través de OpenVPN. Todo lo demás debe estar bloqueado. Entonces, si OpenVPN está desconectado, ¡no hay internet! Encontré este script en línea y quiero saber si es lo suficientemente bueno. ¿O tengo que agregar más reglas?
#!/bin/bash
###########################################
# Created by Thomas Butz #
# E-Mail: btom1990(at)googlemail.com #
# Feel free to copy & share this script #
###########################################
# Adapt this value to your config!
VPN_DST_PORT=3478
# Don't change anything beyond this point
###########################################
# Check for root priviliges
if [[ $EUID -ne 0 ]]; then
printf "Please run as root:\nsudo %s\n" "${0}"
exit 1
fi
# Reset the ufw config
ufw --force reset
# let all incoming traffic pass
ufw default allow incoming
# and block outgoing by default
ufw default deny outgoing
# Every communiction via VPN is considered to be safe
ufw allow out on tun0
# Don't block the creation of the VPN tunnel
ufw allow out $VPN_DST_PORT
# Don't block DNS queries
ufw allow out 53
# Allow local IPv4 connections
ufw allow out to 10.0.0.0/8
ufw allow out to 172.16.0.0/12
ufw allow out to 192.168.0.0/16
# Allow IPv4 local multicasts
ufw allow out to 224.0.0.0/24
ufw allow out to 239.0.0.0/8
# Allow local IPv6 connections
ufw allow out to fe80::/64
# Allow IPv6 link-local multicasts
ufw allow out to ff01::/16
# Allow IPv6 site-local multicasts
ufw allow out to ff02::/16
ufw allow out to ff05::/16
# Enable the firewall
ufw enable
Fuente: http://pastebin.com/AUHh6KnV
ufw
usandosudo ufw disable
y elimine todas las reglas de firewallsudo ufw --force reset
. ¿Qué podría salir mal? ;-)Respuestas:
La configuración puede ser más restrictiva.
fuente
tun0
como un medio para bloquear las conexiones entrantes desde la VPN? Como enufw deny in on tun0
,?ufw default deny incoming
yufw deny in on tun0
usted no obtendrán ninguna conexión entrante. Algunas interfaces deberían permitir el tráfico entrante, en este caso queremos que sean las VPNtun0
.ufw allow in on tun0
línea.Una recomendación fuerte es que NO uses estos dos comandos :
Permitir derrota el propósito de tener un firewall. Es incorrecto que necesite "permitir en tun0" para recibir los paquetes de devolución. Solo desea recibir las conexiones que solicitó, en lugar de permitir que todo el mundo se conecte a usted. Permitirlo hará esto. Pruebe la configuración propuesta a continuación y vea.
Aquí hay un ejemplo de una serie de comandos UFW para usar con un firewall:
Resultado de ejemplo:
NOTA: -Sus interfaces pueden ser diferentes, por ejemplo, ubuntu 16.12 usa eno1 y wlp3s0b1. Use el comando "ifconfig" para ver sus interfaces reales. -1197 UDP es bastante predeterminado, pero es posible que deba cambiarlo para su VPN (por ejemplo, 443 TCP). -Por lo general, elimino ipv6 (sudo ufw delete 4, repita x3)
Lo que esto hace: -Permite conexiones salientes a través del túnel VPN, mientras bloquea todo menos el túnel VPN y las conexiones DNS en ethernet / wifi. Advertencia a continuación sobre el problema de DNS.
Advertencia: Este ejemplo permite 53 solicitudes DNS para que openvpn (por ejemplo, vpn.somevpnprovider.com) pueda solicitar la dirección IP y establecer una conexión. La compensación es la posibilidad de fuga de DNS. Use dnsleaktest.com para asegurarse de que su configuración de VPN canalice sus solicitudes de DNS. Para los cautelosos / paranoicos, omita el permiso en 53 y en su lugar apague su firewall para conectarse, luego vuelva a encenderlo una vez conectado. Por mis razones de VPN, elijo no hacerlo, ya que es más probable que olvide el firewall por completo (por ejemplo, DNS se filtrará de todos modos si openvpn está mal configurado).
fuente