Задать вопрос
@AkZwork

Как удалить все маршруты и поставить только OpenVPN?

Добрый день.
Помогите составить скрипт (добавлю в автозагрузку), который удалит маршрут по-умолчанию и добавит маршрут только для OpenVPN. Чтобы при падении OpenVPN трафик не шел напрямую.

Есть:
enp1s0
lo
tun0
wlp2s0 (wifi)


route при включенном VPN:
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.8.0.1 128.0.0.0 UG 0 0 0 tun0
default 192.168.1.1 0.0.0.0 UG 600 0 0 wlp2s0
10.8.0.0 * 255.255.255.0 U 0 0 0 tun0
128.0.0.0 10.8.0.1 128.0.0.0 UG 0 0 0 tun0
link-local * 255.255.0.0 U 1000 0 0 wlp2s0
VPN_IP 192.168.1.1 255.255.255.255 UGH 0 0 0 wlp2s0
192.168.1.0 * 255.255.255.0 U 600 0 0 wlp2s0


Нужно такое решение, которое удалит на Ubuntu все, что может палить трафик в сеть и разрешит только OpenVPN (можно по порту, можно по tun0, а можно по IP, разницы нет)
  • Вопрос задан
  • 278 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@younghacker
А Вы серьёзно уверены что никто не добавит маршруты обратно когда OpenVPN упадёт?

На мой взгляд оптимальнее и надёжнее будет ограничить весь исходящий и (проходящий если это роутер) трафик таким образом чтобы:
0) принимались все пакеты идущие в lo
-A OUTPUT -o lo -j ACCEPT

1) принимались все пакеты идущие в tun+
-A OUTPUT -o tun+ -j ACCEPT

2) принимались все пакеты идущие в enp1s0 если цель это интерфейс вашего VPN сервера и порт равен ему и протокол такой же.
-A OUTPUT -o enp1s0 -p tcp -m tcp --dport 443 -d x.x.x.x -j ACCEPT


3) принимались все пакеты идущие в wlp2s0 если цель это интерфейс вашего VPN сервера и порт равен ему и протокол такой же.
-A OUTPUT -o wlp2s0 -p tcp -m tcp --dport 443 -d x.x.x.x -j ACCEPT


4) отбрасывались все добежавшие до этого правила пакеты с ошибкой чтобы сразу было понятно что маршрут через VPN отвалился.
-A OUTPUT -j REJECT --reject-with icmp-host-prohibited

Правило должно быть последним в цепочке OUTPUT.

Такой подход защитит вас и от DNS leak.

Не забываем также PUSH-нуть DNS с VPN сервера так как родной от модема или wifi роутера не будет доступен.
push "redirect-gateway"
push "dhcp-option DNS 10.11.0.1"
push "explicit-exit-notify 3"

10.11.0.1 - в данном случае свой DNS где-то на стороне VPN сервера. Из соображений если уж VPN-ниться то и гуглу ничего не сообщать.

Команда для проверки счётчиков (когда будете отлаживать)
iptables -nvL

Да, DHCP ещё нужно бы разрешить если используете не статику.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы