Как заставить работать туннель от сервера к клиенту?
Здравствуйте. Нужен совет по настройке туннеля OpenVPN. Имеется два шлюза, и две сети - 192.168.1.0 (клиент) и 192.168.0.0(сервер). Между собой сети связаны через туннель OpenVPN. При этом из сети клиента в сеть сервера есть свободный доступ, можно ходить по сетевым шарам, и т.д., но в обратную сторону такого доступа нет. В какую сторону нужно копать, чтобы сети были видны в обе стороны?
Надеюсь понятно объяснил.
P.S. В итоге туннели подняты в обе стороны, маршруты есть, но туннель всё равно работает в одну сторону. Мистика.
Уже не знаю даже в чём дело, в Iptables или в OpenVPN. В комментариях прикладываю настройки и выводы
первая строчка заставляет клиента при подключении добавить маршрут в сеть сервера, вторая добавляет маршрут в сеть клиента.
На тоннельном интерфейсе клиента NAT не нужен
MaxxDamage, после изменения конфигурационного файла, перегружали сервер? Проверьте таблицы маршрутизации после установки соединения на обоих концах тоннеля. Если нужные маршруты присутствуеют, возможно, неправильно настроен firewall
Dmitry, перезагружал конечно. По таблицам маршрутизации...
На сервере
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
На клиенте
-A POSTROUTING -o tun0 -j MASQUERADE
MaxxDamage, это не таблица маршрутизации, это настройки iptables. Кстати, вторая строчка необязательна и даже немного лишняя. Текущие маршруты можно посмотреть по командам
ip route
route print
netstat -r
MaxxDamage, нужные маршруты поднялись с обоих концов тоннеля, это хорошо. Попробуйте traceroute с хоста серверной сети до хоста в клиентской сети. Windows эта команда выглядит как tracert
MaxxDamage, предполагаю, что на сервере запрещён forward между 192.168.0.0 и 192.168.1.0, так как на клиенте у вас настроен nat на туннельном интерфейсе - доступ из клиентской сети в серверную есть, а наоборот нет. Смотрите настройки iptables. Возможно, требуется добавить разрешающее правило.
Iptables -I FORWARD -s 192.168.0.0/24 -d 192.168.1.0/24 -j ACCEPT
Iptables -I FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -j ACCEPT
Выполните эти две команды в терминале на сервере, если трафик пойдёт, то дело в этом. Настраивайте firewall, убирайте маскарад на туннельном интерфейсе клиента и трафик будет ходить между сетями без каких-либо nat
MaxxDamage, у вас на сервере трафик блокируется, если вы добавили разрешающее правило, но трафик так и не пошёл, значит запрещающие правила находится выше разрешающего.
iptables-save с сервера покажите вывод
Dmitry, Попробовал добавить костылём, как делали здесь. Привязал алиасом к туннелю один нужный мне адрес в сети клиента. Пинги пошли, но сетевые шары не видны всё равно. Это может как-то подсказать причину почему туннель нормально не работает?
MaxxDamage, вы назначили на тоннельной интерфейс IP адрес из другой подсети? Так он у вас на пинги и отвечает, пакеты дальше не уходят. Поэтому и шары не открываются, так как на сервере никаких шар нет.
Dmitry, я уже просто не знаю какие варианты пробовать. Разрешил все возможные варианты форварда, от туннеля к адресам и наоборот, проверил шары, разрешил форвард на шлюзе клиента... Ничего не помогает. От клиента к серверу пакеты бодренько летают, шары доступны, всё красиво. Обратно никак.