Праћење TPROXY пакета све до сокета
Проверите пријемни сокет, ознаку пакета и локалну руту политике као један пут испоруке транспарентног проксија.
Бројач TPROXY може да расте док апликација не прима ништа. Правило се поклопило, али локална испорука и даље зависи од рутирања политике и компатибилног пријемног сокета.
Linux TPROXY може да пресретне саобраћај без преписивања одредишта као што то чини DNAT. Зато пакети упућени на нелокално одредиште морају да стигну до одговарајућег локалног сокета.
Пратите пут испоруке
- Саобраћај стиже на хост за пресретање преко предвиђеног интерфејса и породице адреса.
- Правило пресретања и ознака пакета одређују политику локалне испоруке.
- Одговарајуће правило политике бира руту која пакете испоручује локално.
- Прокси користи подржани транспарентни слушалац са потребном опцијом сокета.
Пример IPv4 у кернелу захтева подршку апликације за IP_TRANSPARENT. Обичан слушалац на истом порту или глобално нелокално повезивање не доказује ту подршку.
| Запажање | Следећа провера |
|---|---|
| Нема релевантних долазних пакета | Пут саобраћаја и улазни интерфејс |
| Пакети стижу; бројач пресретања мирује | Породица адреса, ланац и услови поклапања |
| Правило се поклапа; локална испорука не успева | Ознака и избор руте политике |
| Сокет слуша; апликација ништа не види | Способност транспарентног сокета и власник слушаоца |
| Захтев почиње; каснији одговори не успевају | Поклапање успостављеног сокета и повратне руте |
Чувајте учитану конфигурацију и мрежни именски простор уз свако запажање. Касније правило може да препише ознаку или изабере другу руту. Ако се пресретање дешава на хосту док слушалац ради у контејнеру, ваљана локална рута хоста не испоручује аутоматски у тај контејнер.
Урачунајте касније пакете
Пример кернела укључује поклапање сокета и DIVERT пут који означава пакете транспарентних сокета. Ако га изоставите, каснији саобраћај може остати на другом путу чак и када почетно пресретање успе.
Користите транспарентни режим који апликација подржава и одговарајућу документацију кернела за сваку породицу адреса. IPv4 наредба локалне руте не конфигурише IPv6, а подршка у једној породици не доказује понашање сокета у другој.
TPROXY такође не ствара SOCKS преговоре. Компонента од транспарентног до SOCKS-а ипак мора да открије одредиште и преговара са својим upstream сервером.
Прелазак са REDIRECT
Забележите како постојећа апликација добија изворно одредиште. REDIRECT мења одредиште и ослања се на одговарајући механизам опоравка; TPROXY захтева свој транспарентни сокет и распоред рутирања. Бирајте према апликацији и политици изворне адресе.
Пре промене режима пресретања повежите бројаче са изабраном рутом, способношћу сокета и записом апликације. На дистрибуцији која пружа потребне могућности, корак испоруке који недостаје боље је полазиште од поновног компајлирања кернела.