Dante SOCKS преку VPN: целосен тунел наспроти рутирање по извор
Два начина да се прати само SOCKS проксито низ тунел: замена на стандардната рута или врзување на една изворна адреса за сопствена табела. Тие неуспеваат на различен начин.
Сакате сообраќајот на SOCKS проксито да излегува преку VPN, додека остатокот од домаќинот го задржува својот нормален пат. Два дизајни го прават тоа и се разликуваат по тоа што се крши кога нешто тргне наопаку. Едниот турка стандардна рута во тунелот и потоа ја обиколува; другиот ја остава главната табела на мира и праќа една изворна адреса во втора табела. Вториот е почист и има свои стапици.
Два дизајна, два различни радиуса на штета
Дизајнот со целосен тунел е она што повеќето VPN клиенти го прават стандардно: ја заменуваат стандардната рута за сè да го следи тунелот, а потоа го исклучуваат она што не треба. Лесно е да се размислува за него и тешко да се одржи тесен, бидејќи секоја локална услуга што ќе ја додадете го наследува тунелот додека не ја исклучите. Режимот на отказ е широк, зашто една погрешна рута ја носи со себе и сопствената поврзаност на домаќинот.
Дизајнот со избор по извор оди во спротивна насока. Главната табела останува како што беше, а едно правило за политика праќа пакети од одредена локална адреса во табела со стандардна рута низ тунелот. Ништо друго не се менува, што значи дека радиусот на штета е една адреса.
Таа тесност е и ограничувањето: дизајнот работи само ако излезните пакети на проксито навистина ја носат таа адреса.
Што прави поставката external во Dante
Поставката external ги избира адресите што проксито ги користи за излезни врски; таа не ја допира рутирачката политика на јадрото. Токму тоа разделување го овозможува вториот дизајн и токму тука луѓето ја читаат документацијата погрешно. Насочувањето на external кон адреса на тунел го тера проксито да ги изведува своите врски од таа адреса, а потоа рутирачката табела одлучува каде одат тие пакети.
Слушателот е одделно прашање. Држете го internal ограничен на клиентите што треба да го користат проксито, барајте автентикација и затворете го портот со firewall, зашто отворен слушател не е карактеристика на VPN излез.
Потврдете дека конфигурираната адреса навистина му припаѓа на тунелот во мрежниот именски простор на проксито.
Изградба на табелата со избор по извор
За TUN адреса 10.90.0.2/24 со достапен peer на 10.90.0.1 и број на табела што ништо друго не го користи, распоредот изгледа вака:
ip -4 route add table 100 10.90.0.0/24 dev tun0 src 10.90.0.2
ip -4 route add table 100 default via 10.90.0.1 dev tun0 metric 10
ip -4 route add table 100 unreachable default metric 32760
ip -4 rule add priority 1000 from 10.90.0.2/32 lookup 100Недостижната рута е делот што луѓето го прескокнуваат. Без неа, табела чијашто тунелска рута исчезне паѓа на обичната стандардна рута и проксито тивко излегува преку WAN. Со неа, пребарувањето не успева, што е видлив отказ наместо тивок пропуст. Приоритетот на правилото исто така мора да стои пред сè друго што одговара на тој извор.
Овие вредности опишуваат една топологија. Peer-овите точка-до-точка, адресирањето net30 и клиентите што доделуваат друг префикс сите бараат свои рути, затоа копирајте ја формата, а не адресите.
Каде пропушта правилото по извор
Правило што одговара на изворна адреса влијае на секој процес што ја користи, не само на проксито. Ако друг демон ја врзе истата адреса, и неговиот сообраќај го зема тунелот, а отказот ќе изгледа како проблем на неповрзана услуга. Дајте му на проксито адреса што ништо друго не ја користи, или прифатете дека опфатот е адресата, а не процесот.
DNS е другиот пропуст. Сокетот на резолверот не мора да го користи изворот на external-податочната врска на проксито, па пребарувањата на имиња сè уште можат да излезат преку WAN. Тестирајте го разрешувањето одделно од воспоставувањето врска и одлучете дали тој резултат е прифатлив.
IPv6 бара свои правила и рути, зашто распоредот за IPv4 не докажува ништо за него.
Изберете според отказот што можете да го поднесете
Изберете го целосниот тунел кога домаќинот треба да се заштити како целина и можете да ја одржувате листата на исклучоци. Изберете рутирање по извор кога домаќинот мора да го задржи својот пат и само една услуга треба да се пренасочи. И двете се легитимни; грешката е да изберете едно, а потоа да го тестирате како да е другото.
Што и да изберете, проверете од двете страни: барање преку проксито и директно барање од домаќинот, со забележана излезна адреса за секое.
Ако тунелот падне, одлучете однапред дали проксито треба да откаже или да се врати, и оставете рутирачката табела да ја изрази таа одлука.