Dante SOCKS на loopback за HTTPS услуга само преку WireGuard
Поврзете посветен SOCKS слушач на loopback и дозволете една TCP дестинација. Држете ги одделно излезниот извор на Dante, кернел рутата, DNS и политиката за губење на тунелот.
Овој водич му дава на апликацијата што го разбира проксито пристап до постоечка WireGuard патека без објавување на прокси порта на VPN серверот или на интернет. SOCKS демонот го дава интерфејсот на апликацијата, WireGuard ја дава веќе одобрената IP патека, и ниту еден од нив не го автентификува корисникот наместо вас. Секој чекор подолу произведува нешто што можете да го проверите, и секој има враќање: запрете ја инстанцата, отстранете го правилото или отстранете ја прокси поставката на апликацијата. Ништо овде не ја менува стандардната рута на домаќинот.
Примерот претпоставува дека Dante 1.4.x е инсталиран како посветена, управувана инстанца на доверлива Linux работна станица, со сервисната сметка и конфигурацијата за логирање од пакетот оставени на своето место. Работната станица поседува 10.77.0.2 на својот WireGuard интерфејс, достигнува 10.60.0.20:443 преку тој тунел, а вистинското име на услугата е app.corp.example.
Чекор 1: поврзете го слушачот само на loopback
Ставете ги деловите за мрежа, метод и правила во активната конфигурација на инстанцата, заменувајќи ги примерните адреси. Сите поставки на серверот одат пред блоковите со правила:
internal: 127.0.0.1 port = 1080
external: 10.77.0.2
external.protocol: ipv4
clientmethod: none
socksmethod: none
client pass {
from: 127.0.0.1/32 to: 127.0.0.1/32
}
socks pass {
from: 127.0.0.1/32 to: 10.60.0.20/32 port = 443
command: connect
protocol: tcp
}Ова е фрагмент, не замена за корисничките поставки и поставките за логирање на пакетот. Изберете неискористен локален порт и потврдете дека оваа посветена инстанца нема други слушачи, пошироки правила за пропуштање и записи за нагорно поврзување што би го смениле договорот. Ако претходната конфигурација оставила socks pass без ограничување на дестинацијата, отстранете го пред воопшто да тестирате.
Враќањето за овој чекор е запирање на инстанцата; конфигурациската датотека може да остане на дискот додека ја враќате.
Чекор 2: напишете две правила, не едно
Dante референцата за конфигурација им дава различни задачи на двата типа правила. Клиентското правило дозволува врска со loopback слушачот, а неговата дестинација е адресата на самиот слушач. SOCKS правилото ја дозволува бараната понатамошна врска со одобрениот домаќин и порт. Несовпаѓачките барања се блокираат стандардно, и затоа правилото што недостасува изгледа исто како скршена рута.
Забележете што оваа конфигурација намерно не прави: не бара SOCKS лозинка. Тоа одговара на доверлив локален домаќин и не е автентикација на корисник. Секој друг процес на таа машина исто така може да го користи loopback. Задржете ја сопствената автентикација на далечната апликација и не користете ја повторно оваа неавтентифицирана форма за недоверливи локални корисници или за слушач свртен кон LAN.
Чекор 3: проверете ја рутата од правилниот извор
external избира излезна изворна адреса; не инсталира WireGuard рута. Пребарување само за читање за примерниот извор и дестинација:
ip -4 route get 10.60.0.20 from 10.77.0.2Извршете го ова во вистинскиот мрежен именски простор на Dante, а не во која било случајно отворена обвивка. Рутата, изборот на WireGuard партнер, дозволата од далечната страна и повратната патека мора да одговараат на таа изворна адреса. Успешното пребарување е потребно и не е доволно, бидејќи не кажува ништо за тоа дали далечниот крај го прифаќа барањето.
Спротивставете се на искушението да додадете стандардна рута за пребарувањето да успее. Прокси портата постои само на оваа работна станица; менувањето на стандардната рута на домаќинот за да се создаде ја превртува целата замисла.
Чекор 4: тестирајте со предвидениот идентитет
Откако сопственикот ќе ја валидира инсталираната конфигурација и ќе ја стартува инстанцата преку својот менаџер за услуги, илустративно барање е:
curl --proxy socks5h://127.0.0.1:1080 --noproxy '' https://app.corp.example/Со socks5h, Dante го врши разрешувањето на дестинацијата, но Dante работи на оваа работна станица, затоа поставката сама не испраќа DNS до далечниот крај на тунелот. Одобрениот резолвер што го користи Dante мора да ја врати дозволената адреса за тоа име. Празната листа без прокси спречува наследен исклучок тивко да го заобиколи SOCKS.
Зачувајте ја валидацијата на HTTPS името на домаќинот и сертификатот во тестот, потоа проверете го вистинскиот слушач и потврдете ги двете половини од договорот: дозволеното барање успева, а исклучената дестинација не успева. Проверете и дека неподдржаните команди за препраќање остануваат одбиени, бидејќи овој фрагмент ја дозволува командата SOCKS CONNECT преку TCP и ништо слично на општ UDP или тунел на цел уред.
Чекор 5: одлучете што се случува кога тунелот ќе падне
Тестирајте губење на тунелот и рестарт на инстанцата пред да го наречете производство. Надзорник што го стартува Dante по WireGuard не создава fail-closed рутирање и не создава fail-closed DNS; двете мора да се спроведат преку сопственикот на мрежата. Набљудувајте што прави апликацијата кога тунелот е исклучен: чиста грешка е добар резултат, тивко паѓање на јавен резолвер не е.
Координирајте ги ажурирањата ако сврзаната адреса на тунелот се промени, бидејќи external е прикачена на неа. Кога распоредот повеќе не е потребен, повлечете ја оваа инстанца и прокси поставката на апликацијата заедно и оставете ја WireGuard патеката на оној кому му припаѓа.