Przejdź do treści
Własny serwer VPN zarządzany z przeglądarki
Pobierz

1. Instalacja

Czego potrzebujesz

  • Serwera (wirtualnego lub fizycznego) ze świeżą instalacją Debiana 13 lub Ubuntu 24.04, 64-bit. Najlepiej świeży serwer: instalator konfiguruje własny serwer WWW i zaporę.
  • Dostępu root (sudo) i trochę wolnego miejsca na dysku (kontrola kreatora wymaga co najmniej 500 MB). Aplikacja jest lekka; wystarczy mały serwer wirtualny. Świeży Debian nie ma jeszcze curl (sudo apt install -y curl), który jest potrzebny do pobrania wydania.
  • Sposobu, by ludzie mogli się z serwerem połączyć: publicznego adresu IP lub nazwy DNS, z przepuszczonymi UDP 1194 (VPN) i TCP 8443 (interfejs WWW) przez każdy router lub zaporę w chmurze przed serwerem. SSH zostaje otwarty.

Instalowanie

Wszystko poniżej uruchamiasz na serwerze. Strona pobierania pokazuje te same polecenia z wpisaną aktualną wersją; zamień tu X.Y.Z na tę wersję.

1. Pobierz wydanie do nowego katalogu. Pętla ściąga archiwum, listę sum kontrolnych z podpisem, instalator, deinstalator i publiczny klucz podpisu:

mkdir tunnelry && cd tunnelry
BASE=https://updates.tunnelry.com/releases/X.Y.Z
for f in tunnelry-X.Y.Z.tar.gz SHA256SUMS SHA256SUMS.sig install.sh uninstall.sh release-key.pub.pem; do
  curl -fsSL -O "$BASE/$f"
done

Jeśli serwer nie ma dostępu do internetu, pobierz te same pliki na innym komputerze i skopiuj je do jednego katalogu na serwerze (na przykład przez scp).

2. Sprawdź klucz. Porównaj ten odcisk z odciskiem na stronie pobierania, żeby mieć pewność, że klucz należy do projektu:

openssl pkey -pubin -in release-key.pub.pem -outform DER | sha256sum

3. Uruchom instalator jako root, z tego katalogu:

sudo bash install.sh --archive tunnelry-X.Y.Z.tar.gz

Instalator sprawdza podpis wydania, zanim cokolwiek rozpakuje, instaluje potrzebne pakiety (nginx, PHP, OpenVPN, easy-rsa, nftables, unbound, sqlite3), tworzy nieuprzywilejowanego użytkownika tunnelry dla aplikacji WWW, zapisuje pliki systemowe i uruchamia interfejs WWW. Trwa to kilka minut i kończy się takim wydrukiem:

Tunnelry <wersja> is installed.

  Open:         https://203.0.113.10:8443
  Certificate:  self-signed; SHA-256 fingerprint 54:6B:02:...
  Setup token:  dZIFQnsv1MLAHFjgJvV1lBvYU8cjqUIJ

Zapisz token konfiguracji. Jest pokazywany raz i pozwala utworzyć pierwszego administratora. Jeśli go zgubisz, uruchom instalator ponownie z --new-token.

Interfejs WWW startuje z certyfikatem samopodpisanym, więc przeglądarka ostrzeże Cię za pierwszym razem. Zanim go zaakceptujesz, porównaj odcisk SHA-256 w szczegółach certyfikatu w przeglądarce z tym, który wypisał instalator.

Opcje

OpcjaZnaczenie
--public-key PLIKweryfikuje podpis tym kluczem publicznym Ed25519 (użyj klucza opublikowanego z wydaniem)
--gui-port PORTport interfejsu WWW (domyślnie 8443)
--address HOSTadres pokazywany w URL i certyfikacie (domyślnie główny adres IPv4 serwera); użyj nazwy DNS, jeśli ludzie będą łączyć się po nazwie
--update-url URLskąd strona Aktualizacje pobiera informacje o nowych wersjach (tylko https)
--new-tokenwydaje nowy jednorazowy token konfiguracji
--forcekontynuuje, mimo że kontrole znalazły coś nietypowego (inne strony WWW na maszynie, inna dystrybucja)

Ponowne uruchomienie instalatora jest bezpieczne: naprawia lub odświeża instalację, nie zmieniając jej kluczy. Dziennik instalatora jest w /var/log/tunnelry-install.log.

Co zmienił na serwerze

Wszystko, co należy do Tunnelry, jest w kilku miejscach, więc zawsze wiesz, czego dotknął:

MiejsceCo
/opt/tunnelryaplikacja (jeden katalog na wersję, current wskazuje aktywną)
/var/lib/tunnelryjej dane: baza, ustawienia, kopie zapasowe
/etc/tunnelryurząd certyfikacji i stan serwera (tylko root)
/etc/openvpn/serverkonfiguracja OpenVPN, którą generuje
/usr/lib/tunnelryuprzywilejowany program pomocniczy vpnctl
strona nginx, pula PHP, reguła sudoers, jednostki systemd, tabela nftables tunnelrygenerowane przez Tunnelry i zapisywane od nowa przy aktualizacji

Dalej: kreator konfiguracji.