Перейти к содержимому

Подробное руководство по настройке и использованию Wireguard в RouteOS

    Установку RouteOS (CHR) на виртуальный сервер мы рассматривали ранее, поэтому в данной статье мы разберем настройку Wireguard на RouteOS.

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

    Видео инструкция

    Создание Wireguard интерфейса

    Подключаемся к RouteOS с помощью winbox, в боковом меню нажимаем на пункт меню Wireguard и в окне которое откроется нажимаем на знак +

    В открывшемся окне указываем имя интерфейса и если нужно меняем порт. После нажатия на OK у нас будет создан интерфейс с именем wireguard и портом подключения 13231, а также будет сгенерирован Privat и Public Key.

    Для просмотра Privat и Public Key необходимо еще раз открыть созданный интерфейс два раза кликнув на название.

    Для создания wireguard интерфейса в терминале, необходимо выполнить команду

    /interface/wireguard
    add listen-port=13231 name=wireguard

    Чтобы узнать Privat и Public Key выполняем следующую команду

    /interface/wireguard print 

    Для настройки соединения на стороне клиента мы будем использовать Privat Key

    Создание Peer (пользователя)

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

    Открываем окно Wireguard и переходим во вкладку Peer.

    В Allowed Address вводим подсеть с которой разрешено подключение либо отдельный IP адрес с которого будет разрешено подключение, а в Publik Key вводим публичный ключ который мы сгенерируем с вами на стороне подключаемого устройства (компьютера, телефона, либо сервера)

    После создания вы сможете просмотреть, изменить либо скопировать созданный Peer в одноименной вкладке.

    Для добавления нового Peer через терминал выполняем следующую команду

    /interface wireguard peers
    add allowed-address=10.0.10.100/32 interface=wireguard public-key="ваш публичный ключ клиента"

    Последним этапом настройки, добавим диапазон IP адресов для WireGuard интерфейса. В боковом меню выбираем IP и переходим в Addresses.

    Нажимаем на + добавляем диапазон адресов который мы указывали в Allowed Address при создании нового Peer. Не забываем в Interface указать название вашего WireGuard интерфейса.

    Для добавление диапазона адресов через терминал выполняем следующую команду

    /ip address
    add address=10.0.10.1/24 interface=wireguard network=10.0.10.0

    На этом настройка на стороне RouteOS завершена и мы можем приступить к настройке клиента.

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

    Все доступные клиенты вы найдете на официальном сайте WireGuard в разделе Installation

    Клиент WireGuard для Windows

    Скачиваем клиент и устанавливаем его.

    Открываем окно и нажимаем на «Добавить туннель» и выбираем «Добавить пустой туннель»

    Нам необходимо внести следующие данные:

    [Interface] — блок отвечающий за настройки клиента

    PrivateKey — генерируется автоматически при создании туннеля
    Address — IP адрес нашего клиента , присваиваем IP адрес который мы указали в Allowed Address при создании Peer на стороне routeOS
    DNS — DNS сервера

    [Peer] — блок указывающий на то к какому серверу необходимо подключаться.

    PublicKey — публичный ключ сервера к которому мы будем подключаться
    AllowedIPs — диапазон IP адресов к которым будет доступ с данного подключения
    Endpoint— IP адрес и порт подключения к серверу WireGuard
    PersistentKeepalive — время в секундах в течении которого будут посылаться пакеты к серверу для проверки актуальности подключения

    Ниже оставляю шаблон для добавления туннеля

    [Interface]
    PrivateKey = CLYP*****************HXM=
    Address = 10.0.10.100/32
    DNS = 1.1.1.1
    
    [Peer]
    PublicKey = 5cRPq/***************C6xzEjn9hRyk3Y=
    AllowedIPs = 0.0.0.0/0, 128.0.0.0/0
    Endpoint = server_ip:server_port
    PersistentKeepalive = 10
    

    Настройка клиент WireGuard для Linux Ubuntu/Debian

    На данный момент в Linux нет графического интерфейса для управления туннелями, все настройки необходимо вносить в файлы конфигурации.

    Первым делом установим Wireguard

    sudo apt update
    sudo apt install wireguard

    Перейдем в директорию WireGuard и cгенерируем Privat и Public Key

    cd /etc/wireguard
    umask 077
    sudo wg genkey > private-key
    sudo wg pubkey > public-key < private-key

    Создадим файл туннеля и назовем его wg0.cfg именно в него мы будем вносить данный для подключения.

    sudo nano /etc/wireguard/wg0.conf

    В данный файл вносим точно такую же информацию которую мы вносили при создании туннеля в Windows

    [Interface]
    PrivateKey = CLYP*****************HXM=
    Address = 10.0.10.100/24
    DNS = 1.1.1.1
    
    [Peer]
    PublicKey = 5cRPq/***************C6xzEjn9hRyk3Y=
    AllowedIPs = 0.0.0.0/0, 128.0.0.0/0
    Endpoint = server_ip:server_port
    PersistentKeepalive = 10

    [Interface] — блок отвечающий за настройки клиента

    PrivateKey — сгенерированный нами ключ который находится в файле public-key в папке /etc/wireguard
    Address — IP адрес нашего клиента , присваиваем IP адрес который мы указали в Allowed Address при создании Peer на стороне routeOS
    DNS — DNS сервера

    [Peer] — блок указывающий на то к какому серверу необходимо подключаться.

    PublicKey — публичный ключ сервера к которому мы будем подключаться
    AllowedIPs — диапазон IP адресов к которым будет доступ с данного подключения
    Endpoint— IP адрес и порт подключения к серверу WireGuard
    PersistentKeepalive — время в секундах в течении которого будут посылаться пакеты к серверу для проверки актуальности подключения

    Настройка клиент WireGuard для macOS

    Устанавливаем клиент WireGuard из AppStore .

    Запускаем клиент и нажимаем на знак + который находится в левом нижнем углу, выбираем добавить пустой туннель Add Empty Tunnel

    В окне вводим конфигурацию для подключения.

    [Interface] — блок отвечающий за настройки клиента

    PrivateKey — генерируется автоматически при создании туннеля
    Address — IP адрес нашего клиента , присваиваем IP адрес который мы указали в Allowed Address при создании Peer на стороне routeOS
    DNS — DNS сервера

    [Peer] — блок указывающий на то к какому серверу необходимо подключаться.

    PublicKey — публичный ключ сервера к которому мы будем подключаться
    AllowedIPs — диапазон IP адресов к которым будет доступ с данного подключения
    Endpoint— IP адрес и порт подключения к серверу WireGuard
    PersistentKeepalive — время в секундах в течении которого будут посылаться пакеты к серверу для проверки актуальности подключения

    Ниже оставляю шаблон для добавления туннеля

    [Interface]
    PrivateKey = CLYP*****************HXM=
    Address = 10.0.10.100/32
    DNS = 1.1.1.1
    
    [Peer]
    PublicKey = 5cRPq/***************C6xzEjn9hRyk3Y=
    AllowedIPs = 0.0.0.0/0, 128.0.0.0/0
    Endpoint = server_ip:server_port
    PersistentKeepalive = 10
    

    Нажимаем сохранить и для подключения к серверу нажимаем на Activate.

    Настройка клиент WireGuard для Android

    Переходив в Google Play Market и устанавливаем приложение WireGuard.

    Нажимаем на + в левом нижнем углу , и выбираем создания пустого туннеля

    В блоке Интерфейс генерируем новый приватный ключ либо используем публичный ключ который у вас уже имеется, в поле Адреса указываем IP адрес который будет присвоен данному подключению, в нашем случаи это 10.0.10.100/32, задаем DNS сервер, в примере это 1.1.1.1.

    В блоке Пир вставляем публичный ключ сервера wireguard , его мы получили во время настройки WireGuard в routerOS, указываем IP сервера, порт и разрешенные IP адреса для данного подключения.

    Сохраняем туннель и производим подключение.

    Настройка клиент WireGuard для iOS

    Устанавливаем клиент WireGuard из AppStore.

    Запускаем приложение и добавляем новый туннель, нажимаем на Добавить туннель — Создать с нуля.

    В блоке Интерфейс генерируем новый приватный ключ либо используем публичный ключ который у вас уже имеется, в поле Адреса указываем IP адрес который будет присвоен данному подключению, в нашем случаи это 10.0.10.100/32, задаем DNS сервер, в примере это 1.1.1.1.

    В блоке Пир вставляем публичный ключ сервера wireguard , его мы получили во время настройки WireGuard в routerOS, указываем IP сервера, порт и разрешенные IP адреса для данного подключения.

    Сохраняем туннель и производим подключение.