Бројач TPROXY може да расте док апликација не прима ништа. Правило се поклопило, али локална испорука и даље зависи од рутирања политике и компатибилног пријемног сокета.

Linux TPROXY може да пресретне саобраћај без преписивања одредишта као што то чини DNAT. Зато пакети упућени на нелокално одредиште морају да стигну до одговарајућег локалног сокета.

Пратите пут испоруке

  1. Саобраћај стиже на хост за пресретање преко предвиђеног интерфејса и породице адреса.
  2. Правило пресретања и ознака пакета одређују политику локалне испоруке.
  3. Одговарајуће правило политике бира руту која пакете испоручује локално.
  4. Прокси користи подржани транспарентни слушалац са потребном опцијом сокета.

Пример IPv4 у кернелу захтева подршку апликације за IP_TRANSPARENT. Обичан слушалац на истом порту или глобално нелокално повезивање не доказује ту подршку.

ЗапажањеСледећа провера
Нема релевантних долазних пакетаПут саобраћаја и улазни интерфејс
Пакети стижу; бројач пресретања мирујеПородица адреса, ланац и услови поклапања
Правило се поклапа; локална испорука не успеваОзнака и избор руте политике
Сокет слуша; апликација ништа не видиСпособност транспарентног сокета и власник слушаоца
Захтев почиње; каснији одговори не успевајуПоклапање успостављеног сокета и повратне руте

Чувајте учитану конфигурацију и мрежни именски простор уз свако запажање. Касније правило може да препише ознаку или изабере другу руту. Ако се пресретање дешава на хосту док слушалац ради у контејнеру, ваљана локална рута хоста не испоручује аутоматски у тај контејнер.

Урачунајте касније пакете

Пример кернела укључује поклапање сокета и DIVERT пут који означава пакете транспарентних сокета. Ако га изоставите, каснији саобраћај може остати на другом путу чак и када почетно пресретање успе.

Користите транспарентни режим који апликација подржава и одговарајућу документацију кернела за сваку породицу адреса. IPv4 наредба локалне руте не конфигурише IPv6, а подршка у једној породици не доказује понашање сокета у другој.

TPROXY такође не ствара SOCKS преговоре. Компонента од транспарентног до SOCKS-а ипак мора да открије одредиште и преговара са својим upstream сервером.

Прелазак са REDIRECT

Забележите како постојећа апликација добија изворно одредиште. REDIRECT мења одредиште и ослања се на одговарајући механизам опоравка; TPROXY захтева свој транспарентни сокет и распоред рутирања. Бирајте према апликацији и политици изворне адресе.

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

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