Доброго времени суток всем и в частности fisher74.
На форуме уже был похожая тема, но как я понял она уже закрыта, хотя лично для меня задача так и не решилась.
Задача:Есть n удалённых рабочих станций, которым нужно подключаться к удалённому терминальному серверу с IP: 192.168.0.1 компании по защищённому каналу.
Описание интерфейсов:auto eth0
iface eth0 inet static
address 192.168.1.4
netmask 255.255.255.0
gateway 192.168.1.1
auto eth1
iface eth1 inet static
address 192.168.0.3
netmask 255.255.255.0
192.168.1.4 - смотрит на модем 192.168.1.1
192.168.0.3 - смотрит в локальную сеть 192.168.0.0
Внешний интерфейс x.x.x.x назначается модему, с него настроен портфорвардинг по порту 1194 на интерфейс сервера 192.168.1.4
Конфигурация OpenVPN сервера сервера:port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 192.168.0.0 255.255.255.0"
keepalive 10 120
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
verb 4
mute 20
Конфигурация одного из n клиентов
remote x.x.x.x
port 1194
client
dev tun
proto udp
resolv-retry infinite
nobind
user nobody
group nogroup
persist-key
persist-tun
ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\config\\client1.crt"
key "C:\\Program Files\\OpenVPN\\config\\client1.key"
comp-lzo
verb 4
mute 20
Клиент устанавливает VPN соединение, получает IP: 10.8.0.6
Ethernet adapter Подключение по локальной сети 2:
DNS-суффикс подключения . . . . . :
Описание. . . . . . . . . . . . . : TAP-Win32 Adapter V9
Физический адрес. . . . . . . . . : 00-FF-5E-E5-5F-A0
DHCP включен. . . . . . . . . . . : Да
Автонастройка включена. . . . . . : Да
Локальный IPv6-адрес канала . . . : fe80::fc8e:a8cb:5536:3570%17(Основной)
IPv4-адрес. . . . . . . . . . . . : 10.8.0.6(Основной)
Маска подсети . . . . . . . . . . : 255.255.255.252
Аренда получена. . . . . . . . . . : 20 февраля 2012 г. 21:09:26
Срок аренды истекает. . . . . . . . . . : 19 февраля 2013 г. 21:09:27
Основной шлюз. . . . . . . . . :
DHCP-сервер. . . . . . . . . . . : 10.8.0.5
IAID DHCPv6 . . . . . . . . . . . : 234946398
DUID клиента DHCPv6 . . . . . . . : 00-01-00-01-15-D8-8F-FA-00-24-1D-04-BF-66
DNS-серверы. . . . . . . . . . . : fec0:0:0:ffff::1%1
fec0:0:0:ffff::2%1
fec0:0:0:ffff::3%1
NetBios через TCP/IP. . . . . . . . : Включен
Пингуются IP-адреса OpenVPN сервера: 10.8.0.1 и 192.168.0.3, но вся сеть за сервером 192.168.0.0 и в частности нужный мне 192.168.0.1 не доступны.
У меня очень плохо с iptables и роутингом, во многих форумах говорится о том, что достаточно прописать всего один маршрут и всё заработает. Но какой маршрут точно никто пример не приводит.
Уважаемый fisher74, Вы писали:Клиенту в конфиг добавьте параметр pull (возможно и не надо, но не помешает) и смотрите его таблицу маршрутизации (route print) на наличие маршрута на сеть 192.168.0.0/24 через tun0
Серверу в конфиг добавьте строку:
route 10.8.0.0 255.255.255.0
Смотрите маршрутизацию на терминальном сервере: либо должен быть маршрут на 10.8.0.0/24 через 192.168.0.3, либо этот же адрес должен быть дефолтным шлюзом.
Проверьте включен ли форвардинг в ядре (sysctl net.ipv4.ip_forward)
Ну и таблесы... куда же без них. Надо смотреть цепочку FORWARD
1) Добавление параметра pull в конфиг пользователя особо не помогло.
2) Не совсем понимаю зачем добавлять строку
route 10.8.0.0 255.255.255.0
в конфиг сервера?!
Эта строка вроде бы нужна для прописывания обратного маршрута до клиента, а мне нужно пробиться в сеть за сервером.
Строку прописал, не помогло.
3) Форвардинг в ядре включил на постоянку.
root@OpenVPNServer:~# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
4) Маршруты на клиенте после подключения
IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза Интерфейс Метрика
0.0.0.0 0.0.0.0 192.168.2.1 192.168.2.5 20
10.8.0.1 255.255.255.255 10.8.0.5 10.8.0.6 30
10.8.0.4 255.255.255.252 On-link 10.8.0.6 286
10.8.0.6 255.255.255.255 On-link 10.8.0.6 286
10.8.0.7 255.255.255.255 On-link 10.8.0.6 286
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.0.0 255.255.255.0 10.8.0.5 10.8.0.6 30
192.168.2.0 255.255.255.0 On-link 192.168.2.5 276
192.168.2.5 255.255.255.255 On-link 192.168.2.5 276
192.168.2.255 255.255.255.255 On-link 192.168.2.5 276
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 192.168.2.5 276
224.0.0.0 240.0.0.0 On-link 10.8.0.6 286
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 192.168.2.5 276
255.255.255.255 255.255.255.255 On-link 10.8.0.6 286
===========================================================================
Честно говоря не понятно откуда берётся шлюз 10.8.0.5 для подсети 192.168.0.0
5) На терминальный сервер добавил постоянный маршрут
route -p add 10.8.0.0 192.168.0.3
===========================================================================
Постоянные маршруты:
Сетевой адрес Маска Адрес шлюза Метрика
0.0.0.0 0.0.0.0 192.168.0.4 По умолчанию
10.8.0.0 255.255.255.255 192.168.0.3 1
===========================================================================
Вроде всё, но 192.168.0.1 всё равно пока не пингуется.
Подскажите, может нужно прописывать какие-то дополнительные правила IPTABLES?
Я думал, что кода
push "route 192.168.0.0 255.255.255.0"
в конфиге сервера для доступа в сеть за сервером достаточно?!
Буду благодарен за любую помощь всем!