GNU/Linux >> Belajar Linux >  >> Ubuntu

11 Cara Terbaik untuk Mengamankan Server SSH Anda

SSH mengacu pada Secure Shells yang membantu dalam mengoperasikan layanan jaringan seperti login jarak jauh ke server, transfer file, dan operasi terkait server lainnya secara aman melalui jaringan yang tidak aman atau tidak aman.

Konfigurasi default SSH tidak cukup untuk mengeraskan saluran SSH; kita perlu mengkonfigurasi pengaturan tambahan untuk meningkatkan keamanannya secara penuh. Dalam artikel ini, kita akan mempelajari 11 metode mengamankan server ssh Anda.

Menonaktifkan Login Root Melalui Server SSH

Karena pengguna root memiliki akses ke seluruh layanan di server dan lebih baik tidak mengambil risiko sistem mengizinkan login root jarak jauh. Mungkin terlalu rentan jika kata sandi terbuka saat menggunakan serangan brute force atau alat peretasan lainnya. Jadi, praktik terbaik adalah menonaktifkan login root jarak jauh dan tetap menggunakan pengguna biasa.

Untuk menonaktifkan login root jarak jauh, buka file sshd_config.

$ sudo vim /etc/ssh/sshd_config

Kemudian, atur “PermitRootLogin” ke no

Nonaktifkan login pengguna root ssh.

Nonaktifkan Kata Sandi Kosong

Beberapa distribusi Linux akan membuat pengguna tanpa kata sandi sehingga mungkin rentan untuk mengizinkan koneksi ssh dengan kata sandi kosong untuk akses jarak jauh. Jadi untuk menonaktifkan layanan ini, kita perlu menyetel “PermitEmptyPasswords” ke no di file sshd_config.

PermitEmptyPasswords no

Nonaktifkan login sandi kosong.

Gunakan Otentikasi Berbasis Kunci Publik di Seluruh Protokol SSH.

Sangat disarankan untuk menggunakan otentikasi berbasis kunci publik karena server SSH mendukung proses otentikasi yang berbeda. Peretas mencoba alat peretasan yang berbeda untuk memecahkan kata sandi menggunakan berbagai metode seperti serangan brute force. Untuk mencegahnya terjadi, kami menggunakan autentikasi berbasis kunci publik.

Pertama, kita perlu membuat kunci publik dan kunci pribadi menggunakan perintah ssh-keygen. Untuk menghasilkan kunci, jalankan perintah berikut. Dalam prosesnya Anda akan ditanya di mana untuk menghasilkan kunci ssh, tekan enter jika Anda ingin melanjutkan dengan default. Kemudian Anda akan diminta kata sandi yang mengacu pada kata sandi untuk kunci ssh Anda, menggunakan kata sandi yang kuat yaitu komposisi karakter khusus, alfabet, dan angka. Setelah kata sandi disetel, kunci ssh Anda akan dibuat pada direktori .ssh di direktori home Anda.

$ ssh-keygen -t rsa

Membuat pasangan kunci ssh.

Sebelum mengunggah kunci publik, pastikan Anda memiliki dir .ssh di server jarak jauh Anda jika tidak membuatnya di direktori rumah Anda, lalu unggah kunci ssh publik Anda ke server menggunakan perintah berikut.

$ cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

Mengunggah kunci publik ke server.

Sekarang Anda dapat login sebagai pengguna ubuntu menggunakan kunci publik melalui protokol ssh.

Otentikasi berbasis kunci publik.

Nonaktifkan Otentikasi Masuk SSH Dengan Kata Sandi

Sangat disarankan untuk menggunakan otentikasi kunci publik ssh untuk akses jarak jauh ke server karena kata sandi dapat diekspos melalui serangan brute force jika kata sandi yang kuat tidak digunakan. Untuk menonaktifkan otentikasi kata sandi dari server SSH, setel nilai “PasswordAuthentication” ke no.

PasswordAuthentication no

Ubah Port Default SSH 22.

Secara default, SSH berjalan pada port 22 di sistem. Jika kita mengubah port standar SSH, itu mungkin menambahkan lapisan keamanan ekstra dengan menghindari lalu lintas yang tidak biasa ke port terbuka. Jadi, untuk mengubah port tidak sederhana, buka file sshd_config dan atur nomor port yang tidak digunakan yang diinginkan di bagian port. Ih contoh berikut saya telah mengatur port ke 454.

Ubah port default ssh.

Batasi Akses Login Pengguna Menggunakan SSH.

Server SSH memungkinkan semua pengguna ke server dari jarak jauh tetapi kami dapat mengesampingkan pengaturan default dan hanya menetapkan pengguna tertentu untuk mengizinkan atau menolak akses jarak jauh melalui protokol SSH. Dengan cara yang sederhana, memiliki akses jarak jauh ke semua pengguna sistem yang masuk, menciptakan cara yang memungkinkan bagi peretas untuk mengakses sistem kami.

Untuk mengizinkan pengguna tertentu masuk melalui SSH, tambahkan baris berikut di sshd_config.

AllowUsers user1 user2 ubuntu

Demikian pula, Anda dapat membatasi pengguna tertentu dan mengizinkan orang lain untuk mengakses melalui SSH dengan menambahkan baris kode berikut.

DenyUsers root user3 user4

Tingkatkan penggunaan Kata Sandi Kuat untuk Pengguna/Kunci SSH.

Biasanya, orang sering menggunakan kata sandi sederhana untuk login mereka seperti 123456, something123, sehingga mereka dapat mengingat kata sandi dengan mudah. Inilah sebabnya mengapa serangan brute force bekerja dengan sempurna seperti halnya kamus bijaksana untuk mencoba pemeriksaan kata sandi. Jadi, untuk menghindarinya kita harus menggunakan password yang mengandung karakter khusus, alfabet huruf besar dan kecil, angka, dan panjang password minimal 8 karakter.

Konfigurasikan Interval Batas Waktu Menganggur

Pengguna sering membiarkan koneksi SSH mereka menganggur untuk waktu yang lebih lama sehingga akan berisiko tinggi jika seseorang mencoba mengambil alih sesi SSH Anda dan melakukan apa yang mereka suka saat pengguna tidak ada saat itu. Jadi kita dapat mengatur batas waktu sesi masuk setelah periode tidak aktif tertentu sehingga kita perlu masuk kembali pada batas waktu sesi. Untuk mengatur waktu tunggu idle kita perlu mengatur nilai "ClientAliveInterval" di file sshd_config. Pada contoh berikut, saya telah menetapkan nilai batas waktu 360 yaitu 6 menit.

ClientAliveInterval 360

Gunakan Protokol SSH 2

SSH memiliki dua varian protokol SSH protokol 1 dan protokol SSH 2, protokol 1 adalah default sistem yang kurang aman dibandingkan protokol 2 karena protokol 2 menerapkan enkripsi massal, algoritma yang kuat, dan pemeriksaan kriptografi. Untuk beralih ke protokol 2 kita perlu menambahkan baris berikut di file sshd_config.

Protokol 2

Menggunakan protokol ssh 2.

Konfigurasikan Batasan untuk Upaya Sandi

Kami dapat membatasi jumlah upaya kata sandi untuk login ssh sehingga setelah sejumlah upaya terbatas, koneksi akan terputus yang akan menambah lapisan keamanan ekstra yang mencegah sistem dari serangan bot. Untuk mencapai ini, kita perlu menetapkan nilai direktif “MaxAuthTries”. Dalam contoh, saya telah menetapkan batasnya untuk 4 upaya.

MaxAuthTries 3

Batasi upaya login ssh.

Nonaktifkan Tunneling dan Port Forwarding

Jika Anda tidak akan menggunakan layanan tunneling dan port forwarding, lebih baik tetap menonaktifkannya karena peretas mungkin menggunakan layanan ini untuk menerobos sistem Anda. Untuk mencapainya, atur nilai direktif berikut ke no.

AllowAgentForwarding tidak

AllowTcpForwarding no

IzinTunnel no

Terakhir, setelah semuanya diatur jangan lupa untuk me-restart server ssh Anda untuk menerapkan perubahan

$ sudo systemctl restart ssh

Kesimpulan

Pada artikel ini, kita mempelajari beberapa cara umum untuk mengeraskan server SSH yang membantu menghindari risiko keamanan yang berbeda. Saya harap Anda menyukai artikel ini.


Ubuntu
  1. Praktik Terbaik Keamanan OpenSSH

  2. Skrip BASH Sederhana Untuk Instalasi Pasca Server Ubuntu

  3. Ssh Private-public Key Map Untuk Klien?

  1. 3 cara saya mengonfigurasi SSH untuk privasi

  2. Login SSH ke server RHEL 7 tanpa kata sandi

  3. Terhubung ke server dengan menggunakan SSH di Linux atau Mac OS X

  1. 6 Praktik Terbaik Keamanan Kubernetes:Amankan Beban Kerja Anda

  2. Server SSH Ubuntu 20.04

  3. Instal server SSH Ubuntu 22.04