Я установил сервер OpenVPN для подсети 10.8.0.0/24 с ограниченным доступом к внутренней сети. Кроме того, я хочу вручную настроить 10.8.1.0/24 со статическими IP-адресами для выбранных клиентов, чтобы предоставить им дополнительные разрешения (например, доступ по SSH).
Контроль доступа осуществляется через iptables и работает должным образом.
Теперь я отправляю маршрут на внешний IP-адрес (в этом примере 10.10.10.10) с веб-сервером, работающим на портах 80 и 443.
При подключении к VPN без специальной конфигурации клиента и, таким образом, получения IP-адреса 10.8.0.0/24 у меня нет проблем с доступом к веб-серверу 10.10.10.10. Я могу видеть пакеты, поступающие на tun0 и покидающие сервер на p4p1 (внешний интерфейс). При подключении к VPN с конкретной конфигурацией клиента и, таким образом, получением IP-адреса 10.8.1.0/24 я могу проверить связь со всеми внутренними серверами, но пакеты, предназначенные для 10.10.10.10, не будут ретранслироваться ни на один физический интерфейс на сервере VPN ( проверил в дампах TCP).
Относительно этого отрывок из конфигурации сервера OpenVPN:
server 10.8.0.0 255.255.255.0
push "route 10.10.10.10 255.255.255.255"
client-config-dir /etc/openvpn/ccd
route 10.8.1.0 255.255.255.0
client-to-client
comp-lzo
persist-key
persist-tun
конфигурация клиента / etc / openvpn / ccd / some-client:
ifconfig-push 10.8.1.133 10.8.1.134
Поскольку трафик работает через любой конкретный маршрут, указанный во внутреннем интерфейсе (p1p1), я предполагаю, что OpenVPN неправильно перенаправляет трафик по маршруту по умолчанию, идущему на интерфейс p4p1, но я не знаю, почему он это делает и как это может быть фиксированный.
Какие-либо предложения?
Как сказал Диамант, веб-серверу также необходим обратный путь к 10.8.1.0/24 через VPN-сервер. В качестве альтернативы VPN-сервер необходимо настроить для выполнения NAT для запросов к веб-серверу.
Кроме того, я не уверен в этом, но вам может потребоваться добавить push "route 10.8.0.0 255.255.0.0"
в конфигурацию вашего сервера.
EDIT: меня беспокоит сетевая маска в конфигурации сервера. Вместо предложенного выше предложения попробуйте удалить server 10.8.0.0 255.255.255.0
строку в конфигурации сервера и добавив вместо этого:
mode server
tls-server
ifconfig 10.8.0.1 255.255.254.0 # different netmask to support 10.8.1.0/24 range
ifconfig-pool 10.8.0.0 10.8.0.253
route-gateway 10.8.0.1
push "route-gateway 10.8.0.1"
EDIT2: добавлены недостающие строки конфигурации