- Vrealmatic
- Ubuntu Server
- Mullvad VPN
Mullvad VPN na Ubuntu Server
VPN je placená služba. Jestliže je pro váš případ žádoucí, níže je v 10 krocích postup instalace a aktivace Mullvad VPN na Ubuntu serveru. Vyjma instalace přímo na serveru, VPN může být nakonfigurována i na úrovni routeru.

Instalace a nastavení Mullvad VPN v 10 krocích
- Přejděte do výchozí složky uživatelského účtu
cd ~a stáhněte poslední instalační soubor Mullvad VPNwget --content-disposition https://mullvad.net/download/app/deb/latest - Příkazem
lssi zobrazte soubory ve složce, najděte stažený MullvadVPN-XXXX.X_amd64.deb soubor a příkazemsudo apt install -y ./MullvadVPN-XXXX.X_amd64.debjej nainstalujte. - Příkazem
mullvad versionsi ověřte, že Mullvad VPN máte nainstalováno - Příkazem
mullvad account login <číslo účtu>se přihlaste ke svému účtu, jehož číslo získáte po přihlášení / při registraci. Konečný příkaz může vypadat následujícím způsobem:mullvad account login 1234123412341234. - Na stránce Mullvad Servers si můžete projít lokace (VPN servery), ke kterým je možné se připojit. Totožný seznam dostanete i příkazem
mullvad relay list. - Připojení k vybranému serveru definujete příkazem
mullvad relay set location se mma, kdy "se" nahraďte zemí a "mma" městem. Dále je ještě možné na konec přiřadit celý název serveru z Mullvad seznamumullvad relay list. V případě České Republiky a Prahy příkaz vypadá následovně:mullvad relay set location cz prg, jestliže výběr seznamu necháváme automaticky na klinetu, respektive se můžeme připojit i ke konkrétnímu serveru, vizmullvad relay set location cz prg cz-prg-wg-201. - Příkazem
mullvad lan set allowmůžete povolit LAN přístup - tedy, i když je server skryt za VPN, stále se k němu lze připojit z lokální sítě. - Samotné připojení k VPN se provede příkazem
mullvad connect, případné odpojení příkazemmullvad disconnect - Automatické připojování k VPN se nastaví příkazem
mullvad auto-connect set on. - Stav připojení lze zjistit příkazem
mullvad status, log připojení příkazemjournalctl -fu mullvad-daemon.
Upgrade Mullvad VPN klienta se provede zopakováním kroku 1 a 2. Veškeré Mullvad Cli příkazy najdete na stránce How to use Mullvad Cli.
Mullvad běží jako systémový servis. Jako takový, je možné jej ovládat systémovými příkazy:
sudo systemctl status mullvad-daemon- zobrazit stav službysudo systemctl stop mullvad-daemon- vypnout službusudo systemctl start mullvad-daemon- zapnout službusudo systemctl enable mullvad-daemon- povolit automatické spouštění služby při načtení OSsudo systemctl disable mullvad-daemon- zakázat automatické spouštění služby při načtení OS
Mullvad účet se spravuje prostřednictvím příkazové nabídky mullvad account, pro informace kolem přihlášeného mullvad účtu (název zařízení a mullvad id) použijte příkaz mullvad account get.
Poznámka: Aktivní VPN může komplikovat připojování se na server. Pro připojování se z lokální sítě, ujistěte se, že máte na mullvad klientu povolen LAN přístup (mullvad lan set allow). Pro vzdálené připojení řešte VPN síť, ať už mezi klientem a serverem, nebo klientem a routerem, za nímž je server umístěn.
Více postupů a tipů pro Ubuntu Server naleznete v publikaci Instalace, zabezpečení a správa Ubuntu Serveru.
VPN Split Tunnel
Split Tunnel umožňuje směrovat část provozu aplikací nebo zařízení přes šifrovanou VPN, zatímco jiným aplikacím nebo zařízením nechat přímý přístup k internetu. To je zvláště užitečné při využívání služeb, které s použítím VPN nefungují tak, jak by bylo očekáváno.
VPN Split Tunel pro NTP service systemd-timesyncd
systemd-timesyncd daemon je zodpovědný za synchronizaci času serveru s přesným světovým časem dle nastavené časové zóny. Správná funkce tohoto daemona je zásadní při všech službách pracujících s časem. Tou je například i 2-faktorové ověřování (2FA) pro možnost se k serveru vůbec přihlásit.
Zjištění stavu
timedatectltimedatectl status- zjištění stavu systemd-timesyncd daemonuVýstupem je informace o různých časech. Zásadními řádky jsou
NTP servicese stavemactive(lze aktivovat příkazemtimedatectl set-ntp true) a poté řádekSystem clock synchronizeds hodnotouyes. Ovšem, stavyesmůže být v případě používání VPN lichý - a to stav z doby před aktivací VPN. Problém je, že VPN může blokovat přístuk k NTP serverům a tím zamezit synchronizaci času.Zjištění stavu
systemd-timesyncdslužbyStav služby zjistíme dotazem
systemctl status systemd-timesyncd. Zde nás zajímá stav klíčeStatus. Stav "Initial synchronization to time server ..." je běžný, jedná se o funkční stav. Současně stav zahrnuje IP adresu NTP serveru, který je službou k synchronizaci času využíván. Problematický je stavIdle.Test přístupu k IP NTP serveru
IP NTP serveru lze zjistit rovněž pod příkazem
timedatectl timesync-status, který ukazuje detailní časové hodnoty vztahující se k přesnosti času na serveru. IP NTP serveru, který je službou využíván, je pod hodnotu klíčeServer. Základní dostupnost serveru lze ověřit příkazempings adresou NTP serveru, např.ping ntp.ubuntu.com. Ping však testuje jen ICMP – samotné NTP běží na UDP portu 123, který může být blokovaný i při úspěšném pingu. Spolehlivým ukazatelem je proto hodnotaSystem clock synchronized: yesve výstuputimedatectl status.Nastavení Spilt Tunelu VPN, pokud není možné NTP server pingnout
- Split tunel je potřeba v případě NTP serveru řešit, jestliže:
timedatectl statusukazuje "System clock synchronized: no"systemctl status systemd-timesyncdukazuje stav "Status: Idle."- není možné NTP server pingnout
Split Tunel lze aktivovat pro jakoukoli službu na serveru, a to na základě jejího
pid. PID zjistíme příkazemsystemctl status systemd-timesyncd, kdypidčíslo je pod klíčemMain PID. pidslužby lze vložit do mullvad VPN klienta příkazem:Ver 2023.6 +mullvad split-tunnel add <pid>Older vermullvad split-tunnel pid add <pid>Od této chvíle by služba měla být prostřednictvím Split Tunnelu z VPN vyloučena. Opětovně zkontrolujte stav služby
systemctl status systemd-timesyncd. Samotný ping bude i nadále neúspěšný, jelikož ten vykonáváte z vašeho účtu a ne účtu vyjmuté služby.Další užitečné příkazy:
Ver 2023.6 +mullvad split-tunnel list- Zobraz všechny vyjmuté služby z VPNmullvad split-tunnel delete <pid>- Obnov dříve vyloučený proces z VPNmullvad split-tunnel clear- obnovit všechny dříve vyloučené procesy
Older vermullvad split-tunnel pid list- Zobraz všechny vyjmuté služby z VPNmullvad split-tunnel pid delete <pid>- Obnov dříve vyloučený proces z VPNmullvad split-tunnel pid clear- obnovit všechny dříve vyloučené procesy
- Split tunel je potřeba v případě NTP serveru řešit, jestliže:
- Další příkazy
Automatická kontrola synchroniazce času a nastavení Split Tunnelu pro Mullvad VPN v případě, kdy čas není synchronizovaný
Níže je postup vytvoření mechanismu, kdy po spuštění systému a následně v pravidelných intervalech probíhá kontrola stavu synchronizace systémového času. Není-li čas synchronizován, nastaví se splitting VPN tunelu pro službu spravující čas serveru.
Postup níže zjistí zjištění PID služby systemd-timesyncd a následně tuto službu vyjme z provozu jdoucího skrze VPN.
- Vytvořte soubor
mullvad_split_tunnel_setup.sh
Zkopírujte do souboru kód nížesudo nano /usr/local/bin/mullvad_split_tunnel_setup.sh
Nastavte souboru oprávnění ke spouštění#!/bin/bash # check sync status of timedatectl sync_status=$(timedatectl status | grep -oP 'System clock synchronized: \K\w+') if [[ $sync_status == "no" ]]; then # system time is not synchronized - set split tunnel for systemd-timesyncd service # Get PID of systemd-timesyncd SERVICE_PID=$(pgrep -f systemd-timesyncd) if [[ ! -z "$SERVICE_PID" ]]; then # Add PID to Mullvad split tunnel configuration mullvad split-tunnel add $SERVICE_PID echo "New VPN Split tunnel was set for PID $SERVICE_PID" else echo "Failed to get PID of systemd-timesyncd." fi else echo "System time is synchronized, no need of setting VPN split tunnel" fisudo chmod +x /usr/local/bin/mullvad_split_tunnel_setup.sh - Vytvořte systemd soubor služby
servertime_sync_check.service, prostřednictvím které se bude spouštět scriptmullvad_split_tunnel_setup.sh
Zkopírujte do souboru kód nížesudo nano /etc/systemd/system/servertime_sync_check.service[Unit] Description=Check time synchronization and setup Mullvad VPN split tunneling if needed [Service] Type=oneshot ExecStart=/usr/local/bin/mullvad_split_tunnel_setup.sh [Install] WantedBy=multi-user.target - Vytvořte časovač služby
servertime_sync_check
Zkopírujte do souboru kód nížesudo nano /etc/systemd/system/servertime_sync_check.timer[Unit] Description=Timer to regularly check time synchronization [Timer] # Run it in 30 minutes interval OnCalendar=*:0/30 Persistent=true [Install] WantedBy=timers.target - Načtěte provedené změny do systému
sudo systemctl daemon-reload - Povolte automatické spuštění služeb při startu počítače
sudo systemctl enable servertime_sync_check.service sudo systemctl enable servertime_sync_check.timer - Spusťte
servertime_sync_check.timerservicesudo systemctl start servertime_sync_check.timerservertime_sync_check.servicepotřeba spouštět není. Je spouštěn prostřednictvímservertime_sync_check.timer. Jelikož se používá direktivaPersistent=true, jestliže některá z kontrol byla vynechána (napříkald počítač byl v dané době vypnutý), kontrola se vykoná současně i co nejdříve po spuštění počítače. - Kontrolujte logy služby
journalctl -u servertime_sync_check.service
Odstranění Mullvad VPN z Ubuntu
sudo apt purge mullvad-vpnOdstranění Mullvad repozitáře
sudo rm /etc/apt/sources.list.d/mullvad.listPotřebujete bezpečně nastavit server?
Navrhneme, zabezpečíme a zdokumentujeme sítě i servery.