Enkele veiligere manieren om publiek IPv6 te gebruiken

Sommige mensen hebben behoefte aan gebruik van publiek IPv6 voor thuiswerken. In tegenstelling tot VPN’s zoals tailscale/zerotier die binnendoor penetratie nodig hebben om rechtstreekse connecties op te zetten, is IPv6 rechtstreekse connectie. Mobiele netwerken hebben meestal IPv6, wat thuiswerken zeer handig maakt.

Ik heb eerder een artikel gedeeld, Gebruikelijke DDNS-subdomeinen voor thuisbreedband kunnen leiden tot vermindering van dienstverlening bij telecomproviders, waarin een valkuil wordt beschreven die providers voor IPv6 gebruikers hebben gegraven. Kort samengevat worden domeinen gescand, en het blootleggen van je domein is gelijk aan het blootleggen van IPv6, wat kan leiden tot scanning en eventuele dienstvermindering bij veel inkomende connecties.

Die post noemde alleen domeinscanning, niet ’netscan’. Deze scan scant IP-pools rechtstreeks, ongeacht wat er wordt blootgelegd. Deze situatie is lastiger te voorkomen.

‘Netscan’ omvat meestal de volgende aspecten:

  • IP-levenstest: gebruik maken van ARP, ICMP, TCP en andere protocollen om online hosts te identificeren.
  • Poort/service-test: via poortscanning online hosts filteren op open poorten en dienst- en versie-informatie en besturingssysteeminformatie ophalen.
  • Besturingssysteem-test: via analyse van respons-pakketten het besturingssysteemtype en -versie van de doelhost afleiden.
  • Verkeersverzameling: netwerkverkeer monitoren om abnormale gedragingen of aanvalspatronen te ontdekken.
  • Alias-resolutie: voor routers met meerdere IP-adressen een mapping opzetten tussen IP-adressen en routers.
  • DNS-test: via IP-adres reverse lookup een relatie opbouwen tussen IP-adressen en domeinen.

Hier zijn enkele manieren om te voorkomen dat je door netscan wordt gevonden:

  1. Interne DNS-server retourneert geen AAAA-records.
  2. Interne diensten zijn alleen toegankelijk via domein, niet rechtstreeks via IP.
  3. Gebruik een privé DNS-dienst AdGuardPrivate.

Interne DNS-server retourneert geen AAAA-records

Wanneer je online bent op allerlei websites, kan deze natuurlijke toegang je bron-IPv6 blootleggen. De server aan de andere kant kan het bron-IPv6 verkrijgen, en als de gebruiker geen firewall heeft ingesteld, kan dit IPv6 in de prioritaire scanlijst van netscan worden geplaatst.

Ook kan het IPv6-adres met het /56-voorvoegsel in de scanlijst worden geplaatst, waarbij alleen de lage 16 bits worden doorlopen, waardoor het scanbereik aanzienlijk kan worden verkleind.

Mijn ervaring met jarenlang gebruik van IPv6 is dat het bij dagelijks browsen weinig verschil maakt met IPv4. Daarom kunnen we IPv6 voor extern bezoek opofferen en alleen rechtstreekse thuisconnecties gebruiken.

Instellen van geen IPv6-respons

Op de interne DNS-server instellen dat geen AAAA-records worden geretourneerd.

Interne DNS-diensten gebruiken meestal AdGuardHome, zie instellingen:

Instellen van IPv6 uitschakelen

Na instelling gebruiken interne apparaten alleen IPv4 voor extern bezoek, niet langer IPv6.

Interne diensten zijn alleen toegankelijk via domein

Mogelijk zijn thuisdiensten toegankelijk op basis van poort, wat zeer gemakkelijk te scannen is.

Bij het maken van diensten is het beter om geen instellingen te doen zoals luisteren op 0.0.0.0 en ::. Ervaren gebruikers weten dat bijna alle dienststartinstructies standaard alleen luisteren op 127.0.0.1 en ::1, omdat luisteren op publieke IP’s risico’s met zich meebrengt.

Omgekeerde proxy alleen domeininstelling

Voorbeeld nginx

De sleutel is het instellen van server_name op domein, niet op _ of IP.

server {
    listen 80;
    server_name yourdomain.com; # Vervang yourdomain.com door je werkelijke domein

    # Geef 403 Forbidden terug aan gebruikers die proberen via IP-adres te bezoeken
    if ($host != 'yourdomain.com') {
        return 403;
    }

    location / {
        # Hier is de root van je website en andere instellingen
        root /path/to/your/web/root;
        index index.html index.htm;
    }

    # Andere instellingen...
}

Voorbeeld IIS

De sleutel is het instellen van host name op domein, niet leeg laten.

IIS voorbeeld

Gebruik van privé DNS-dienst

Voeg aangepaste resolutie toe aan je eigen DNS-dienst om valse domeinen te laten resolven naar interne diensten.

DNS herschrijffunctie

Dit heeft enkele duidelijke voordelen.

  1. Ten eerste kunnen domeinen willekeurig worden geconstrueerd, geen domeinkosten nodig. Als dit valse domein wordt gescand, moeten aanvallers je DNS-dienst aanroepen om het juiste resolutieresultaat te krijgen.
  2. De eigen privé DNS-serveradres en het valse domein moeten worden blootgelegd. Vervolgens moeten scanneurs de domeinresolutielogica aanpassen, een verzoek doen aan de blootgelegde privé DNS-server voor domeinresolutie, en het valse domein in de Headers van het verzoek plaatsen voordat ze kunnen beginnen met scannen.
sequenceDiagram
  participant Scanner as Netwerkskaner
  participant DNS as Privé DNS-server
  participant Service as Interne dienst

  Scanner->>DNS: 1. Vind privé DNS-serveradres
  Scanner->>DNS: 2. Vraag valse domeinresolutie aan
  DNS-->>Scanner: 3. Retourneer interne dienst IP
  Scanner->>Service: 4. Gebruik valse domein om Headers te construeren
  Note right of Service: Als Headers geen correct valse domein bevatten<br/>wordt de toegang geweigerd
  alt Headers correct
    Service-->>Scanner: 5a. Retourneer dienstrespons
  else Headers incorrect
    Service-->>Scanner: 5b. Retourneer 403 fout
  end

Alleen als scanneurs alle bovenstaande stappen voltooien, kunnen ze interne diensten scannen, wat de moeilijkheid van scannen aanzienlijk verhoogt.

Op AdGuardPrivate kan een privé DNS-dienst worden aangemaakt, gebruik makend van de aangepaste resolutiefunctie om valse domeinen toe te voegen. U kunt natuurlijk ook dnspod.cn gebruiken.

Deze twee dienstverleners verschillen sterk. AdGuardPrivate is afgeleid van de native AdGuardHome, met veel meer functies dan dnspod. Beoordeel dit zelf.

Samenvatting

  1. Interne DNS-server retourneert geen AAAA-records
    • Voorwaarden
      • Publiek IPv6 hebben
      • Interne DNS-server hebben
    • Instellen
      • Geen AAAA-records retourneren
  2. Interne diensten zijn alleen toegankelijk via domein, niet rechtstreeks via IP
    • Voorwaarden
      • Eigen domein hebben
      • DDNS van domeinprovider hebben
      • Interne omgekeerde proxydienst hebben
    • Instellen
      • DDNS-taak instellen
      • Alleen toegang via domein toestaan
  3. Gebruik van privé DNS-dienst
    • Voorwaarden
      • Privé DNS-dienst hebben
      • Privé DNS-dienst biedt aangepaste resolutie
      • Privé DNS-dienst biedt DDNS
    • Instellen
      • DDNS-taak instellen
      • Aangepaste resolutie toevoegen, valse domeinen naar interne diensten laten resolven

Tot slot:

  • De eenvoudigste en veiligste manier om rechtstreeks thuis te werken is met succesvolle binnendoor penetratie via tailscale/zerotier, maar soms lukt dit niet vanwege diverse netwerkredenen.
  • Sluit niet zomaar aan op vreemde Wifi, het kan alle informatie in één keer lekken. Koop een simkaart met veel data, vertrouw het tijdelijk maar aan de provider, en wie goedkope grote datakaarten zoekt kan contact met me opnemen (niet), ik heb er ook een nodig.