LINUX.ORG.RU
решено ФорумAdmin

Как маршрутизировать трафик OpenVPN?

 ,


0

1

Имеется сервер OpenVPN сервер с 1 сетевым интерфейсом (смотрит в интернет) с адресом: 11.11.11.11 Внутренняя виртуальная сеть OpenVPN: 10.20.30.0/24

На оборудовании так же стоит IMAP сервер

Правилами IPTables разрешен доступ к IMAP только с адреса 22.22.22.22 и с виртуальной сети - 10.20.30.0/24

  
# IMAP
iptables -A INPUT -i eth0 -s 22.22.22.22 -p TCP -m multiport --dport 143,993 -j ACCEPT
iptables -A INPUT -i tun+ -s 10.20.30.0/24 -p TCP -m multiport --dport 143,993 -j ACCEPT

Трафик клиентов проходит через NAT

iptables -A FORWARD -i tun+ -s 10.20.30.0/24 -o eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.20.30.0/24 -o eth0 -j SNAT --to-source 11.11.11.11

Проблема с которой столкнулся: подключенные клиенты OpenVPN не могут обратиться к внешнему адресу: 11.11.11.11, данную проблему я исправил добавил в конфигурацию сервера следующую строку:

push "route 11.11.11.11"

на Windows и Linux добавился маршрут 11.11.11.11 255.255.255.255 IP_адрес_сервера_в_тоннеле и все отлично работает, за исключением Mac OS X, на котором вначале добавляется маршрут 11.11.11.11/32 шлюз_локальной_сети_клиента, потом (судя по логам) имеются попытки добавить 11.11.11.11 255.255.255.255 IP_адрес_сервера_в_тоннеле, но с ошибкой:

 route: writing to routing socket: File exists 
. Если сделать route change -net 11.11.11.11/32 IP_адрес_сервера_в_тоннеле, то коннект теряется. Как выходить из этой ситуации?

конфигурация OVPN сервера: http://pastebin.com/p6sMvvrP
конфигурация OVPN клиента: http://pastebin.com/0tsuYPvY
правила IPTables: http://pastebin.com/b5xrdFPY


Нельзя доп. маршрутами перекрывать маршрут к vpn серверу - это убивает канал.

если vpn сервер на адресе 11.11.11.11 и imap там же, то заставить ходить на imap через туннель будет не просто, да и не нужно при наличии ssl на imap.

Проще заставить imap слушать не только внешний адрес, но и еще какой-нибудь ( хоть на dummy/lo повесь доп. адрес) и через vpn обращаться к нему.

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

Спасибо за ответ!

Тут ситуация такая: пользователи imap сервера подключаются к нему через dns имя, которое соответствует 11.11.11.11, поэтому если прописать в качестве сервера (в почтовом клиенте) - шлюз в виртуальной сети, они не смогут работать из доверенной сети, т.е. для работы будет всегда требоваться VPN.

Я вот подумал, а может быть сделать таким образом: поднять DNS сервер на нем, и резолвить адреса формата: imap.domain.com на IP виртуальной сети? Способ кривой?

p.s. к сожалению открыть доступ к imap/pop3 для всех не представляется возможным :(

aseco ()
Ответ на: комментарий от aseco

поднять DNS сервер на нем, и резолвить адреса формата: imap.domain.com на IP виртуальной сети?

true

Способ кривой?

false

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