Update README.md
This commit is contained in:
35
README.md
35
README.md
@@ -1,4 +1,5 @@
|
||||
Схема следующа. OpenVPN-сервер находится в РФ, к нему подключаютсся клиенты, а также шлюз, через который идёт весь трафик. Обязательно использование режима DCO (Data channel offloading) для OpenVPN-интерфейсов клиента и шлюза, т.к. при включении этого режима производительность увеличивается драматически. Поэтому использование готовых скриптов типа github/angristan нам не подходит, будем поднимать всё ручками. Для начала нам нужно два сервера - в РФ и в забугорище. Оба подготавливаем идентично:
|
||||
Схема следующа. OpenVPN-сервер находится в РФ, к нему подключаютсся клиенты, а также шлюз, через который идёт весь трафик. Обязательно использование режима DCO (Data channel offloading) для OpenVPN-интерфейсов клиента и шлюза, т.к. при включении этого режима производительность увеличивается драматически. Поэтому использование готовых скриптов типа github/angristan нам не подходит, будем поднимать всё ручками. Для начала нам нужно два сервера - в РФ и в забугорище. Оба подготавливаем идентично.
|
||||
##Подготовка.
|
||||
```
|
||||
apt update && apt dist-upgrade -y
|
||||
```
|
||||
@@ -19,10 +20,12 @@ modprobe ovpn-dco-v2
|
||||
lsmod | grep ovpn
|
||||
```
|
||||
Если вывод пуст, разбираемся.
|
||||
Если вывод что-то типа
|
||||
> ovpn_dco_v2 86016 0
|
||||
> ip6_udp_tunnel 16384 1 ovpn_dco_v2
|
||||
> udp_tunnel 32768 1 ovpn_dco_v2
|
||||
Если вывод что-то типа:
|
||||
```
|
||||
ovpn_dco_v2 86016 0
|
||||
ip6_udp_tunnel 16384 1 ovpn_dco_v2
|
||||
udp_tunnel 32768 1 ovpn_dco_v2
|
||||
```
|
||||
То всё хорошо, можно примменять на постоянку:
|
||||
```
|
||||
echo "ovpn-dco-v2" | sudo tee -a /etc/modules
|
||||
@@ -30,9 +33,9 @@ echo "ovpn-dco-v2" | sudo tee -a /etc/modules
|
||||
```
|
||||
update-initramfs -u -k all
|
||||
```
|
||||
Можно ещё раз перезагрузиться и проверить наличие dco-модуля после перезагрузки `lsmod | grep ovpn`
|
||||
Можно ещё раз перезагрузиться и проверить наличие dco-модуля после перезагрузки. `lsmod | grep ovpn`
|
||||
|
||||
Теперь приступим к настройке OpenVPN-сервера.
|
||||
##Настройка OpenVPN-сервера.
|
||||
Инициализируем инфраструктуру открытых ключей и выпускаем сертификат сервера (без паролей для автозапуска):
|
||||
```
|
||||
make-cadir ~/openvpn-ca && cd ~/openvpn-ca
|
||||
@@ -118,7 +121,7 @@ WantedBy=multi-user.target
|
||||
```
|
||||
```
|
||||
systemctl daemon-reload
|
||||
systemctl enable vpn-policy-routing.service
|
||||
systemctl enable --now vpn-policy-routing.service
|
||||
```
|
||||
Ну а теперь самое время запустить сервер:
|
||||
```
|
||||
@@ -129,8 +132,20 @@ systemctl start openvpn-server@server.service
|
||||
ip -details link show dev tun0 | grep dco
|
||||
```
|
||||
Вывод должен быть не пустой.
|
||||
Проверяем, применился ли policy-based routing:
|
||||
```
|
||||
ip rule show | grep 100
|
||||
```
|
||||
Мы должны увидеть строчку `from 10.210.0.0/24 lookup 100`. Это значит, что весь трафик из VPN-сети отправляется в таблицу 100.
|
||||
Далее посмотрим саму таблицу:
|
||||
```
|
||||
ip route show table 100
|
||||
```
|
||||
Мы должны увидеть 2 строчки:
|
||||
`default via 10.210.0.254 dev tun0` - маршрут по-умолчанию через шлюз
|
||||
`10.210.0.0/24 dev tun0 proto kernel scope link` - а где вообще искать нашу внутреннюю впн-подсеть. В дефолтную таблицу маршрутизации эта информация поступает автомматически, а в кастомную нужно добавлять вручную.
|
||||
|
||||
Можно создавать клиентов с помощью скрипта: `./gen-client.sh user1 user2 user3 ...`.
|
||||
|
||||
|
||||
Теперь займёмся клиентом, который будет выступать в роли шлюза.
|
||||
##Настройка клиента-шлюза
|
||||
Если ещё не сделано, необходимо проделать все шаги из раздела **Подготовка**.
|
||||
|
||||
Reference in New Issue
Block a user