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 pf que funcionan correctamente para reenviar puertos, etc., pero no puedo resolver esto.
Estoy en 10.11.4 y uso Tunnelblick conectado a un servidor OpenVPN. Me instalé en un VPS.
¿Alguien podría dar instrucciones sobre la configuración correcta de pfctl en El Capitan? Necesito mantener acceso abierto a redes privadas como 10.0.0.0 y 168.1.0.0
¡Gracias!
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
Cree /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 comprobar si hay errores
Para cargar al inicio, edite el pfctl predeterminado en /System/Library/LaunchDaemons/com.apple.pfctl.plist
para establecer<key>Disabled</key>
<true/>
asegúrese de que el modo sin raíz esté deshabilitado. (inicie en el terminal de recuperación con Command+Rel timbre y ejecute csrutil disable
estos comandos, luego regrese al terminal de recuperación para volver a habilitar rootless concsrutil enable
Cree su LaunchDaemon en/Library/LaunchDaemons/com.apple.pfctl.plist
<?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 sudo chmod 644 /Library/LaunchDaemons/com.apple.pfctl.plist
, reinicie con el modo sin raíz habilitado y listo.
klanomath
caballito
/etc/pf.conf
como root? esto parece tan roto. En linux/windows, puede simplemente agregar nuevas reglas de firewall llamandoiptables
owfp
codificando. ¿Realmente no hay forma de hacer esto en osx sin editar un archivo de configuración frikkin como root?Jake el perro
-rw-r--r-- 1 root wheel 1.0K 16 Jul 2017 /etc/pf.conf
también puede ser posible crear un archivo de configuración propiedad del usuario. no lo he probado.