diff options
| author | Andrew Guschin <guschin.drew@gmail.com> | 2022-04-03 12:01:38 +0400 |
|---|---|---|
| committer | Andrew Guschin <guschin.drew@gmail.com> | 2022-04-03 12:01:38 +0400 |
| commit | a3e3a41f47a80ed53cddf36a0f2a59a399b9176f (patch) | |
| tree | 5156fb69e65d4b704cb3d5e9b6fdca834a95b0b4 /content/posts/vpn.md | |
Initial commit
Diffstat (limited to 'content/posts/vpn.md')
| -rw-r--r-- | content/posts/vpn.md | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/content/posts/vpn.md b/content/posts/vpn.md new file mode 100644 index 0000000..67e9b44 --- /dev/null +++ b/content/posts/vpn.md @@ -0,0 +1,138 @@ +--- +title: "Как настроить VPN" +date: 2022-04-03 +draft: false +--- + +В качестве софта для создания сети будет использоваться Wireguard. Хостинг +предоставляется компанией <https://1984.is/>. Сервер находится в Исландии, поэтому +пинг может быть заметным. Ютуб смотреть можно, но не нужно. Количество трафика +ограничено (1 терабайт в месяц на данный момент). + +## Установка + +Все нужные способы установки перечислены на этой странице: + +- <https://www.wireguard.com/install/> + +Основные системы: + +- На Windows следует скачать установщик и запустить его. +- На macOS следует установить приложение Wireguard через + App Store +- На Linux зависит от дистрибутива. Основные пациенты: + - Manjaro/Arch: `sudo pacman -S wireguard-tools` + - Ubuntu/Debian: `sudo apt install wireguard` + +## Настройка на Linux + +Сначала необходимо сгенерировать пару ключей для доступа к VPN: +``` +wg genkey > private_key.pem +wg pubkey < private_key.pem > public_key.pub +``` + +Содержимое файла нужно передать мне, чтобы я мог тебя добавить в сеть. +После этого я выдам тебе твой IP-адрес внутри сети. Обозначим его как +`<ADDRESS>`. Вместе с этим адресом я выдам адрес VPN, который обозначим как +`<VPN_ADDRESS>`. + + +В файле `/etc/wireguard/wg0.conf` следует прописать следующие настройки: +``` +[Interface] +PrivateKey = <Содержимое файла private_key.pem> +Address = <ADDRESS>/32 +DNS = 1.1.1.1 + +[Peer] +PublicKey = yAGhH8hkukwjbw3R4MBUGoVEltgd7Wn3uGk6m0eD5SI= +AllowedIPs = 1.0.0.0/8, 2.0.0.0/8, 3.0.0.0/8, 4.0.0.0/6, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/3, 160.0.0.0/5, 168.0.0.0/6, 172.0.0.0/12, 172.32.0.0/11, 172.64.0.0/10, 172.128.0.0/9, 173.0.0.0/8, 174.0.0.0/7, 176.0.0.0/4, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 10.13.37.0/24, 1.1.1.1/32 +Endpoint = <VPN_ADDRESS>:51820 +PersistentKeepalive = 20 +``` + +В поле `AllowedIPs` так много записей, чтобы исключить из них все локальные +IP-адреса (типа `192.168.*.*`). + +Пока что я не нашёл как можно на линуксе управлять Wireguard из GUI, поэтому +используем консоль. + +Чтобы запустить VPN следует запустить команду +``` +wg-quick up wg0 +``` + +Для отключения VPN используется команда +``` +wg-quick down wg0 +``` + +## Настройка на macOS + +После установки приложения Wireguard из App Store нас встречает такое окно: + + +Нажимаем на плюсик в нижнем левом углу и на кнопку `Add Empty Tunnel...`. + + + +Даём туннелю какое-нибудь название и копируем строчку после надписи `Public +key:`. Её нужно передать мне. В ответ на эту строчку я передам тебе твой +IP-адрес в сети. Обозначим его как `<ADDRESS>`. Вместе с этим адресом я +выдам адрес VPN, который обозначим как `<VPN_ADDRESS>`. + +После уже присутствующей строчки в конфиге нужно добавить следующие строки: +``` +... +Address = <ADDRESS>/32 +DNS = 1.1.1.1 + +[Peer] +PublicKey = yAGhH8hkukwjbw3R4MBUGoVEltgd7Wn3uGk6m0eD5SI= +AllowedIPs = 1.0.0.0/8, 2.0.0.0/8, 3.0.0.0/8, 4.0.0.0/6, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/3, 160.0.0.0/5, 168.0.0.0/6, 172.0.0.0/12, 172.32.0.0/11, 172.64.0.0/10, 172.128.0.0/9, 173.0.0.0/8, 174.0.0.0/7, 176.0.0.0/4, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 10.13.37.0/24, 1.1.1.1/32 +Endpoint = <VPN_ADDRESS>:51820 +PersistentKeepalive = 20 +``` + +В поле `AllowedIPs` так много записей, чтобы исключить из них все локальные +IP-адреса (типа `192.168.*.*`). + +В результате окошко выглядит примерно так (Address тот, который я выдам): + + +## Настройка на Windows + +Настройка на Windows такая же, как на macOS. + +После установки приложения Wireguard нас встречает такое окно: + + +Нажимаем на треугольник в нижнем левом углу и выбираем кнопку +`Добавить пустой туннель...`. + + + +Даём туннелю какое-нибудь название и копируем строчку после надписи `Публичный +ключ:`. Её нужно передать мне. В ответ на эту строчку я передам тебе твой +IP-адрес в сети. Обозначим его как `<ADDRESS>`. Вместе с этим адресом я +выдам адрес VPN, который обозначим как `<VPN_ADDRESS>`. + +После уже присутствующей строчки в конфиге нужно добавить следующие строки: +``` +... +Address = <ADDRESS>/32 +DNS = 1.1.1.1 + +[Peer] +PublicKey = yAGhH8hkukwjbw3R4MBUGoVEltgd7Wn3uGk6m0eD5SI= +AllowedIPs = 1.0.0.0/8, 2.0.0.0/8, 3.0.0.0/8, 4.0.0.0/6, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/3, 160.0.0.0/5, 168.0.0.0/6, 172.0.0.0/12, 172.32.0.0/11, 172.64.0.0/10, 172.128.0.0/9, 173.0.0.0/8, 174.0.0.0/7, 176.0.0.0/4, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 10.13.37.0/24, 1.1.1.1/32 +Endpoint = <VPN_ADDRESS>:51820 +PersistentKeepalive = 20 +``` + +В поле `AllowedIPs` так много записей, чтобы исключить из них все локальные +IP-адреса (типа `192.168.*.*`). + +В результате окошко выглядит примерно так (Address тот, который я выдам): + |