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

OpenVPN и DNS

 , , , ,


0

2

Есть опенвпн сервер который используется для серфинга и защиты, то есть я подлючаюсь к мену и весь трафик гоняю через него. Все работает нормально. Конфиг:
http://pastebin.com/1nqcAg2v

Когда подключается клиент явно видно что ему пушиться все нужные параметры:
Fri Mar 22 19:18:10 2013 us=202541 PUSH: Received control message: '.. dhcp-option DNS 8.8.8.8,dhcp-option DNS 8.8.4.4 ...'

То есть если я правильно понимаю весь трафик должен ходить через впн туннель, даже DNS. Но wireshark я вижу:
http://i.picresize.com/Ini
*.100 - адрес моей машины.
*.20.1 - адрес роутера.
То есть трафик ДНС идет не через туннель. Подскажите как это можно исправить?



Последнее исправление: Klymedy (всего исправлений: 3)

Не юзал,но м.б. что то наподобие:
push route 8.8.8.8 255.255.255.255

koi8-r
()

Если это дамп трафика на клиенте, то там DNS-запрос идёт на локальный DNS-сервер (видимо 8.8.8.8 не прописался в /etc/resolv.conf), а потом уже этот DNS-cервере передаёт запрос на маршрутизатор.

Вам нужно не DNS-трафик отправлять в тунель, а смотреть, почему ваш клиент не принял dhcp-опции и не поменял настройки своего DNS. То есть почему трафик идёт к 10.19.20.1, а не к 8.8.8.8. И, ЕМНИП, все обычные программы, запущенные до изменнения resolv.conf не перечитывают его.

mky ★★★★★
()

OpenVPN-клиент на линуксе не меняет DNS. Только если через обертки, типа нетворкменеджера, или скриптом подключения.

ValdikSS ★★★★★
()

Под виндой и андроидом все нормально.

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

И еще traceroute 8.8.8.8 тоже. Интересуют первые 2-3 хопа.
При включенном впне конечно же.

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

Спасибо.

Да это дамп на клиенте, vpn поднимается сразу после загрузки. То есть дам я уже снимал уже после часа работы.

Под виндой и андроидом все нормально работает, ну нет обращения «за» DNS к локальному маршрутизатору.

Попробовал запустить впн ручками, resolv.conf не изменился.

cat /etc/resolv.conf
---------
nameserver 127.0.1.1
search lan
---------

В логах все ок. Может покажите куда можно еще покапать?

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

Судя по пасте, трафик у тебя ходит на 8.8.8.8 через впн, все ок.
И судя по днс 127.0.1.1 у тебя стоит на локлхосте кеширующий днс, в конфиге которого написано юзать днс сервер твоего роутера/провайдера.

Есть два варинта:
1) Выкинуть локальный днс сервер
2) Ставить впн скриптами новый днс насильно, линукс по дефолту его не подсасывает.

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

Попробовал запустить впн ручками

А до этого как запускали, через network-manager?

А так, вам ответили, что под линуксом openvpn клиент не меняет resolv.conf. Можно использовать скрипты, допустим http://www.subvs.co.uk/openvpn_resolvconf или те, что идут в дистрибутиве openvpn, например в RHEL в каталоге /usr/share/doc/openvpn-2.2.0/contrib/pull-resolv-conf

Ну и отдельный вопрос, нужно ли вам менять resolv.conf или лучше менять настройки вашего локального dns-сервера, который слушает на 127.0.0.1. Тогда нужен другой скрипт. В принципе, можно написать тупой скрипт, который не парсит опции dhcp, а при поднятии интерфейса просто меняет конфигурацию dns-сервера, прописывая там 8.8.8.8...

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

А что у тебя висит на 127.0.0.1? Dnsmasq какой-нибудь?

Был, уже нет.

Есть два варинта:
1) Выкинуть локальный днс сервер

Выкинул локальный (пакет dnsmasq-base1).

Бутнул свою тачку, resolv.conf:
nameserver 10.19.20.1 #уже явно указан маршрутизатор
search lan

Что еще можно посмотреть/попробовать? (Да, я не совсем компетентен в данном вопросе, потому и спрашиваю такие нубские вопросы)

windofchange
() автор топика
Ответ на: комментарий от mky

Не совсем корректно выразился. Обычно у меня впн поднимается после того как подыматься eth*.

Когда «попробовал запустить впн ручками», я остановил текущее впн соединение, и просто заново его запустил.

За скрипы спасибо, но это не совсем удобно так как я всегда тягаю только один .ovpn кофниг файл.

Основная задача этого всего защитить себя, что бы например админ на моей работе(или где-то еще) не знал какие я сайты посещаю. С трафиком то понятно, если дампы снимут то особо ничего не сделаю. А вот то факт что днс идет через основной маршрутизатор сети меня пугает, так как админ может легко узнать какие сайты я посещаю, потому мне подойдет почти любое решение, со скриптом, впринцепе, нормально но просто не особо хотеться таскать с собой еще скрипт (хоть он и тривиальный будет).

Может подобная задача может решится средствами openvpn?(up,down скрипты не учитывать).

windofchange
() автор топика
Ответ на: комментарий от mky

так, вам ответили, что под линуксом openvpn клиент не меняет resolv.conf.

просто в чем тогда смысл в конфиге сервера
---
push «dhcp-option DNS 8.8.8.8»
push «dhcp-option DNS 8.8.4.4»
---

windofchange
() автор топика
Ответ на: комментарий от mky

Почитал OpenVPN cookbook, там тоже говориться об этой проблеме, я так понял up,down скрипты самое быстрое и просторе решение проблемы. Спасибо!

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

Ну можно ещё придумать некий хак с помощью iptables. Примерно такой:

1. В /etc/resolv.conf пишем ДНСы гугля.

2. В iptables пихаем правило:

iptables -t nat -I OUTPUT -d 8.8.8.8 -o eth0 -p udp --dport 53 -j DNAT --to-destination 10.19.20.1

и второе аналогичное правило для 8.8.4.4

Как я понял, openvpn не умеет запускать в качестве up скрипта команду с произвольными аргрументами, а так бы можно было добавлять/удалять правило iptables и таскать с собой только конфиг.

Касательно того, что openvpn клиент не понимает dhcp-опции, ИМХО, недоработка разработчиков. Конечно, пихать это в бинарник не нужно, но сделать так, чтобы типовые скрипты лежали в известном бинарнику месте (указываемом при компиляции) и вызывались простыми опциями конфига стоило бы. Вот, например, в openswan идёт скрипт «_updown» и куча других скриптов и они идут все как исполняемые файлы, а не как обычные файлы в каталоге с документацией.

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