В настоящее время я настраиваю Raspberry Pi, чтобы облегчить подключение к VPN моей компании из дома. Pi имеет следующие интерфейсы:
eth0
- подключен к моему маршрутизатору ISP.tun0
- туннельный интерфейс OpenVPN, соединяющийся с компанией VPN.wlan0
- настроен как точка беспроводного доступа.
Я установил следующие правила iptables для соединения всего трафика между wlan0
и tun0
(NAT включен):
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -A FORWARD -i tun0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o tun0 -j ACCEPT
Мой /etc/resolv.conf
выглядит следующим образом:
# Generated by resolvconf
search a.my-company.com b.my-company.com c.my-company.com
nameserver 10.0.0.1 # VPN DNS server
nameserver 10.4.0.1 # VPN DNS server
nameserver 194.168.4.100 # ISP DNS server
nameserver 194.168.8.100 # ISP DNS server
С помощью Pi я могу разрешить и достичь как VPN-хостов, так и внешних хостов. Тем не менее, устройства, подключенные к беспроводной точке доступа, также не могут разрешить (но доступ к хостам VPN по IP работает). Я не уверен, правильно ли мой диагноз фиксирует проблему, но я заметил, что TCPdump на tun0
содержит:
IP 10.4.119.198.35387 > [VPN DNS SERVER 1].domain: 12662+ A? some.website.com. (38)
IP [VPN DNS SERVER 1].domain > 10.4.119.198.35387: 12662 1/13/13 A [Resolved IP] (486)
IP 10.4.119.198 > [VPN DNS SERVER 1]: ICMP 10.4.119.198 udp port 35387 unreachable, length 522
Кажется, это указывает на то, что что-то фильтрует ответы DNS.
Я не знаком с настройкой таких настроек, поэтому любая помощь с этим будет оценена! Я, конечно, буду рад предоставить больше информации, если это необходимо.