Вы хочаце, каб трафік SOCKS-проксі выходзіў праз VPN, а астатняя частка хоста захоўвала звычайны шлях. Гэта робяць два падыходы, і яны адрозніваюцца тым, што ламаецца, калі нешта ідзе не так. Адзін штурхае маршрут па змаўчанні ў тунэль і потым абыходзіць яго; другі пакідае галоўную табліцу спакою і накіроўвае адзін адрас крыніцы ў другую табліцу. Другі чысцейшы, і ў яго ёсць свае пасткі.

Два падыходы, два розныя радыусы пашкоджання

Поўны тунэль — гэта тое, што большасць VPN-кліентаў робіць па змаўчанні: замяняе маршрут па змаўчанні, каб усё ішло праз тунэль, а потым выключае тое, што не павінна. Гэта лёгка асэнсаваць і цяжка трымаць вузкім, бо кожная лакальная служба, якую вы дадаяце, атрымлівае тунэль у спадчыну, пакуль вы яе не выключыце. Рэжым адмовы шырокі, бо адзін няправільны маршрут забірае з сабой уласную злучанасць хоста.

Падыход з выбарам крыніцы ідзе ў іншы бок. Галоўная табліца застаецца як была, і адно палітычнае правіла накіроўвае пакеты з пэўнага лакальнага адраса ў табліцу з тунэльным маршрутам па змаўчанні. Больш нічога не змяняецца, а значыць, радыус пашкоджання — адзін адрас.

Гэтая вузкасць — адначасова і абмежаванне: падыход працуе, толькі калі выходныя пакеты проксі сапраўды нясуць гэты адрас.

Што робіць параметр external у Dante

Параметр external выбірае адрасы, якія проксі выкарыстоўвае для выходных злучэнняў; ён не кранае палітыку маршрутызацыі ядра. Менавіта гэтае раздзяленне робіць другі падыход магчымым, і менавіта тут людзі няправільна чытаюць дакументацыю. Калі накіраваць external на адрас тунэля, проксі пачынае выводзіць свае злучэнні з гэтага адраса, а табліца маршрутызацыі потым вырашае, куды ідуць гэтыя пакеты.

Слухач — асобная справа. Трымайце internal абмежаваным кліентамі, якім належыць карыстацца проксі, патрабуйце аўтэнтыфікацыю і закрыйце порт файрволам, бо адкрыты слухач не з'яўляецца функцыяй выхаду праз VPN.

Пераканайцеся, што наладжаны адрас сапраўды належыць тунэлю ў сеткавым прасторы імёнаў проксі.

Пабудова табліцы з выбарам крыніцы

Для адраса TUN 10.90.0.2/24 з дасяжным партнёрам на 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. З ім пошук не ўдаецца, што з'яўляецца бачнай адмовай замест ціхай уцечкі. Прыярытэт правіла таксама мусіць стаяць перад усім іншым, што адпавядае гэтай крыніцы.

Гэтыя значэнні апісваюць адну тапалогію. Пункт-пункт партнёры, адрасацыя net30 і кліенты, якія выдаюць іншы прэфікс, — усе яны патрабуюць уласных маршрутаў, таму капіруйце форму, а не адрасы.

Дзе працякае правіла крыніцы

Правіла, якое супадае з адрасам крыніцы, уплывае на кожны працэс, што яго выкарыстоўвае, а не толькі на проксі. Калі іншы дэман займае той жа адрас, яго трафік таксама пойдзе праз тунэль, і збой будзе выглядаць як праблема незвязанай службы. Дайце проксі адрас, які больш ніхто не выкарыстоўвае, або прыміце, што ахоп — гэта адрас, а не працэс.

DNS — другая ўцечка. Сокет рэзолвера не абавязкова выкарыстоўвае знешнюю крыніцу даных проксі, таму пошук імёнаў можа па-ранейшаму ісці праз WAN. Тэстуйце развязанне асобна ад усталявання злучэння і вырашыце, ці прымальны такі вынік.

IPv6 патрабуе сваіх правілаў і маршрутаў, бо ўладкаванне IPv4 нічога пра яго не даказвае.

Выбірайце па адмове, якую можаце вытрымаць

Выбірайце поўны тунэль, калі хост трэба абараняць цалкам і вы можаце падтрымліваць спіс выключэнняў. Выбірайце маршрутызацыю па крыніцы, калі хост мусіць захаваць свой шлях і перанакіраваць трэба толькі адну службу. Абодва падыходы легітымныя; памылка — выбраць адзін і потым тэставаць яго так, нібыта гэта другі.

Што б вы ні выбралі, правярайце з абодвух бакоў: запыт праз проксі і прамы запыт з хоста, з зафіксаваным назіраным адрасам выхаду для кожнага.

Калі тунэль абрынецца, загадзя вырашыце, ці проксі павінен адмовіць, ці перайсці на звычайны шлях, і хай табліца маршрутызацыі выказвае гэтае рашэнне.

Падобныя артыкулы