GNU/Linux >> Belajar Linux >  >> Linux

Akses SSH ke host kantor di belakang router NAT

[email protected]$ autossh -R 12345:localhost:22 [email protected]

Nanti:

[email protected]$ autossh -L 23456:localhost:12345 [email protected]

[email protected]$ ssh [email protected] -p 23456

Apa yang dapat Anda lakukan adalah ini:pada langkah 1 meneruskan port jarak jauh dari PC kantor ke server (12345 digunakan sebagai contoh, semua port>1024 harus melakukannya). Sekarang menghubungkan ke 12345 di server seharusnya menghubungkan Anda ke port 22 di officepc.

Pada langkah 2, teruskan port 23456 dari mesin rumah Anda ke 12345 di server (dari situ diteruskan ke officepc:22, seperti yang diatur pada langkah 1)

Pada langkah 3, Anda terhubung ke port lokal 23456 dengan login PC kantor Anda . Ini diteruskan dengan langkah 2 ke port 12345 di server Anda, dan dengan langkah 1 ke PC kantor Anda.

Perhatikan bahwa saya menggunakan autossh untuk penerusan, karena ini adalah pembungkus ssh yang secara otomatis menghubungkan kembali terowongan jika terputus; namun ssh normal juga akan berfungsi, selama koneksi tidak terputus.

Ada kemungkinan kerentanan:siapa pun yang dapat terhubung ke localhost:12345 di serverpc sekarang dapat terhubung ke officepc:22, dan mencoba meretasnya. (Perhatikan bahwa jika Anda menjalankan server SSH, Anda tetap harus mengamankannya di atas perlindungan dasar yang aktif secara default; saya sarankan setidaknya nonaktifkan login root dan nonaktifkan autentikasi sandi - lihat misalnya ini)

Edit :Saya telah memverifikasi ini dengan konfigurasi yang sama, dan berhasil. GatewayPorts no hanya memengaruhi pelabuhan yang terbuka untuk dunia luas, bukan terowongan lokal. Inilah port yang diteruskan:

homepc:
  outgoing ssh to serverpc:22
  listening localhost:23456 forwarded through ssh tunnel
serverpc:
  listening ssh at *:22
  incoming localhost ssh tunnel (from homepc) forwarded to localhost:12345
  listening localhost ssh tunnel (from officepc) forwarded from localhost:12345
officepc:
  outgoing ssh to serverpc:22
  incoming localhost through ssh tunnel (from serverpc) forwarded to localhost:22

Jadi, sejauh menyangkut tumpukan jaringan, itu semua lalu lintas lokal pada masing-masing antarmuka loopback (ditambah koneksi ssh ke serverpc); oleh karena itu, GatewayPorts tidak dicentang sama sekali.

Namun demikian, direktif AllowTcpForwarding :jika itu adalah no , penyiapan ini akan gagal karena tidak ada penerusan yang diizinkan sama sekali, bahkan di seluruh antarmuka loopback.

Peringatan :

  • jika menggunakan autossh dan ssh terbaru, Anda mungkin ingin menggunakan ServerAliveInterval ssh dan ServerAliveCountMax untuk menjaga terowongan tetap tinggi. Autossh memiliki pemeriksaan bawaan, tetapi tampaknya ada beberapa masalah di Fedora. -M0 nonaktifkan itu, dan -oServerAliveInterval=20 -oServerAliveCountMax=3 memeriksa apakah koneksi aktif - coba setiap 20 detik, jika gagal 3x berturut-turut, hentikan ssh (dan autossh membuat yang baru):

    autossh -M0 -R 12345:localhost:22 -oServerAliveInterval=20 -oServerAliveCountMax=3 [email protected]
    
    autossh -M0 -L 23456:localhost:12345 -oServerAliveInterval=20 -oServerAliveCountMax=3 [email protected]
    
  • mungkin berguna untuk memulai ulang terowongan ssh jika penerusan gagal, menggunakan -oExitOnForwardFailure=yes - jika port sudah terikat, Anda mungkin mendapatkan koneksi SSH yang berfungsi, tetapi tidak ada tunnel yang diteruskan.

  • menggunakan ~/.ssh/config untuk opsi (dan port) disarankan, jika tidak, baris perintah menjadi terlalu bertele-tele. Misalnya:

    Host fwdserverpc
        Hostname serverpc
        User notroot
        ServerAliveInterval 20
        ServerAliveCountMax 3
        ExitOnForwardFailure yes
        LocalForward 23456 localhost:12345
    

Kemudian Anda hanya dapat menggunakan alias server:

    autossh -M0 fwdserverpc

Jika Anda dapat ssh ke server internal dari rumah dan dari server internal ke mesin Linux kantor Anda, maka dari rumah Anda dapat menggunakan ssh ProxyCommand untuk memantul secara diam-diam melalui server ke mesin internal melalui nc (netcat)

# ~/.ssh/config on your home machine:
Host internalpc 
   ForwardAgent yes 
   ProxyCommand ssh [email protected] exec nc internal.pc.example.com %p

Maka Anda tinggal ssh [email protected] dan Anda diteruskan secara diam-diam melalui mesin server, tidak perlu membuka port atau terowongan di kedua ujungnya.


Instal Robo-TiTO di komputer yang ingin Anda akses SSH dari jarak jauh.

  • Ini akan memungkinkan Anda untuk mengakses SSH menggunakan dari Aplikasi Klien Google Talk di mana saja.
  • Tidak perlu alamat IP publik atau pengaturan khusus.
  • Ini Gratis dan Sumber Terbuka, Tidak Membayar layanan aplikasi apa pun lagi.
  • Tidak perlu membuka port SSH (menjaga keamanan komputer Anda).
  • Tidak perlu membuka tunneling apa pun (mis., VPN atau semacamnya)

Petunjuk penginstalan berikut sudah usang, karena situs telah dipindahkan. URL baru adalah https://github.com/formigarafa/robotito

Saya membuat skrip (diuji pada OS Raspbian saya di Raspberry Pi) sehingga Anda dapat dengan mudah menginstal Robo-TiTO di Raspberry Pi, Debian atau Ubuntu Box (distribusi paket Debian). Ini adalah langkah-langkah untuk mendapatkan Linux Anda kotak remoteable:

  1. Buka Perintah Shell atau Anda dapat menyebutnya Terminal, buka folder rumah Anda, Unduh skrip pemasang dengan perintah:

    $ wget https://opengateway.googlecode.com/files/robotito
    
  2. setelah itu jalankan script dengan memasukkan perintah:

    $ sudo ./robotito
    
  3. dan kemudian Anda dapat mengedit file credentials.rb dari folder config Robo-TiTO menggunakan akun GTalk Anda dan simpan dengan menekan Ctrl +X dan Y . Standarnya menggunakan editor nano.

  4. menjalankan Robo-TiTO dari folder Robo-TiTO dengan perintah

    $ cd robotito
    $ ./jabbershd start
    
  5. Setelah selesai, Anda dapat menggunakan SSH dari klien Google Talk mana pun. Jangan lupa untuk menambahkan akun Robo-TiTO GTalk ke akun Google talk Anda dan mengujinya dengan saling mengobrol sebelum menggunakan akun tersebut.


Linux
  1. Ssh – Beberapa Entri Serupa Dalam Ssh Config?

  2. ssh melalui router tanpa port forwarding

  3. File rsync melalui host perantara

  1. Ssh – Bagaimana Menghindari Ssh Meminta Izin?

  2. Ssh – Pokoknya Untuk Memasukkan Sudo Ke Dalam Perintah Proxy Ssh?

  3. Batasi akses SSH berdasarkan alamat IP

  1. SSH:terhubung ke port host localhost 22:Koneksi ditolak

  2. ssh tunneling hanya akses

  3. Terowongan vpn akses jarak jauh SSH