Geri qayıt
SSH tunelləri üçün praktik bələdçi: yerli və uzaq port yönləndirmə
SiTech AI Team3 წთ. საკითხავი

SSH tunelləri üçün praktik bələdçi: yerli və uzaq port yönləndirmə

iximiuz Labs-dən SSH tunelləri üzrə praktik bələdçi: yerli port yönləndirmə (-L) bastion arxasındakı xidmətlərə necə çatır, -R yerli xidməti çölə necə açır və -D SSH müştərisini necə SOCKS proxy-yə çevirir.

SSH yoxa çıxmaq istəməyən köhnə texnologiyadır və tunelləri hələ də bir əmrlə daha yeni alətlərin çətinliklə çatdığı işləri görür: açıq bastion vasitəsilə daxili VPC xidmətinə çatmaq, uzaq inkişaf VM-inin localhost portunu brauzerdə açmaq və ya yerli serveri xaricə çıxarmaq. İvan Veliçkonun iximiuz Labs-dəki praktik bələdçisi yerli, uzaq və dinamik port yönləndirməni izah edir; laboratoriyalar dörd host və üç şəbəkədən ibarət mühitdə işləyir.

Yerli port yönləndirmə

-L bayrağı yönləndirməni müştəri tərəfində başladır: SSH müştərisi yerli portu dinləyir və ora gələn trafik qoşulduğunuz maşından görünən remote_addr:remote_port ünvanına ötürülür. Sintaksis ssh -L [local_addr:]local_port:remote_addr:remote_port [user@]sshd_addr, ssh -f -N -L isə sessiyanı arxa planda işlədir. Birinci laboratoriyada uzaq hostun 127.0.0.1:80 ünvanına bağlı veb server şəbəkədən əlçatmazdır; ssh -f -N -L 8080:localhost:80 203.0.113.30 əmrindən sonra həmin səhifə yerli 8080 portunda cavab verir.

Əmr SSH serverindən başqa maşına da yönləndirə bilər. ssh -L 8081:172.16.0.40:80 203.0.113.30 əmrində bastion bağlantını qəbul edir və özəl VPC hostuna ikinci addımı bizim adımıza açır. Yalnız loopback-ə bağlı portlar əlavə üsul tələb edir, çünki yönləndirməni bastion həll edir və hədəfin 127.0.0.1 ünvanını görmür. -J bayrağı bastiondan "tullanır" və sessiyanı hədəfin özündə bitirir: ssh -f -N -J 203.0.113.30 -L 8082:localhost:9000 172.16.0.40 şəbəkə üçün görünməz olan debug portunu yerli olaraq görünən edir.

Uzaq port yönləndirmə

Əks hal — yerli xidməti açıq şlüz vasitəsilə xaricə çıxarmaq — ssh -R [remote_addr:]remote_port:local_addr:local_port [user@]gateway_addr əmrindən istifadə edir; bu dəfə əlavə portu sshd serveri açır. Tələ: standart olaraq tunel yalnız şlüzün localhost ünvanına bağlanır, yəni xidmət yalnız şlüzün içindən əlçatan qalır; bütün interfeyslərdə yayımlamaq üçün sshd_config-də GatewayPorts yes tələb olunur. Bu ayarla ssh -f -N -R 0.0.0.0:8080:localhost:80 203.0.113.30 noutbukun yalnız-localhost veb serverini şəbəkəyə açır. Bir variant SSH müştərisinin jump host rolunu üzərinə götürüb şlüzün çata bilmədiyi ev şəbəkəsindəki cihazı xaricə çıxarmasına imkan verir.

Dinamik yönləndirmə: SSH SOCKS proxy kimi

Bir yerli portu bir hədəfə bağlamaq əvəzinə ssh -D [local_addr:]local_port SSH müştərisini yerli SOCKS proxy-yə çevirir. Hər bağlantı öz hədəfini bildirir və onu SSH serveri həll edir, beləliklə tək proxy portu bastionun arxasındakı bütün host və portlara çatır: müştəri SOCKS danışırsa, curl --socks5-hostname localhost:1080 172.16.0.40:80 kifayətdir. -R əmrindən hədəfi çıxarmaq eyni fikri server tərəfində əks etdirir: sshd özü SOCKS proxy olur və bu rejim müştəridə OpenSSH 7.6 və ya daha yenisini tələb edir.

Bayraqları necə yadda saxlamaq olar

Veliçkonun yekunu qısadır: -L uzaq xidməti yerli portda açır, -R yerli xidməti uzaq portda, -D yerli SOCKS proxy-dir, hədəfsiz -R isə serverdə proxy-dir. Mnemonika: ssh -L local:remote və ssh -R remote:local — yeni portu həmişə sol tərəf açı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.