WHAT'S NEW?
Loading...

Meningkatkan Keamanan SSH Login Pada Linux Server

Meningkatkan Keamanan SSH Login Pada Linux Server

Umumnya tidaklah aman memberikan akses remote ke server dengan root login, bahkan meskipun menggunakan password untuk otentikasinya juga masih belum cukup aman. Pada artikel ini saya akan memberikan sedikit dasar pengaturan untuk meningkatkan keamanan SSH login.

Mengamankan SSH Login

Dalam prosesnya, meningkatkan keamanan SSH login dapat dilakukan dengan menggunakan Public Key Authentication, jadi pada tahap ini saya akan membuat sebuah public key. Langkah yang dilakukan  juga cukup sederhana.

Karena kita ingin melakukan akses ke server secara aman, perlu membuat key terlebih dahulu dari komputer client (komputer yang anda gunakan untuk mengakses server). 
$ ssh-keygen -t rsa <=== (lakukan perintah ini dari client)
Dengan perintah di atas maka akan muncul output sebagai berikut:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase): <=== (tekan enter)
Enter same passphrase again: <=== (tekan enter
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
3d:4f:08:79:3f:9d:96:3c:5a:ae:d5:38:35:ba:39:d3
Dari hasil output tersebut kita telah mendapatkan public ssh key yang kita akan gunakan. Untuk penggunaan perintah ssh-keygen dapat dilihat informasi selanjutnya dengan man ssh-keygen agar mengetahui pilihan lain yang bisa diterapkan semisal ssh-keygen -t rsa -b 2048 yang akan menghasilkan key dengan bit 2048.

Setelah mendapatkan public ssh key, selanjutnya kita masukan ssh key tersebut ke dalam server sebagai authorized_keys yang berguna sebagai tanda pengenal saat proses login berlangsung (sederhananya bisa dikatakan demikian). 
# scp ~/.ssh/id_rsa.pub userServer@10.20.30.10:.ssh/authorized_keys
Dengan demikian tahap pembuatan ssh key telah selesai. Selanjutnya kita perlu melakukan sedikit konfigurasi SSH didalam server. Masuk terlebih dahulu ke dalam server, contoh:
# ssh userServer@10.20.30.10
Dan bila sudah berhasil masuk, edit file konfigurasi SSH:
# nano /etc/ssh/sshd_configport 8399 <=== (ubah password default sesuai yang anda inginkan)
RSAAuthentication yes
PubkeyAuthentication yes
# /etc/init.d/ssh restart
Setelah itu coba login kembali untuk mengecek apakah kita berhasil login dengan pubilc ssh key yang telah ada didalam server dan port yang telah diubah. Jika berhasil maka lanjutkan edit file yang sama, sesuai yang saya katakan sebelumnya penggunaan akses root login tidaklah aman, oleh karena itu kita harus menonaktifkannya, cari dan sesuaikan isi file tersebut dengan baris dibawah ini:
PermitRootLogin no
PasswordAuthentication no
Simpan konfigurasinya, dan restart kembali SSH. Karena root sudah tidak bisa lagi diakses secara remote dengan konfigurasi diatas, maka untuk mengaksesnya bisa melalui user biasa, lakukan dengan langkah berikut:
# visudo
xxxx ALL=(ALL) NOPASSWD:ALL <=== (ganti xxxx dengan nama user anda)
Coba logout dari server dan lakukan login kembali dengan menggunakan root, semestinya kita tidak bisa lagi login menggunakan root. Dan untuk dapat kembali mengakses root login lah menggunakan user biasa sesuai dengan nama user yang telah diletakan dalam konfigurasi visudo.
$ ssh xxxx@10.20.30.10 -p 8399
$ sudo su -
Dengan perintah diatas kita bisa kembali mengakses root. Tentunya dengan cara ini akan lebih aman akses SSH yang dilakukan karena proses login berjalan dengan key yang telah dienkripsi dan juga akan sulit untuk bagi pihak lain yang mencoba mengakses server kita melalui SSH dari komputer miliknya tanpa adanya public ssh key yang telah kita berikan di dalam server. Selamant mencoba dan semoga bermanfaat.

11 comments: Leave Your Comments

  1. nice tutorial gan . mau saya coba dulu meskipun sejauh ini gapapa pakai ssh biasa :D .. kalau katanya tambah aman ya kenapa engga . hee

    ReplyDelete
    Replies
    1. Sebaiknya ditingkatkan keamanannya gan utk menghindari hal-hal yang tidak diinginkan

      Delete
  2. iniih ssh yg sering ane pakai duluu. sekarang mah dah pensiun.
    Btw nice artikel gan

    ReplyDelete
    Replies
    1. Hmm, ini SSH server gan, salah kira deh kayaknya :D

      Delete
  3. keren gan . tapi kalo boleh tau ini command untuk linux OS apa yah ?

    ReplyDelete
    Replies
    1. Saya itu pakai Debian gan, tapi secara umum sama kok dengan distro yang lain untuk commandnya

      Delete
  4. Blog ente keren bro...
    Salam dari blogger Pontianak

    ReplyDelete
  5. info nya menarik bro, ane suka

    ReplyDelete