Настройка клиента wireguard linux

How to Set Up WireGuard VPN Client on Ubuntu Desktop

Info You may see over the web that you should install WireGuard with ppa, like: $ sudo add-apt-repository ppa:wireguard/wireguard This is an outdated method and as we seen in https://launchpad.net/%7Ewireguard:

This formerly was responsible for producing a PPA for WireGuard on Ubuntu. That functionality has now been folded into Ubuntu itself, so our old PPA has been removed. Simply run apt install wireguard on all Ubuntus ≥ 16.04

2. Configure
2.0. Keys

WireGuard ships with two command-line tools: wg and wg-quick that allow you to configure and manage the WireGuard. Run the following command to generate the public and private keys:

$ sudo mkdir -p /etc/wireguard/clients $ wg genkey | sudo tee /etc/wireguard/clients/desktop.key | wg pubkey | sudo tee /etc/wireguard/clients/desktop.key.pub 

This places our keys under our /etc/wireguard/clients directory that we just created. As usual, DO NOT share your private key with anyone else, otherwise your VPN will be compromised. You can view these files with cat :

$ cat /etc/wireguard/clients/desktop.key $ cat /etc/wireguard/clients/desktop.key.pub 

2.1. dekstop.conf File

$ sudoedit /etc/wireguard/wg0.conf 
[Interface] PrivateKey = DESKTOP_CLIENT_PRIVATE_KEY Address = 10.0.0.2/24  [Peer] PublicKey = YOUR_SERVER_PUBLIC_KEY Endpoint = YOUR_SERVER_IP_ADDRESS:51820 AllowedIPs = 0.0.0.0/0 

2.2. Add Desktop Client to Server

The last configuration step is to add your dekstip client’s public key and IP address to your server:

$ sudo wg set wg0 peer DESKTOP_CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2 

3. Start WireGuard
3.0. wg up

When everything done above, bring the wg0 interface up using the attributes specified in the configuration file:

Now you should be connected to your Ubuntu VPN server, and the traffic from your client machine should be routed through it. You can check the connection with:

interface: wg0  public key: HFqTSN2SE6LvvEU/xV3eJ0KArQEkTx1mYZpAjRtAjwE=  private key: (hidden)  listening port: 22870  fwmark: 0xca6c  peer: 8Mg3Vgw+QduVhJaLERXQbyrPL1/nUWa27Ly8ZVTGTHs=  endpoint: XXX.XXX.XXX.XXX:51820  allowed ips: 0.0.0.0/0  latest handshake: 1 minute, 18 seconds ago  transfer: 67.58 KiB received, 170.36 KiB sent 

3.1. Start at Boot
4. Test WireGuard

You can now check you IP searching on the browser what is my ip or just use curl to achieve that from your cli :

Источник

Как настроить WireGuard VPN в Ubuntu 20.04

WireGuard — это современная технология VPN (виртуальная частная сеть), в которой используется самая современная криптография. По сравнению с другими популярными решениями VPN, такими как IPsec и OpenVPN , WireGuard быстрее, проще в настройке и занимает меньше места. Он кроссплатформенный и может работать практически где угодно, включая Linux, Windows, Android и macOS.

Читайте также:  Linux настройка apt get

Wireguard — это одноранговая VPN; он не использует модель клиент-сервер. В зависимости от конфигурации одноранговый узел может действовать как традиционный сервер или клиент. Он работает путем создания сетевого интерфейса на каждом одноранговом устройстве, которое действует как туннель. Одноранговые узлы аутентифицируют друг друга, обмениваясь и проверяя открытые ключи, имитируя модель SSH. Открытые ключи сопоставляются со списком IP-адресов, разрешенных в туннеле. Трафик VPN инкапсулируется в UDP.

В этой статье мы обсудим, как настроить WireGuard VPN на Ubuntu 20.04, который будет действовать как VPN-сервер. Мы также покажем вам, как настроить WireGuard в качестве клиента. Клиентский трафик будет маршрутизироваться через сервер Ubuntu 20.04.

Эту настройку можно использовать в качестве защиты от атак «Человек посередине», анонимного просмотра веб-страниц, обхода контента с ограничением по географическому признаку или предоставления вашим коллегам, которые работают из дома, безопасного подключения к сети компании.

Подготовка

Чтобы следовать этому руководству, вам понадобится сервер Ubuntu 20.04 с доступом root или sudo .

Настройка сервера WireGuard

Мы начнем с установки WireGuard на машину Ubuntu и настроим его для работы в качестве сервера. Мы также настроим систему для маршрутизации клиентского трафика через нее.

Установите WireGuard на Ubuntu 20.04

WireGuard доступен из репозиториев Ubuntu по умолчанию. Чтобы установить его, выполните следующие команды:

sudo apt updatesudo apt install wireguard

Это установит модуль и инструменты WireGuard.

Настройка WireGuard

В wg и wg-quick инструмент командной строки позволяют настроить и управлять интерфейсами WireGuard.

Каждое устройство в сети WireGuard VPN должно иметь закрытый и открытый ключ. Выполните следующую команду, чтобы сгенерировать пару ключей:

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Файлы будут созданы в каталоге /etc/wireguard . Вы можете просматривать содержимое файлов с помощью cat или less . Закрытый ключ никогда не должен передаваться кому-либо и всегда должен храниться в безопасности.

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

Следующим шагом является настройка туннельного устройства, которое будет маршрутизировать трафик VPN.

Устройство можно настроить либо из командной строки с помощью команд ip и wg , либо путем создания файла конфигурации с помощью текстового редактора.

Создайте новый файл с именем wg0.conf и добавьте следующее содержимое:

sudo nano /etc/wireguard/wg0.conf
[Interface] Address = 10.0.0.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = SERVER_PRIVATE_KEY PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE 

Интерфейс можно назвать как угодно, однако рекомендуется использовать что-то вроде include wg0 или wgvpn0 . Настройки в разделе интерфейса имеют следующее значение:

  • Адрес — разделенный запятыми список IP-адресов v4 или v6 для интерфейса wg0 . Используйте IP-адреса из диапазона, зарезервированного для частных сетей (10.0.0.0/8, 172.16.0.0/12 или 192.168.0.0/16).
  • ListenPort — порт прослушивания.
  • PrivateKey — закрытый ключ, сгенерированный командой wg genkey . (Чтобы увидеть содержимое файла типа: sudo cat /etc/wireguard/privatekey )
  • SaveConfig — при значении true текущее состояние интерфейса сохраняется в файл конфигурации при завершении работы.
  • PostUp — Команда или сценарий, который выполняется перед запуском интерфейса. В этом примере мы используем iptables для включения маскарадинга. Это позволяет трафику покидать сервер, предоставляя VPN-клиентам доступ в Интернет. Не забудьте заменить ens3 после -A POSTROUTING чтобы оно соответствовало имени вашего общедоступного сетевого интерфейса. Вы можете легко найти интерфейс с помощью:
ip -o -4 route show to default | awk ''

wg0.conf и privatekey не должны быть доступны для чтения обычным пользователям. Используйте chmod чтобы установить разрешения на 600 :

sudo chmod 600 /etc/wireguard/

После этого wg0 интерфейс wg0 , используя атрибуты, указанные в файле конфигурации:

Команда выдаст следующий результат:

[#] ip link add wg0 type wireguard [#] wg setconf wg0 /dev/fd/63 [#] ip -4 address add 10.0.0.1/24 dev wg0 [#] ip link set mtu 1420 up dev wg0 [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE 

Чтобы проверить состояние и конфигурацию интерфейса, введите:

interface: wg0 public key: r3imyh3MCYggaZACmkx+CxlD6uAmICI8pe/PGq8+qCg= private key: (hidden) listening port: 51820 

Вы также можете запустить ip a show wg0 чтобы проверить состояние интерфейса:

4: wg0: mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 10.0.0.1/24 scope global wg0 valid_lft forever preferred_lft forever 

WireGuard также можно управлять с помощью Systemd.

Чтобы запустить интерфейс WireGuard во время загрузки, выполните следующую команду:

Сеть сервера и настройка брандмауэра

Для работы NAT необходимо включить переадресацию IP. Откройте /etc/sysctl.conf и добавьте или раскомментируйте следующую строку:

Сохраните файл и примените изменения:

Если вы используете UFW для управления брандмауэром, вам необходимо открыть UDP-трафик на порт 51820 :

Вот и все. Одноранговый узел Ubuntu, который будет действовать как сервер, настроен.

Настройка клиентов Linux и macOS

Инструкции по установке для всех поддерживаемых платформ доступны по адресу https://wireguard.com/install/ . В системах Linux вы можете установить пакет с помощью диспетчера пакетов распространения, а в macOS — с помощью brew .

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

Процесс настройки клиента Linux и macOS практически такой же, как и для сервера. Сначала сгенерируйте открытый и закрытый ключи:

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Создайте файл wg0.conf и добавьте следующее содержимое:

sudo nano /etc/wireguard/wg0.conf
[Interface] PrivateKey = CLIENT_PRIVATE_KEY Address = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = SERVER_IP_ADDRESS:51820 AllowedIPs = 0.0.0.0/0 

Настройки в разделе интерфейса имеют то же значение, что и при настройке сервера:

  • Адрес — разделенный запятыми список IP-адресов v4 или v6 для интерфейса wg0 .
  • PrivateKey — чтобы увидеть содержимое файла на клиентском компьютере, запустите: sudo cat /etc/wireguard/privatekey

Одноранговый раздел содержит следующие поля:

  • PublicKey — открытый ключ однорангового узла, к которому вы хотите подключиться. (Содержимое файла сервера /etc/wireguard/publickey ).
  • Конечная точка — IP или имя хоста однорангового узла, к которому вы хотите подключиться, за которым следует двоеточие, а затем номер порта, на котором удаленный одноранговый узел прослушивает.
  • AllowedIPs — разделенный запятыми список IP-адресов v4 или v6, с которых разрешен входящий трафик для однорангового узла и на которые направляется исходящий трафик для этого однорангового узла. Мы используем 0.0.0.0/0, потому что мы маршрутизируем трафик и хотим, чтобы одноранговый сервер отправлял пакеты с любым исходным IP.

Если вам нужно настроить дополнительных клиентов, просто повторите те же шаги, используя другой частный IP-адрес.

Настройка клиентов Windows

Загрузите и установите пакет Windows msi с веб-сайта WireGuard .

После установки откройте приложение WireGuard и нажмите «Добавить туннель» -> «Добавить пустой туннель…», как показано на изображении ниже:

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

Введите имя туннеля и отредактируйте конфигурацию следующим образом:

[Interface] PrivateKey = CLIENT_PRIVATE_KEY Address = 10.0.0.2/24 [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = SERVER_IP_ADDRESS:51820 AllowedIPs = 0.0.0.0/0 

В разделе интерфейса добавьте новую строку для определения адреса туннеля клиента.

В одноранговом разделе добавьте следующие поля:

  • PublicKey — открытый ключ сервера Ubuntu (файл /etc/wireguard/publickey ).
  • Конечная точка — IP-адрес сервера Ubuntu с двоеточием и порт WireGuard (51820).
  • Разрешенные IP-адреса — 0.0.0.0/0

После этого нажмите кнопку «Сохранить».

Добавить однорангового клиента к серверу

Последний шаг — добавить на сервер открытый ключ и IP-адрес клиента. Для этого запустите на сервере Ubuntu следующую команду:

sudo wg set wg0 peer CLIENT_PUBLIC_KEY allowed-ips 10.0.0.2

Обязательно измените CLIENT_PUBLIC_KEY на открытый ключ, сгенерированный на клиентском компьютере ( sudo cat /etc/wireguard/publickey ), и настройте IP-адрес клиента, если он отличается. Пользователи Windows могут скопировать открытый ключ из приложения WireGuard.

После этого вернитесь на клиентский компьютер и откройте интерфейс туннелирования.

Клиенты Linux и macOS

Выполните следующую команду, чтобы открыть интерфейс:

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

interface: wg0 public key: gFeK6A16ncnT1FG6fJhOCMPMeY4hZa97cZCNWis7cSo= private key: (hidden) listening port: 53527 fwmark: 0xca6c peer: r3imyh3MCYggaZACmkx+CxlD6uAmICI8pe/PGq8+qCg= endpoint: XXX.XXX.XXX.XXX:51820 allowed ips: 0.0.0.0/0 latest handshake: 53 seconds ago transfer: 3.23 KiB received, 3.50 KiB sent 

Вы также можете открыть свой браузер, ввести «what is my ip», и вы должны увидеть IP-адрес своего сервера Ubuntu.

Чтобы остановить туннелирование, wg0 интерфейс wg0 :

Клиенты Windows

Если вы установили WireGuard в Windows, нажмите кнопку «Активировать». После подключения одноранговых узлов статус туннеля изменится на Активный:

Выводы

Мы показали вам, как установить WireGuard на машину с Ubuntu 20.04 и настроить его как VPN-сервер. Эта настройка позволяет вам просматривать веб-страницы анонимно, сохраняя конфиденциальность ваших данных о трафике.

Если вы столкнулись с какой-либо проблемой, не стесняйтесь оставлять комментарий.

Источник

Оцените статью
Adblock
detector