Желите да саобраћај 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 је друго цурење. Сокет резолвера не мора да користи извор external податковне везе проксија, па претраге имена могу и даље да излазе кроз WAN. Тестирајте разрешавање одвојено од успостављања везе и одлучите да ли је тај резултат прихватљив.

IPv6 захтева своја правила и руте, јер распоред IPv4 ништа не доказује о њему.

Изаберите према отказу који можете да поднесете

Изаберите пун тунел када хост треба заштити као целину и можете да одржавате листу изузетака. Изаберите рутирање по извору када хост мора да задржи своју путању и само једну услугу треба преусмерити. Оба су легитимна; грешка је изабрати једно и затим га тестирати као да је друго.

Шта год да изаберете, проверите са обе стране: захтев кроз прокси и директан захтев са хоста, са забележеном примећеном излазном адресом за сваки.

Ако тунел падне, одлучите унапред да ли прокси треба да откаже или да се повуче, и пустите табелу рутирања да изрази ту одлуку.

Повезани чланци