@onlyjusttruth

Как сконфигурировать openvpn server, чтобы через него шёл не весь трафик от клиентов, а только на определённые адреса назначения?

Добрый вечер. Есть debian с openvpn сервером, который был установлен при помощи скрипта, предоставленного хостинг провайдером. Скрипт устанавливает и конфигурирует опенвпн на перенаправление всего клиентского трафика через впн-подключение, а так же помогает создать конфигурацонные файлы пользователей и это работало отлично.
Появилась потребность перенавправлять через впн не весь трафик, а только для определённых маршрутов. Открыл файл конфигурации на сервере opevpn, закоментил строки с push gateway и dns, но по tracert с клиентской машины вижу, что весь трафик всё равно идёт через openvpn и без прописанного dns у сетевого подключения доменные имена не резолвятся.

Настройки сервера:
spoiler
proto udp
port 14502
dev tun
topology subnet
persist-key
persist-tun
user nobody
group nogroup
# client-config-dir ccd
### ipv4 setting
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
# push "dhcp-option DNS 8.8.8.8"
# push "dhcp-option DNS 8.8.4.4"
# push "redirect-gateway def1 bypass-dhcp" #отправить весь трафик через VPN
### ipv6 setting
server-ipv6 АДРЕСV6_ВЫДАННЫЙ_ПРОВАЙДЕРОМ::/112
# tun-ipv6
# push tun-ipv6
#push "route-ipv6 ::/0"
#push "redirect-gateway ipv6"
### security
dh none
ecdh-curve prime256v1
tls-crypt tls-crypt.key 0
crl-verify crl.pem
ca ca.crt
cert server_server.crt
key server_server.key
auth SHA256
cipher AES-192-GCM
ncp-ciphers AES-192-GCM
tls-server
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
status /var/log/openvpn/status.log
### User params:
# ncp-disable
max-clients 10
client-to-client
keepalive 10 120
nice 3
verb 0
mute 10

# Notify the client that when the server restarts so it
# can automatically reconnect.
explicit-exit-notify 1


Затем решил посмотреть что там в конфигах клиентов. Закоментил "setenv opt block-outside-dns" и доменные имена стали резолвиться даже без назначенного dns у сетевого подключения ВПН, но трафик всё так же идёт через vpn
client
proto udp
remote ТУТ_БЫЛ_АДРЕС_СЕРВЕРА 14502
dev tun
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
verify-x509-name server_server name
auth SHA256
auth-nocache
cipher AES-192-GCM
tls-client
tls-version-min 1.2
tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256
#setenv opt block-outside-dns # Prevent Windows 10 DNS leak
verb 3


В маршрутах на клиенте такое
spoiler
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0      192.168.1.1    192.168.1.195     50
          0.0.0.0        128.0.0.0         10.8.0.1         10.8.0.2    281
         10.8.0.0    255.255.255.0         On-link          10.8.0.2    281
         10.8.0.2  255.255.255.255         On-link          10.8.0.2    281
       10.8.0.255  255.255.255.255         On-link          10.8.0.2    281
     ТУТ_АДРЕС_СЕРВЕРА_ОПЕНВПН  255.255.255.255      192.168.1.1    192.168.1.195    306
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
        128.0.0.0        128.0.0.0         10.8.0.1         10.8.0.2    281
      192.168.1.0    255.255.255.0         On-link     192.168.1.195    306
    192.168.1.195  255.255.255.255         On-link     192.168.1.195    306
    192.168.1.255  255.255.255.255         On-link     192.168.1.195    306
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link          10.8.0.2    281
        224.0.0.0        240.0.0.0         On-link     192.168.1.195    306
        224.0.0.0        240.0.0.0         On-link     172.18.34.193   5256
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link          10.8.0.2    281
  255.255.255.255  255.255.255.255         On-link     192.168.1.195    306


Почему несмотря на что судя по конфигам маршруты не должны пушиться, всё равно создаёются маршруты на клиенте?

При этом у меня есть роутер с прошивкой padavan и у него тоже есть openvpn. И с ним проблем нет. Достаточно убрать "пуши" и через впн ходит только трафик для подсети впн, а остальной трафик от клиентов идёт напрямую в интернет
spoiler
proto udp4
port 1194
dev tun1
topology subnet
server 10.8.0.0 255.255.255.0
client-config-dir ccd
push "route 192.168.1.0 255.255.255.0"
auth SHA256
cipher BF-CBC
compress lzo
push "compress lzo"
ca /etc/storage/openvpn/server/ca.crt
dh /etc/storage/openvpn/server/dh1024.pem
cert /etc/storage/openvpn/server/server.crt
key /etc/storage/openvpn/server/server.key
persist-key
persist-tun
user nobody
group nogroup
script-security 2
tmp-dir /tmp/openvpn
writepid /var/run/openvpn_svr.pid
client-connect ovpns.script
client-disconnect ovpns.script

### User params:
ncp-disable
max-clients 10
client-to-client
keepalive 10 60
nice 3
verb 0

а если добавить в конфиг пуши, то тогда от клиентов уже весь трафик идёт через впн
spoiler
proto udp4
port 1194
dev tun1
topology subnet
server 10.8.0.0 255.255.255.0
client-config-dir ccd
push "route 192.168.1.0 255.255.255.0"
auth SHA256
cipher BF-CBC
compress lzo
push "compress lzo"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 1.1.1.1"
push "dhcp-option DNS 8.8.8.8"
ca /etc/storage/openvpn/server/ca.crt
dh /etc/storage/openvpn/server/dh1024.pem
cert /etc/storage/openvpn/server/server.crt
key /etc/storage/openvpn/server/server.key
persist-key
persist-tun
user nobody
group nogroup
script-security 2
tmp-dir /tmp/openvpn
writepid /var/run/openvpn_svr.pid
client-connect ovpns.script
client-disconnect ovpns.script

### User params:
ncp-disable
max-clients 10
client-to-client
keepalive 10 60
nice 3
verb 0
mute 10


Понимаю, что я что-то не понимаю и прошу помочь, потому что сам никак не могу решить задачу.
  • Вопрос задан
  • 4488 просмотров
Решения вопроса 2
Radjah
@Radjah
push "redirect-gateway def1 bypass-dhcp" - это перенаправление всего трафика. Это надо убрать из конфига сервера и конфига клиента (без push), если есть.

Тебе нужно добавить push "route нужная_подсеть маска" для всех нужных ресурсов.
Ответ написан
@onlyjusttruth Автор вопроса
В общем, благодаря наводящим вопросам Radjah решил проблему закомментированием
# tun-ipv6
# push tun-ipv6

Так же, для того, чтобы работали маршруты созданные вручную на клиентах, понадобилось настроить маскарадинг на сервере с опенвпн для сетевого интерфейса опенвпн.

upd
В итоге не удалось корректно работать впн. При добавлении ЛЮБОГО маршрута в конфиге сервера весь трафик с клиентов начинал идти через впн. В итоге, не желая разбираться, что и как было наворочено скриптом установки впн, удалил опенвп тем же скриптом установки и установил openvpn вручную. Теперь маршруты пушатся нормально.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы