Rozwiązanie społecznościowe

HTTPS w CasaOS dla początkujących: reverse proxy, ZeroTier, Cloudflare Tunnel i TLS

A short April-June 2024 CasaOS thread from a Raspberry Pi 5 user asking for an easy HTTPS setup. The only reply suggested ZeroTier, Cloudflare Tunnel, or a domain plus Nginx reverse proxy. Its claim that ZeroTier could read the user's HTTP traffic is contradicted by current ZeroTier documentation, which says traffic is end-to-end encrypted.

Nie istnieje jeden przełącznik „włącz HTTPS”, który działa w każdym wdrożeniu CasaOS. Właściwy projekt zależy od tego, kto ma uzyskiwać dostęp do serwera. Jeśli dostęp jest potrzebny tylko z własnych urządzeń, prywatna sieć nakładkowa może całkowicie wyeliminować potrzebę publikowania panelu CasaOS. Jeśli nazwa hosta ma być dostępna dla innych osób lub publicznych klientów internetowych, użyj odwrotnego proxy albo tunelu, który kończy połączenie TLS i przekazuje ruch do usługi wewnętrznej.

Odpowiedź źródłowa z 2024 roku zawierała jeden istotny błąd techniczny: sugerowała, że ZeroTier może technicznie przeglądać nieszyfrowany ruch HTTP wewnątrz sieci nakładkowej. Aktualna dokumentacja ZeroTier wyraźnie stwierdza, że ruch sieciowy jest szyfrowany od końca do końca, a infrastruktura ZeroTier nie może odczytać zawartości pakietów. Przeglądarka nadal może wyświetlać http://, ponieważ sama warstwa aplikacji korzysta z protokołu HTTP, ale transport w sieci nakładkowej jest szyfrowany.

Istnieją trzy typowe modele zdalnego dostępu

  • Prywatna sieć nakładkowa/VPN: do prywatnej sieci dołączają tylko zaufane urządzenia.
  • Odwrotne proxy + domena: publiczne połączenia HTTPS są kończone w Nginx/Caddy/Traefik, a następnie przekazywane do CasaOS/aplikacji wewnątrz sieci.
  • Zarządzany tunel: konektor tworzy wychodzący tunel do dostawcy, takiego jak Cloudflare.

Można je łączyć, ale początkujący powinni wybrać najprostszą architekturę spełniającą rzeczywiste wymagania dotyczące dostępu.

ZeroTier szyfruje ruch od końca do końca

Aktualna dokumentacja protokołu ZeroTier stwierdza, że cały ruch ZeroTier jest szyfrowany od końca do końca za pomocą kluczy kontrolowanych przez urządzenia, a sekcja FAQ informuje, że ZeroTier, Inc. nie może odczytywać ruchu sieciowego.

Zobacz aktualne stanowisko ZeroTier dotyczące prywatności ruchu.

Dlaczego przeglądarka może nadal wyświetlać HTTP

Jeśli CasaOS nasłuchuje pod adresem http://192.168.x.x, a uzyskujesz dostęp do tego adresu przez zaszyfrowaną sieć nakładkową, protokół aplikacyjny między przeglądarką a CasaOS nadal jest protokołem HTTP. Sieć nakładkowa szyfruje znajdujące się pod nim pakiety IP.

Przypomina to korzystanie z HTTP wewnątrz prywatnego tunelu WireGuard: transport jest szyfrowany, mimo że sam serwer WWW nie obsługuje TLS.

HTTPS nadal zapewnia dodatkową warstwę ochrony

Korzystanie z HTTPS wewnątrz VPN lub poza nim zapewnia:

  • tożsamość serwera potwierdzoną certyfikatami;
  • natywne dla przeglądarki zachowanie bezpiecznego pochodzenia;
  • szyfrowanie transportu aplikacyjnego, nawet jeśli ruch opuści sieć nakładkową;
  • lepszą zgodność z aplikacjami wymagającymi bezpiecznych plików cookie lub wywołań zwrotnych HTTPS.

Odwrotne proxy to standardowy wzorzec HTTPS dla usług samodzielnie hostowanych

W przypadku odwrotnego proxy publiczna lub prywatna nazwa DNS wskazuje na proxy. Proxy nasłuchuje na porcie 443, zarządza certyfikatem, a następnie przekazuje żądanie do CasaOS lub aplikacji działającej na wewnętrznym porcie HTTP.

Popularne rozwiązania to Nginx Proxy Manager, Caddy i Traefik. Samo proxy musi być chronione, ponieważ staje się punktem wejścia do wielu usług.

Publiczny certyfikat zwykle wymaga domeny lub prawidłowego wyzwania ACME

Certyfikaty w stylu Let's Encrypt są wydawane dla nazw domen po potwierdzeniu przez wnioskodawcę, że ma nad nimi kontrolę. W przypadku konfiguracji domowej zwykle oznacza to domenę oraz obsługę wyzwania DNS/HTTP.

Nie wystawiaj publicznie panelu CasaOS tylko po to, aby uzyskać certyfikat, jeśli dostęp jest potrzebny wyłącznie z własnych urządzeń.

Cloudflare Tunnel eliminuje potrzebę przekierowywania portów przychodzących

Konektor Cloudflare Tunnel nawiązuje wychodzące połączenie z Cloudflare, dlatego router domowy nie potrzebuje zwykłej reguły przekierowania przychodzącego portu 443. Cloudflare może zapewnić HTTPS dla publicznej nazwy hosta.

Przenosi to część granicy zaufania na Cloudflare, dlatego należy połączyć takie rozwiązanie z uwierzytelnianiem i zasadami dostępu dotyczącymi usług administracyjnych.

W miarę możliwości zachowaj prywatność interfejsu administracyjnego CasaOS

Najbezpieczniejszą architekturą jest często publikowanie wyłącznie aplikacji, które wymagają publicznego dostępu, i pozostawienie interfejsu zarządzania CasaOS dostępnego tylko z sieci LAN lub prywatnej sieci VPN/nakładkowej.

TLS chroni transport, ale nie ogranicza uprawnień panelu administracyjnego.

Pi-hole i WireGuard nie wymagają takiego samego modelu wystawiania usług

Użytkownik źródłowy planował później dodać Pi-hole i WireGuard. Usługa DNS Pi-hole jest zwykle przeznaczona dla zaufanych klientów LAN/VPN, a nie dla otwartego Internetu. WireGuard celowo udostępnia nasłuchujący port UDP VPN, ale następnie zapewnia prywatną ścieżkę do innych usług.

Nie publikuj każdej aplikacji CasaOS tylko dlatego, że jeden port VPN musi być osiągalny.

FAQ dotyczące HTTPS w CasaOS

Czy ZeroTier może odczytać ruch HTTP wewnątrz mojej sieci ZeroTier?

Aktualna dokumentacja ZeroTier mówi, że nie: ruch jest szyfrowany od końca do końca, a infrastruktura ZeroTier nie może odczytać zawartości pakietów.

Czy potrzebuję HTTPS, jeśli łączę się wyłącznie przez prywatną sieć VPN?

VPN już szyfruje transport, ale HTTPS nadal może zapewnić potwierdzenie tożsamości certyfikatem i dodatkową warstwę ochrony.

Czy panel administracyjny CasaOS powinien być publicznie dostępny przez odwrotne proxy?

Najlepiej pozostawić interfejs zarządzania prywatny, chyba że istnieje konkretny i dobrze zabezpieczony powód, aby go publikować.