Ketika Anda perlu membuka sesuatu di jaringan rumah Anda ke internet yang lebih besar, apakah terowongan SSH merupakan cara yang cukup aman untuk melakukannya?
Sesi Tanya & Jawab hari ini hadir atas kebaikan SuperUser — subdivisi Stack Exchange, pengelompokan situs web Tanya Jawab berbasis komunitas.
Pertanyaan
Pembaca SuperUser Alfred M. ingin tahu apakah dia berada di jalur yang benar dengan keamanan koneksi:
Saya baru-baru ini menyiapkan server kecil dengan komputer kelas bawah yang menjalankan debian dengan tujuan untuk menggunakannya sebagai repositori git pribadi. Saya telah mengaktifkan ssh dan cukup terkejut dengan kecepatan yang dideritanya dari serangan brute force dan sejenisnya. Kemudian saya membaca bahwa ini adalah cukup umum dan mempelajari tentang langkah-langkah keamanan dasar untuk menangkal serangan ini (banyak pertanyaan dan duplikat pada server default yang menangani masalah itu, lihat misalnya yang ini atau yang ini ).
Tapi sekarang saya bertanya-tanya apakah semua ini sepadan dengan usaha. Saya memutuskan untuk menyiapkan server saya sendiri sebagian besar untuk kesenangan: Saya hanya dapat mengandalkan solusi pihak ketiga seperti yang ditawarkan oleh gitbucket.org, bettercodes.org, dll. Meskipun bagian yang menyenangkan adalah tentang belajar tentang keamanan Internet, saya belum cukup waktu untuk mendedikasikan padanya untuk menjadi ahli dan hampir yakin bahwa saya mengambil tindakan pencegahan yang benar.
Untuk memutuskan apakah saya akan terus bermain dengan proyek mainan ini, saya ingin tahu apa yang benar-benar saya pertaruhkan dalam melakukannya. Misalnya, sejauh mana komputer lain yang terhubung ke jaringan saya juga mengancam? Beberapa dari komputer ini digunakan oleh orang-orang dengan pengetahuan yang lebih rendah daripada komputer saya yang menjalankan Windows.
Berapa probabilitas saya mendapatkan masalah nyata jika saya mengikuti pedoman dasar seperti kata sandi yang kuat, akses root yang dinonaktifkan untuk ssh, port non-standar untuk ssh dan mungkin menonaktifkan login kata sandi dan menggunakan salah satu aturan fail2ban, denyhosts atau iptables?
Dengan kata lain, apakah ada serigala jahat besar yang harus saya takuti atau apakah itu semua tentang mengusir script kiddies?
Haruskah Alfred tetap menggunakan solusi pihak ketiga, atau apakah solusi DIY-nya aman?
Jawabannya
Kontributor SuperUser TheFiddlerWins meyakinkan Alfred bahwa ini cukup aman:
IMO SSH adalah salah satu hal teraman untuk didengarkan di internet terbuka. Jika Anda benar-benar khawatir, dengarkan pada port high end non-standar. Saya masih memiliki firewall (tingkat perangkat) antara kotak Anda dan Internet yang sebenarnya dan hanya menggunakan penerusan port untuk SSH, tetapi itu adalah tindakan pencegahan terhadap layanan lain. SSH sendiri cukup solid.
saya memiliki meminta orang-orang mengunjungi server SSH rumah saya sesekali (terbuka untuk Time Warner Cable). Tidak pernah berdampak nyata.
Kontributor lain, Stephane, menyoroti betapa mudahnya mengamankan SSH lebih jauh:
Menyiapkan sistem otentikasi kunci publik dengan SSH sebenarnya sepele dan membutuhkan waktu sekitar 5 menit untuk penyiapan .
Jika Anda memaksa semua koneksi SSH untuk menggunakannya, maka itu akan membuat sistem Anda cukup tangguh seperti yang Anda harapkan tanpa berinvestasi BANYAK pada infrastruktur keamanan. Terus terang, ini sangat sederhana dan efektif (selama Anda tidak memiliki 200 akun - kemudian menjadi berantakan) sehingga tidak menggunakannya harus dianggap sebagai pelanggaran publik.
Terakhir, Craig Watson menawarkan tip lain untuk meminimalkan upaya intrusi:
Saya juga menjalankan server git pribadi yang terbuka untuk dunia di SSH, dan saya juga memiliki masalah kekerasan yang sama seperti Anda, jadi saya dapat bersimpati dengan situasi Anda.
TheFiddlerWins telah membahas implikasi keamanan utama dari membuka SSH pada IP yang dapat diakses publik, tetapi alat terbaik IMO dalam menanggapi upaya brute force adalah Fail2Ban - perangkat lunak yang memantau file log autentikasi Anda, mendeteksi upaya penyusupan, dan menambahkan aturan firewall ke lokal mesin
iptablesfirewall. Anda dapat mengonfigurasi berapa banyak percobaan sebelum larangan dan juga lamanya larangan (default saya adalah 10 hari).
Punya sesuatu untuk ditambahkan ke penjelasannya? Suarakan di komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange yang paham teknologi? Lihat utas diskusi lengkap di sini .