LINUX.ORG.RU
ФорумAdmin

Не получается настроить маршрутизацию трафика через VPN

 , ,


0

1

Приветствую. Пытаюсь настроить OpenVPN так, чтобы трафик через него ходил только на определённые IP адреса, в частности - адреса из реестра. Для генерации списка адресов использовал скрипты с Antizapret. Однако клиенты не получают маршруты до VPN сервера, и инициализация повисает намертво. Конфиг сервера:

port 1194
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log                                                                                                                                                                                                                                                         
verb 3                                                                                                                                                                                                                                                                            
crl-verify crl.pem

Конфиг клиента:
client
dev tun
proto udp
sndbuf 0
rcvbuf 0
remote 194.182.70.106 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
comp-lzo
setenv opt block-outside-dns
key-direction 1
verb 3


В /etc/openvpn/ccd на сервере лежит файл DEFAULT, в котором находятся адреса из реестра, вида push "route 1.32.194.33 255.255.255.255"
cast ValdikSS

Прошу помощи в настройке

Ты уже сделал push «redirect-gateway def1 bypass-dhcp», у тебя и так все коннекты должны идти через VPN вне зависимости от содержимого ccd конфигов.

PS: у «повисающей намертво инициализации» логов на выхлопе случайно нет?

BOOBLIK ★★★
()
Последнее исправление: BOOBLIK (всего исправлений: 1)

В логах видно, что маршрут в пуше прилетает?

Radjah ★★★★★
()
Ответ на: комментарий от Sunderland93

Mother of god, вы бы ему еще full view скормили. Мне кажется openvpn-клиента не устраивает такое количество пуш роутов. Возможно поднятие verb в настройках покажет что-то более интересное в логах. Однако как я уже сказал чтобы не было написано в этом DEFAULT ccd-файле, весь(!) трафик пойдет через vpn, т.к. это задано в конфиге сервера.

UPD: а вот немного кода из openvpn, судя по всему весь размер PUSH опций ограничен 1КБ.

/*
 * This parameter controls the TLS channel buffer size and the
 * maximum size of a single TLS message (cleartext).
 * This parameter must be >= PUSH_BUNDLE_SIZE
 */
#define TLS_CHANNEL_BUF_SIZE 2048

/*
 * This parameter controls the maximum size of a bundle
 * of pushed options.
 */
#define PUSH_BUNDLE_SIZE 1024

BOOBLIK ★★★
()
Последнее исправление: BOOBLIK (всего исправлений: 1)

Если бы передо мной стояла задача завернуть только(!) заблоченные ip адреса в сторону VPN, то я бы сделал:
1) ipset хэш тамблицы для адресов и подсетей
2) два правила iptables, которые создавал бы при подключении vpn канала с матчингом по dst ip set и отправкой подходящих соединений через vpn интерфейс.
Увы но такое решение прокатит если у тебя клиент какой-то линукс. Если это iOS, нерутованный Android, или прости господи Windows, то могут возникнуть проблемы в реализации.

BOOBLIK ★★★
()
Последнее исправление: BOOBLIK (всего исправлений: 1)
Ответ на: комментарий от BOOBLIK

Клиентом у меня выступает роутер на OpenWRT. Спасибо за идею, попытаюсь реализовать

Sunderland93 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.