Tunnel traffic yum melalui server lain via ssh

10

Saya menjalankan desktop Fedora di belakang proxy perusahaan yang memblokir yumlalu lintas (khusus *.gzdan *.bz2). Saya memiliki akses ke mesin RedHat terpisah melalui ssh yang dapat mengunduh apa pun yang disukainya.

Ketika saya melakukannya yum updatedan perintah yum lainnya: Apakah mungkin untuk mengarahkan lalu lintas itu ke mesin RedHat untuk melakukan unduhan untuk saya? Saya tidak memiliki akses root pada mesin RedHat tetapi saya bisa masuk dan menggunakan wget untuk mengunduh file. Jika ya, bagaimana caranya?

Jax
sumber

Jawaban:

21

Solusi saya mirip dengan @ slm tetapi saya menggunakan SOCKS sebagai gantinya lebih sederhana dan tidak memerlukan instalasi proxy di server atau klien.

Jalankan semua perintah di komputer dengan akses terbatas.

di yum.confatur proxy sebagai berikut

proxy=socks5h://localhost:1080

dari jenis terminal

ssh -D 1080 YOUR_USER@YOUR_SERVER_WITH_FULL_WEB_ACCESS

tekan enter dan ketikkan kata sandi Anda.

sekarang, di terminal terpisah (bukan ssh) jenis

yum update
Jax
sumber
1
Saya sudah mencoba menggunakan pengaturan proxy socks5h di yum.conf, tetapi yum mengeluh bahwa ini bukan http, https atau ftp. (menggunakan Centos6)
gnac
Solusi saya bekerja dengan Fedora 20 & 21. Cent dan Fedora memiliki distribusi yang sama sehingga agak aneh tidak berfungsi.
Jax
Hai, perintah ssh yang Anda sebutkan harus dijalankan di komputer dengan akses terbatas, bukan? Jika ya, saya ingin tahu bagaimana firewall tidak akan memblokir dan menyebabkan kesalahan seperti "ssh: sambungkan ke host YOUR_SERVER_WITH_FULL_WEB_ACCESS port 22: Tidak ada rute ke host". YOUR_SERVER_WITH_FULL_WEB_ACCESS dapat dijangkau dari mesin terbatas?
Hei
@ Hai ya, "YOUR_SERVER_WITH_FULL_WEB_ACCESS" perlu dapat diakses dari mesin Anda. Dalam kasus saya - internet saya dibatasi secara lokal.
Jax
4

Anda harus dapat mem-proxy lalu lintas YUM melalui koneksi SSH seperti:

  1. tambahkan ke /etc/yum.confpada server yang dilindungi:

    proxy=http://127.0.0.1:8080
    
  2. dari server dengan akses ssh masuk / keluar yang normal:

    $ ssh -R 8080:ssh.server:8080 [email protected]
    
  3. Di server tempat Anda ingin menjalankan perintah YUM:

    $ yum update
    

Referensi

slm
sumber
Saya hanya perlu klarifikasi. (Saya akan merujuk ke desktop Fedora saya sebagai desktopdan server RedHat dengan akses unduh penuh sebagai server). Jadi saya kira saya perlu melakukan proxy=http://127.0.0.1:8080pada saya desktopkarena ini adalah komputer yang membutuhkan pembaruan yum dan juga ssh -R 8080:ssh.server:8080 [email protected]pada saya desktop. Di mana serverkonfigurasi datang ke ini atau tidak ada?
Jax
2
Anda melewatkan langkah menjalankan proxy HTTP yang mendengarkan pada port 8080 aktif ssh.server.
Gilles 'SO- stop being evil'
@Gilles, saya perlu proxy di desktopatau server? Jika tidak ada server saya tidak dapat menginstalnya karena saya tidak memiliki akses root
jax
@jax Anda harus menjalankan proxy pada mesin dengan koneksi Internet. Anda tidak perlu menjalankannya sebagai root. Tinyproxy mudah diatur (ada banyak alternatif).
Gilles 'SO- stop being evil'
@ Gilles, saya telah menemukan di tempat lain bahwa Anda dapat membuat proxy Socks yang tampaknya merutekan lalu lintas TCP secara otomatis. ssh -D 8888 user@serverpada desktop, maka Anda harus memberitahu yum untuk menggunakan server ini proxy=socks5h://localhost:8888. Jadi bisakah Anda melihat masalah dengan ini? Itu berarti saya tidak perlu menginstal apa pun pada mesin server yang ideal dalam kasus saya karena ini adalah mesin bersama. Saya tidak akan bisa mengujinya hingga Senin.
Jax