Настройка ограничения трафика в обход любого VPN-соединения для Mac OS X


Для настройки ограничения утечек трафика в системах Mac OS X можно воспользоваться встроенным файрволом pf – Packet Filter.

Для этого выполните следующие действия:

1. Создайте файл /etc/pf.anchors/vpn.list с IP адресом VPN cервера. Можно указать несколько адресов. Создать файл можно командой в консоли:

sudo vi /etc/pf.anchors/vpn.list
10.10.10.10
10.10.10.1

2. Создайте файл /etc/pf.anchors/custom.list. В нем нужно перечислить DNS адреса, которые используются VPN сервером:

8.8.8.8
1.1.1.1
8.8.4.4

3. Создайте файл /etc/pf.anchors/openvpn со следующим содержимым:

# 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 persist file "/etc/pf.anchors/vpn.list" file "/etc/pf.anchors/custom.list"

# Block all outgoing packets
block out all

# Antispoof protection
#antispoof for $vpn_intf inet

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

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

4. Добавьте в файл /etc/pf.conf в конец файла  строчки:

anchor "openvpn"
load anchor "openvpn" from "/etc/pf.anchors/openvpn"

5. Чтобы настройки применились выполните команду:

sudo pfctl -f /etc/pf.conf

6. Что-бы отменить настройки удалите последние 2 строчки, которые вы добавили в файл /etc/pf.conf и снова выполните команду из пункта 5.