Dante SOCKS loopback'da faqat WireGuard orqali ishlaydigan HTTPS xizmati uchun
Maxsus SOCKS tinglovchisini loopback'ga bog'lang va bitta TCP manziliga ruxsat bering. Dante'ning chiquvchi manbasi, yadro marshruti, DNS va tunnel yo'qolishi siyosatini alohida saqlang.
Ushbu qo'llanma proksi tushunadigan ilovaga mavjud WireGuard yo'liga kirish beradi, VPN serverida yoki internetda proksi portini e'lon qilmasdan. SOCKS demoni ilova interfeysini beradi, WireGuard allaqachon tasdiqlangan IP yo'lni beradi, va ikkalasi ham foydalanuvchini sizning o'rningizga autentifikatsiya qilmaydi. Quyidagi har bir qadam tekshirish mumkin bo'lgan narsa yaratadi va har birining qaytarish yo'li bor: instansni to'xtating, qoidani olib tashlang yoki ilovaning proksi sozlamasini olib tashlang. Bu yerda hech narsa xostning standart marshrutini o'zgartirmaydi.
Misol Dante 1.4.x ishonchli Linux ish stansiyasida maxsus, boshqariladigan instans sifatida o'rnatilganini va paket bergan xizmat hisobi hamda jurnal konfiguratsiyasi o'z joyida qoldirilganini nazarda tutadi. Ish stansiyasi 10.77.0.2 manzilini o'zining WireGuard interfeysida egallaydi, shu tunnel orqali 10.60.0.20:443 manziliga yetadi va xizmatning to'g'ri nomi app.corp.example.
1-qadam: tinglovchini faqat loopback'ga bog'lang
Tarmoq, usul va qoidalar bo'limlarini instansning faol konfiguratsiyasiga joylashtiring va misol manzillarini almashtiring. Barcha server sozlamalari qoidalar bloklaridan oldin keladi:
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
}Bu fragment, paketning foydalanuvchi va jurnal sozlamalari o'rnini bosmaydi. Ishlatilmagan mahalliy portni tanlang va bu maxsus instansda boshqa tinglovchilar, kengroq o'tkazish qoidalari va shartnomani o'zgartiruvchi yuqori zanjir yozuvlari yo'qligini tasdiqlang. Agar oldingi konfiguratsiya socks pass ni manzil cheklovisiz qoldirgan bo'lsa, biror narsani sinashdan oldin uni olib tashlang.
Bu qadamning qaytarilishi instansni to'xtatishdir; konfiguratsiya fayli uni qaytarayotganingizda diskda qolishi mumkin.
2-qadam: bitta emas, ikkita qoida yozing
Dante konfiguratsiya ma'lumotnomasi ikki qoida turiga turli vazifalar beradi. Mijoz qoidasi loopback tinglovchisiga ulanishga ruxsat beradi va uning manzili tinglovchining o'z manzilidir. SOCKS qoidasi so'ralgan keyingi ulanishni tasdiqlangan xost va portga ruxsat beradi. Mos kelmaydigan so'rovlar standart bo'yicha bloklanadi, shuning uchun yo'q qoida buzilgan marshrutga aynan o'xshaydi.
Ushbu konfiguratsiya ataylab nima qilmasligiga e'tibor bering: u SOCKS parolini so'ramaydi. Bu ishonchli mahalliy xostga mos keladi va bu foydalanuvchi autentifikatsiyasi emas. O'sha mashinadagi har qanday boshqa jarayon ham loopback'dan foydalanishi mumkin. Uzoq ilovaning o'z autentifikatsiyasini joyida saqlang va bu autentifikatsiyasiz shaklni ishonchsiz mahalliy foydalanuvchilar yoki LANga qaragan tinglovchi uchun qayta ishlatmang.
3-qadam: marshrutni to'g'ri manbadan tekshiring
external chiquvchi manba manzilini tanlaydi; u WireGuard marshrutini o'rnatmaydi. Misol manbasi va manzili uchun faqat o'qish qidiruvi:
ip -4 route get 10.60.0.20 from 10.77.0.2Buni Dante'ning haqiqiy tarmoq nom maydonida ishga tushiring, tasodifan ochiq bo'lgan har qanday qobiqda emas. Marshrut, WireGuard sherigini tanlash, uzoq tomon ruxsati va qaytish yo'li barchasi shu manba manziliga mos kelishi kerak. Muvaffaqiyatli qidiruv zarur va yetarli emas, chunki u uzoq tomon so'rovni qabul qiladimi-yo'qmi, bu haqda hech narsa demaydi.
Qidiruv muvaffaqiyatli bo'lishi uchun standart marshrut qo'shish vasvasasiga qarshi turing. Proksi porti faqat shu ish stansiyasida mavjud; uni yaratish uchun xostning standart marshrutini o'zgartirish butun loyihani teskari aylantiradi.
4-qadam: mo'ljallangan shaxs bilan sinang
Egasi o'rnatilgan konfiguratsiyani tasdiqlab, instansni xizmat menejeri orqali ishga tushirgandan so'ng, namuna so'rov quyidagicha:
curl --proxy socks5h://127.0.0.1:1080 --noproxy '' https://app.corp.example/Bilan socks5h Dante manzilni hal qiladi, lekin Dante shu ish stansiyasida ishlaydi, shuning uchun sozlama DNSni tunnelning uzoq uchiga o'zi yubormaydi. Dante ishlatadigan tasdiqlangan hal qiluvchi o'sha nom uchun ruxsat etilgan manzilni qaytarishi kerak. Bo'sh proksisiz ro'yxat meros bo'lgan istisnoning SOCKSni jimgina chetlab o'tishini oldini oladi.
Sinovda HTTPS xost nomi va sertifikat tekshiruvini saqlang, so'ng haqiqiy tinglovchini ko'zdan kechiring va shartnomaning ikkala yarmini tasdiqlang: ruxsat etilgan so'rov muvaffaqiyatli, chiqarib tashlangan manzil esa muvaffaqiyatsiz. Qo'llab-quvvatlanmaydigan yo'naltirish buyruqlari rad etilgan holda qolishini ham tekshiring, chunki bu fragment TCP ustidagi SOCKS CONNECT buyrug'iga ruxsat beradi, umumiy UDP yoki butun qurilma tunneliga o'xshash hech narsaga emas.
5-qadam: tunnel yiqilganda nima bo'lishini hal qiling
Buni ishlab chiqarish deb atashdan oldin tunnel yo'qolishi va instansni qayta ishga tushirishni sinang. Dante'ni WireGuarddan keyin ishga tushiruvchi nazoratchi fail-closed marshrutlash yaratmaydi va fail-closed DNS ham yaratmaydi; ikkalasi ham tarmoq egasi orqali tatbiq etilishi kerak. Tunnel o'chirilganda ilova nima qilishini kuzating: toza xato yaxshi natija, umumiy hal qiluvchiga jimgina tushish esa emas.
Bog'langan tunnel manzili o'zgarsa, yangilanishlarni muvofiqlashtiring, chunki external unga mahkamlangan. Bu tartib endi kerak bo'lmasa, ushbu instans va ilovaning proksi sozlamasini birga iste'foga chiqaring, WireGuard yo'lini esa uning egasiga qoldiring.