Бесплатный VPN от riseup.net. Часть 3.

Настройка на другом компьютере с Linux

Как следует из ранее изложенного, ничего сверхъестественного не обнаружилось, и для того, чтобы воспользоваться этим VPN, требовательный к железу Debian 9 x64 не нужен совершенно. Bitmask тоже не нужен. Проблемы могут возникнуть разве что с виндой, а вот с линуксов вполне можно раздавать VPN-интернет на другие устройства в локальной сети, в т.ч. и на виндовые компьютеры. Без bitmask это даже лучше получается, поскольку он пакостит в iptables. Пакостит, правда, для «более лучшей» защиты пользователя. Но в данном случае получается, как у Черномырдина — хотели как лучше, получилось как всегда.

Конфигурация Openvpn

Первым делом надо составить конфиг для Openvpn. Не буду каждый параметр пояснять, а ссылка на сами конфиги есть в конце заметки. Вроде составил правильно, по ранее извлеченным параметрам Openvpn. Единственное что добавил от себя, это запуск пользовательских скриптов — параметры script-security 2, разрешающий оный запуск, и параметры up '/путь/к/скрипту up' и down '/путь/к/скрипту down', указывающие Openvpn, какой скрипт надо запускать при, соответственно, установке и разрыве соединения.

Про подобные скрипты я совсем недавно упоминал.

Сертификаты

Получены в прошлой части.

Пользовательский скрипт настройки соединения.

Переделывался из ранее приведенного примера с небольшими изменениями:

#!/bin/bash

#заводим человеческие переменные

MAIN_STAT=$1 #up/down
DEV_NAME=$2
TUN_MTU=$3
LINK_MTU=$4
LOCAL_IP=$5
REMOTE_IP=$6
ADD_STAT=$7 #init/restart

#путь к ip и iptables
ACPATH="/usr/sbin/"

# [...]

#соединение поднялось
if [ "$MAIN_STAT" = "up" ]; then
	#установка маршрута по умолчанию
    "$ACPATH"ip route del default #удаление старого
	#установка нового
	#именно так, локальный ip и удаленный - один и тот же
	#особенность провайдера Oo
    "$ACPATH"ip route add default via $LOCAL_IP dev $DEV_NAME src $LOCAL_IP
    
     #разрешение транзитного трафика
	"$ACPATH"iptables -P FORWARD ACCEPT
    
    #установка адреса DNS-сервера
    echo "nameserver 10.42.0.1">/etc/resolv.conf
    exit
fi

#соединение разорвано
if [ "$MAIN_STAT" = "down" ]; then
    #запрет транзитного трафика
    "$ACPATH"iptables -P FORWARD DROP 
    #установка маршрута по умолчанию без VPN
	"$ACPATH"ip route del default
    "$ACPATH"ip route add default via 10.10.1.1 dev eth1 src 10.10.20.55
    
    #восстанавление адресов DNS по умолчанию
    echo "nameserver 8.8.8.8">/etc/resolv.conf
    echo "nameserver 8.8.4.4">>/etc/resolv.conf
fi

Основная особенность в том, что сервер, вместо REMOTE_IP, передает маску подсети, а чтобы маршрутизация осуществлялась правильно, вместо удаленного IP надо прописать выданный сервером локальный.

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

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
inet 10.42.0.2 netmask 255.255.248.0 destination 10.42.0.2
inet6 2001:db8:123::1000 prefixlen 64 scopeid 0x0
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC)
RX packets 982346 bytes 1307345786 (1.2 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 541554 bytes 27027659 (25.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Вторая важная особенность — надо прописать правильный DNS.
И не забыть передать его клиентам, если компьютер используется в качестве PPTP- или другого VPN-сервера.

ЗЫ. Если будете пользоваться сервисом riseup.net, по возможности донатьте, хорошее дело ребята делают. Фиг где в мире встретишь таких альтруистов.

Ссылки

Предыдущие части заметки

Часть 1. копия
Часть 2. копия
Скачать все в PDF

Конфиги

На моем сайте копия

На PasteBin:
Голландия
Канада
США

Скачать с Mega.nz

Скрипт настройки сети

На PasteBin
Скачать с Mega.nz

Riseup

http://riseup.net
Регистрация Riseup Black
О Riseup
Донат

Bitmask

http://bitmask.net
http://leap.se

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*