Cara Tunneling atau Forwading adalah >>
Bagaimana melakukan SSH Tunneling (Port Forwarding)
Dalam posting ini kita akan melihat bagaimana ssh bekerja?, Apa itu SSH tunneling? apa yang penting jaringan ssh dan cara men-setupjaringan ssh.
Ketika server SSH terinstal dalam mesin maka secara default yang diperbolehkan ssh tunneling.
SSH Tunneling (Port Forwarding)
Tunneling adalah konsep untuk merangkum protokol jaringan untuk protokol lain. di sini kita dimasukkan ke SSH. sehingga semua jaringan komunikasi akan dienkripsi. Hal ini juga disebut Port Forwarding. karena dalam ssh tunneling kita akan mengikat satu port lokal. jadi apa yang paket kita akan mengirim port tertentu, semua paket yang transparan mengenkripsi dan dikirim ke sistem remote.
Apa adalah kebutuhan untuk SSH Tunneling?
SSH cukup untuk administrate sistem remote. yang tidak cukup untuk mengakses semua layanan yang tersedia di sistem remote.
biarkan saya menjelaskan dalam skenario berikut,
sekarang mari kita mempertimbangkan skenario, System (192.168.56.101) adalah sistem saya its terhubung ke internet dan server disebut PrivateServer (192.168.56.102) Mesin memiliki dua antarmuka Ethernet. satu terhubung ke Internet. dan lain terhubung ke jaringan lokal 10.10.1.0/24. Intranet (10.10.1.11) Mesin merupakan bagian dari sub jaringan 10.10.1.0/24.
Catatan: di sini saya sebutkan sistem lokal (192.168.56.101) dan sistem remote (192.168.56.102) yang tampak seperti alamat IP sub-jaringan lokal. Untuk tujuan VM saya menggunakan alamat IP ini. Tetapi kenyataannya adalah harus ada alamat IP publik.
Catatan Penting: layanan SSH Server daemon berjalan di port 22 di semua ketiga sistem dan firewall diperbolehkan untuk menghubungkan sistem ini menggunakan SSH client.
sekarang System (192.168.56.101) dapat berkomunikasi dengan PrivateServer (192.168.56.102), karena kedua sistem yang terhubung ke internet secara langsung. Tapi System (192.168.56.101) tidak dapat berkomunikasi ke Intranet (10.10.1.11) mesin, karena dari System (192.168.56.101) perspektif 10.10.1.11 adalah rute alamat IP non mampu. 10.10.1.11 bukan alamat IP publik, alamat IP lokal. jadi kita tidak bisa rutekan paket secara langsung.
Cara Tunneling, Sekarang situasi seperti itu dari System (192.168.56.101) saya ingin mengakses Intranet (10.10.1.11) mesin. tanpa memodifikasi tabel IP, redirect, seperti alat-alat / jasa di menengah (atau) mesin target. Karena im tidak sys-admin, jadi saya tidak memiliki hak istimewa root.
Salah satu solusi yang mungkin pertama kali menggunakan ssh untuk login ke PrivateServer (192.168.56.102) dan kemudian lagi (bersarang) masuk ke Intranet (10.10.1.11). Ya ide yang baik, pekerjaannya, sekarang saya bisa jarak jauh administrate Intranet (10.10.1.11). tetapi jika Intranet (10.10.1.11) menawarkan beberapa layanan seperti VNC, Apache httpd, smtp, pop3, squid proxy yang lalu bagaimana kita bisa mengakses layanan ini dari System (192.168.56.101)?
di sini yang tidak ketat Intranet (10.10.1.11) menawarkan layanan ini, mungkin sub net 10.10.1.0/24 salah satu dari mesin dapat menawarkan layanan ini. Bahkan di 10.10.1.0/24 sub-net memiliki satu intranet-situs. bagaimana kita bisa mengakses situs ini dari System (192.168.56.101) Mesin Firefox?
Solusinya adalah SSH Tunneling SSH atau Port Forwarding
Bagaimana SSH Bekerja
Di terminal ketika kita mengetikkan ssh ramki@Private-Server.org maka aplikasi terminal memanggil klien ssh, ssh client terhubung ke Swasta-Server.org 's server SSH di port 22. maka kedua klien dan server pertukaran identitas, kunci publik, cipher informasi suite dan membuat satu proses shell di sisi server. maka saluran aman didirikan antara klien dan server. maka masa depan semua perintah dari 192.168.101 yang melalui saluran ini aman ke server (192.168.56.102) dan mengeksekusi perintah dan respon yang kembali dalam saluran aman yang sama.
Misalnya setelah mendirikan ssh, saya akan mengeluarkan perintah ls. perintah ls pergi ke klien SSH maka perintah merangkum dan dienkripsi kemudian kirim ke server. Server mendekripsi dan ekstrak perintah dan jalankan perintah di shell (yang dibuat ketika ssh didirikan), output dari perintah ls tidak dicetak di shell. Its redirect output ke klien SSH di saluran aman yang sama dan mengikuti prosedur yang sama (merangkum dan mengenkripsi). dan akhirnya aplikasi Terminal menunjukkan output dari perintah ls.
Saya pikir di sini semua perintah dikodekan Base64 encoding sebelum mengirim ke server dan sebelum mengenkripsi. (Tapi saya tidak yakin)
di sini sangat penting diperhatikan bahwa SSH tidak mengganggu port selain 22 (atau yang ssh port server berjalan).
SSH Tunneling
SSH dapat bekerja banyak channel secara simultan. Dalam kasus normal kita menggunakan saluran shell. Tapi sekarang kita akan menggunakan saluran data. sehingga konsep dasar adalah, dalam 192.168.56.101 mesin ssh client mengikat satu port dan melakukan koneksi aman dengan server yang (192.168.56.102). dan menciptakan satu saluran data dan saluran shell. (Kita dapat menghilangkan channel shell menggunakan opsi-N dalam perintah ssh).
Sekarang Dalam sistem mesin (192.168.56.101) aplikasi apapun mengirim data ke port (yang satu klien ssh adalah mengikat), maka klien ssh transparan menerima data dan mengenkripsi dan dikirim ke mesin server. Dalam Server (192.168.56.102) menerima dan mendekripsi itu dan membuat panggilan lokal. (Kita bahas nanti)
Jenis SSH Tunneling
SSH menawarkan tiga jenis tunneling
Dinamis Tunneling (SOCKS proxy)
Port Forwarding Lokal
Jauh Port Forwarding
Cara Tunneling -Dinamis Tunneling
Perintah: ssh-D 8080 ramki@192.168.56.102
sini-D 8080 yang menyebutkan SOCKS v5 Proxy mengikat 8080 pelabuhan di sisi client
Sekarang klien ssh 192.168.56.101 mesin membuat satu SOCKS proxy server di sisi client dan mengikat satu port.then lokal terhubung ke 192.168.56.102 mesin remote dan membangun saluran aman.
Sekarang semua aplikasi client seperti Firefox, krom, ... perlu mengkonfigurasi pengaturan proxy untuk SOCKS server proxy localhost dan nomor port. (Cek video untuk referensi di bawah posting)
Catatan: mempertimbangkan Server (192.168.56.102) dan Intranet (10.10.1.11) kedua mesin menjalankan httpd Apache server dan mengikat port 80
Setelah konfigurasi selesai,
di Firefox sekarang jenis http://localhost/, kita tahu bahwa di komputer klien (192.168.56.101) tidak ada layanan berjalan di port 80. tapi ketika kita tekan enter di browser, kita dapat melihat website mesin server (192.168.56.102).
Bagaimana Cara Tunneling kita bisa mengakses situs server menggunakan http://localhost/ di mesin klien?
kita mengkonfigurasi proxy di browser. sehingga browser mengirim semua permintaan HTTP (bahkan localhost anf 127.0.0.1) ke port 8080, di sini SOCKS proxy berjalan di port tersebut. Kemudian kaus kaki proxy server paket permintaan HTTP untuk ssh klien dan mengenkripsi dan mengirim ke server. Server mendekripsi dan ekstrak Permintaan HTTP. Sekarang di sisi server permintaan http://localhost/ HTTP adalah titik ke mesin server sendiri. sehingga server memanggil permintaan. Jika layanan apapun berjalan di port 80, disebut dan respon adalah mengirim kembali ke klien menggunakan saluran aman yang sama. sehingga browser menunjukkan server Web di sisi client.
Kita tahu bahwa dari mesin klien (192.168.56.101), alamat IP 10.10.1.11 non routable. tapi sekarang jika kita mengeluarkan http://10.10.1.11/ di browser Firefox, yang menunjukkan 10.10.1.11 Apache server Web.
Keuntungan:
Satu server proxy sudah cukup untuk mengakses semua layanan dari mesin remote dan layanan sub-bersih
Kerugian:
Kita perlu mengkonfigurasi pengaturan proxy di aplikasi client, Jika aplikasi tidak mendukung proxy maka kita tidak bisa mengakses layanan tersebut.
Port Forwarding Lokal
Perintah: ssh-L 8000: localhost: 80 ramki@192.168.56.102
di sini adalah sintaks-L <local port>: <remote hostname>: <remote port> layanan
jadi ketika kita mengeksekusi perintah, pelabuhan mengikat nya 8000 di sisi client. sekarang apa yang permintaan kirim ke port 6000 redirect ke ssh client, kemudian mengenkripsi dan kirim ke mesin server. sekarang server yang langsung menyampaikan data ke port 80.
Dalam terowongan dinamis, server memeriksa paket dan memutuskan di mana kita perlu mengirim paket, misalnya http://localhost/ maka yang kirim ke 80, smtp lalu kirim ke 25. Tapi dalam port lokal selalu mengirim ke port tunggal yang satu kami menyebutkan selama setup port forwarding lokal <remote hostname>: layanan <remote port>
kali ini di Firefox tidak perlu mengkonfigurasi proxy, jelas proxy (jika ada yang)
dan ketik address bar http://localhost:8000/
maka permintaan HTTP akan port lokal 8000, maka yang mengarahkan dan mengirim ke server. Server langsung mengirim ke port 80. (Yang berbasis pada <remote hostname>: layanan <remote port>, di sini sekarang localhost: 80)
Jika u ingin mengakses layanan mesin 10.10.1.11 http maka kita perlu setup baru port forwarding lokal.
kita tidak bisa menggunakan port forwarding sebelumnya. karena yang lama selalu menunjuk ke localhost: 80.
Perintah: ssh-L 8000:10.10.1.11:80 ramki@192.168.56.102
sekarang sisi client port lokal 8000 diarahkan ke mesin 10.10.1.11:80 melalui 192.168.56.102.
Di Firefox menggunakan http://localhost:8080/ kita dapat mengakses layanan mesin 10.10.1.11 http.
(Untuk referensi lebih lanjut cek video di bawah ini. Dalam video saya menunjukkan bagaimana untuk mengakses remote desktop menggunakan VNC)
Keuntungan:
tidak perlu mengkonfigurasi pengaturan proxy yang
Kerugian:
Setiap layanan yang kami butuhkan untuk setup yang berbeda port forwarding lokal, (yaitu misalnya, 2 port forwarding diperlukan untuk mendapatkan 192.168.56.102 dan 10.10.1.11 layanan http)
Remote Port Forwarding
Remote port forwarding sama seperti Cara Tunneling / port forwarding lokal. tapi kali ini kita perlu mengatur port forwarding di sisi server (192.168.56.102), bukan sisi client
Perintah: ssh-R 8000: localhost: 80 ramki@192.168.56.101
Perubahan yang sangat penting adalah dari server kami akan menghubungkan klien, sehingga ramki@192.168.56.101 sini 192.168.56.101 yang tidak 102.
ketika kita menjalankan perintah ini yang terhubung ke klien dan menciptakan 8000 pelabuhan di sisi client (bukan sisi server).
sebagai klien biasa menggunakan port lokal 8000 untuk menghubungkan server. seperti port forwarding lokal.
Mengapa remote Port Forwarding adalah Penting?
Yang jarang digunakan, ketika kita bekerja mesin. Mesin yang berada di dalam NAT. sehingga dari luar tidak ada yang bisa mengaksesnya. situasi semacam itu secara fisik mengakses mesin dan menghubungkan kembali ke sistem klien kami (192.168.56.101) dengan menggunakan port remote ke depan. kemudian dari mesin klien kita dapat mengakses layanan. (Yang tampaknya menjadi sedikit membingungkan, tapi sederhana)
Cara Tunneling Pada Windows
Dalam mesin windows jika ingin menjalankan ssh server maka ada banyak server ssh tersedia WinSSHD freeSSHd, openssh. Jika kita ingin hanya klien ssh maka kita bisa menggunakan Putty.
misalkan di System (192.168.56.101) saya menggunakan Windows maka bagaimana kita mengakses ssh tunneling.
membuka dempul dan ketik ramki@192.168.56.102 host dan pilih Connection-> SSH-> Terowongan (lihat gambar), kemudian ketik 8080 di port sumber dan pilih Dinamis, jika u ingin terowongan dinamis (Its sama-D 8080 di opsi perintah)
Jika kita ingin port forwarding lokal kemudian menempatkan setiap 6000 port yang tidak digunakan di port sumber dan tujuan adalah localhost: 80 dan pilih Lokal. (Yang sama-L 6000: localhost: 80)
Jika u ingin mengakses 10.10.1.11 mesin remote desktop kemudian membuat port lokal ke depan (lihat gambar diatas) dan tujuan adalah 10.10.1.11:5900 sini 5900 adalah port yang digunakan oleh server vnc. kemudian menggunakan klien vnc (di sini saya menggunakan tightvnc client) untuk menghubungkan ur 6000 port lokal
jadi menyebutkan localhost :: 6000, di sini kita perlu menyebutkan usus ganda ::, karena di pelabuhan vnc client tidak ditentukan dengan cara ini. (Periksa video)
Bypass Firewall
Konsep Tunnel SSH ini dapat digunakan untuk melewati firewall. memungkinkan mempertimbangkan skenario. Di sisi server firewall memungkinkan dan beberapa layanan yang berjalan dan layanan ini dapat mengakses melalui localhost atau mesin yang sama. tapi u tidak dapat mengakses melalui mesin remote. karena firewall memblokir semua port kecuali ssh port (22).
situasi seperti ini kita menggunakan terowongan dan hampir semua layanan dapat diakses dari luar. karena firewall berbasis aturan. Dalam perspektif firewall semua lalu lintas berjalan melalui port 22. jadi diperbolehkan. tetapi secara internal kami membuat terowongan dan mengakses semua layanan.
Bagaimana mencegah Tunnel SSH
Buka server config ssh file / etc / ssh / sshd_config kemudian mengatur parameter
AllowTcpForwarding ada
kemudian restart layanan ssh. maka mereka tidak memungkinkan layanan terowongan ssh, tapi masih bisa kita mengakses layanan ssh shell.
Tapi dalam halaman manual ssh mereka jelas disebutkan
"Perhatikan bahwa menonaktifkan TCP forwarding tidak meningkatkan keamanan kecuali pengguna juga diberi akses shell, karena mereka selalu dapat menginstal forwarders mereka sendiri."
jadi masih bisa kita gunakan menggunakan terowongan ssh meskipun kami menetapkan AllowTcpForwarding ada. (Aku akan menunjukkan di posting berikutnya)
Kami rasa uraian Cara Tunneling sudah jelas, mungkin ada saran lain yang lebih baik ?
Tidak ada komentar:
Posting Komentar