cara ssh dua komputer di belakang NAT dan Firewall, tanpa komputer ketiga


9

Saya mencoba ssh ke kotak Linux saya di rumah. Rumah saya adalah lingkungan bergaya asrama - NAT dan Firewall dengan laptop pribadi yang menjalankan Arch Linux. Pekerjaan saya adalah gaya korporat Windows 7 - NAT dan firewall proksi, tidak ada hak admin.

Saya dapat menghubungkan dua Team Viewer yang berjalan portabel. Namun, ini tidak sesuai dengan apa yang sebenarnya saya cari. Saya mencari SSH ke dalam kotak Linux saya di rumah, meninggalkan kotak Linux saya logout sepenuhnya - pada dasarnya tanpa kepala ketika saya tidak ada di sana.

Saya sudah membaca tentang tunneling, namun jika saya mengerti tunneling dengan benar, saya memerlukan server pihak ke-3 yang dapat terhubung oleh kedua komputer. Saya tidak punya server seperti itu dan tidak ingin membayar untuk hal seperti itu juga.


Apa solusi sederhana dan aman untuk SSH'ing ke laptop saya dari kantor? Apakah ada 'server ketiga' yang gratis dan aman? Saya telah naik dan turun Google, tetapi tampaknya semakin dan semakin bingung.


2
Apakah Anda memiliki akses ke router? Anda biasanya perlu menyesuaikan pengaturan NAT untuk mengarahkan alamat IP publik Anda di server SSH internal Anda untuk melakukan sesuatu seperti ini.
jmreicha

Tidak, saya tidak memiliki akses router dan tidak dapat menyesuaikan pengaturan NAT.
user1026169

Maka dalam hal ini Anda mungkin harus proxy melalui server ketiga untuk terhubung jika opsi Penampil Tim tidak akan berfungsi.
jmreicha

siapa yang menyediakan server yang bisa saya gunakan hanya sebagai proxy untuk ssh?
user1026169

Saya yakin VPS berbasis cloud akan melakukan trik.
jmreicha

Jawaban:


16

pwnat adalah alat open-source yang seharusnya mengatasi masalah ini. Ia mengatakan :

pwnat adalah alat yang memungkinkan sejumlah klien di belakang NAT untuk berkomunikasi dengan server di belakang NAT terpisah tanpa port forwarding dan tidak ada pengaturan DMZ pada router apa pun untuk berkomunikasi secara langsung satu sama lain. Server tidak perlu tahu apa-apa tentang klien yang mencoba terhubung.

Tidak ada perantara, tidak ada proxy, tidak ada pihak ke-3, tidak ada UPnP / STUN / ICE diperlukan, tidak ada spoofing, dan tidak ada trik DNS.

Lebih penting lagi, klien kemudian dapat terhubung ke host atau port apa pun pada host jarak jauh atau ke host dan port tetap yang ditentukan oleh server.

pwnat membangun jenis koneksi ini:

Mesin A (IP: 192.168.1.3) -> NAT A (IP: 122.xxx) -> Internet -> NAT B (IP: 59.xxx) -> Mesin B (192.168.2.10)

pwnat hanya didistribusikan untuk Linux, tetapi artikel PWNAT: Windows Complied Version berisi versi Windows . Lihat juga, oleh penulis yang sama PWNAT: Contoh .

Metode yang digunakan oleh pwnat luar biasa pintar, tetapi tidak ada jaminan bahwa itu akan bekerja dengan lingkungan Anda.


1
Catatan: pwnat tergantung pada ICMP untuk bekerja. Secara khusus, gema icmp dan Waktu melebihi pesan. Ini berfungsi karena ICMP tidak memiliki kewarganegaraan.
shadowbq

Tidak bekerja untuk saya. Router NAT tidak cukup pintar untuk mengimplementasikan standar, juga tidak cukup pintar untuk memahami penulis pwnat. +1 masih untuk kepintaran.
kuantum

Saya juga mencoba pwnat tanpa hasil. Tapi mungkin saja ada yang salah dalam konfigurasi saya. Adakah orang yang sukses yang dapat memberikan dukungan?
robguinness

5

Saya pribadi berpikir bahwa tunneling adalah pilihan terbaik Anda, meskipun Anda belum memiliki server ketiga.

Amazon EC2 menawarkan opsi penetapan harga Tier Gratis yang memungkinkan pelanggan baru menjalankan mesin virtual Linux / Windows hingga 750 jam / bulan, gratis, selama satu tahun. Saya belum pernah menggunakan layanan ini tetapi berasumsi bahwa jika Anda hanya menjalankan server virtual saat dibutuhkan, Anda mendapatkan terowongan SSH dan berjalan secara gratis. Anda bahkan mungkin menemukan layanan yang cukup murah untuk menjamin pembayaran?

Hak5 menghasilkan pengenalan yang baik untuk tunneling (dengan kegigihan). Anda juga dapat mengatur skrip terpicu CRON untuk mencoba koneksi ke server virtual sehingga Anda memiliki akses ke laptop dalam beberapa menit setelah memulai instance EC2 ...


Terima kasih, saya menemukan VPS gratis dengan bantuan dari beberapa forum.
user1026169

1
Perhatikan juga, 750 jam adalah 31,25 hari ... Jadi pada dasarnya Anda mendapatkan satu t2.microcontoh gratis, selama setahun.
Attie

3

Opsi terbaik adalah mengatur penerusan port jika Anda bisa, tetapi jika kampus Anda melakukan firewall dan Anda tidak dapat melakukan port forwarding sendiri maka gunakan saran ini.

Ya, ada server ke-3 gratis, dan Anda sudah menggunakannya, TeamViewer. Pastikan Anda menginstal TeamViewer sebagai layanan (atau apa pun yang setara untuk Linux, saya hanya menggunakan versi windows). Kemudian instal driver VPN di tempat kerja dan di rumah. Anda kemudian dapat terhubung menggunakan VPN dari kantor dan mesin di rumah Anda akan memiliki alamat ip 7.xxx. Kemudian jika Anda ingin masuk ke sesi terminal, jalankan SSH melalui tautan VPN.

Opsi instal VPN berada di bawah pengaturan lanjutan. masukkan deskripsi gambar di sini

Itu akan menambahkan opsi "VPN" untuk jenis koneksi yang dapat Anda lakukan. masukkan deskripsi gambar di sini


1
Terima kasih banyak atas bantuan terperinci dan tangkapan layar. Saya menggunakan portable TeamViewer, dan tidak memiliki hak admin. Opsi VPN berwarna abu-abu dan saya tidak bisa menggunakannya.
user1026169

1

Anda seharusnya dapat mengatur port forwarding (port 22) pada router / firewall rumah Anda. Dan kemudian terhubung ke alamat ip publik rumah Anda ketika Anda sedang bekerja. Anda dapat menggunakan sesuatu seperti dyndns jika Anda tidak memiliki ip publik statis di rumah.


Penerusan port tidak dimungkinkan pada salah satu komputer saya karena jaringan yang melayani mereka. Saya tidak memiliki pengaturan ip, namun tidak ada port yang dapat saya gunakan untuk menghubungkan mesin.
user1026169

0

Anda dapat menggunakan server XMPP / Tox publik sebagai "server ketiga". Yaitu, ada proyek seperti Tuntox dan PPPoAT (PPP over Any Transport), yang menggunakan protokol pesan instan ini sebagai lapisan transport.

Saya sudah mencoba PPPoAT, yang mendukung XMPP dan, tidak seperti PWNAT, mekanisme ini memang bekerja untuk saya.

Untuk menggunakannya, Anda memerlukan dua akun XMPP di sembarang server publik - satu untuk server yang ingin Anda masuki, satu lagi untuk klien Anda. Setelah Anda mulai pppoatdi server, lalu pada klien (keduanya dengan parameter konfigurasi yang sesuai), Anda dapat segera memulai koneksi seperti mis

ssh username@10.0.0.2

Ini akan lebih lambat daripada koneksi langsung, tentu saja, dan kecepatan kemungkinan besar akan tergantung pada server XMPP yang Anda pilih, tetapi untuk aktivitas konsol normal itu cukup baik.

Sedangkan untuk keamanan, SSH dapat bekerja di jaringan yang benar-benar tidak aman, karena sudah mengimplementasikan enkripsi sendiri, jadi apakah koneksi berbasis XMPP aman sebenarnya tidak relevan ketika Anda menggunakan SSH.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.