Два вгнездени тунели не ве прават анонимни. Тие ги делат набљудувањата меѓу два даватели, така што ниту еден не ја гледа истовремено вашата домашна адреса и вашата дестинација. Тоа е вистинска, но тесна предност и доаѓа со проблеми со рутирање, DNS и MTU што се појавуваат првиот пат кога ќе се потпрете на неа.

1. Одлучете за што е вториот скок

Запишете ја целта во една реченица пред да конфигурирате нешто. Ако целта е вашиот ISP да не може да види кои страници ги посетувате, тоа го постигнува еден тунел. Ако целта е ниту еден поединечен давател да не може да ја поврзе вашата адреса со вашиот сообраќај, тоа го прават два. Ако целта е никој да не може да ве идентификува, таму не води ниеден број скокови.

Веригата е само толку силна колку што се силни записите на послабиот давател и сметките што ги водат двата. Плаќањата, е-поштата за регистрација и телеметријата на апликацијата стојат целосно надвор од тунелот.

2. Направете го внатрешниот крај достапен низ надворешниот тунел

Вообичаениот неуспех е внатрешниот тунел никогаш да не се воспостави. Надворешната врска со полн тунел ја поседува стандардната рута, па обидот на внатрешниот клиент да стигне до сопствениот крај надворешниот тунел го голта и го отфрла или го става во јамка. На внатрешниот крај му треба јасна рута низ надворешниот интерфејс, поставена пред внатрешниот клиент да стартува. Инаку ракувањето се натпреварува со рутата и губи.

WireGuard го покажува истиот конфликт од другата страна. Секој peer има AllowedIPs што одлучува кои дестинации влегуваат во тој тунел, па внатрешниот интерфејс што бара секоја адреса бара и надворешниот крај, освен ако не победи поспецифична рута. Преклопувањето AllowedIPs на два интерфејса е конфигурација во која едната страна тивко губи.

Верижното поврзување контејнери го прави одвојувањето експлицитно, а стапицата очигледна. Контејнер со сопствен именски простор, сопствена стандардна рута и клиент внатре предава понатаму тоа што домаќинот му го праќа; домаќинот сам не почнува да го користи тој пат. Вклучете препраќање, додајте рута за тунелот на контејнерот и насочете ја услугата кон адресата на контејнерот.

3. Држете го DNS на истиот пат

DNS мора да патува каде што патува сообраќајот. Ако внатрешниот давател нуди резолвери, а домаќинот сè уште ги прашува локалните, тие пребарувања откриваат точно оние страници што тунелот требало да ги скрие. Проверувајте со снимање на секој интерфејс на тунелот наместо да му верувате на панелот за состојба на клиентот. Истекување овде е невидливо при нормално прелистување, а очигледно во снимка.

Поделените DNS дизајни го отежнуваат тоа, бидејќи барањето за локално име може легитимно да припаѓа надвор од тунелот. Напишете ја листата исклучоци намерно, наместо да ја откривате според тоа кој резолвер случајно одговорил.

4. Поставете MTU пред корисниците да го откријат наместо вас

MTU е другата предвидлива жртва. Двете инкапсулации одземаат две заглавија, а надворешниот тунел што веќе го намалил MTU на патот остава помалку простор внатре. Симптомите се познати: малите барања поминуваат, големите преноси и ракувањата со TLS запираат.

ip link set dev wg1 mtu 1280 е грубо решение, а ограничувањето на MSS на препраќачот е поубавото. Повторното обидување на врската воопшто не е решение.

5. Тестирајте го откажувањето што навистина ќе го добиете

Намерно прекинете го надворешниот тунел и гледајте што се случува. Верига што тивко паѓа на директен пат кога ќе умре надворешниот скок е полоша од никаква верига, зашто истекува токму во мигот кога сте верувале дека сте покриени. Саканото однесување е kill switch што го запира целиот сообраќај. Запишете го резултатот, бидејќи нема да сакате повторно да го откривате среде инцидент.

Задоцнувањето и втората точка на отказ се постојани трошоци. Два скока значат и две редици за поддршка кога нешто ќе се расипе во незгоден час.

Поврзани статии