UFW per OpenVPN

Voglio configurare ufw (firewall non complicato) per OpenVPN.

Le connessioni sono consentite solo tramite OpenVPN. Tutto il resto dovrebbe essere bloccato. Quindi se OpenVPN è disconnesso -> no internet! Ho trovato questo script online e voglio sapere se è abbastanza buono. O devo aggiungere più regole?

#!/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 

Fonte: http://pastebin.com/AUHh6KnV

La configurazione può essere più restrittiva

 ufw --force reset ufw default deny incoming # Use the VPN tunnel for all traffic ufw default deny outgoing ufw allow out on tun0 ufw allow in on tun0 ufw allow out $port/$protocol # eg 1234/udp, depending on your OpenVPN client config # Prefer resolved hosts to connect to your VPN, enable only if your VPN provider doesn't give you that option #ufw allow out 53 # Allow local IPv4 connections, enable as needed, set specific IPs or tighter subnet masks if possible #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 

La raccomandazione forte è che NON usi questi due comandi :

 ufw allow incoming ufw default allow in on tun0 

Permettendo in sconfitte lo scopo di avere un firewall. Non è corretto che sia necessario “allow in on tun0” per ricevere i pacchetti di ritorno. Desideri solo ricevere le connessioni che hai richiesto, invece di consentire a tutto il mondo di connettersi a te. Consentire lo farà. Provare la configurazione proposta di seguito e vedere.

Ecco un esempio di una serie di comandi UFW da utilizzare con un firewall:

 sudo ufw enable sudo ufw --force reset sudo ufw default deny incoming sudo ufw default deny outgoing sudo ufw allow out on tun0 sudo ufw allow out on eth0 to any port 53,1197 proto udp sudo ufw allow out on wlan0 to any port 53,1197 proto udp sudo ufw status verbose 

Esempio di risultato:

 Status: active Logging: on (low) Default: deny (incoming), deny (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- Anywhere ALLOW OUT Anywhere on tun0 53,1197/udp ALLOW OUT Anywhere on eth0 53,1197/udp ALLOW OUT Anywhere on wlan0 Anywhere (v6) ALLOW OUT Anywhere (v6) on tun0 53,1197/udp (v6) ALLOW OUT Anywhere (v6) on eth0 53,1197/udp (v6) ALLOW OUT Anywhere (v6) on wlan0 

NOTA: -Le tue interfacce potrebbero essere diverse, ad esempio ubuntu 16.12 usa eno1 e wlp3s0b1. Usa il comando “ifconfig” per vedere le tue interfacce reali. -1197 UDP è abbastanza predefinito, ma potrebbe essere necessario cambiarlo per il tuo VPN (es. 443 TCP). -Mi solito cancellare ipv6 (sudo ufw cancella 4, ripeti x3)

Cosa fa: -Consente connessioni in uscita attraverso il tunnel VPN, mentre blocca tutto tranne il tunnel VPN e le connessioni DNS su ethernet / wifi. Avviso di seguito sul problema DNS.

Avviso: questo esempio consente 53 richieste DNS per consentire a openvpn (ad esempio vpn.somevpnprovider.com) di richiedere l’indirizzo IP e stabilire una connessione. Il trade off è il potenziale per la fuga DNS. Utilizza dnsleaktest.com per assicurarti che le tue impostazioni VPN facciano traforo tra le tue richieste DNS. Per prudente / paranoico, ignora il 53 e invece distriggers il firewall per connettersi, quindi riaccendilo una volta connesso. Per i miei motivi VPN, scelgo di non farlo poiché è più probabile che dimenticherò del tutto il firewall (ad es. Il DNS si estinguerà comunque se openvpn non è configurato correttamente).