
Sama seperti semua server lainnya, server SSH juga rentan terhadap upaya akses yang tidak sah. Oleh karena itu, setiap kali Anda ingin menggunakan server SSH, Anda harus mempertimbangkan untuk mengamankannya terlebih dahulu untuk menyelamatkan diri Anda dari situasi yang tidak diinginkan dalam jangka panjang. Umumnya, istilah “mengamankan server” juga dikenal sebagai “mengeraskan server.” Hal ini dapat dilakukan dengan mengambil beberapa tindakan. Langkah-langkah ini tergantung pada tingkat keamanan yang Anda butuhkan.
Langkah-langkah pengamanan server SSH berkisar dari dasar hingga lanjutan, dan seperti yang kami katakan sebelumnya, Anda dapat mengambilnya sesuai dengan tingkat keamanan yang Anda butuhkan. Anda dapat melewati salah satu tindakan yang ditentukan jika Anda memiliki pengetahuan yang cukup tentang konsekuensinya dan jika Anda berada dalam posisi yang baik untuk menghadapinya. Juga, kita tidak pernah bisa mengatakan bahwa satu langkah akan memastikan keamanan 100%, atau langkah tertentu lebih baik dari yang lain.
Itu semua tergantung pada jenis keamanan yang sebenarnya kita butuhkan. Oleh karena itu, hari ini kami bermaksud memberi Anda wawasan yang sangat mendalam tentang langkah-langkah dasar dan lanjutan untuk mengamankan server SSH di Ubuntu 20.04. Terlepas dari metode ini, kami juga akan berbagi dengan Anda beberapa tips tambahan untuk mengamankan server SSH Anda sebagai bonus. Jadi mari kita mulai dengan diskusi menarik hari ini.
Metode Mengamankan Server SSH di Ubuntu 20.04:
Semua konfigurasi SSH disimpan dalam file /etc/ssh/sshd_config-nya. File ini dianggap sangat penting untuk fungsi normal server SSH Anda. Oleh karena itu, sebelum membuat perubahan apa pun pada file ini, sangat disarankan agar Anda membuat cadangan file ini dengan menjalankan perintah berikut di terminal Anda:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Jika perintah ini berhasil dijalankan, Anda tidak akan disajikan dengan output apa pun, seperti yang ditunjukkan pada gambar di bawah ini:
Setelah membuat cadangan file ini, langkah ini opsional dan dilakukan jika Anda ingin memeriksa semua opsi yang saat ini diaktifkan dalam file konfigurasi ini. Anda dapat memeriksanya dengan menjalankan perintah berikut di terminal Anda:
sudo sshd –T
Opsi yang saat ini diaktifkan dari file konfigurasi SSH ditunjukkan pada gambar di bawah. Anda dapat menggulir ke bawah daftar ini untuk melihat semua opsi.
Sekarang Anda dapat mulai mengamankan server SSH Anda saat berpindah dari langkah dasar ke langkah lanjutan di Ubuntu 20.04.
Langkah Dasar untuk mengamankan Server SSH di Ubuntu 20.04:
Langkah-langkah dasar untuk mengamankan server SSH di Ubuntu 20.04 adalah sebagai berikut:
Langkah #1: Membuka File Konfigurasi SSH:
Anda dapat membuka file konfigurasi SSH dengan menjalankan perintah yang dinyatakan di bawah ini di terminal Anda:
sudo nano /etc/ssh/sshd_config
File konfigurasi SSH ditunjukkan pada gambar berikut:
Langkah # 2: Menonaktifkan Otentikasi Berbasis Kata Sandi:
Alih-alih menggunakan password untuk otentikasi, kunci SSH dianggap lebih aman. Oleh karena itu, jika Anda telah membuat kunci SSH untuk otentikasi, maka Anda harus menonaktifkan otentikasi berbasis password. Untuk itu, Anda perlu menemukan variabel “PasswordAuthentication”, batalkan komentarnya, dan atur nilainya menjadi “tidak”, seperti yang disorot pada gambar di bawah ini:
Langkah # 3: Menolak/Menolak Kata Sandi Kosong:
Terkadang, user merasa sangat nyaman untuk membuat password kosong demi menyelamatkan diri dari menghafal password yang rumit. Praktik ini terbukti dapat merusak keamanan server SSH Anda. Oleh karena itu, Anda harus menolak semua upaya otentikasi dengan password kosong. Untuk itu, Anda perlu mencari variabel “PermitEmptyPasswords” dan hapus saja komentarnya karena nilainya sudah disetel ke “tidak” secara default, seperti yang disorot pada gambar berikut:
Langkah # 4: Melarang Login Root:
Anda harus secara tegas melarang login root untuk melindungi penyusup agar tidak mendapatkan akses tingkat root ke server Anda. Anda dapat melakukan ini dengan mencari variabel “PermitRootLogin”, batalkan komentarnya, dan atur nilainya menjadi “tidak”, seperti yang disorot pada gambar di bawah ini:
Langkah # 5: Menggunakan Protokol SSH 2:
Server SSH dapat beroperasi pada dua protokol yang berbeda, yaitu Protokol 1 dan Protokol 2. Protokol 2 mengimplementasikan fitur keamanan yang lebih canggih, oleh karena itu lebih disukai daripada Protokol 1. Namun, Protokol 1 adalah protokol default SSH, dan bukan disebutkan secara eksplisit dalam file konfigurasi SSH. Oleh karena itu, jika Anda ingin bekerja dengan Protokol 2 alih-alih Protokol 1, maka Anda perlu secara eksplisit menambahkan baris “Protokol 2” ke file konfigurasi SSH Anda seperti yang disorot pada gambar berikut:
Langkah # 6: Mengatur Batas Waktu Sesi:
Kadang-kadang, user meninggalkan komputer mereka tanpa pengawasan untuk waktu yang sangat lama. Sementara itu, setiap penyusup dapat datang dan mendapatkan akses ke sistem Anda saat melanggar keamanannya. Di sinilah konsep batas waktu sesi berperan. Fitur ini digunakan untuk logout user jika dia tetap tidak aktif untuk waktu yang lama sehingga tidak ada user lain yang bisa mendapatkan akses ke sistemnya.
Batas waktu ini dapat diatur dengan menempatkan variabel “ClientAliveInterval”, batalkan komentarnya, dan berikan nilai apa pun (dalam detik) pilihan Anda. Dalam kasus kami, kami telah menetapkan nilai “300 detik” atau “5 menit”. Artinya jika user menjauh dari server SSH selama “300 detik”, maka dia akan secara otomatis logout seperti yang disorot pada gambar di bawah ini:
Langkah # 7: Mengizinkan Pengguna Tertentu untuk Mengakses Server SSH:
Server SSH bukanlah server yang aksesnya diperlukan oleh setiap user lain. Oleh karena itu, aksesnya harus dibatasi hanya untuk user yang benar-benar membutuhkannya. Untuk mengizinkan user tertentu mengakses server SSH, Anda perlu menambahkan variabel bernama “AllowUsers” ke file konfigurasi SSH dan kemudian tulis nama semua user yang ingin Anda izinkan aksesnya ke server SSH yang dipisahkan oleh spasi. Dalam kasus kami, kami hanya ingin mengizinkan satu user untuk mengakses server SSH. Itu sebabnya kami hanya menambahkan namanya seperti yang disorot pada gambar berikut:
Langkah #8: Membatasi Jumlah Upaya Otentikasi:
Setiap kali user mencoba mengakses server, dan dia tidak dapat mengotentikasi dirinya untuk pertama kalinya, dia mencoba melakukannya lagi. Pengguna terus melakukan upaya ini sampai dan kecuali dia berhasil mengotentikasi dirinya sendiri sehingga mendapatkan akses ke server SSH. Ini dianggap sebagai praktik yang sangat tidak aman karena peretas dapat meluncurkan Brute Force Attack (serangan yang berulang kali mencoba menebak password hingga ditemukan password yang cocok). Hasilnya, dia akan bisa mendapatkan akses ke server SSH Anda.
Itulah mengapa sangat disarankan untuk membatasi jumlah upaya otentikasi untuk mencegah serangan menebak password. Nilai default dari upaya otentikasi ke server SSH diatur ke “6”. Namun, Anda dapat mengubahnya tergantung pada tingkat keamanan yang Anda butuhkan. Untuk itu, Anda perlu menemukan variabel “MaxAuthTries”, batalkan komentar, dan atur nilainya ke nomor yang diinginkan. Kami ingin membatasi upaya otentikasi ke “3,” seperti yang disorot pada gambar yang ditunjukkan di bawah ini:
Langkah #9: Menjalankan Server SSH dalam Mode Uji:
Sekarang, kami telah mengambil semua langkah dasar untuk mengamankan server SSH kami di Ubuntu 20.04. Namun, kita masih perlu memastikan bahwa opsi yang baru saja kita konfigurasikan berfungsi dengan baik. Untuk itu, pertama-tama kita akan menyimpan dan menutup file konfigurasi kita. Setelah melakukan itu, kami akan mencoba menjalankan server SSH kami dalam cara uji. Jika berhasil berjalan dalam cara uji, maka itu akan menyiratkan bahwa tidak ada error dalam file konfigurasi Anda. Anda dapat menjalankan server SSH Anda dalam cara uji dengan menjalankan perintah berikut di terminal Anda:
sudo sshd –t
Ketika perintah ini berhasil dijalankan, itu tidak akan menampilkan output apa pun di terminal, seperti yang ditunjukkan pada gambar di bawah ini. Namun, jika akan ada error dalam file konfigurasi Anda, menjalankan perintah ini akan membuat error tersebut di terminal. Anda kemudian akan diminta untuk memperbaiki error tersebut. Hanya dengan begitu Anda dapat melanjutkan lebih jauh.
Langkah # 10: Reload Server SSH dengan Konfigurasi Baru:
Sekarang ketika server SSH berjalan dengan sukses dalam cara uji, kita perlu memuatnya kembali agar dapat membaca file konfigurasi baru, yaitu, perubahan yang telah kita buat pada file konfigurasi SSH dalam langkah-langkah yang ditunjukkan di atas. Untuk mereload server SSH dengan konfigurasi baru, Anda perlu menjalankan perintah berikut di terminal Anda:
sudo service sshd reload
Jika server SSH Anda berhasil di-restart, terminal tidak akan menampilkan output apa pun, seperti yang ditunjukkan pada gambar di bawah ini:
Langkah Lanjutan untuk mengamankan Server SSH di Ubuntu 20.04:
Setelah melakukan semua langkah dasar untuk mengamankan server SSH di Ubuntu 20.04, Anda akhirnya dapat melanjutkan ke langkah lanjutan. Ini hanyalah langkah maju untuk mengamankan server SSH Anda. Namun, jika Anda hanya ingin mencapai tingkat keamanan yang cararat, maka langkah-langkah yang dijelaskan di atas sudah cukup. Tetapi jika Anda ingin melangkah lebih jauh, Anda dapat mengikuti langkah-langkah yang dijelaskan di bawah ini:
Langkah #1: Membuka File ~/.ssh/authorized_keys:
Langkah-langkah dasar mengamankan server SSH diimplementasikan dalam file konfigurasi SSH. Artinya, kebijakan ini akan berlaku untuk semua user yang akan mencoba mengakses server SSH. Ini juga menyiratkan bahwa langkah-langkah dasar mewakili metode umum untuk mengamankan server SSH. Namun, jika kita mencoba mempertimbangkan prinsip “Pertahanan Mendalam”, maka kita akan menyadari bahwa kita perlu mengamankan setiap kunci SSH secara
terpisah. Ini dapat dilakukan dengan mendefinisikan parameter keamanan eksplisit untuk setiap kunci individu. Kunci SSH disimpan di file ~/.ssh/authorized_keys, jadi pertama-tama kita akan mengakses file ini untuk mengubah parameter keamanan. Kami akan menjalankan perintah berikut di terminal untuk mengakses file ~/.ssh/authorized_keys:
sudo nano ~/.ssh/authorized_keys
Menjalankan perintah ini akan membuka file yang ditentukan dengan editor nano. Namun, Anda juga dapat menggunakan editor teks lain pilihan Anda untuk membuka file ini. File ini akan berisi semua kunci SSH yang telah Anda buat sejauh ini.
Langkah # 2: Mendefinisikan Konfigurasi Spesifik untuk Kunci Tertentu:
Untuk mencapai tingkat keamanan tingkat lanjut, tersedia lima opsi berikut:
- penerusan tanpa agen
- penerusan tanpa port
- tidak-pty
- tanpa-user-rc
- tanpa-X11-penerusan
Opsi ini dapat ditulis sebelum kunci SSH pilihan Anda untuk membuatnya tersedia untuk kunci tertentu. Bahkan lebih dari satu opsi juga dapat dikonfigurasi untuk satu kunci SSH. Misalnya, Anda ingin menonaktifkan penerusan port untuk kunci tertentu atau, dengan kata lain, Anda ingin menerapkan penerusan tanpa port untuk kunci tertentu, maka sintaksnya adalah sebagai berikut:
no-port-forwarding DesiredSSHKey
Di sini, alih-alih DesiredSSHKey, Anda akan memiliki kunci SSH aktual di dalam file ~/.ssh/authorized_keys Anda. Setelah menerapkan opsi ini untuk kunci SSH yang Anda inginkan, Anda harus menyimpan file ~/.ssh/authorized_keys dan menutupnya. Kelebihan dari metode lanjutan ini adalah Anda tidak perlu mereload server SSH Anda setelah melakukan modifikasi ini. Sebaliknya perubahan ini akan dibaca oleh server SSH Anda secara otomatis.
Dengan cara ini, Anda akan dapat mengamankan setiap kunci SSH secara mendalam dengan menerapkan mekanisme keamanan tingkat lanjut.
Beberapa Tips Tambahan untuk mengamankan Server SSH di Ubuntu 20.04:
Terlepas dari semua langkah dasar dan lanjutan yang telah kami ambil di atas, ada juga beberapa tips tambahan yang terbukti sangat baik untuk mengamankan server SSH di Ubuntu 20.04. Kiat tambahan ini telah dibahas di bawah ini:
Simpan Data Anda Terenkripsi:
Data yang berada di server SSH Anda, serta yang tetap dalam perjalanan, harus dienkripsi dan itu juga, dengan algoritme enkripsi yang kuat. Ini tidak hanya akan melindungi integritas dan kerahasiaan data Anda, tetapi juga akan mencegah keamanan seluruh server SSH Anda dari gangguan.
Perbarui Perangkat Lunak Anda:
Perangkat lunak yang berjalan di server SSH Anda harus mutakhir. Ini dilakukan untuk memastikan bahwa tidak ada bug keamanan di perangkat lunak Anda yang tidak dijaga. Sebaliknya mereka harus ditambal dengan baik pada waktunya. Ini akan menyelamatkan Anda dari potensi bahaya dalam jangka panjang dan juga akan mencegah server Anda turun atau tidak tersedia karena masalah keamanan.
Pastikan SELinux Diaktifkan:
SELinux adalah mekanisme yang meletakkan batu fondasi keamanan dalam sistem berbasis Linux. Ia bekerja dengan menerapkan Mandatory Access Control (MAC). Ini mengimplementasikan model kontrol akses ini dengan mendefinisikan aturan akses dalam kebijakan keamanannya. Mekanisme ini diaktifkan secara default. Namun, user diizinkan untuk mengubah pengaturan ini kapan saja. Artinya, mereka dapat menonaktifkan SELinux kapan pun mereka mau. Namun, sangat disarankan agar Anda selalu mengaktifkan SELinux sehingga dapat mencegah server SSH Anda dari segala potensi bahaya.
Gunakan Kebijakan Kata Sandi Ketat:
Jika Anda telah melindungi server SSH Anda dengan password, maka Anda harus membuat kebijakan password yang kuat. Idealnya, password harus lebih dari 8 karakter. Mereka harus diubah setelah waktu yang ditentukan, katakanlah, setelah setiap 2 bulan. Mereka tidak boleh mengandung kata kamus apa pun; melainkan, mereka harus berupa kombinasi abjad, angka, dan karakter khusus. Demikian pula, Anda dapat menentukan beberapa tindakan ekstra ketat lainnya untuk kebijakan password Anda untuk memastikan bahwa mereka cukup kuat.
Pantau dan Pertahankan Log Audit dari Server SSH Anda:
Jika ada yang salah dengan server SSH Anda, penolong pertama Anda adalah log audit. Oleh karena itu, Anda harus terus memelihara log tersebut sehingga Anda dapat melacak kembali akar penyebab masalah
. Selain itu, jika Anda terus memantau kesehatan dan kerja server SSH Anda secara terus menerus, maka ini juga akan mencegah terjadinya masalah besar.
Pertahankan Pencadangan Data Anda Secara Reguler:
Last but not least, Anda harus selalu menyimpan cadangan seluruh server SSH Anda. Melakukan hal ini tidak hanya akan menyelamatkan data Anda dari kerusakan atau kehilangan seluruhnya; alih-alih, Anda juga dapat menggunakan server cadangan ini setiap kali server utama Anda mati. Ini juga akan membatasi waktu henti server dan memastikan ketersediaannya.
Kesimpulan:
Dengan memperhatikan semua tindakan yang telah ditentukan dalam artikel ini, Anda dapat dengan mudah mengamankan atau memperkuat server SSH Anda di Ubuntu 20.04. Namun, jika Anda berasal dari latar belakang Keamanan Informasi, maka Anda harus menyadari fakta ini bahwa tidak ada keamanan yang 100% seperti itu. Yang bisa kita dapatkan hanyalah janji upaya terbaik, dan upaya terbaik itu hanya akan terjamin sampai waktunya juga dilanggar. Itulah sebabnya bahkan setelah mengambil semua tindakan ini, Anda tidak dapat mengatakan bahwa server SSH Anda 100% aman; alih-alih, itu mungkin masih memiliki kerentanan yang tidak pernah Anda pikirkan sebelumnya. Kerentanan seperti itu hanya dapat diatasi jika kami terus mengawasi server SSH kami dan terus memperbaruinya kapan pun diperlukan.