Kilka metod bezpieczniejszego korzystania z publicznego IPv6

Niektórzy ludzie mają potrzebę używania publicznego IPv6, aby łączyć się z domem, w przeciwieństwie do VPN-ów takich jak tailscale/zerotier, które wymagają przebijania się przez NAT (hole punching) w celu nawiązania połączenia bezpośredniego, połączenie IPv6 jest bezpośrednie, a sieci komórkowe w telefonach większość czasu posiadają IPv6, więc powrót do domu jest bardzo wygodny.

Wcześniej udostępniałem artykuł Używanie powszechnych subdomen DDNS w domowym dostępie szerokopasmowym może spowodować degradację usług operatora, opisujący pułapkę zastawioną przez operatorów przy użyciu IPv6, krótko mówiąc, domena jest skanowana, ujawnienie własnej domeny jest równoznaczne z ujawnieniem IPv6, dlatego może ona zostać zeskanowana, a po wykryciu usługi duża liczba połączeń przychodzących powoduje degradację usługi szerokopasmowej.

W tamtym wpisie wspomniano tylko o skanowaniu domen, a nie o skanowaniu cyberprzestrzeni, to rodzaj skanowania, który niezależnie od ujawnionych informacji bezpośrednio iteruje przez pule IP i skanuje, tej sytuacji trudno jest zapobiec.

Skanowanie cyberprzestrzeni zazwyczaj obejmuje następujące aspekty:

  • Wykrywanie aktywności IP: wykorzystanie protokołów ARP, ICMP, TCP itp. do identyfikacji hostów online.
  • Wykrywanie portów/usług: filtrowanie otwartych portów hostów online poprzez skanowanie portów i uzyskiwanie informacji o usługach, wersjach i systemie operacyjnym hosta docelowego.
  • Wykrywanie systemu operacyjnego: wnioskowanie o typie i wersji systemu operacyjnego hosta docelowego poprzez analizę pakietów odpowiedzi.
  • Zbieranie ruchu: monitorowanie ruchu sieciowego w celu wykrywania anomaliów lub wzorców ataków.
  • Rozwiązywanie aliasów: dla routerów posiadających wiele adresów IP, tworzenie mapowania między adresami IP a routerem.
  • Sondowanie DNS: tworzenie mapowania między adresami IP a nazwami domen poprzez odwrócone rozwiązywanie adresów IP.

Oto kilka metod, aby uniknąć wykrycia przez skanowanie cyberprzestrzeni:

  1. Serwer DNS sieci wewnętrznej nie zwraca rekordów AAAA
  2. Usługi sieci wewnętrznej pozwalają na dostęp tylko przez domenę, nie bezpośrednio przez IP
  3. Korzystanie z prywatnej usługi DNS AdGuardPrivate

Serwer DNS sieci wewnętrznej nie zwraca rekordów AAAA

Podczas przeglądania różnych stron internetowych, naturalny dostęp może ujawnić źródłowe IPv6, serwer drugiej strony może pobrać źródłowe IPv6, jeśli po stronie użytkownika nie włączono zapory sieciowej, to IPv6 można umieścić w puli priorytetowego przeglądania skanowania cyberprzestrzeni.

Można również umieścić adresy IPv6 z prefiksem /56 w puli skanowania, przeglądając tylko 16 najmniej znaczących bitów, zakres skanowania można również znacznie zmniejszyć.

Z mojego wieloletniego doświadczenia z IPv6, codzienne przeglądanie Internetu z użyciem IPv6 nie różni się znacząco od IPv4. Dlatego możemy poświęcić zewnętrzny dostęp IPv6 i używać go tylko do bezpośredniego połączenia z domem.

Metoda konfiguracji nie zwracająca rozwiązań IPv6

Na serwerze DNS sieci wewnętrznej ustaw brak zwracania rekordów AAAA.

Usługa DNS sieci wewnętrznej to zazwyczaj AdGuardHome, patrz ustawienia:

Ustawienia wyłączające IPv6

Po ustawieniu, urządzenia w sieci wewnętrznej będą używać tylko IPv4 do dostępu do Internetu, nie będą już używać IPv6.

Usługi sieci wewnętrznej pozwalają na dostęp tylko przez domenę

Możliwe, że usługi udostępnione w domu są dostępne na podstawie portu, dzięki czemu można je bardzo łatwo wykryć podczas skanowania.

Najlepiej podczas tworzenia usługi nie ustawiać nasłuchiwania na 0.0.0.0 i ::, osoby doświadczone mogą odczuć, że prawie wszystkie instrukcje uruchamiania usług domyślnie nasłuchują tylko na 127.0.0.1 i ::1, ponieważ nasłuchiwanie na publicznym IP wiąże się z ryzykiem.

Metoda konfiguracji odwrotnego proxy zezwalająca tylko na domenę

Przykład nginx

Kluczem jest ustawienie server_name na domenę, nie ustawiaj na _ lub IP.

server {
    listen 80;
    server_name yourdomain.com; # Zamień yourdomain.com na swoją rzeczywistą domenę

    # Zwraca 403 Forbidden dla użytkowników próbujących uzyskać dostęp przez adres IP
    if ($host != 'yourdomain.com') {
        return 403;
    }

    location / {
        # Tutaj znajduje się katalog główny Twojej witryny i inne konfiguracje
        root /path/to/your/web/root;
        index index.html index.htm;
    }

    # Inne konfiguracje...
}

Przykład IIS

Kluczem jest ustawienie host name na domenę, nie zostawiaj go pustego.

Przykład IIS

Korzystanie z prywatnej usługi DNS

W usłudze DNS używanej tylko przez siebie dodaj niestandardowe rozwiązywanie, aby sfałszowana domena rozwiązywała się do usługi sieci wewnętrznej.

Funkcja przepisywania DNS

Robienie to ma kilka oczywistych zalet.

  1. Po pierwsze, domena może być dowolnie skonstruowana, nie trzeba kupować domeny, co oszczędza koszt domeny. Jeśli taka sfałszowana domena zostanie wykryta, to atakujący musi poprosić o Twoją usługę DNS, aby uzyskać poprawny wynik rozwiązywania.
  2. Należy jednocześnie ujawnić adres swojej prywatnej usługi DNS oraz wirtualną domenę, a następnie skaner musi zmodyfikować logikę rozwiązywania domeny, poprosić prywatny serwer DNS o rozwiązanie domeny, a następnie wpisać wirtualną domenę do skonstruowanych Headers żądania, aby rozpocząć skanowanie.
sequenceDiagram
  participant Scanner as Skaner sieci
  participant DNS as Prywatny serwer DNS
  participant Service as Usługa sieci wewnętrznej

  Scanner->>DNS: 1. Wykrywa adres prywatnego serwera DNS
  Scanner->>DNS: 2. Żąda rozwiązania wirtualnej domeny
  DNS-->>Scanner: 3. Zwraca IP usługi sieci wewnętrznej
  Scanner->>Service: 4. Konstruuje Headers używając wirtualnej domeny
  Note right of Service: Jeśli w Headers nie ma poprawnej wirtualnej domeny<br/>odmów dostępu
  alt Poprawne Headers
    Service-->>Scanner: 5a. Zwraca odpowiedź usługi
  else Błędne Headers
    Service-->>Scanner: 5b. Zwraca błąd 403
  end

Tylko jeśli skaner wykona wszystkie powyższe kroki, może skanować usługę sieci wewnętrznej, co znacznie zwiększa trudność skanowania.

Na AdGuardPrivate można utworzyć prywatną usługę DNS, użyć funkcji niestandardowego rozwiązywania, aby dodać sfałszowaną domenę, można też użyć dnspod.cn.

Usługi tych dwóch firm różnią się znacznie, AdGuardPrivate to zmodyfikowany natywny AdGuardHome, funkcjonalnie jest znacznie bogatszy niż dnspod, wszyscy sami to ocenią.

Podsumowanie

  1. Serwer DNS sieci wewnętrznej nie zwraca rekordów AAAA
    • Warunki wstępne
      • Posiada publiczne IPv6
      • Posiada serwer DNS sieci wewnętrznej
    • Ustawienia
      • Nie zwraca rekordów AAAA
  2. Usługi sieci wewnętrznej pozwalają na dostęp tylko przez domenę, nie pozwalają na bezpośredni dostęp przez IP
    • Warunki wstępne
      • Posiada własną domenę
      • Dostawca domeny zapewnia DDNS
      • Sieć wewnętrzna posiada usługę odwrotnego proxy
    • Ustawienia
      • Ustaw zadanie DDNS
      • Pozwól na dostęp tylko przez domenę
  3. Korzystanie z prywatnej usługi DNS
    • Warunki wstępne
      • Posiada prywatną usługę DNS
      • Prywatna usługa DNS zapewnia niestandardowe rozwiązywanie
      • Prywatna usługa DNS zapewnia DDNS
    • Ustawienia
      • Ustaw zadanie DDNS
      • Dodaj niestandardowe rozwiązywanie, sfałszowana domena rozwiązuje do usługi sieci wewnętrznej

Na koniec,

  • Najprostszym i najbezpieczniejszym bezpośrednim połączeniem z domem jest udane przebijanie się przez tailscale/zerotier, ale czasami z różnych powodów sieciowych przebijanie się może się nie udać.
  • Nie podłączaj się losowo do nieznanego Wi-Fi, można jednorazowo wyciec wszystkie informacje. Zdobądź kartę SIM z dużym transferem, tymczasowo powierz zaufanie operatorowi, jeśli potrzebujesz taniej karty z dużym transferem, skontaktuj się ze mną (nie), ja też potrzebuję.