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 jeszczecurl(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
| Opcja | Znaczenie |
|---|---|
--public-key PLIK | weryfikuje podpis tym kluczem publicznym Ed25519 (użyj klucza opublikowanego z wydaniem) |
--gui-port PORT | port interfejsu WWW (domyślnie 8443) |
--address HOST | adres 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 URL | skąd strona Aktualizacje pobiera informacje o nowych wersjach (tylko https) |
--new-token | wydaje nowy jednorazowy token konfiguracji |
--force | kontynuuje, 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ął:
| Miejsce | Co |
|---|---|
/opt/tunnelry | aplikacja (jeden katalog na wersję, current wskazuje aktywną) |
/var/lib/tunnelry | jej dane: baza, ustawienia, kopie zapasowe |
/etc/tunnelry | urząd certyfikacji i stan serwera (tylko root) |
/etc/openvpn/server | konfiguracja OpenVPN, którą generuje |
/usr/lib/tunnelry | uprzywilejowany program pomocniczy vpnctl |
strona nginx, pula PHP, reguła sudoers, jednostki systemd, tabela nftables tunnelry | generowane przez Tunnelry i zapisywane od nowa przy aktualizacji |
Dalej: kreator konfiguracji.