pfctl config per consentire solo la connessione OpenVPN

1

Ho trovato quella che sembra essere una guida adatta qui , ma pfctl si lamenta di un errore di sintassi e "nessun indirizzo IP trovato per en3", che è la mia interfaccia principale. Ho avuto altre regole pf che funzionano correttamente per l'inoltro di porte, ecc. Ma non riesco a capirlo.

Sono su 10.11.4 e utilizzando Tunnelblick collegato a un server OpenVPN mi sono installato su un VPS.

Qualcuno potrebbe dare istruzioni sulla configurazione corretta per pfctl su El Capitan? Devo mantenere l'accesso aperto alle reti private come 10.0.0.0 e 168.1.0.0

Grazie!

    
posta jakethedog 23.04.2016 - 10:36
fonte

1 risposta

1

I seguenti lavori su Sierra.

Aggiungi le seguenti righe alla fine di /etc/pf.conf

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

Crea questo file di configurazione su /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 e /etc/pf.anchors/custom.list

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

Aggiungi un elenco di indirizzi IP consentiti (indirizzi dei server VPN) a /etc/pf.anchors/vpn.list

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

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

sudo pfctl -e -f /etc/pf.conf e controlla gli errori

Per caricare all'avvio, modifica su pfctl predefinito a /System/Library/LaunchDaemons/com.apple.pfctl.plist da impostare %codice% <key>Disabled</key>

assicurati che la modalità senza radici sia disabilitata. (avvia al terminale di ripristino con Command + R al chime ed esegui <true/> esegui questi comandi, quindi torna al terminale di ripristino in seguito per riattivare rootless con csrutil disable

Crea il tuo LaunchDaemon in 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>

termina con /Library/LaunchDaemons/com.apple.pfctl.plist , riavvia la modalità senza radici e sei pronto.

    
risposta data 29.10.2016 - 15:27
fonte

Leggi altre domande sui tag