You are currently viewing Инсталация и конфигурация на WireGuard crypto VPN в MikroTik, Linux, Android, Windows и OpenWRT

Инсталация и конфигурация на WireGuard crypto VPN в MikroTik, Linux, Android, Windows и OpenWRT

Съдържание

Какво е WireGuard ?

История на WireGuard

Сравнение на WireGuard спрямо OpenVPN

WireGuard като другите VPN-ни ли е ?

WireGuard преминава ли през NAT ?

WireGuard разширена топология

Как да конфигурирате WireGuard в MikroTik

Как да конфигурирате WireGuard в Kali Linux

Какво прави ‘AllowedIPs =’ в конфигурациония файл на WireGuard ?

Как да конфигурирате WireGuard в Android

Как да конфигурирам WireGuard в Windows

Как да конфигурираме WireGuard в OpenWRT

Преносим ли е конфигурационния на файл на WireGuard

Какво е WireGuard ?

Една от ключовите характеристики на WireGuard е неговата простота, което прави конфигурирането и управлението много по-лесни в сравнение с други VPN решения. Това включва по-малък брой кодови редове, което облекчава аудита и проверката за сигурност. В допълнение, WireGuard предлага висока производителност и може да работи на различни платформи, включително Windows, macOS, Linux, RouterOS, OpenWRT, iOS и Android.

История на WireGuard

Историята на WireGuard, виртуалната частна мрежа (VPN) технология, започва с нейното създаване от Джейсън Доненфелд. WireGuard е разработен като алтернатива на съществуващите VPN протоколи, като OpenVPN и IPSec, които са считани за сложни и трудни за конфигуриране и поддържане. Целта на WireGuard е да предложи по-проста, по-бърза и по-сигурна опция.

Разработката на WireGuard започва около 2015 година. Отличителна черта на WireGuard е неговата лекота и простота, с значително по-малък брой кодови редове в сравнение с другите VPN протоколи. Това улеснява аудита и подобрява сигурността, тъй като по-малкият код е по-лесен за анализ и отстраняване на грешки.

Протоколът използва съвременни криптографски алгоритми и методи, като например Noise Protocol Framework, Curve25519 за шифроване на ключовете, ChaCha20 за шифроване на данни, Poly1305 за аутентикация на данни и BLAKE2s за хеширане. Тези технологии осигуряват силна сигурност при същевременно запазване на висока производителност.

WireGuard първоначално е разработен за Linux, но постепенно получава поддръжка и за други операционни системи като Windows, macOS, iOS и Android. Включването му в ядрото на Linux през 2020 година е значим момент в историята на WireGuard, тъй като това означава официалното признание на неговата стабилност и сигурност.

WireGuard привлича вниманието и на бизнес сектора и индивидуалните потребители поради своята ефективност, лесен за използване интерфейс и високи стандарти за сигурност. Това го прави предпочитан избор за много организации и индивидуални потребители, търсещи надеждно и ефективно VPN решение.

Сравнение на WireGuard спрямо OpenVPN

WireGuard като другите VPN-ни ли е ?

  1. Не използва GRE протокола: WireGuard не използва GRE (Generic Routing Encapsulation) протокола, който е често използван в други VPN решения. Вместо това, WireGuard използва собствен, по-прост и ефективен механизъм за тунелиране.
  2. Използва UDP, не TCP: WireGuard работи изключително през UDP (User Datagram Protocol), за разлика от някои други VPN протоколи, които поддържат или TCP (Transmission Control Protocol), или и двете. Изборът на UDP помага за по-добра производителност и отговорност, особено при сценарии със значителна загуба на пакети и висока латентност.
  3. Портове: WireGuard може да работи на всякакви UDP портове, като портът може да бъде конфигуриран от потребителя. Това го прави гъвкав и лесен за интегриране в различни мрежови настройки.
  4. Простота и сигурност: Едно от ключовите предимства на WireGuard е неговата простота както в кода, така и в конфигурацията. Той използва съвременни криптографски техники, което го прави много сигурен, като същевременно се стреми към минималистичен и лесен за аудит дизайн.

Общо взето, WireGuard представлява значително улеснение и подобрение в сравнение с традиционните VPN решения, като осигурява високо ниво на сигурност, простота и ефективност.

WireGuard преминава ли през NAT ?

Да, WireGuard може да работи през NAT (Network Address Translation). Това е едно от ключовите предимства на WireGuard, което го прави подходящ за използване в множество домашни и корпоративни мрежови среди, където NAT е често срещан.

WireGuard използва UDP за транспортния си слой, което улеснява преминаването през NAT. Когато WireGuard клиент се свързва със сървър, той изпраща пакети до сървъра, които позволяват на NAT устройството (например домашен рутер) да “научи” къде да препрати входящия трафик за WireGuard сесията. Този процес, известен като NAT traversal, е автоматичен и обикновено не изисква ръчна конфигурация.

Допълнителни настройки като “Keepalive” могат да бъдат използвани за поддържане на активна връзка през NAT. Това е полезно в случаите, когато NAT устройството има тенденцията да “забравя” за неактивни връзки след известно време, което може да прекъсне WireGuard връзката.

WireGuard разширена топология

  1. Интеграция с Маршрутизиращи Протоколи: Може да интегрирате WireGuard с традиционни маршрутизиращи протоколи като BGP (Border Gateway Protocol) или OSPF (Open Shortest Path First). Това позволява на маршрутизаторите да обменят информация за маршрути и да настроят автоматично маршрутите в мрежата ви. Тази интеграция обикновено се извършва на по-високо, по-сложно ниво и може да изисква специализирано оборудване или софтуер.
  2. Използване на Скриптове и Автоматизация: Автоматизираните скриптове могат да се използват за управление на WireGuard конфигурациите в по-големи мрежи. Това включва автоматично добавяне или премахване на клиенти (пиъри), обновяване на маршрути и управление на IP адресите.
  3. Централизирано Управление: Разработване на система за централизирано управление, която да управлява WireGuard инсталациите и маршрутизацията в различните локации. Това може да включва специализиран софтуер или управленски платформи.
  4. VPN Концентратори: Използване на VPN концентратори в централния офис, които управляват WireGuard връзки от различни местоположения. Това улеснява управлението на връзките и маршрутизацията в голяма мрежа.

Важно е да се отбележи, че внедряването на WireGuard в сложна мрежова среда с динамична маршрутизация може да бъде комплексен проект, който изисква планиране, тестове и подходящо разбиране на мрежовите принципи. Тази задача често включва сътрудничество с мрежови специалисти или консултанти, за да се гарантира, че системата е настроена правилно и отговаря на нуждите на организацията.

Как да конфигурирате WireGuard в MikroTik ?

  1. Обновете RouterOS: Уверете се, че вашата MikroTik система е обновена до последната версия.
  2. Създайте WireGuard интерфейс:
    • Отворете WinBox и се свържете с рутера.
    • Отидете на “Interfaces” и изберете “+”, за да добавите нов интерфейс.
    • Изберете WireGuard.
  3. Конфигуриране на WireGuard интерфейс:
    • Въведете име за интерфейса.
    • Генерирайте или задайте ключове за WireGuard. Ще ви е необходим приватен и публичен ключ.
    • Задайте прослушвания порт за WireGuard интерфейса.
  4. Настройте мрежовите параметри:
    • Задайте IP адрес на WireGuard интерфейса. Това може да бъде част от вашата вътрешна мрежа или отделен адресен диапазон.
  5. Добавете Peer конфигурация:
    • Отидете на WireGuard интерфейса и добавете Peer.
    • Задайте публичния ключ на другата страна (пиъра).
    • Задайте Allowed IPs, които определят какви IP адреси могат да бъдат достъпвани чрез този пиър.
    • Ако е необходимо, задайте Endpoint за пиъра (IP адрес и порт).
  6. Настройте маршрутизацията:
    • Ако е необходимо, добавете маршрути, за да насочите трафика към WireGuard интерфейса.
  7. Тествайте конфигурацията:
    • След като сте завършили конфигурацията, тествайте връзката.
    • Проверете дали трафикът се маршрутизира правилно през WireGuard интерфейса.
  8. Защита и сигурност:
    • Уверете се, че сте настроили правилно Firewall правилата, за да защитите WireGuard интерфейса.

Конфигурация в MikroTik

Конфигурация на WireGuard интерфейс на Рутер1 и peer на Рутер2.

Конфигурация на WireGuard интерфейс на Рутер2 и peer на Рутер1.

Проверка на свързаноста между двата рутера през криптирания тунел.

Рутер 1

Plaintext
/interface wireguard
add listen-port=13231 mtu=1420 name=wireguard1 private-key="KKa7ycU/555SsRAYKU9OkYjQyrgF3bEMLth1VCnWn1Q="

/interface wireguard peers
add allowed-address=0.0.0.0/0 interface=wireguard1 persistent-keepalive=30s public-key="KjajtNfF+EK0WU9FpTYDZhr2DpB3RM5x9ss4ZTw7xwg="

/ip address
add address=192.168.100.1/30 interface=wireguard1

Рутер 2

Plaintext
/interface wireguard
add listen-port=13231 mtu=1420 name=wireguard1 private-key="wNmHxOltXcUgRYICGNju6vtjF/40rUa54dvIV0mA+34="

/interface wireguard peers
add allowed-address=0.0.0.0/0 endpoint-address=93.155.130.38 endpoint-port=13231 interface=wireguard1 persistent-keepalive=30s public key="2YIMvTMI8PUTEUwtuyhLnD5F0a6cLeh5C+Zc+ft/VmA="

/ip address
add address=192.168.100.2/30 interface=wireguard1

Маршрути в MikroTik през WireGuard

Plaintext
ip route/add dst-address=8.8.8.8 gateway=192.168.100.1

Нека проверим това:

След като първия хоп ни е 192.168.100.1 имаме криптиран трафик през тунела до 8.8.8.8.

Как да конфигурирате WireGuard в Kali Linux ?

Първо трябва да станем суперпотребител root.

Bash
sudo su

Реално операцията в терминала изглежда така:

След което трябва да инсталираме WireGuard.

Bash
apt install wireguard

Да влезем в конфигурационната директория и да променим правата и.

Bash
cd /etc/wireguard
umask 077

Да генерираме частен и публичен ключ.

Bash
wg genkey | tee privatekey | wg pubkey > publickey

Да създадем конфигурационен файл wg0.conf

Bash
vim /etc/wireguard/wg0.conf
Bash
[Interface]
PrivateKey = gHU0C65Vf+tJZXPlOhHOKnbhz9sE381WlhjRY8ZMokY=
Address = 192.168.111.102/30
DNS = 1.1.1.1

[Peer]
PublicKey = 4rRY9dmTk0bz/XCnEwEPxNbQdv8uUYG2uziJ8e1/+RI=
Endpoint = 87.246.47.91:55555
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 30

Вдигаме WireGuard с командата:

Bash
wg-quick up wg0

И получаваме следния резултат:

Можем да проверим интерфейса с командата wg show

И да проверим преминават ли пакети през криптирания тунел.

Какво прави ‘AllowedIPs =’ в конфигурациония файл на WireGuard ?

Например:

  • Ако искате клиентът да има достъп до цялата мрежа 10.0.0.0/24, задавате AllowedIPs = 10.0.0.0/24.
  • Ако искате клиентът да има достъп само до един специфичен сървър с IP адрес 10.0.0.5, задавате AllowedIPs = 10.0.0.5/32.
  • Ако искате целия трафик до глобалната мрежа Internet да преминава през VPN тунела задавате AllowedIPs = 0.0.0.0/0

Този параметър е особено важен за сигурността и маршрутизацията на трафика във вашата WireGuard VPN мрежа, тъй като контролира къде могат да бъдат изпратени данните през VPN.

Как да конфигурирате WireGuard в Android ?

Стъпки за Инсталиране и Конфигуриране на WireGuard на Android:

  1. Инсталиране на Приложението:
    • Отидете на Google Play Store на вашето Android устройство.
    • Търсете “WireGuard” и инсталирайте официалното приложение.
  2. Генериране или Импортиране на Конфигурационен Файл:
    • Приложението WireGuard позволява да генерирате нови конфигурационни файлове или да импортирате вече съществуващи.
    • Ако имате предоставен конфигурационен файл от вашия VPN доставчик или мрежов администратор, можете директно да го импортирате.
    • За генериране на нова конфигурация, трябва да имате вашия собствен WireGuard сървър или да използвате услуга на трета страна.
  3. Добавяне на Конфигурация в Приложението:
    • Отворете приложението WireGuard и натиснете “+” за да добавите нова конфигурация.
    • Изберете “Create from scratch” (за създаване на нова) или “Import from file or archive” (за импортиране на съществуваща).
  4. Настройка на Параметрите:
    • Ако създавате нова конфигурация, въведете необходимите данни като приватен и публичен ключ, адрес на сървъра, порт и Allowed IPs.
    • За импортираните конфигурации, тези данни вече трябва да са предварително зададени.
  5. Активиране на VPN Връзката:
    • След като добавите конфигурацията, може да активирате VPN връзката чрез приложението.
    • Просто изберете желаната конфигурация и натиснете “Activate”.
  6. Проверка на Връзката:
    • След активиране на VPN, проверете дали връзката работи коректно.
    • Можете да използвате уеб сайтове за проверка на IP адреса, за да видите дали вашият публичен IP адрес е променен според VPN сървъра.

Съвети:

  • Уверете се, че използвате най-новата версия на приложението за оптимална сигурност и стабилност.
  • Винаги следвайте указанията на вашия VPN доставчик или мрежов администратор при конфигуриране на VPN връзката.
  • За допълнителна сигурност, редовно проверявайте и обновявайте вашите VPN конфигурации.

WireGuard предлага проста и сигурна VPN връзка за Android устройства, като същевременно осигурява висока производителност и надеждност.

Как да конфигурирам WireGuard в Windows ?

Стъпки за Инсталиране и Конфигуриране на WireGuard в Windows:

  1. Инсталиране на WireGuard:
    • Посетете официалния уебсайт на WireGuard (wireguard.com) и изтеглете WireGuard за Windows.
    • Стартирайте инсталационния файл и следвайте инструкциите за инсталация.
  2. Генериране или Импортиране на Конфигурация:
    • Вече инсталираният WireGuard клиент ще ви позволи да генерирате нови конфигурации или да импортирате съществуващи.
    • Ако имате конфигурационен файл от VPN доставчик или мрежов администратор, можете да го импортирате директно.
  3. Добавяне на Конфигурация:
    • Стартирайте WireGuard клиента.
    • Натиснете бутона “Add Tunnel” и изберете “Import tunnel(s) from file” за да импортирате конфигурационен файл.
    • Ако искате да създадете нова конфигурация, изберете “Add empty tunnel” и въведете необходимите данни, включително приватен ключ, публичен ключ на сървъра, адрес на сървъра, порт и Allowed IPs.
  4. Активиране на VPN Връзката:
    • След като добавите конфигурацията, кликнете върху нея в WireGuard клиента.
    • Натиснете бутона “Activate” за да стартирате VPN връзката.
  5. Проверка на Връзката:
    • След активиране на VPN, проверете дали връзката работи правилно.
    • Можете да използвате уебсайтове за проверка на IP адреса, за да се уверите, че вашият публичен IP адрес съответства на този на VPN сървъра.

Съвети и Препоръки:

  • Уверете се, че използвате актуална версия на WireGuard за най-добра сигурност и производителност.
  • Следвайте инструкциите на вашия VPN доставчик или мрежов администратор за специфичните детайли относно конфигурацията.
  • За по-добра сигурност, редовно обновявайте конфигурациите на вашия VPN.
  • При проблеми, проверете фаеруола и антивирусната програма на вашия компютър, тъй като те могат да блокират VPN връзката.

WireGuard предлага лесен за използване и сигурен начин за създаване на VPN връзки на Windows, като едновременно осигурява висока производителност и надеждност.

Как да конфигурираме WireGuard в OpenWRT

Преносим ли е конфигурационния на файл на WireGuard

Конфигурационният файл обикновено съдържа следните елементи:

  • PrivateKey: Вашият личен ключ за WireGuard.
  • Address: IP адреса, зададен на VPN интерфейса.
  • DNS: DNS сървъри, които да се използват, докато VPN е активен.
  • [Peer]: Секция, определяща информация за VPN сървъра (пиъра).
    • PublicKey: Публичният ключ на сървъра.
    • AllowedIPs: IP диапазоните, които ще се маршрутизират през VPN.
    • Endpoint: Адресът и портът на сървъра.
    • PersistentKeepalive: Настройка за поддържане на връзката.
Plaintext
[Interface]
PrivateKey = 'частен ключ'
Address = 'вътрешен IP адрес в тунела'
DNS = 'DNS сървър'

[Peer]
PublicKey = 'публичен ключ'
Endpoint = 'IP адрес':'порт'
AllowedIPs = 'разрешени адреси'
PersistentKeepalive = 'мониторинг в секунди'

Този конфигурационен файл обикновено е в прост текстов формат и може да бъде прехвърлян между различните системи. Основното, което трябва да имате предвид при прехвърлянето, е сигурността на вашите ключове. Частният ключ трябва да се съхранява в тайна и да не се предава небрежно между системи.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This Post Has 13 Comments

  1. SysTech

    Блестяща статия, като по учебник, с реални примери и красиви скрийншоти. БЛАГОДАРЯ ВИ !!!

  2. Djagala

    С тия ключове и сертификати все ви джаса параноята, всеки вече си измисля негови си ВиПиЕни кой от кого по завъртян … то интернет не остана ве братче, всичко е VPN

  3. Unicat

    Много добре е обяснено всичко, само малко са ми дребни снимките на Микротика но е супер всичко.

  4. Румен Йорданов

    Много професионално написана статия, вече почти няма такива, обикновенно са 50-60 реда на лош Индо-Английски с прикачено клипче на мякащ индиец. Ползвам WireGuard мисля вече втора година – инсталиран от администратор в нашата фирма, чудех се какво е това WireGuard и защо ни мъчат с него, какво му беше на OpenVPN. Сега с удоволствие допълних знанията си. При така сбитата и подредена техническа информация вече съм наясно, че нашите “админи” си знаят работата а си мислех, че си клатят краката по цял ден и не знаят на кой свят се намират (те били професионалисти) 🙂

  5. vesuvius

    Аз като придобил вече малко опит да кажа няколко неща основно за мобилните устройства (лаптопи, телефони, таблети). За разлика от всички други VPN платформи, WireGuard не изтощава толкова бързо живота на батерията, освен това има по-добър роуминг заради UDP протокола, както и по-бързо установяване на връзка.

  6. DEVOPS

    Изглежда че нещата вървят доста добре в рамките на проекта WireGuard, защо разработчиците поеха ангажимента да прехвърлят част от кода в ядрото на Linux а не като отделен API е загадка за мен. Явно е, че му чертаят бъдеще. Простотата е силен аргумент но да не мога да си избера метода на криптиране не ме кефи.

  7. Unicat

    Ако добре съм разбрал схемата в Микротик е генерирания публичен ключ на рутер1 се поставя в рутер2 на таба peer и обратното генерирания публичен ключ от Рутер2 се поставя в Рутер1 в таба peer 😛

  8. ViperXXX

    Ха, много добро хау-ту 🙂 Съдържанието е много професионално, събирам смелост за миграция. Може ли някой да гарантира “перформънса” пред OpenVPN, в моя сценарии има случаи на прехвърляне на големи файлове и е мъка голяма. Уж, екселкси – мекселски таблици и все и е бавно, като погледна цели директории с какво ли не копират от офисите.

  9. SysTech

    Аз гарантирам за 20Mbits OpenVPN срещу над 100Mbits за WireGuard което е може пи пет пъти по висока скорост но не мисля, че това е големия плюс. Много по лесен е за конфигурация и при мен поне по бързо се свързва и преминава през всякакви NAT-ве и тесни места в Интернет !!!

  10. Operator

    ПОНЕЖЕ ПОСТОННО МЕ ПИТАТ:

    Срокът на валидност на ключовете на WireGuard зависи от начина, по който са конфигурирани. В WireGuard, обикновено ключовете се генерират статично и не изтичат автоматично след определен период от време, за разлика от някои други VPN технологии, които използват временни или сесийни ключове.

    Ако сте настроили WireGuard самостоятелно или чрез VPN доставчик, който използва WireGuard, трябва да проверите конкретната конфигурация или политиката на доставчика за управление на ключовете. Някои организации или индивиди могат да изберат да ротират ключовете си редовно за подобряване на сигурността, но това не е част от стандартната функционалност на WireGuard.

  11. INN

    А имаш ли обяснение защо при набит частен ключ:
    “1234567890123456789012345678901234567890123=” всъщност се записва:
    “0G34567890123456789012345678901234567890120=”
    😉

  12. SysTech

    @INN , предполагам си с прозоречната операционна система 🙂

  13. Велин

    Добре са описани нещата като за начало, въпреки това то си не стига само с това обяснение, трябва изначало да си наясно с VPN-те, аз само на Android телефони ползвам WireGuard и за едно съм много доволен, пренасянето на друг телефон, супер лесно е – само едно .zip-че 🙂