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. Možnost přístupu k danému serveru lze zjistit příkazempings adresou serveru, např.ping 8.8.8.8. Jestliže jsme schopni IP NTP serveru pingnout, vše je v pořádku. -
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
set_mullvad_split_tunnel.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-vpn
Odstranění Mullvad repozitáře
sudo rm /etc/apt/sources.list.d/mullvad.list