Cara Mengamankan dan Memperkuat Server OpenSSH


Ketika mengakses perangkat jarak jauh seperti server, router, dan switch, protokol SSH sangat direkomendasikan mengingat kemampuannya mengenkripsi lalu lintas dan menangkal siapa pun yang mungkin mencoba menguping koneksi Anda.

Meskipun demikian, pengaturan default SSH tidaklah sempurna dan penyesuaian tambahan diperlukan untuk membuat protokol lebih aman. Dalam panduan ini, kami mengeksplorasi berbagai cara yang dapat Anda gunakan untuk mengamankan dan memperkuat instalasi OpenSSH di server.

1. Atur Otentikasi Tanpa Kata Sandi SSH

Secara default, SSH mengharuskan pengguna untuk memberikan kata sandi mereka saat masuk. Namun ada satu hal yang perlu diperhatikan: peretas dapat menebak kata sandi atau bahkan melakukan serangan brute force menggunakan alat peretasan khusus dan mendapatkan akses ke sistem Anda. Untuk amannya, penggunaan otentikasi tanpa kata sandi SSH sangat dianjurkan.

Langkah pertama adalah membuat pasangan kunci SSH yang terdiri dari kunci publik dan kunci pribadi. Kunci pribadi berada di sistem host Anda sementara kunci publik kemudian disalin ke server jarak jauh.

Setelah kunci publik berhasil disalin, kini Anda dapat melakukan SSH ke server jarak jauh dengan lancar tanpa harus memberikan kata sandi.

Langkah selanjutnya adalah menonaktifkan otentikasi kata sandi, Untuk mencapai ini, Anda perlu memodifikasi file konfigurasi SSH.

sudo vim /etc/ssh/sshd_config

Di dalam file konfigurasi, gulir dan temukan arahan berikut. Batalkan komentar dan ubah opsi 'yes' menjadi 'no'

PasswordAuthentication no

Kemudian restart daemon SSH.

sudo systemctl restart sshd

Pada titik ini, Anda hanya akan memiliki akses ke server jarak jauh menggunakan otentikasi kunci SSH.

2. Nonaktifkan Permintaan Koneksi Tanpa Kata Sandi SSH Pengguna

Cara lain yang disarankan untuk memperkuat keamanan server Anda adalah dengan menonaktifkan login SSH dari pengguna tanpa kata sandi. Ini kedengarannya agak aneh tapi terkadang administrator sistem dapat membuat akun pengguna dan lupa menetapkan kata sandi – yang merupakan ide yang sangat buruk.

Untuk menolak permintaan dari pengguna tanpa kata sandi, sekali lagi, buka file konfigurasi di /etc/ssh/sshd_config dan pastikan Anda memiliki arahan di bawah ini:

PermitEmptyPasswords no

Kemudian restart layanan SSH agar perubahan dapat diterapkan.

sudo systemctl restart sshd

3. Nonaktifkan Login Root SSH

Tidak diragukan lagi apa yang bisa terjadi jika seorang peretas berhasil memaksa kata sandi root Anda secara kasar. Mengizinkan login root jarak jauh selalu merupakan ide buruk yang dapat membahayakan keamanan sistem Anda.

Karena alasan ini, selalu disarankan agar Anda menonaktifkan login root jarak jauh SSH dan tetap menggunakan pengguna non-root biasa. Sekali lagi, buka file konfigurasi dan ubah baris ini seperti yang ditunjukkan.

PermitRootLogin no

Setelah selesai, mulai ulang layanan SSH agar perubahan dapat diterapkan.

sudo systemctl restart sshd

Untuk selanjutnya, login root jarak jauh akan dinonaktifkan.

4. Gunakan Protokol SSH 2

SSH hadir dalam dua versi: SSH protokol 1 dan protokol 2. protokol 2 SSH diperkenalkan pada tahun 2006 dan lebih aman dibandingkan protokol 1 berkat pemeriksaan kriptografi yang kuat, enkripsi massal, dan algoritme yang kuat.

Secara default, SSH menggunakan protokol 1. Untuk mengubahnya ke Protokol 2 yang lebih aman, tambahkan baris di bawah ini ke file konfigurasi:

Protocol 2

Seperti biasa, mulai ulang SSH agar perubahan diterapkan.

sudo systemctl restart sshd

Kedepannya, SSH akan menggunakan Protokol 2 secara default.

Untuk menguji apakah SSH protokol 1 didukung lagi, jalankan perintah:

ssh -1 user@remote-IP

Anda akan mendapatkan pesan kesalahan yang berbunyi “Protokol SSH v.1 tidak lagi didukung ”.

Dalam hal ini, perintahnya adalah:

ssh -1 [email 

Selain itu, Anda cukup menentukan tag -2 hanya untuk memastikan bahwa Protokol 2 adalah protokol default yang digunakan.

ssh -2 [email 

5. Tetapkan Nilai Idle Batas Waktu Koneksi SSH

Membiarkan PC Anda tanpa pengawasan dalam waktu lama dengan koneksi SSH yang tidak aktif dapat menimbulkan risiko keamanan. Seseorang dapat lewat begitu saja dan mengambil alih sesi SSH Anda dan melakukan apa pun yang mereka mau. Oleh karena itu, untuk mengatasi masalah ini, sebaiknya tetapkan batas waktu tunggu menganggur yang jika terlampaui, sesi SSH akan ditutup.

Sekali lagi, buka file konfigurasi SSH Anda dan cari direktif “ClientAliveInterval”. Tetapkan nilai yang masuk akal, misalnya saya telah menetapkan batas 180 detik.

ClientAliveInterval 180

Artinya sesi SSH akan dihentikan jika tidak ada aktivitas yang terdaftar setelah 3 menit yang setara dengan 180 detik.

Kemudian restart daemon SSH untuk menerapkan perubahan yang dilakukan.

sudo systemctl restart sshd

6. Batasi Akses SSH untuk Pengguna Tertentu

Untuk lapisan keamanan tambahan, Anda dapat menentukan pengguna yang memerlukan protokol SSH untuk masuk dan melakukan tugas jarak jauh pada sistem. Hal ini mencegah pengguna lain yang mungkin mencoba masuk ke sistem Anda tanpa persetujuan Anda.

Seperti biasa, buka file konfigurasi dan tambahkan perintah “AllowUsers” diikuti dengan nama pengguna yang ingin Anda berikan. Pada contoh di bawah, saya mengizinkan pengguna 'tecmint' dan 'james' untuk memiliki akses jarak jauh ke sistem melalui SSH. Pengguna lain yang mencoba mendapatkan akses jarak jauh akan diblokir.

AllowUsers tecmint james

Setelah itu restart SSH agar perubahan tetap ada.

sudo systemctl restart sshd

7. Konfigurasikan Batas Percobaan Kata Sandi

Cara lain untuk menambahkan lapisan keamanan adalah dengan membatasi jumlah upaya login SSH sehingga setelah beberapa kali gagal, koneksi terputus. Jadi sekali lagi buka file konfigurasi dan cari direktif “MaxAuthTries ” dan tentukan nilai untuk jumlah percobaan maksimum.

Dalam contoh ini, batasnya telah ditetapkan menjadi 3 percobaan seperti yang ditunjukkan.

MaxAuthTries 3

Dan terakhir, restart layanan SSH seperti skenario sebelumnya.

Anda mungkin juga menemukan artikel terkait SSH berikut ini berguna:

  • Cara Menginstal Server OpenSSH 8.0 dari Sumber di Linux
  • Cara Install Fail2Ban untuk Melindungi SSH di CentOS/RHEL 8
  • Cara Mengubah Port SSH di Linux
  • Cara Membuat SSH Tunneling atau Port Forwarding di Linux
  • 4 Cara Mempercepat Koneksi SSH di Linux
  • Cara Menemukan Semua Upaya Login SSH yang Gagal di Linux
  • Cara Memutuskan Koneksi SSH yang Tidak Aktif atau Idle di Linux
Kesimpulan

Itulah ringkasan beberapa langkah yang dapat Anda ambil untuk mengamankan koneksi jarak jauh SSH Anda. Penting untuk ditambahkan bahwa Anda harus selalu menetapkan kata sandi yang kuat kepada pengguna yang memiliki akses jarak jauh untuk menggagalkan serangan brute force. Kami berharap panduan ini bermanfaat bagi Anda. Masukan Anda sangat kami harapkan.