rename
This commit is contained in:
parent
9fd8afaf2b
commit
16bfac71a1
@ -1,150 +0,0 @@
|
|||||||
---
|
|
||||||
title: Инструкция по обслуживанию VPN-шлюза
|
|
||||||
slug: администрирование-vpn/инструкция-по-обслуживанию-vpn-шлюза
|
|
||||||
---
|
|
||||||
|
|
||||||
## 1. Расположение файлов
|
|
||||||
|
|
||||||
### Скрипт маршрутизации
|
|
||||||
|
|
||||||
* Путь: `/usr/local/bin/vpn-domains.sh`
|
|
||||||
* Назначение: разрешает домены из файла и добавляет маршруты в таблицу `vpnroute`
|
|
||||||
|
|
||||||
### Список доменов
|
|
||||||
|
|
||||||
* Путь: `/opt/ovpn/vpn-domains.txt`
|
|
||||||
* Содержит список доменов, к которым трафик должен идти через VPN
|
|
||||||
* Пример:
|
|
||||||
|
|
||||||
```
|
|
||||||
youtube.com
|
|
||||||
tu.be
|
|
||||||
googlevideo.com
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
### Список IP-подсетей
|
|
||||||
- Путь: `/opt/ovpn/vpn-subnets.txt`
|
|
||||||
- Содержит список IP-адресов или подсетей, к которым трафик также направляется через VPN
|
|
||||||
- Пример:
|
|
||||||
```
|
|
||||||
|
|
||||||
8.8.8.0/24
|
|
||||||
209.85.0.0/16
|
|
||||||
|
|
||||||
````
|
|
||||||
|
|
||||||
### systemd unit-файл
|
|
||||||
- Путь: `/etc/systemd/system/vpn-routing.service`
|
|
||||||
- Назначение: запускает скрипт `vpn-domains.sh` после подключения VPN
|
|
||||||
- Содержимое:
|
|
||||||
```ini
|
|
||||||
[Unit]
|
|
||||||
Description=Selective VPN routing via tun0
|
|
||||||
After=network-online.target openvpn-client@default_route.service
|
|
||||||
Requires=openvpn-client@default_route.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=oneshot
|
|
||||||
ExecStart=/usr/local/bin/vpn-domains.sh
|
|
||||||
RemainAfterExit=true
|
|
||||||
````
|
|
||||||
|
|
||||||
### systemd таймер (опционально)
|
|
||||||
|
|
||||||
* Путь: `/etc/systemd/system/vpn-routing.timer`
|
|
||||||
* Назначение: периодически обновляет маршруты на случай смены IP у доменов
|
|
||||||
* Содержимое:
|
|
||||||
|
|
||||||
```ini
|
|
||||||
[Unit]
|
|
||||||
Description=Timer to refresh selective VPN routing
|
|
||||||
|
|
||||||
[Timer]
|
|
||||||
OnBootSec=1min
|
|
||||||
OnUnitActiveSec=30min
|
|
||||||
Unit=vpn-routing.service
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=timers.target
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 2. Команды управления
|
|
||||||
|
|
||||||
### Первый запуск вручную (после запуска VPN)
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo /usr/local/bin/vpn-domains.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### Старт systemd-сервиса вручную
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo systemctl start vpn-routing.service
|
|
||||||
```
|
|
||||||
|
|
||||||
### Автозапуск при загрузке
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo systemctl enable vpn-routing.service
|
|
||||||
```
|
|
||||||
|
|
||||||
### Проверка статуса
|
|
||||||
|
|
||||||
```bash
|
|
||||||
systemctl status vpn-routing.service
|
|
||||||
```
|
|
||||||
|
|
||||||
### Перезапуск
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo systemctl restart vpn-routing.service
|
|
||||||
```
|
|
||||||
|
|
||||||
### (Опционально) Включение таймера
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo systemctl enable --now vpn-routing.timer
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 3. Важные замечания
|
|
||||||
|
|
||||||
* OpenVPN клиент должен быть настроен с `route-nopull`, чтобы не перетягивать весь трафик через VPN.
|
|
||||||
* Файл `/etc/openvpn/client/default_route.conf` должен ссылаться на рабочий `.ovpn`-файл или содержать его содержимое.
|
|
||||||
* IP-адреса, добавленные вручную, будут сохранены при перезапуске скрипта.
|
|
||||||
* После редактирования `.txt`-файлов необходимо перезапустить сервис:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo systemctl restart vpn-routing.service
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 4. Устранение неполадок
|
|
||||||
|
|
||||||
* Если сайт не открывается через VPN:
|
|
||||||
|
|
||||||
* Убедитесь, что его IP-адрес попадает в `vpnroute`:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ip rule show
|
|
||||||
ip route show table vpnroute
|
|
||||||
```
|
|
||||||
* Проверьте DNS-резолвинг:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
dig +short <домен>
|
|
||||||
```
|
|
||||||
|
|
||||||
* Если после перезагрузки маршруты отсутствуют:
|
|
||||||
|
|
||||||
* Убедитесь, что unit-файл включён: `systemctl is-enabled vpn-routing.service`
|
|
||||||
* Проверить таймер: `systemctl list-timers | grep vpn-routing`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Готово. Инфраструктура настроена. Все изменения — только через `/opt/ovpn/vpn-domains.txt` и `/opt/ovpn/vpn-subnets.txt`.
|
|
Loading…
x
Reference in New Issue
Block a user