WireGuard & UBUNTU
Network Manager (GNOME) not working (not save configure) with WireGuard client

    Menadżer Sieci jest standardowym  narzędziem w Linux-e. Wspiera w bardzo dużym stopniu kreatory ustawień sieciowych w popualrnych środowiskach okienkowych, a także w serwerach z poziomiu terminalu.  Projekt składa się z trzech pakietów:

  • nmcli - narzędzie pracujące w linii komend, które konfiguruje, kontroluje, monitoruje, raportuje i wyświetla ustawienia sieci
  • nmtui - nakładka graficzna na nmcli działająca w środowisku terminala
  • nmcli-examples - terminalowe narzędzie kontrolujące i raportujące sieć

    WireGuard jest od niedawna oprogramowaniem zapewniającym szyfrowane połaczenia w komunikacji interntowej. Jest to jego duża zaleta, ale i wada jak się okazuje. Zaleta bo twórcy tego systemu zwrócili szczególną uwagę na bezpieczeństwo, np. wykrycia portów, czy wydajności i samej łatwości tworzenia VPN-ów, np. wykorzystując kody kreskowe. Wadą bo choć Network Manager deklaruje wbudowane wsparcie dla WireGuard-a to okazuje się, że z poziomu GUI nie jest już tak różowo. Z poziomu okienek nie ma możliwości zapisania nowego łącza VPN. Rozwiązanie na tą chwilę nie jest trudne, ale zaprzecza  logice istnienia kreatora okienkowego, gdyż musimy stworzyć plik konfiuracyjne łącza szyfrowango WireGuarda, np. wg_bit_0.conf . Generujemy go będąc w terminalu w następujący sposób:

  • cd /etc/wireguard
  • touch wg_bit_0.conf
  • nano wg_bit_0.conf
  • kopiujemy do otwartego pliku wg_bit_0.conf zawartość config kanału VPN WireGuarda, który wygląda przykładowo:                                                                                                  

    [Interface]

    ListenPort = 51820

    PrivateKey = EHvJGaaBBOeCIHakqQZtEvse8Hy8rolbk4EBblTJBGI=

    Address = 172.30.31.202/30

    [Peer]

    PublicKey = k7xYEOt4pyFnnjb251XJilcK1JtMGcxDLpH09zFNgzo=

    AllowedIPs = ::/0

  • By stworzyć peer w menu WireGuard wybieramy zakładkę Peers i musimy uzupełnić pola (zakładam, że wcześniej odwiedziiśmy mój artykół Wireguard & MikroTik ): 
    • Name (dowolna nazwa przyjazna dla nas)
    • Interface (wybieramy z stworzonych wcześniej połaczeń)
    • Private Key (wybieramy auto)
    • Allowed Address (dozwolone zewnetrzne addressy IP z którego będzie mógł sie podłączuć klient)
    • Client Address (adres wewnetrzny IP klienta)
    • Client Endpoint (adres zewnetrzny IP pod którym jest udostępniony serwer WireGuard)

Mając uuełniony go dodajemy go do okna kanałów VPN-ów nastepującą komendą (proszę nie zapomnieć o cudzysłowach):

  • nmcli connection import type wireguard file "/etc/wireguard/wg_bit_0.conf"

Spowoduje to, że w menu Network Managera ujrzymy opcję wg0.conf, którym już od tej pory będziemy mogli standardowo aktywować lub deaktywoać połączenie szyfrowane. Jeśli chcielibyśmy zmienić nazwę intefejsu wg_bit_0 w menu na bardziej przyjazną dla nas to wyknujemy następujący rozkaz:

  • nmcli connection modify wg_bit_0 connection.id "homelab-vpn"


Zmiany możemy skontrolować z poziomu linik komend:

  • nmcli connection show homelab-vpn

Usunięcie połączenia z poziomu linii komend:

  • nmcli connection delete homelab-vpn

By ironii stało się zadość napiszę jeszcze dwie linijki zaczerpnięte z WireGuard-a:

  • wg-quick up wg_bit_0
  • wg-quick down wg_bit_0

Na deser pokaże rozwiązanie jeszcze jednego praktycznego problemu związanego z automatycznym podnoszeniem połączeń sieciowych (VPN) po ponownym uruchomieniu systemu operacyjnego. Sprowadza się do namierzenia w katalogu domowym Network Managera, np. /etc/netplan pliku konfiguracyjnego z rozszerzeniem yaml, który zawiera wszystkie dane połączenia wg_bit_0. By mieć dostęp do tych inforamcji należy oczywiście mieć uprawnienia root-a. Gdy go ptworzymy (patrz zrzut ekranu poniżej) odszukujemy segment ustawień nazwany passthrough i dodajemy w nowym wierszu opcję connction.autoconnect z wartością false:

            connection.autoconnect: "false"


Opracowane na podstawie:


PROMETHEUS (prometheus.yml)
Monitoring infrastrukury IT - minimalna konfiguracja