Geri qayıt
Öz serverində işləyən localhost tunelini OpenSSH və nginx ilə yaradın
SiTech AI Team2 dəq oxu

Öz serverində işləyən localhost tunelini OpenSSH və nginx ilə yaradın

Öz-hostinq konfiqurasiyası OpenSSH uzaq yönləməsini nginx ilə birləşdirərək localhost önbaxışını açıq edir, wildcard TLS əlavə edir və paylaşılan linkləri vaxt məhdudiyyəti və heş əsaslı giriş məlumatları ilə qoruyur.

Yerli önbaxışın yönləndirilməsi

localhost:8080-da işləyən bloqun önbaxışı öz-hostinq tuneli ilə, kommersiya xidməti olmadan paylaşıla bilər. ssh -N -R 0:localhost:8080 web02.luffy.cx əmri OpenSSH-dən uzaq portu yerli xidmətə yönləndirməyi tələb edir. Uzaq portun 0 dəyəri serverdən sərbəst port seçməyə məcbur edir, bu misaldakı 41535-dir.

Uzaq serverdə nginx HTTPS bağlantılarını sonlandırır və sorğuları ayrılmış loopback portuna proksiləyir. server-name ifadəsi tunelin host adından portu əldə edir, bu da nginx-ə trafiki düzgün yerli yönləndirmədən keçirmək imkanı verir. Konfiqurasiya həmçinin *.ssh.luffy.cx üçün wildcard DNS qeydi və Let's Encrypt wildcard sertifikatını tələb edir.

Paylaşılan URL-lərin qorunması

Əlavə qoruma olmadan ayrılmış port məzmunu gizli saxlayan yeganə sirr olur. Konfiqurasiya ngx_http_secure_link_module ilə giriş nəzarətini təkmilləşdirir, bu modul sorğu parametrlərindən və gizli açardan heş hesablayır. base64 ilə şifrələnmiş heş həssas registrli domen adına yerləşdirilə bilməyəcəyi üçün, vaxt bitmə vaxtı ilə birlikdə HTTP Basic Authentication istifadəçi adının hissəsi kimi göndərilir.

Nginx istifadəçi adını $remote_user dəyişənindən oxuyur. map ifadəsi heşi və vaxt bitmə vəxtini bir-birindən ayırır, secure link ifadəsi isə yoxlama üçün vaxt nişanını, təyin edilmiş portu və konfiqurasiya edilmiş gizli açarı birləşdirir. Mövcud olmayan və ya səhv heş WWW-Authenticate başlığı ilə 401 cavabı verir. Vaxtı keçmiş link 410 cavabı verir. Düzgün sorğunu proksiləməzdən əvvəl nginx Authorization başlığını silir və WebSocket bağlantılarını dəstəkləmək üçün konfiqurasiya edilib.

Tunel linklərinin generasiyası

Linkin heşi vaxt bitmə vaxtının, portun və gizli açarın OpenSSL MD5 və base64 əməliyyatlarında hesablanması ilə yaradılır, daha sonra nəticə URL təhlükəsiz tokena çevrilir. Köməkçi skript 86400 saniyə ömürdən istifadə edir. OpenSSH öz ayrılmış portunu mühit dəyişəni ilə vermədiyi üçün skript ana proseslərin heşindən keçərək sshd-session proseslərini və onların dinləmə portlarını tapır.

Portlar əldə edildikdən sonra skript hər biri üçün qorunmuş URL yaradır və sessiyanı açıq saxlayır. http-over-ssh adlı SSH konfiqurasiya qeydi köməkçini uzaq serverdə işə salır. Nəticədə alınan konfiqurasiya yalnız OpenSSH və orada artıq işləyən nginx-ə əsaslanır, ayrıca NixOS konfiqurasiyası NixOS-də köməkçini idarə etmək üçün əlçatandır.

SSiTech

SiTech — AI ilə gücləndirilmiş veb hazırlanması

Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.