Cara Menggunakan SSH Tunneling untuk Mengakses Pelayan Terhad dan Melayari dengan Selamat

Pelanggan SSH menyambung ke pelayan Secure Shell, yang membolehkan anda menjalankan perintah terminal seolah-olah anda sedang duduk di depan komputer lain. Tetapi pelanggan SSH juga membolehkan anda "terowong" port antara sistem tempatan anda dan pelayan SSH jauh.

Terdapat tiga jenis terowong SSH, dan semuanya digunakan untuk tujuan yang berbeza. Setiap melibatkan penggunaan pelayan SSH untuk mengarahkan lalu lintas dari satu port rangkaian ke port yang lain. Lalu lintas dihantar melalui sambungan SSH yang dienkripsi, sehingga tidak dapat dipantau atau diubah dalam perjalanan.

Anda boleh melakukan ini dengan ssharahan yang disertakan pada Linux, macOS, dan sistem operasi seperti UNIX yang lain. Pada Windows, yang tidak termasuk perintah ssh bawaan, kami mencadangkan alat percuma PuTTY untuk menyambung ke pelayan SSH. Ia juga menyokong terowong SSH.

Pemajuan Pelabuhan Tempatan: Jadikan Sumber Jauh Dapat Diakses di Sistem Tempatan Anda

"Pemajuan port tempatan" membolehkan anda mengakses sumber rangkaian tempatan yang tidak terdedah ke Internet. Sebagai contoh, katakan anda ingin mengakses pelayan pangkalan data di pejabat anda dari rumah anda. Atas sebab keselamatan, pelayan pangkalan data itu hanya dikonfigurasi untuk menerima sambungan dari rangkaian pejabat tempatan. Tetapi jika anda mempunyai akses ke pelayan SSH di pejabat, dan pelayan SSH membenarkan sambungan dari luar rangkaian pejabat, maka anda boleh menyambung ke pelayan SSH dari rumah dan mengakses pelayan pangkalan data seolah-olah anda berada di pejabat. Perkara ini sering berlaku, kerana lebih mudah untuk melindungi pelayan SSH tunggal daripada serangan daripada mendapatkan pelbagai sumber rangkaian yang berbeza.

Untuk melakukan ini, anda membuat sambungan SSH dengan pelayan SSH dan memberitahu klien untuk meneruskan lalu lintas dari port tertentu dari PC tempatan anda - misalnya, port 1234 - ke alamat pelayan pangkalan data dan portnya di rangkaian pejabat. Oleh itu, apabila anda cuba mengakses pelayan pangkalan data di port 1234 PC anda sekarang, "localhost", lalu lintas itu secara automatik "terowong" melalui sambungan SSH dan dihantar ke pelayan pangkalan data. Pelayan SSH berada di tengah, meneruskan lalu lintas berulang-alik. Anda boleh menggunakan baris perintah atau alat grafik untuk mengakses pelayan pangkalan data seolah-olah ia berjalan di PC tempatan anda.

Untuk menggunakan pemajuan tempatan, sambungkan ke pelayan SSH secara normal, tetapi berikan juga -Largumen. Sintaksnya adalah:

ssh -L local_port: remote_address: remote_port [email protected]

Sebagai contoh, katakan pelayan pangkalan data di pejabat anda terletak di 192.168.1.111 di rangkaian pejabat. Anda mempunyai akses ke pelayan SSH pejabat di ssh.youroffice.com, dan akaun pengguna anda di pelayan SSH adalah bob. Sekiranya demikian, arahan anda akan kelihatan seperti ini:

ssh -L 8888: 192.168.1.111: 1234 [email protected]

Setelah menjalankan perintah itu, anda dapat mengakses pelayan pangkalan data di port 8888 di localhost. Jadi, jika pelayan pangkalan data menawarkan akses web, anda boleh memasukkan // localhost: 8888 ke penyemak imbas web anda untuk mengaksesnya. Sekiranya anda mempunyai alat baris perintah yang memerlukan alamat rangkaian pangkalan data, anda akan mengarahkannya ke localhost: 8888. Semua lalu lintas yang dihantar ke port 8888 pada PC anda akan disalurkan ke 192.168.1.111.11234 di rangkaian pejabat anda.

Lebih membingungkan jika anda ingin menyambung ke aplikasi pelayan yang berjalan pada sistem yang sama dengan pelayan SSH itu sendiri. Sebagai contoh, katakan anda mempunyai pelayan SSH yang berjalan di port 22 di komputer pejabat anda, tetapi anda juga mempunyai pelayan pangkalan data yang berjalan di port 1234 pada sistem yang sama di alamat yang sama. Anda ingin mengakses pelayan pangkalan data dari rumah, tetapi sistem hanya menerima sambungan SSH pada port 22 dan firewallnya tidak membenarkan sambungan luaran lain.

Dalam kes ini, anda boleh menjalankan perintah seperti yang berikut:

ssh -L 8888: localhost: 1234 [email protected]

Apabila anda cuba mengakses pelayan pangkalan data di port 8888 pada PC semasa anda, lalu lintas akan dihantar melalui sambungan SSH. Apabila tiba di sistem yang menjalankan pelayan SSH, pelayan SSH akan menghantarnya ke port 1234 di "localhost", yang merupakan PC yang sama yang menjalankan pelayan SSH itu sendiri. Jadi "localhost" dalam perintah di atas bermaksud "localhost" dari perspektif pelayan jauh.

Untuk melakukan ini dalam aplikasi PuTTY pada Windows, pilih Sambungan> SSH> Terowong. Pilih pilihan "Tempatan". Untuk "Port Sumber", masukkan port tempatan. Untuk “Destination”, masukkan alamat dan port tujuan dalam bentuk remote_address: remote_port.

Contohnya, jika anda ingin menyiapkan terowong SSH yang sama seperti di atas, anda akan memasukkan 8888sebagai port sumber dan localhost:1234sebagai tujuan. Klik "Tambah" selepas itu dan kemudian klik "Buka" untuk membuka sambungan SSH. Anda juga perlu memasukkan alamat dan port pelayan SSH itu sendiri pada skrin "Sesi" utama sebelum menyambung, tentu saja.

Pemajuan Pelabuhan Jauh: Jadikan Sumber Tempatan Boleh Diakses pada Sistem Jauh

"Pemajuan port jauh" adalah kebalikan dari penerusan tempatan, dan tidak digunakan seperti biasa. Ini membolehkan anda membuat sumber pada PC tempatan anda tersedia di pelayan SSH. Sebagai contoh, katakan anda menjalankan pelayan web di PC tempatan yang anda duduki di hadapan. Tetapi PC anda berada di belakang firewall yang tidak membenarkan lalu lintas masuk ke perisian pelayan.

Dengan andaian anda dapat mengakses pelayan SSH jauh, anda boleh menyambung ke pelayan SSH dan menggunakan pemajuan port jauh. Pelanggan SSH anda akan memberitahu pelayan untuk meneruskan port tertentu — katakan, port 1234 — pada pelayan SSH ke alamat tertentu dan port pada PC atau rangkaian tempatan anda yang sekarang. Apabila seseorang mengakses port 1234 pada pelayan SSH, lalu lintas itu secara automatik akan "terowong" melalui sambungan SSH. Sesiapa yang mempunyai akses ke pelayan SSH akan dapat mengakses pelayan web yang berjalan di PC anda. Ini adalah cara yang berkesan untuk membuat terowong melalui firewall.

Untuk menggunakan penerusan jarak jauh, gunakan sshperintah dengan -Rargumen. Sintaksnya hampir sama dengan penerusan tempatan:

ssh -R remote_port: local_address: local_port [email protected]

Katakan anda mahu membuat aplikasi pelayan mendengarkan di port 1234 pada PC tempatan anda tersedia di port 8888 pada pelayan SSH jauh. Alamat pelayan SSH adalah ssh.youroffice.comdan nama pengguna anda di pelayan SSH adalah bob . Anda akan menjalankan arahan berikut:

ssh -R 8888: localhost: 1234 [email protected]

Seseorang kemudian dapat menyambung ke pelayan SSH di port 8888 dan sambungan itu akan disambungkan ke aplikasi pelayan yang berjalan di port 1234 pada PC tempatan tempat anda membuat sambungan.

Untuk melakukan ini di PuTTY pada Windows, pilih Sambungan> SSH> Terowong. Pilih pilihan "Jauh". Untuk "Port Sumber", masukkan port jauh. Untuk "Destinasi", masukkan alamat dan port tujuan dalam bentuk local_address: local_port.

Sebagai contoh, jika anda ingin menetapkan contoh di atas, anda akan memasukkan 8888sebagai port sumber dan localhost:1234sebagai tujuan. Klik "Tambah" selepas itu dan kemudian klik "Buka" untuk membuka sambungan SSH. Anda juga perlu memasukkan alamat dan port pelayan SSH itu sendiri pada skrin "Sesi" utama sebelum menyambung, tentu saja.

Orang kemudian boleh menyambung ke port 8888 pada pelayan SSH dan lalu lintas mereka akan disalurkan ke port 1234 pada sistem tempatan anda.

Secara lalai, pelayan SSH jauh hanya akan mendengar sambungan dari hos yang sama. Dengan kata lain, hanya orang yang berada di sistem yang sama dengan pelayan SSH itu sendiri yang dapat berhubung. Ini atas sebab keselamatan. Anda perlu mengaktifkan pilihan "GatewayPorts" di sshd_config pada pelayan SSH jauh jika anda ingin mengatasi tingkah laku ini.

Pemajuan Port Dinamik: Gunakan Pelayan SSH Anda sebagai Proksi

BERKAITAN: Apakah Perbezaan Antara VPN dan Proksi?

Terdapat juga "pemajuan port dinamik", yang berfungsi sama dengan proksi atau VPN. Pelanggan SSH akan membuat proksi SOCKS yang anda boleh konfigurasikan aplikasi untuk digunakan. Semua trafik yang dihantar melalui proksi akan dihantar melalui pelayan SSH. Ini serupa dengan penerusan tempatan — memerlukan lalu lintas tempatan yang dihantar ke port tertentu di PC anda dan mengirimkannya melalui sambungan SSH ke lokasi terpencil.

BERKAITAN: Mengapa Menggunakan Rangkaian Wi-Fi Awam Boleh Berbahaya, Walaupun Semasa Mengakses Laman Web Yang Dienkripsi

Sebagai contoh, katakan anda menggunakan rangkaian Wi-Fi awam. Anda mahu menyemak imbas dengan selamat tanpa diintai. Sekiranya anda mempunyai akses ke pelayan SSH di rumah, anda boleh menyambung ke sana dan menggunakan pemajuan port dinamik. Pelanggan SSH akan membuat proksi SOCKS pada PC anda. Semua lalu lintas yang dihantar ke proksi tersebut akan dihantar melalui sambungan pelayan SSH. Tidak ada yang mengawasi rangkaian Wi-Fi awam yang dapat memantau penyemakan imbas anda atau menapis laman web yang dapat anda akses. Dari perspektif mana-mana laman web yang anda lawati, ia seolah-olah anda duduk di depan PC anda di rumah. Ini juga bermaksud anda boleh menggunakan tipu daya ini untuk mengakses laman web AS sahaja semasa berada di luar AS — dengan andaian anda mempunyai akses ke pelayan SSH di AS, tentu saja.

Sebagai contoh lain, anda mungkin ingin mengakses aplikasi pelayan media yang anda miliki di rangkaian rumah anda. Atas sebab keselamatan, anda mungkin hanya mempunyai pelayan SSH yang terdedah ke Internet. Anda tidak membenarkan sambungan masuk dari Internet ke aplikasi pelayan media anda. Anda boleh mengatur penerusan port dinamik, mengkonfigurasi penyemak imbas web untuk menggunakan proksi SOCKS, dan kemudian mengakses pelayan yang berjalan di rangkaian rumah anda melalui penyemak imbas web seolah-olah anda sedang duduk di depan sistem SSH anda di rumah. Sebagai contoh, jika pelayan media anda berada di port 192.168.1.123 di rangkaian rumah anda, anda boleh memasukkan alamat 192.168.1.123ke aplikasi apa pun menggunakan proksi SOCKS dan anda akan mengakses pelayan media seolah-olah anda berada di rangkaian rumah anda.

Untuk menggunakan penerusan dinamik, jalankan perintah ssh dengan -Dargumen, seperti:

ssh -D local_port [email protected]

Sebagai contoh, katakan anda mempunyai akses ke pelayan SSH ssh.yourhome.comdan nama pengguna anda di pelayan SSH adalah bob. Anda ingin menggunakan pemajuan dinamik untuk membuka proksi SOCKS di port 8888 pada PC semasa. Anda akan menjalankan arahan berikut:

ssh -D 8888 [email protected]

Anda kemudian boleh mengkonfigurasi penyemak imbas web atau aplikasi lain untuk menggunakan alamat IP tempatan anda (127.0.01) dan port 8888. Semua lalu lintas dari aplikasi itu akan diarahkan melalui terowong.

Untuk melakukan ini di PuTTY pada Windows, pilih Sambungan> SSH> Terowong. Pilih pilihan "Dinamik". Untuk "Port Sumber", masukkan port tempatan.

Sebagai contoh, jika anda ingin membuat proksi SOCKS pada port 8888, anda akan memasukkan 8888sebagai port sumber. Klik "Tambah" selepas itu dan kemudian klik "Buka" untuk membuka sambungan SSH. Anda juga perlu memasukkan alamat dan port pelayan SSH itu sendiri pada skrin "Sesi" utama sebelum menyambung, tentu saja.

Anda kemudian dapat mengkonfigurasi aplikasi untuk mengakses proksi SOCKS pada PC tempatan anda (iaitu, alamat IP 127.0.0.1, yang menunjuk ke PC tempatan anda) dan menentukan port yang betul.

BERKAITAN: Cara Mengkonfigurasi Pelayan Proksi di Firefox

Sebagai contoh, anda boleh mengkonfigurasi Firefox untuk menggunakan proksi SOCKS. Ini sangat berguna kerana Firefox boleh mempunyai tetapan proksi sendiri dan tidak perlu menggunakan tetapan proksi seluruh sistem. Firefox akan menghantar lalu lintas melalui terowong SSH, sementara aplikasi lain akan menggunakan sambungan Internet anda secara normal.

Ketika melakukan ini di Firefox, pilih "Konfigurasi proksi manual", masukkan "127.0.0.1" ke dalam kotak host SOCKS, dan masukkan port dinamik ke dalam kotak "Port". Biarkan kotak Proksi HTTP, Proksi SSL, dan Proksi FTP kosong.

Terowong akan tetap aktif dan terbuka selagi anda mempunyai sambungan sesi SSH yang terbuka. Apabila anda mengakhiri sesi SSH dan memutuskan sambungan dari pelayan, terowong juga akan ditutup. Cukup sambung semula dengan arahan yang sesuai (atau pilihan yang sesuai di PuTTY) untuk membuka semula terowong.