Kung Fu Style Linux: VPN gratis melalui SSH

Jika Anda melihat banyak iklan spanduk di beberapa situs, Anda tahu bahwa jika Anda tidak menggunakan VPN (Jaringan Pribadi Virtual), peretas akan segera mengambil alih dan menghancurkan komputer Anda dan membakar rumah Anda. Yah, setidaknya mereka pasti merencanakan sesuatu seperti itu. Faktanya, ada dua alasan utama mengapa seseorang membutuhkan koneksi VPN. Anda tentu saja dapat membeli langganan ke layanan yang sesuai, tetapi jika Anda memiliki akses SSH ke komputer mana pun dengan akses Internet, ini berarti Anda dapat membuat layanan VPN Anda sendiri tanpa mengeluarkan sepeser pun.



Ide dasarnya di sini adalah menyambungkan ke komputer jarak jauh di jaringan dan membuat semua lalu lintas jaringan Anda terlihat seperti lokal ke jaringan itu.







Alasan pertama seseorang mungkin memerlukan ini adalah untuk meningkatkan keamanan dan menghilangkan potensi ancaman sejak dini. Misalnya, Anda mungkin perlu mencetak ke printer jaringan tanpa "mengekspos" printer ini ke Internet biasa. Akibatnya, misalnya, seseorang dapat duduk di kafe dan, setelah tersambung ke jaringan melalui VPN, mencetak dokumen di printer, merasa seolah-olah berada di mejanya, dan printer berdiri beberapa meter darinya. Menggunakan VPN juga berarti bahwa data yang dikirim melalui jaringan WiFi kafe akan dienkripsi.



Alasan kedua adalah untuk menyembunyikan lokasi asli pengguna dari pengintaian. Katakanlah seseorang suka menonton rekaman BBC tetapi tinggal di Ekuador. Ini berarti agar video tidak diblokir untuknya, dia harus terhubung melalui VPN ke jaringan yang berlokasi di Inggris. Jika otoritas negara tertentu memantau dan menyensor Internet, penduduk negara ini juga dapat memanfaatkan kemampuan untuk menyamarkan lalu lintas mereka.



Menggunakan SSH untuk membuat koneksi VPN baik-baik saja untuk kedua tugas di atas. Namun, jika Anda tertarik terutama pada yang pertama, maka Anda mungkin lebih baik menggunakan router khusus atau komputer kecil, seperti Raspberry Pi, yang bertujuan untuk memecahkan masalah Anda. Saya harus mengatakan bahwa jika Anda menyewa server di suatu tempat, maka "VPN over SSH" bukan untuk Anda.



Persiapan awal









VPN



Anda hanya membutuhkan akses root ke kedua mesin. Server SSH harus diinstal di komputer jarak jauh. Anda tentu saja membutuhkan klien SSH juga. Baik mesin lokal maupun remote perlu melakukan beberapa konfigurasi. Saya menggunakan KDE, jadi saya menggunakan NetworkManager untuk membuat pengaturan yang diperlukan, tetapi Anda bisa pergi ke arah lain. Menggunakan NetworkManager hanya membuat segalanya lebih mudah.



Beberapa pengaturan khusus perlu dibuat di server, tetapi sangat mungkin bahwa mereka sudah dilakukan di sana. Jadi, file tersebut/etc/ssh/sshd_config



harus mengandung sebuah barisPermitTunnel=yes



. Selain itu, Anda mungkin perlu menyetelyes



parameterke nilaiAllowTCPForwarding



. Firewall mungkin juga memerlukan beberapa pengaturan. Dalam hal ini, petunjuk untuk mengonfigurasi plugin NetworkManager semoga bermanfaat bahkan bagi mereka yang tidak menggunakan program ini.



Pengaturan sisi klien



Jika Anda menggunakan NetworkManager, Anda memerlukan plugin yang sesuai. Untuk Neon dan distribusi berbasis Debian lainnya, paketnya baik-baik saja network-manager-ssh



. Ini semua yang Anda butuhkan. Jika Anda tidak ingin menggunakan NetworkManager, maka Anda dapat menggunakan perintah berikut dari bahan pembuat plugin:



ssh -f -v -o Tunnel=point-to-point -o ServerAliveInterval=10 -o TCPKeepAlive=yes -w 100:100 root@YOUR_SSH_SERVER \
'/sbin/ifconfig tun100 172.16.40.1 netmask 255.255.255.252 pointopoint 172.16.40.2' && \
/sbin/ifconfig tun100 172.16.40.2 netmask 255.255.255.252 pointopoint 172.16.40.1

      
      





Ini membutuhkan akses root ke kedua sistem, karena kita sedang membuat sebuah terowongan. Ini, bahkan saat menggunakan plugin, menyebabkan beberapa masalah. Jelas, kami tidak ingin terus-menerus dimintai kata sandi untuk koneksi SSH dan untuk memverifikasi kuncinya. Tetapi jika Anda mengonfigurasi VPN secara manual, Anda dapat memperbaiki masalah ini.



Masalah



Kebanyakan sistem modern tidak mengizinkan Anda untuk masuk sebagai root menggunakan kata sandi, dan terkadang bahkan tidak mengizinkan Anda untuk terhubung ke sistem dalam mode ini. Oleh karena itu, pertama-tama kita perlu menyelesaikan masalah ini. Selain itu, ketika NetworkManager memulai SSH, ia mencari kunci untuk pengguna root, bukan untuk pengguna biasa. Jika dia tidak dapat menemukan sesuatu, dia berhenti. Oleh karena itu, kami perlu menyediakan login root yang mulus.



Untuk memberikan akses root ke server, Anda perlu mengedit file /etc/ssh/sshd_config



dan mengatur parameter PermitRootLogin



keyes



... Saya menyarankan Anda bekerja dalam mode ini selama yang diperlukan untuk menyelesaikan langkah-langkah konfigurasi server berikut. Selanjutnya, Anda perlu memulai ulang server sshd, misalnya, dengan perintah berikut:



systemctl restart sshd

      
      





Anda juga dapat menggunakan perintah ini:



/etc/init.d/ssh restart

      
      





Kemudian, masuk ke mesin lokal menggunakan akun biasa, yang perlu Anda gunakan ssh-copy-id



untuk menginstal sertifikat pada mesin host. Setelah ini selesai, Anda harus kembali ke server dan mengubah /etc/ssh/sshd_config



nilainya PermitRootLogin



menjadi prohibit-password



. Ini akan memungkinkan Anda untuk masuk ke server sebagai root menggunakan sertifikat, tetapi tidak menggunakan kata sandi.



Jika Anda sudah masuk dengan root, Anda mungkin telah ditanyai apakah Anda ingin menerima kunci server. Jika tidak demikian, maka kita punya masalah. Jika Anda bisa, silakan login dan jawab ya untuk pertanyaan terkait, setelah itu sistem akan berhenti menanyakannya. Tetapi, jika ini tidak dapat dilakukan, kami dapat memperbaiki masalah dengan menonaktifkan StrictHostKeyChecking



.



Secara teori, Anda dapat meneruskan opsi ssh tambahan ke plugin NetworkManager, tetapi karena alasan tertentu, pendekatan ini tidak berfungsi dengan versi plugin dari repositori. Jika Anda tidak menggunakan plugin, melakukan semuanya secara manual, maka Anda dapat membuat sendiri pengaturan yang diperlukan. Pengaturan SSH untuk pengguna root dapat diatur di /root/.ssh/config



. Anda juga dapat menentukan pengaturan global di /etc/ssh/ssh_config



.



Jika Anda mengubah pengaturan global, maka jika sistem mendukungnya, pertimbangkan untuk menggunakan /etc/ssh/ssh_config.d



. Berkat ini, Anda akan dapat mengatur parameter untuk host tertentu, yang tidak akan ditimpa ketika sistem diperbarui. Misalnya, Anda dapat membuat file di direktori yang sesuai dengan nama hackaday.conf



:



Host *.hackaday.com hackaday.com
StrictHostKeyChecking no
Tunnel yes

      
      





Sekali lagi, jika Anda tidak menyukai gagasan untuk memverifikasi kunci host, cukup masuk sekali sebagai root dan terima kunci jarak jauh secara manual. Atau, jika Anda berani, edit secara manual /root/.ssh/known_hosts



.



Koneksi



Semuanya harus siap sekarang. Jika Anda menggunakan plugin untuk NetworkManager, Anda hanya perlu membuat koneksi baru. Yaitu, Anda harus pergi ke bagian koneksi VPN dan pilih SSH.









Memilih jenis koneksi



Sekarang Anda perlu mengkonfigurasi beberapa parameter koneksi baru. Termasuk - Anda perlu menentukan sertifikat yang akan Anda gunakan untuk masuk ke sistem jarak jauh.









Menyiapkan koneksi



Setelah menyimpan pengaturan koneksi, koneksi ini dapat diaktifkan - sama seperti antarmuka jaringan lainnya. Jika Anda ingin menguji VPN baru Anda - pertama, biasanya, tanyakan alamat IP Anda di situs web khusus . Dan kemudian nyalakan VPN dan cari tahu alamat Anda lagi. Jika Anda gagal membuat koneksi VPN, lihat di log sistem untuk informasi tentang kesalahan SSH.



Hasil



Tentu saja, ada juga solusi VPN lain. Tetapi hampir dijamin bahwa komputer jarak jauh yang Anda gunakan memiliki server SSH. Oleh karena itu, metode yang diusulkan untuk membangun koneksi VPN melalui SSH adalah solusi sederhana dan nyaman yang dapat digunakan tanpa persiapan awal apa pun.



Ngomong-ngomong, Anda bisa melakukan banyak hal menarik dengan SSH . Misalnya - untuk mengatur pekerjaan yang nyaman dengan file .



Apakah Anda menggunakan VPN?










All Articles