LINUX.ORG.RU
ФорумAdmin

Как заставить debian ходить в интернет только через VPN подключение?

 впн интернет роутинг фаервол


0

1

Как заставить debian ходить в интернет только через VPN подключение? Если подключение рвется интернет не работает пока оно не переподключится.



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

Например iptables. Разрешить хождение пакетов не_через vpn интерфейс только до сервера vpn ну и еще dns можно оставить.
Тоже самое можно без iptables а таблицей роутинга реализовать.
Например у меня это реализовано по второму варианту (не специально для запрета, тому есть другие причины, несколько провайдеров)
Марщрут по умолчанию без vpn не прописываю
Перед стартом vpn:
получаю адреса dns серверов и адрес шлюза от dhcp провайдера
прописываю роут до этих серверов через шлюз провайдера
с этих адресов (в цикле пока не получу ответ) запрашиваю ip vpn сервера по его имени (vpn.provider.name)
прописываю этот ip в конфиг vpn
прописываю роут до этого ip через шлюз провайдера
стартую vpn

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

Опиши проблему подробнее, а то ничего не понятно.

anonymous
()

Подключи через ентерпрайзный роутер, на роутере назначь порт на нужный VPN.

Goury ★★★★★
()

Для этого и существуют маршруты

man ip-route

[root@localhost ~]# ip route
default via IP_РОУТЕРА dev ethЦИФРА 
169.254.0.0/16 dev eth1  scope link  metric 1002 
192.168.0.0/24 dev eth1  proto kernel  scope link  src 192.168.0.100
[root@localhost ~]# ip route add IP_СЕРВЕРА_VPN via IP_РОУТЕРА dev ethЦИФРА
[root@localhost ~]# ip route del default

Вернуть всё взад:

[root@localhost ~]# ip route del IP_СЕРВЕРА_VPN
[root@localhost ~]# ip route add default via IP_РОУТЕРА dev ethЦИФРА
legolegs ★★★★★
()

вручную прописать маршрутизацию

voltmod ★★★
()

Немного не в тему, но характерно, что всяческие VPN решения достигают перенаправления в канал с помощью пары маршрутов через VPN для сетей 128.0.0.0/1 и 0.0.0.0/1. Это перекрывает default gateway за счет большей маски, но с падением интерфейса VPN маршруты исчезают и трафик льется в открытую, о чем юзер может даже и не догадываться(( Таков, например, AVAST SecureLine VPN))

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

Здравствуйте КО. А значит до поднятия впн, все было зашибись и во всем виноват только впн. Самим не смешно?

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

Проблема не в том что при падении впн трафик начинает идти прямо, это ожидаемо как раз, проблема что юзверь может этого не заметить :) Вот эту вторую проблему и решай :) Например схемку звуковую поправь, чтобы на потерю интерфейса сирена ревела например. А ещё можно наверно как нибудь скрипт испортить чтобы он default route не возвращал после останова, тогда инет отвалится вообще вместе с впн, вертать взад придётся руками, или маршрут на впн сервер напрямую прописать заранее.

Короче, это не баг, это фича и это настраивается.

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

Ну вот решение anc как раз исключает утечку трафика в обход VPN. Я же просто для справки это здесь привел, не как руководство к действию.

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

А вот вы простите для кого примеры приводили с маской /1 ? Что было в таблице роутинга по «вашему капитанскомуО» ДО поднятия впн и что изменилось в ней после его отключения? Что-то новое появилось?

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

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

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

Отвечая на ваш вопрос (ну, как я его понял) формально, ничего не изменилось. До того был default gateway, и после того остался. Что-то не так?

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

Отвечу как принято «кемто до нас и в благословенной земле» А вы простите тогда зачем вообще написали про поднятие роутов /1 ? Вот какое оно отношение к топику имеет?

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

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

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

А дефолтные маршруты при падении и поднятии интерфейсов сетевых разьве не автоматически прописываются?

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

А дефолтные маршруты при падении и поднятии интерфейсов сетевых разьве не автоматически прописываются?

Ну вообще при «падении и поднятии интерфейсов» как таковых ничего не прописывается, кроме ранее прописанных на них адресах.
Но предполагаю что речь не об этом. Обращаю внимание на коренные слова «падении и поднятии интерфейсов», у вас разве при поднятии и опускании интерфейсов таких как ppp/tun/tap что-то с роутингом на физическом интерфейсе (eth) меняется? Намек понятен?

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

да надо на wlan запретить все кроме ip адреса впн сервера так? днс тоже запретить? они же не нужны по сути там

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

Странные у вас формулировки, wlan, в дебе таких слов вроде небыло... или уже появились?
ЗЫ днс нужен что бы по по имени vpn.my-prov.ru получить ip.

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

Если вы соединяетесь к vpn серверу по имени а не ip адресу, то из этого имени надо получить ip адрес, для этого и нужно разрешить хождение днс.

anc ★★★★★
()

Устроили тут цырк...

Не знаю, как в дебиане, но у тебя должно быть так:

- до поднятия туннеля у тебя в таблице не должно быть маршрута по-умолчанию, только маршрут до VPN-сервера (a.b.c.d/32 via x.y.z.t) с некой метрикой, например, R;

- в поднималке VPN необходимо, чтобы прописывался маршрут по умолчанию через туннель, с метрикой R+N, где N>0.

В такой конфигурации, единственная утечка, которая может быть — пакеты на адрес VPN-сервера, если они нешифрованные.

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

Не внимательно читаете. Если адрес впн не IP а имяхоста, то еще нужно как-то его из имени в IP преобразовать, а значит нужно разрешить хождение запросов к dns.
Про метрику вообще чуш какую-то нагородили. Метрика играет роль только для одинаковых маршрутов. Идите дальше курить доки.

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

а когда буду отклеиваться от впн маршруты какие то дефолтные будут создаваться для wlan напрямую?

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

Сильно устало «Да, можно». И вообще если ppp/&etc то пофиг, сам пропиши сразу ip если роли не играет.

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

Можно свой резолвер на локалхосте установить и настроить, чтобы домен впн-сервера резолвился на ДНСе провайдера, а остальное через, например, 8.8.8.8

anonymous
()
10 января 2018 г.
Ответ на: комментарий от anonymous

Вопрос тот же, что и автора темы. К ВПН подключаюсь с виртуалки, подключенной к хостовой ОС по NAT.

Можно где-то увидеть пример настройки маршрутов с примером решения задачи обрыва трафика, при падении ВПН?

Спасибо.

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

Если зарезать файрволом возможности перенаправления трафика куда угодно кроме VPN-интерфейса, то такой фигни не будет. В Linux это делается с пол-пинка.

Тут уже надо выбирать - либо безопасность(либо есть Интернет - через VPN, либо если VPN-лежит - болт), либо удобство(Интернет есть всегда если не лежит провайдер, но через VPN он идёт только если сам VPN не лежит)

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Averyanov
echo ip route delete default >> vi /etc/sysconfig/network-scripts/ifdown-post
mogwai ★★★★★
()
Ответ на: комментарий от Pinkbyte

Интересна схема с полным отключением сети при отключении ВПН. Ну и возможность все вернуть в первоначальное состояние.

Мне нужны именно примеры (мануалы, если возможно).

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

Читаешь это, после прочтения задаешь вопросы. Да, руководство не сильно актуальное, но основные принципы(в том числе то что ты хочешь настроить) там абсолютно те же.

Hint: в идеале после прочтения вопросов уже не будет. Но если вдруг они останутся - задавай, не стесняйся. Пока что дам подсказку: «сначала запретить всё для входящего и транзитного трафика, затем разрешить нужное».

Pinkbyte ★★★★★
()

я это делаю через ufw

sudo ufw enable
sudo ufw default deny incoming
sudo ufw default deny outgoing
sudo ufw allow in on tun0
sudo ufw allow out on tun0
sudo ufw allow out to 192.168.0.0/24
sudo ufw allow out to <подсавить IP своего VPN сервера>

когда нужно идти напрямую, то просто выключаю ufw (sudo ufw disable)

anonymous
()

Дали им NetworkManager, нет, хочу красноглазить.

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

А если это виртуалка за NAT

И марушруты такие:

0.0.0.0/1 via 10.8.1.5 dev tun0 
default via 10.0.2.2 dev enp0s3  proto static  metric 100 
10.0.2.0/24 dev enp0s3  proto kernel  scope link  src 10.0.2.15  metric 100 
10.8.1.1 via 10.8.1.5 dev tun0 
10.8.1.5 dev tun0  proto kernel  scope link  src 10.8.1.6 
128.0.0.0/1 via 10.8.1.5 dev tun0 
xxx.xxx.0.0/16 dev enp0s3  scope link  metric 1000 
<адрес VPN-сервера> via 10.0.2.2 dev enp0s3 

то эту строку

sudo ufw allow out to 192.168.0.0/24

заменить на

sudo ufw allow out to 10.0.2.0/24
?

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