Чтобы предоставить доступ к вашему соединению OpenVPN на OS X Mavericks, Yosemite или El Capitan введите следующие команды для включения пересылки пакетов:
sudo sysctl -w net.inet.ip.forwarding=1
sudo sysctl -w net.inet.ip.fw.enable=1
Затем добавьте следующие строки в /etc/pf.conf
сразу после rdr-anchor "com.apple/*"
:
lan="{192.168.25.0/24}"
ext_if=en0
vpn_if="utun0"
nat on $ext_if from $lan to any -> ($ext_if)
nat on $vpn_if from $lan to any -> ($vpn_if)
Обратите внимание, что вы должны изменить адрес локальной сети на LAN, который вы хотите направить через соединение OpenVPN. ext_if
должен быть интерфейсом, который подключен к локальной сети. vpn_if
должен быть интерфейсом OpenVPN. Я использовал VyprVPN, который использовал tun0
а не utun0
поэтому вам может потребоваться изменить это в зависимости от вашей конкретной конфигурации.
Затем выполните следующую команду для загрузки конфигурации:
sudo pfctl -d
sudo pfctl -F all
sudo pfctl -f /etc/pf.conf -e
Инструкции для этого были найдены здесь: http://www.douglas.wiki.br/doku.php?id=en:configuring_nat_on_mac_osx_yosemite
Загрузка с помощью демона
Если вы хотите, чтобы это загружалось автоматически, вы можете взглянуть на этот репозиторий https://github.com/essandess/osx-openvpn-server, где вы увидите пример использования сценария оболочки с файлом .plist для создания демон, который загружается при загрузке. Я просто добавил /sbin/pfctl -f /etc/pf.conf -e
в конец enable-vpn-forward-nat.sh
и сделал следующее:
sudo mkdir '/Library/Application Support/vpn'
sudo install -m 755 osx-openvpn-server/enable-vpn-forward-nat.sh '/Library/Application Support/vpn'
sudo install -m 644 net.openvpn.enable-vpn-forward-nat.plist /Library/LaunchDaemons
sudo launchctl load -w /Library/LaunchDaemons/net.openvpn.enable-vpn-forward-nat.plist