GNU/Linux >> Belajar Linux >  >> Linux

7 Opsi Keamanan OpenSSH Default yang Harus Anda Ubah di /etc/ssh/sshd_config

Opsi OpenSSH dikendalikan melalui file /etc/ssh/sshd_config. Artikel ini menjelaskan 7 opsi default dalam file sshd_config yang harus Anda ubah.

Di sshd_config, baris yang dimulai dengan # adalah komentar. Untuk opsi yang menggunakan nilai default, file sshd_config berisi baris komentar dengan opsi dan nilai defaultnya.

Ini memudahkan kita, karena kita dapat melihat nama opsi OpenSSH dan nilai default tanpa harus mencari di tempat lain.

Misalnya, file sshd_config berisi baris komentar berikut. Ini menunjukkan bahwa opsi PubkeyAuthentication berisi “ya” sebagai nilai default.

$ grep -i pubkey /etc/ssh/sshd_config
#PubkeyAuthentication yes

Jika Anda ingin mengubah ini, Anda harus menghapus komentar dan mengubah nilainya (dari ya menjadi tidak) seperti yang ditunjukkan di bawah ini.

$ vi /etc/ssh/sshd_config
PubkeyAuthentication no

Saya menunjukkan di atas hanya sebagai contoh. Anda tidak perlu mengubah nilai default opsi PubkeyAuthentication, karena mengizinkan autentikasi kunci publik itu baik.

Anda tidak perlu mengubah nilai default apa pun di file sshd_config kecuali 7 opsi yang disebutkan dalam artikel ini.

1. Nonaktifkan Login Root (PermitRootLogin)

Secara default Anda dapat ssh ke server sebagai root. Yang terbaik adalah tidak mengizinkan root untuk login langsung ke server. Sebagai gantinya, Anda harus login ke sistem sebagai akun Anda dan kemudian lakukan 'su -' untuk login sebagai root.

Jika Anda memiliki beberapa sysadmin di organisasi Anda, dan jika mereka semua login ke server secara langsung sebagai root, Anda mungkin tidak tahu sysadmin mana yang login sebagai root. Sebaliknya, jika Anda menonaktifkan login sebagai root, sysadmin dipaksa untuk login sebagai akun mereka terlebih dahulu, sebelum mereka dapat melakukan ‘su -‘, ini membuat audit lebih mudah.

Tambahkan entri berikut ke sshd_config untuk menonaktifkan root untuk login ke server secara langsung.

$ vi /etc/ssh/sshd_config
PermitRootLogin no

2. Izinkan Hanya Pengguna atau Grup Tertentu (AllowUsers AllowGroups)

Secara default siapa pun yang berhasil diautentikasi diizinkan untuk masuk. Sebagai gantinya, Anda dapat membatasi pengguna (atau grup) mana yang Anda izinkan untuk masuk ke sistem.

Ini berguna ketika Anda telah membuat beberapa akun pengguna di sistem, tetapi hanya ingin sedikit dari mereka yang masuk.

Ini juga berguna ketika Anda menggunakan NIS, openLDAP (atau sistem eksternal lainnya) untuk otentikasi. Setiap pengguna di perusahaan Anda mungkin memiliki akun di NIS, OpenLDAP, dll. Namun, pada server tertentu Anda hanya ingin sedikit dari mereka yang login. Misalnya, pada sistem produksi Anda hanya ingin sysadmin yang login.

Tambahkan entri berikut ke file sshd_config agar hanya pengguna tertentu yang dapat masuk ke sistem. Pada contoh di bawah ini hanya ramesh, john dan jason yang dapat login ke sistem ini. Nama pengguna harus dipisahkan dengan spasi.

$ vi /etc/ssh/sshd_config
AllowUsers ramesh john jason

Tambahkan entri berikut ke file sshd_config untuk mengizinkan hanya pengguna yang termasuk dalam grup tertentu untuk masuk. Pada contoh di bawah ini hanya pengguna yang tergabung dalam sysadmin dan grup dba yang dapat masuk ke sistem.

$ vi /etc/ssh/sshd_config
AllowGroups sysadmin dba

3. Tolak Pengguna atau Grup Tertentu (DenyUsers DenyGroups)

Alih-alih mengizinkan pengguna (atau grup tertentu), Anda juga dapat menolak pengguna atau grup tertentu.

Tambahkan entri berikut ke file sshd_config untuk menolak pengguna tertentu untuk masuk ke sistem. Pada contoh di bawah ini cvs, apache, jane tidak dapat login ke sistem ini. Nama pengguna harus dipisahkan dengan spasi.

$ vi /etc/ssh/sshd_config
DenyUsers cvs apache jane

Tambahkan entri berikut ke file sshd_config untuk menolak pengguna yang termasuk dalam grup tertentu untuk masuk. Pada contoh di bawah ini pengguna yang tergabung dalam pengembang dan grup qa tidak dapat masuk ke sistem.

$ vi /etc/ssh/sshd_config
DenyGroups developers qa

Catatan:Anda dapat menggunakan kombinasi dari semua perintah Allow dan Deny. Ini diproses dalam urutan ini:DenyUsers, AllowUsers, DenyGroups, dan terakhir AllowGroups

4. Ubah Nomor Port SSHD (Port)

Secara default ssh berjalan pada port 22. Sebagian besar penyerang akan memeriksa apakah server terbuka pada port 22, dan secara acak akan menggunakan brute force untuk login ke server menggunakan beberapa kombinasi username dan password.

Jika Anda mengubah port # menjadi sesuatu yang berbeda, orang lain perlu tahu persis port apa yang digunakan untuk login ke server menggunakan ssh. Contoh di bawah ini menggunakan port 222 untuk ssh.

$ vi /etc/ssh/sshd_config
Port 222

Dari log Anda (/var/log/secure), jika Anda melihat banyak login yang tidak valid menggunakan ssh untuk akun yang tidak ada di sistem Anda, dari
alamat ip yang tidak Anda kenali, mungkin menjadi beberapa serangan brute force. Login ssh tidak valid semacam itu akan berhenti, jika Anda mengubah nomor port.

Harap dicatat bahwa ini menyebabkan sedikit ketidaknyamanan bagi tim Anda yang masuk ke sistem, karena mereka perlu mengetahui alamat ip dan nomor port.

5. Ubah Waktu Tenggang Masuk (LoginGraceTime)

Ketika Anda ssh ke server, Anda memiliki 2 menit untuk login. Jika Anda tidak berhasil masuk dalam waktu 2 menit, ssh akan terputus.
Waktu 2 menit untuk berhasil masuk terlalu lama. Anda harus mempertimbangkan untuk mengubahnya menjadi 30 detik, atau mungkin 1 menit.

Tambahkan entri berikut ke file sshd_config untuk mengubah waktu tenggang login dari 2 menit menjadi 1 menit.

$ vi /etc/ssh/sshd_config
LoginGraceTime 1m

6. Batasi Antarmuka (Alamat IP) untuk Masuk (ListenAddress)

Jika Anda memiliki beberapa antarmuka di server yang dikonfigurasi ke alamat ip yang berbeda, Anda mungkin tidak ingin semua orang masuk ke server menggunakan semua alamat ip tersebut.

Mari kita asumsikan bahwa Anda memiliki 4 antarmuka berikut di server:

  • eth0 – 192.168.10.200
  • eth1 – 192.168.10.201
  • eth2 – 192.168.10.202
  • eth3 – 192.168.10.203

Secara default ssh akan mendengarkan semua alamat ip di atas. Jika Anda ingin pengguna login hanya menggunakan ip-address 200 dan 202, lakukan hal berikut di sshd_config

Anda
$ vi /etc/ssh/sshd_config
ListenAddress 192.168.10.200
ListenAddress 192.168.10.202

7. Putuskan sambungan SSH saat tidak ada aktivitas (ClientAliveInterval)

Setelah Anda berhasil masuk ke sistem, Anda mungkin ingin terputus saat tidak ada aktivitas setelah x jumlah menit. Ini pada dasarnya adalah waktu tunggu yang menganggur.

Di Bash, Anda dapat mencapai ini menggunakan variabel TMOUT.

Di OpenSSH, ini dapat dicapai dengan menggabungkan opsi ClientAliveCountMax dan ClientAliveInterval dalam file sshd_config.

  • ClientAliveCountMax – Ini menunjukkan jumlah total pesan checkalive yang dikirim oleh server ssh tanpa mendapat respons apa pun dari klien ssh. Standarnya adalah 3.
  • ClientAliveInterval – Ini menunjukkan batas waktu dalam hitungan detik. Setelah x jumlah detik, server ssh akan mengirim pesan ke klien meminta tanggapan. Default adalah 0 (server tidak akan mengirim pesan ke klien untuk diperiksa.).

Jika Anda ingin klien ssh keluar (batas waktu) secara otomatis setelah 10 menit (600 detik), ubah file sshd_config dan atur dua parameter berikut seperti yang ditunjukkan di bawah ini.

$ vi /etc/ssh/sshd_config
ClientAliveInterval 600
ClientAliveCountMax 0

Linux
  1. Perintah Linux:du dan opsi yang harus Anda gunakan

  2. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  3. Bagaimana /etc/motd Diperbarui?

  1. Cara mengubah ID mesin sistem di Oracle Enterprise Linux 7

  2. Tidak Dapat Menjalankan Aplikasi X Melalui SSH di Linux

  3. Putty:Ubah direktori login SSH default

  1. CentOS / RHEL :Cara Memulihkan dari file /etc/passwd yang dihapus

  2. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  3. Haruskah situs web berada di /var/ atau /usr/ sesuai dengan penggunaan yang disarankan?