Полезные фичи VPN

Оригинал поста на хабре

Не хотелось писать статью про настройку впн, потому что их и без меня в интернете тысячи - выбирай на вкус и цвет.

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

1. VPN клиент можно установить почти на любой точке доступа

Даже на старой точке часто есть возможность обновиться или доставить нужный пакет. Например, для моей старенькой Zyxel Keenetic Ultra оказалось неофициальное обновление, которое содержит кучу всего полезного, в том числе клиент openvpn. Для вашей точки тоже может найтись прошивка - 4pda это наше всё, там лежат прошивки буквально под что угодно. Если вы настроили все точки для работы с впн, то жизнь в целом уже становится гораздо легче. Если так сделают многие, то опять же проблема сводится к минимуму.

2. VPN позволяет выборочно гонять через себя трафик

Вам нужно только знать адрес подсети, в которую вы хотите ходить через VPN - дальше вы обновляете список этих сетей на своём VPN сервере, клиент из получает и начинает гнать только нужный трафик через VPN. Остальной идёт напрямую. Это важно - видел кучу инструкций, после следования которым вы погоните 100% трафика через VPN - это медленно, дорого, и вряд ли вы этого хотели.

3. Мобильные устройства

Почему-то многие считают, что на мобильных устройствах VPN работает по принципу “всё или ничего”. Нет, это не так, даже на огрызках - вы точно так же можете гонять через VPN только нужный трафик.

4. Тор

Так же хочется добавить, что по непонятным для меня причинам всё забыли про тор, который так же помогает в схожих задачах, и на текущий момент работает быстро и стабильно.

Пример

В качестве домашнего решения, я использую Google Compute Engine, где на сервере по минимальной стоимости у меня крутится openvpn сервер. Конечно, вы можете выбрать любой другой хостинг и vpn сервер.

Клиенты для этого сервера у меня подняты на точке (родной клиент в поставке точки), на ноутбуке (есть клиенты на любой вкус и цвет) и на телефоне (Android, стандартный клиент почему-то отказался читать конфиг, зато сразу завёлся клиент от Arne Schwabe). Работает просто прекрасно, никаких нареканий. И я гораздо больше уверен в безопасности и прочности личного сервера, чем какого либо халявного или даже платного. Опять же, я думаю, что он будет всегда доступен, поводов полагать обратное нет (ну разве что огромный диапазон адресов гугла попадёт в блок, но айпишник сервера сменить довольно легко).

На всякий случай добавлю свою настройку клиента - понятное дело, без ключей. Сервер и клиенты были подняты за вечер, при том, что это мой первый опыт развёртывания opnvpn, и вообще-то я занимаюсь разработкой.

Настройка клиента (сертификаты можно добавить прямо в файл настройки, чтобы скормить это спокойно телефону или точке):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
client
dev tun
proto udp
remote YOUR_SERVER_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
verb 3
<ca>
PUT YOUR CA CERTIFICATE HERE
</ca>
<cert>
PUT YOUR CERTIFICATE HERE
</cert>
<key>
PUT YOUR PRIVATE KEY CERTIFICATE HERE
</key>
key-direction 1
<tls-auth>
PUT YOUR STATIC KEY CERTIFICATE HERE
</tls-auth>

Настройка сервера практически дефолтная - вроде я туда добавлял только пуши - для того, чтобы только нужные ресурсы шли через VPN:

1
2
push "route x.x.x.x 255.255.255.255"
push "route x.x.x.0 255.255.255.0"

Хотел добавить ссылок на настройку OpenVPN, но таких статей правда слишком много, и они находятся без всяких проблем, и есть под каждый дистрибутив.

Вы держитесь здесь, вам всего доброго, хорошего настроения и здоровья. Всё только начинается.

UPD. Вам может быть полезным вот этот список IP адресов.