pfctl config para permitir solo la conexión OpenVPN

1

Encontré lo que parece ser una guía adecuada aquí , pero pfctl se queja de un error de sintaxis y "no se encontró una dirección IP para en3", que es mi interfaz principal. He tenido otras reglas de pf trabajando con éxito para reenviar puertos, etc., pero no puedo resolver esto.

Estoy en 10.11.4 y, con Tunnelblick conectado a un servidor OpenVPN, me instalé en un VPS.

¿Podría alguien dar instrucciones sobre la configuración correcta para pfctl en El Capitán? Necesito mantener el acceso abierto a redes privadas como 10.0.0.0 y 168.1.0.0

¡Gracias!

    
pregunta jakethedog 23.04.2016 - 10:36

1 respuesta

1

Los siguientes trabajos en Sierra.

Agregue las siguientes líneas al final de /etc/pf.conf

anchor "org.vpnonly.pf"
load anchor "org.vpnonly.pf" from "/etc/pf.anchors/org.vpnonly.pf.rules"

Cree este archivo de configuración en /etc/pf.anchors/org.vpnonly.pf.rules

# Options
set block-policy drop
set fingerprints "/etc/pf.os"
set ruleset-optimization basic
set skip on lo0

# Interfaces
vpn_intf = "{ utun0 utun1 utun2 utun3 }"

# Ports
allowed_vpn_ports = "{ 1:65535 }"

# Table with allowed IPs
table <allowed_vpn_ips> persist file "/etc/pf.anchors/vpn.list" file "/etc/pf.anchors/custom.list"

# Block all outgoing packets
block out all

# Antispoof protection
#had to disable this to avoid error
#antispoof for $vpn_intf inet

# Allow outgoing packets to specified IPs only
pass out proto icmp from any to <allowed_vpn_ips>
pass out proto {tcp udp} from any to <allowed_vpn_ips> port $allowed_vpn_ports

# Allow traffic for VPN interfaces
pass out on $vpn_intf all

Crea /etc/pf.anchors/vpn.list y /etc/pf.anchors/custom.list

sudo touch /etc/pf.anchors/vpn.list /etc/pf.anchors/custom.list

Agregue una lista de direcciones IP permitidas (direcciones de servidores VPN) a /etc/pf.anchors/vpn.list

41.xxx.xxx.xxx
42.xxx.xxx.xxx

Agregue google DNS a /etc/pf.anchors/custom.list personalizado     8.8.8.8     8.8.4.4

sudo pfctl -e -f /etc/pf.conf y comprueba si hay errores

Para cargar al inicio, edite a pfctl predeterminado en /System/Library/LaunchDaemons/com.apple.pfctl.plist para establecer %código% <key>Disabled</key>

asegúrate de que el modo sin raíz esté deshabilitado. (arranque desde el terminal de recuperación con Comando + R en el timbre y ejecute <true/> ejecute estos comandos, luego vuelva al terminal de recuperación para volver a habilitar el desarraigo con csrutil disable

Crea tu LaunchDaemon en csrutil enable

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.apple.pfctl</string>
<key>ProgramArguments</key>
    <array>
        <string>pfctl</string>
        <string>-e</string>
        <string>-f</string>
        <string>/etc/pf.conf</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

termine con /Library/LaunchDaemons/com.apple.pfctl.plist , reinicie con el modo sin root habilitado y listo.

    
respondido por el jakethedog 29.10.2016 - 15:27

Lea otras preguntas en las etiquetas