这是完全不在MacOS X GUI之外的方法。因此,这种解决问题的方法不会干扰任何网络或VPN设置。
假设我要使用IPSEC VPN(基于使用500 / udp == isakmp和50 / ip == esp)。
创建一个ipfw
配置文件,仅允许所需的协议来构建VPN:
/usr/bin/sudo cat <<____eof >/etc/ipfw.vpn.rules
# VPN trafic contention
#
# DHCP
add 00100 permit udp from any to any src-port bootpc dst-port bootps
# DNS
add 01000 permit udp from me to any dst-port domain
add 01010 permit udp from any to me dst-port domain
# isakmp
add 01050 permit udp from me to any dst-port isakmp
add 01060 permit udp from any to me dst-port isakmp
# esp
add 01100 permit esp from me to any
add 01110 permit esp from any to me
# all other ip go to the central black hole
add 20000 deny ip from any to any
____eof
检查其语法是否正常:
/usr/bin/sudo /sbin/ipfw -n /etc/ipfw.vpn.rules
将其安装在内核中:
/usr/bin/sudo /sbin/ipfw /etc/ipfw.vpn.rules
检查您的操作系统是否可以重新启动,并通过通常的DHCP获得其IP地址。检查大多数IP协议是否被阻止:
ping www.google.com
当然,如果要在SSL之上使用VPN,则必须修改此配置文件(isakmp + esp→https)。