GNU/Linux >> Belajar Linux >  >> Linux

10 Tips Pengerasan SSH yang Dapat Ditindaklanjuti untuk Mengamankan Server Linux Anda

SSH adalah salah satu metode paling umum untuk mengakses server jarak jauh. SSH juga merupakan salah satu alasan paling umum di balik server Linux yang disusupi.

Jangan salah paham. SSH (Secure Shell) adalah protokol yang cukup aman berdasarkan desain, tetapi ini tidak berarti Anda harus membiarkannya pada konfigurasi default.

Dalam artikel ini, saya akan membagikan beberapa cara praktis untuk meningkatkan keamanan SSH dan dengan demikian mengamankan server Linux Anda.

Tips untuk mengamankan SSH di server Linux

Jangan ikuti semua tips pengerasan SSH yang disebutkan di sini. Baca semuanya dan lihat mana yang sesuai dengan kebutuhan Anda. Juga perlu diingat bahwa beberapa tip mungkin tidak kompatibel dengan yang lain.

Misalnya, jika Anda menonaktifkan login SSH berbasis kata sandi, tidak perlu menggunakan solusi Fail2Ban.

Jika Anda mengetahui dasar-dasar SSH, Anda tahu bahwa file konfigurasi SSH terletak di /etc/ssh/sshd_config .

Sebagian besar tips pengerasan SSH yang disebutkan di sini akan mengharuskan Anda untuk mengedit file konfigurasi ini. Inilah sebabnya mengapa itu akan menjadi ide yang baik untuk membuat cadangan file asli. Anda juga harus memulai ulang layanan SSH jika Anda membuat perubahan apa pun pada file konfigurasi SSH.

Mari kita lihat langkah apa yang dapat Anda ambil untuk mengamankan server SSH Anda.

1. Nonaktifkan sandi kosong

Ya. Dimungkinkan untuk memiliki akun pengguna di Linux tanpa kata sandi apa pun. Jika pengguna tersebut mencoba menggunakan SSH, mereka juga tidak memerlukan kata sandi untuk mengakses server melalui SSH.

Itu adalah risiko keamanan. Anda harus melarang penggunaan kata sandi kosong. Dalam file /etc/ssh/sshd_config, pastikan untuk menyetel opsi PermitEmptyPasswords ke no.

PermitEmptyPasswords no

2. Ubah port SSH default

Port SSH default adalah 22 dan sebagian besar pemeriksaan skrip serangan hanya ditulis di sekitar port ini. Mengubah port SSH default akan menambah lapisan keamanan tambahan karena jumlah serangan (yang masuk ke port 22) dapat berkurang.

Cari informasi port di file konfigurasi dan ubah ke sesuatu yang berbeda:

Port 2345

Anda harus mengingat atau mencatat nomor port jika tidak, Anda juga tidak dapat mengakses server Anda dengan SSH.

3. Nonaktifkan login root melalui SSH

Sejujurnya, menggunakan server sebagai root itu sendiri harus dilarang. Ini berisiko dan tidak meninggalkan jejak audit. Mekanisme seperti sudo hanya ada karena alasan ini.

Jika Anda memiliki pengguna sudo yang ditambahkan di sistem Anda, Anda harus menggunakan pengguna sudo itu untuk mengakses server melalui SSH alih-alih root.

Anda dapat menonaktifkan login root dengan memodifikasi opsi PermitRootLogin dan menyetelnya sebagai no:

PermitRootLogin no

4. Nonaktifkan protokol ssh 1

Ini jika Anda menggunakan distribusi Linux yang lebih lama. Beberapa versi SSH yang lebih lama mungkin masih memiliki protokol SSH 1 yang tersedia. Protokol ini memiliki kerentanan yang diketahui dan tidak boleh digunakan.

Versi SSH yang lebih baru secara otomatis mengaktifkan protokol SSH 2 tetapi tidak ada salahnya untuk memeriksanya kembali.

Protocol 2

5. Konfigurasikan interval waktu tunggu idle

Interval waktu tunggu idle adalah jumlah waktu koneksi SSH dapat tetap aktif tanpa aktivitas apa pun. Sesi menganggur seperti itu juga merupakan risiko keamanan. Sebaiknya konfigurasikan interval waktu tunggu idle.

Interval batas waktu dihitung dalam detik dan secara default adalah 0. Anda dapat mengubahnya menjadi 300 untuk mempertahankan interval waktu tunggu lima menit.

ClientAliveInterval 300

Setelah interval ini, server SSH akan mengirim pesan hidup ke klien. Jika tidak mendapat tanggapan, koneksi akan ditutup dan pengguna akhir akan logout.

Anda juga dapat mengontrol berapa kali ia mengirim pesan hidup sebelum memutuskan sambungan:

ClientAliveCountMax 2

6. Izinkan akses SSH hanya untuk pengguna tertentu

Dalam hal keamanan, Anda harus mengikuti prinsip dengan hak istimewa paling rendah. Jangan memberikan hak jika tidak diperlukan.

Anda mungkin memiliki beberapa pengguna di sistem Linux Anda. Apakah Anda perlu mengizinkan akses SSH ke semuanya? Mungkin tidak.

Pendekatan di sini adalah mengizinkan akses SSH ke beberapa pengguna yang dipilih dan dengan demikian membatasi untuk semua pengguna lain.

AllowUsers User1 User2

Anda juga dapat menambahkan pengguna yang dipilih ke grup baru dan hanya mengizinkan grup ini untuk mengakses SSH.

AllowGroups ssh_group

Anda juga dapat menggunakan DenyUsers dan DenyGroups untuk menolak akses SSH ke pengguna dan grup tertentu.

7. Nonaktifkan Penerusan X11

Server tampilan X11 atau X adalah kerangka kerja dasar untuk lingkungan grafis. Penerusan X11 memungkinkan Anda menggunakan aplikasi GUI melalui SSH.

Pada dasarnya, klien menjalankan aplikasi GUI di server tetapi berkat penerusan X11, saluran dibuka antara mesin dan aplikasi GUI ditampilkan pada mesin klien.

Protokol X11 tidak berorientasi pada keamanan. Jika Anda tidak membutuhkannya, Anda harus menonaktifkan penerusan X11 di SSH.

X11Forwarding no

8. Mengurangi serangan brute force secara otomatis

Untuk menggagalkan serangan bruteforce SSH, Anda dapat menggunakan alat keamanan seperti Fail2Ban.

Fail2Ban memeriksa upaya login yang gagal dari alamat IP yang berbeda. Jika upaya buruk ini melewati ambang batas dalam interval waktu yang ditetapkan, IP akan dilarang mengakses SSH untuk jangka waktu tertentu.

Anda dapat mengonfigurasi semua parameter ini sesuai keinginan dan kebutuhan Anda. Saya telah menulis panduan pengantar terperinci tentang penggunaan Fail2Ban yang harus Anda baca.

9. Nonaktifkan login SSH berbasis kata sandi

Tidak peduli seberapa banyak Anda mencoba, Anda akan selalu melihat upaya login yang buruk melalui SSH di server Linux Anda. Penyerang cerdas dan skrip yang mereka gunakan sering kali menangani pengaturan default alat seperti Fail2Ban.

Untuk menghilangkan serangan brute force yang konstan, Anda dapat memilih hanya login SSH berbasis kunci.

Dalam pendekatan ini, Anda menambahkan kunci publik dari sistem klien jarak jauh ke daftar kunci yang dikenal di server SSH. Dengan cara ini, mesin klien tersebut dapat mengakses SSH tanpa memasukkan kata sandi akun pengguna.

Ketika Anda memiliki pengaturan ini, Anda dapat menonaktifkan login SSH berbasis kata sandi. Sekarang, hanya mesin klien yang memiliki kunci SSH tertentu yang dapat mengakses server melalui SSH.

Sebelum Anda melakukan pendekatan ini, pastikan Anda telah menambahkan kunci publik Anda sendiri ke server dan berhasil. Jika tidak, Anda akan mengunci diri dan mungkin kehilangan akses ke server jarak jauh khususnya jika Anda menggunakan server cloud seperti Linode di mana Anda tidak memiliki akses fisik ke server.

Baca tutorial mendetail ini untuk mempelajari cara menonaktifkan otentikasi SSH berbasis kata sandi.

10. Otentikasi dua faktor dengan SSH

Untuk meningkatkan keamanan SSH, Anda juga dapat mengaktifkan otentikasi dua faktor. Dalam pendekatan ini, Anda menerima sandi satu kali di ponsel, email, atau melalui aplikasi autentikasi pihak ketiga.

Anda dapat membaca tentang menyiapkan autentikasi dua faktor dengan SSH di sini.

Kesimpulan

Anda dapat melihat semua parameter server SSH Anda menggunakan perintah ini:

sshd -T

Dengan cara ini, Anda dapat dengan mudah melihat apakah Anda perlu mengubah parameter apa pun untuk meningkatkan keamanan server SSH.

Anda juga harus terus memperbarui instalasi dan sistem SSH.

Saya telah membuat daftar beberapa cara praktis pengerasan SSH. Tentu saja, ada beberapa cara lain untuk mengamankan SSH dan server Linux Anda. Tidak mungkin mencantumkan semuanya dalam satu artikel.

Saya harap Anda menemukan tips ini bermanfaat. Beri tahu saya tips mana yang menurut Anda berguna.

Apakah Anda tahu tips tambahan tentang keamanan SSH? Mengapa tidak membagikannya kepada kami di bagian komentar?


Linux
  1. 9 hal yang harus dilakukan dalam 10 menit pertama Anda di server Linux

  2. 7 langkah untuk mengamankan server Linux Anda

  3. Cara SSH di Linux dari Android

  1. Amankan Server Linux Anda Dengan Fail2Ban [Panduan Pemula]

  2. 6 Alat Sumber Terbuka yang Harus Dimiliki untuk Mengamankan Server Linux Anda

  3. Perintah Linux untuk menunggu server SSH aktif

  1. Pantau server Linux Anda dengan Checkmk

  2. Cara Mengatur SSH Tanpa Kata Sandi di Linux

  3. 10 Tips untuk Mengamankan Server Web Apache Anda di UNIX / Linux