Настройка интернет шлюза с openvpn client.

Автор Juriy, 12 января 2018, 15:37:06

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Juriy

Понадобилось использовать vpn. Но при его включении весь трафик идет через него и с задержками.
И выходит из-за захода на пару сайтов его приходится поднимать потом отключать тк скорость через него медленнее.
Решил поднять отдельно машину, настроить её как интернет шлюз, поднять openvpn client на ней, а у себя в hosts прописать
для нужных сайтов перенаправление на неё. Вроде всё просто, логично, но не работает.

Оба пк в локальной сети за роутером. Инет есть на обоих. openvpn client так же настроен и работает.
Ip рабочего - 192.168.1.2
Ip openvpn - 192.168.1.11
На оба пк пинг проходит. На 192.168.1.2 прописан шлюзом 192.168.1.11.
На 192.168.1.11 применены правила iptables.

правила iptables
#!/bin/bash
PATH=/usr/sbin:/sbin:/bin:/usr/bin
# delete all existing rules.
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
# write new rules
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth0 -j ACCEPT
iptables -t nat -A POSTROUTING -o tun3 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
[свернуть]

Для примера прописал в hosts 192.168.1.11 2ip.ru
ping -c4 2ip.ru идет на 192.168.1.11 но в браузере не открывается.

ChubaDuba

#1
Цитата: Juriy от 12 января 2018, 15:37:06... И выходит из-за захода на пару сайтов его приходится поднимать потом отключать...
Я для захода на сайты на которые обычным способом не зайти использую Tor. А для включения и выключения Tor в браузере Chromium использую вот  это - быстро и удобно.
[offtopic][/offtopic]

Juriy

Цитата: ChubaDuba от 12 января 2018, 19:15:54Я для захода на сайты на которые обычным способом не зайти использую Tor.
Вопрос стоит не столько про заход на сайты, сколько в том, почему не срабатывает пере направление на шлюз. Хотя пинг проходит.
Лет 6 назад без роутера подобным образом интернет раздавал на другие пк.

zarguni

Цитата: Juriy от 12 января 2018, 15:37:06Понадобилось использовать vpn. Но при его включении весь трафик идет через него и с задержками.
И выходит из-за захода на пару сайтов его приходится поднимать потом отключать тк скорость через него медленнее.
При подключении vpn устанавливается маршрут по-умолчанию. Необходимо отключить эту опцию и маршруты к сайтам прописать вручную. Это что касается варианта с одним ПК.
В варианте с двумя ПК:
Цитата: Juriy от 12 января 2018, 15:37:06а у себя в hosts прописать
для нужных сайтов перенаправление на неё. Вроде всё просто, логично, но не работает.
Заработало как и положено, файл hosts нужен для другого.

Во-первых, удалите все что прописали в hosts.
Во-вторых, командой echo "1" > /proc/sys/net/ipv4/ip_forward разрешите перенаправление трафика.
В-третьих, эта команда лишняя
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Но у вас опять весь трафик пойдет через туннель.

Juriy

Цитата: zarguni от 13 января 2018, 16:58:46
При подключении vpn устанавливается маршрут по-умолчанию. Необходимо отключить эту опцию и маршруты к сайтам прописать вручную. Это что касается варианта с одним ПК.
Поподробней пожалуйста, где можно отключить её, как и где прописать маршрут?
Во-вторых, командой echo "1" > /proc/sys/net/ipv4/ip_forward разрешите перенаправление трафика.
Второй пункт я также выполнил, просто отвлекли и забыл его указать.
Заработало как и положено,
И нет, так и не заработало: те инет получаю через роутер или вообще не получаю если запрещу его для этого ip адреса.
Но у вас опять весь трафик пойдет через туннель.
Те задумка держать в сети пк с впн и ходить по сайтам из своего списка не выйдет? Или только свой инет или через впн?

zarguni

Не знаю ваших настроек, но вот по ссылке написано как отключить маршрут по-умолчанию, который приходит с сервера - https://community.openvpn.net/openvpn/wiki/IgnoreRedirectGateway
Цитата: Juriy от 13 января 2018, 19:06:50Заработало как и положено,
И нет, так и не заработало: те инет получаю через роутер или вообще не получаю если запрещу его для этого ip адреса.
Да, файл hosts ассоциирует IP адреса с именами узлов и к маршрутизации не имеет никакого отношения.

В любом случае, в обоих вариантах для получения желаемого результата необходимо настроить маршруты.
Первый вариант:
ip route add x.x.x.x dev tun3
или
второй вариант:
ip route add x.x.x.x via y.y.y.y
x.x.x.x - адрес назначения (сайта)
y.y.y.y - адрес шлюза

Juriy

Благодарю, ознакомился.
Не знаю ваших настроек.
Так Вы и не спрашиваете, а я не знаю какую информацию Вам предоставить. Будем считать, что инет приходит на роутер с адресом 192.168.1.1 и к нему подключены 2 пк:основной - 192.168.1.2 и с openvpn - 192.168.1.11.
файл hosts ассоциирует IP адреса с именами узлов
Теперь я понял свою ошибку, я думал что в хост я указываю где искать 2ip.ru, а оказалось что я сказал что 192.168.1.11 и есть 2ip.ru.
для получения желаемого результата необходимо настроить маршруты
А в маршрутах нужно прописать ip адреса тк dns имена не пройдут, и с учетом того что даже если я укажу верный адрес завтра он может измениться и всё пойдет по бороде.
И в итоге, остается для нормальной скорости пользоваться арендованными vds и платить за траффик если превысить или "дополнениями для браузеров" в которых о том что они делают знает только разработчик.

zarguni

Цитата: Juriy от 14 января 2018, 09:42:50Так Вы и не спрашиваете, а я не знаю какую информацию Вам предоставить. Будем считать, что инет приходит на роутер с адресом 192.168.1.1 и к нему подключены 2 пк:основной - 192.168.1.2 и с openvpn - 192.168.1.11.
Я имел ввиду настройки OpenVPN клиента, хотя, видимо, я уже дал ссылку на решение.
Цитата: Juriy от 14 января 2018, 09:42:50А в маршрутах нужно прописать ip адреса тк dns имена не пройдут, и с учетом того что даже если я укажу верный адрес завтра он может измениться и всё пойдет по бороде.
Именно, хотя это все с легкостью автоматизируется. Но это уже отдельный вопрос.
Цитата: Juriy от 14 января 2018, 09:42:50И в итоге, остается для нормальной скорости пользоваться арендованными vds и платить за траффик если превысить или "дополнениями для браузеров" в которых о том что они делают знает только разработчик.
Как и не знаем, что делают администраторы vpn сервисов. VPS стоит недорого (5-15 долларов), а лимит трафика в терабайты про обычном серфинге сложно превысить, хотя это зависит от задач.

Если вернуться к теме, то я уверен, что дополнительный ПК вам не нужен. Все это легко реализуется и на одном, если, конечно, нет задачи подключения всей домашней сети, а не одного ПК.

Juriy

Я имел ввиду настройки OpenVPN клиента, хотя, видимо, я уже дал ссылку на решение.
Сам файл конфига? Тк по сути я ничего и не настраивал это же openvpn client просто запуская openvpn файл_конф.ovpn
Именно, хотя это все с легкостью автоматизируется. Но это уже отдельный вопрос.
Если не затруднит, интересно, может пригодится.
Если вернуться к теме, то я уверен, что дополнительный ПК вам не нужен. Все это легко реализуется и на одном, если, конечно, нет задачи подключения всей домашней сети, а не одного ПК.
Всей сети нет, а пару пк да. Я привел доп. пк для простоты ответа. А так хотелку уже реализовал немного другим способом.
На медиасервере у меня стоит virtualbox и пару ядер есть свободных, создал вирт. машину поставил debian-install, ffproxy с openvpn client.
А с рабочей в firefox воткнул foxy-proxy и натравил на виртуалку. В общем вышло не как задумывал, но быстро (по сути затратил менее часа) и работает.
Да и в сети у меня 6 реальных пк, не считая подключенного соседа.
PS Как реализовать на одном так же выслушал. Может практичней вышло бы моей реализации.

zarguni


Juriy

zarguni
Благодарю.
Насколько я понял через переводчик всё сводится к использованию прокси, чего я хотел изначально избежать.
Хотя Foxy-proxy порадовало, удобно сайты в фильтр добавлять и есть экспорт настроек. Недооценил, или возможно подделку под неё пробовал.

А по поводу маршрутов выходит только по ip и то обратный вариант. Не на впн направить, а только мимо него.
Конечно можно скрипт написать с правилами для основных сайтов, но тут с прокси проще наверно выйдет. И заморочек с ip адресами не будет если изменятся.
В общем если окромя этих способов других нет, тему наверно можно считать решенной.
zarguni Еще раз спасибо.