У меня особенная проблема с туннелем OpenVPN на моем Linux-сервере (конфигурация RoadWarrior). Я могу отлично войти в систему с помощью Tunnelblick 3.0 на моем Mac, я могу получить доступ ко всем службам на сервере, на котором размещен демон OpenVPN, однако я не могу получить доступ к любому другому компьютеру в подсети сервера.
Я продвигаю маршрут к клиенту и netstat -rn показывает, что маршрут существует.
Моя клиентская конфигурация выглядит следующим образом
port 500
dev tun
remote {secret}
tls-client
ca ca.crt
cert client.crt
key client.key
comp-lzo
pull
verb 4
и конфигурация сервера следующая
port 500
dev tun
local 10.81.0.2
tls-server
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/keys/dh1024.pem
mode server
ifconfig 10.84.0.1 10.84.0.2
ifconfig-pool 10.84.0.4 10.84.0.255
route 10.84.0.0 255.255.255.0
push "route 10.84.0.1 255.255.255.255"
push "route 10.81.0.0 255.255.255.0"
comp-lzo
keepalive 10 60
inactive 600
user vpndaemon
group vpndaemon
persist-tun
persist-key
verb 4
Я не могу найти никаких очевидных ошибок, и я также подтвердил, что на стороне клиента нет конфликтов IP.
Любые подсказки или идеи приветствуются!
Хорошо, я бы вставил это как комментарий, но я не могу, так что вот оно:
Команда, которую дал @GruffTech, у меня не сработала, но эта команда сработала
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Вероятно, вам потребуется настроить брандмауэр для выполнения MASQ для IP-адресов VPN.
-A POSTROUTING -s 10.84.0.0/255.255.255.0 -o eth0 -j MASQUERADE
в вашей конфигурации iptables должно сработать.
И вам нужно включить пересылку IP-пакетов ядра (маршрутизация между интерфейсами tun и eth):
раскомментируйте или вставьте следующую строку в свой /etc/sysctl.conf:
net.ipv4.ip_forward=1
и запустите:
sudo sysctl -p