SSH (Secure Shell) adalah protokol jaringan kriptografi untuk memulai sesi shell berbasis teks pada mesin jarak jauh dengan cara yang aman.
OpenSSH adalah klien dan server SSH standar yang digunakan oleh sebagian besar Distribusi Linux. Ini adalah alat konektivitas yang paling diandalkan oleh sebagian besar administrator untuk bekerja di server Linux dan *BSD mereka. OpenSSH mengenkripsi semua lalu lintas (termasuk kata sandi) untuk secara efektif menghilangkan penyadapan, pembajakan koneksi, dan serangan lainnya. Jadi dengan kata lain "OpenSSH memastikan bahwa koneksi ke server Anda aman". Lihat artikel Wikipedia untuk penjelasan rinci tentang SSH.
Tutorial ini mencakup praktik terbaik untuk mengonfigurasi server SSH Anda dengan aman.
Keamanan OpenSSH
Ini adalah enam tugas terpenting untuk mengamankan penyiapan server SSH Anda:
- Gunakan sandi yang kuat.
- Ubah port default SSH.
- Selalu gunakan protokol versi 2.
- Nonaktifkan login root.
- Batasi akses pengguna.
- Gunakan berbasis kunci untuk autentikasi.
Gunakan sandi yang kuat
Kata sandi adalah kata atau string karakter yang digunakan untuk otentikasi pengguna untuk membuktikan identitas atau persetujuan akses untuk mendapatkan akses ke sumber daya. Rahasiakan dari mereka yang tidak diizinkan mengakses server. Gunakan kata sandi yang rumit dan panjang, harus mudah diingat dan unik menurut Anda tetapi tidak mudah ditebak orang lain . Jangan menggunakan `admin123` atau `admin` dll yang mudah ditebak dan tidak menggunakan tanggal lahir, nama istri, dll. Kata sandi yang baik juga harus mengandung karakter khusus seperti '.!;/' (bukan hanya karakter a-c dan 0-9). Gunakan karakter huruf besar dan kecil dalam kata sandi.
Ubah port default SSH
Postingan default layanan SSH adalah 22, Anda harus mengubahnya agar tidak terlalu terlihat bahwa server Anda menjalankan layanan SSH. File konfigurasi SSH terletak di direktori /etc/sshd/, Anda harus mengedit file konfigurasi /etc/ssh/sshd_config .
nano /etc/ssh/sshd_config
Cari baris "Port":
Port 22
dan ubah ke nomor port favorit Anda, contoh:1337
Port 1337
Silakan pilih port yang belum digunakan di server Anda. Anda bisa mendapatkan daftar port yang sedang digunakan dengan perintah:
netstat -ntap
Perintah ini menghasilkan daftar yang cukup panjang yang menunjukkan semua port dan koneksi yang terbuka. Jika Anda hanya ingin memeriksa apakah port yang Anda inginkan tersedia, gunakan perintah ini sebagai gantinya:
netstat -ntap | grep 4422
Dalam contoh ini, saya akan memeriksa apakah port 4422 gratis. Jika perintah tidak mengembalikan hasil, maka port tersedia dan dapat digunakan untuk SSH.
Selalu gunakan protokol 2
SSH memiliki dua versi protokol, protokol lama 1 yang tidak aman dan protokol baru 2. Jadi Selalu gunakan protokol 2 untuk server ssh Anda, itu lebih aman daripada protokol 1. Info Lebih Lanjut Di Sini.
Nonaktifkan login root
Anda harus menonaktifkan login langsung untuk pengguna root karena ada banyak serangan brute force terhadap nama pengguna super root. PENTING:uji login SSH dengan pengguna non-root alternatif yang akan Anda gunakan untuk login ssh sebelum Anda menonaktifkan akun root.
PermitRootLogin no
Setelah Anda mengatur "PermitRootLogin" menjadi "tidak", Anda tidak dapat login dengan akun root lagi, meskipun Anda menggunakan kata sandi yang benar untuk pengguna root.
Batasi pengguna
Anda harus menambahkan pengguna baru untuk login ke server Anda. Asumsikan bahwa Anda telah membuat pengguna ruiko dan mikoto untuk login ke server Anda, maka Anda dapat menambahkan baris baru:
AllowUsers ruiko mikoto
di /etc/ssh/sshd_config untuk membatasi akses SSH ke pengguna ini.
Gunakan Autentikasi Berbasis Kunci
Saya menyarankan Anda untuk menggunakan opsi ini karena ini sangat mudah diatur dan lebih aman daripada otentikasi berbasis kata sandi. Pertama Anda harus membuat pasangan kunci publik-swasta di komputer lokal (desktop), saya menggunakan Linux untuk membuatnya.
Anda dapat membuat pasangan kunci publik / pribadi dengan perintah ini:
ssh-keygen -t rsa -b 4096
Ini akan membuat 2 file yang terletak di direktori ~/.ssh/, id_rsa sebagai kunci pribadi dan id_rsa.pub sebagai kunci publik. Jika meminta kata sandi, Anda dapat membiarkannya kosong atau mengetik kata sandi Anda. Dianjurkan untuk menggunakan kata sandi untuk melindungi kunci Anda.
Sekarang unggah kunci publik id_rsa.pub ke server Anda dengan perintah ssh-copy-id.
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Ini akan secara otomatis menulis kunci publik Anda ke file ~/.ssh/authorized_keys/ di server Anda.
Sekarang kembali ke server Anda dan edit konfigurasi file ssh Anda lagi.
nano /etc/ssh/sshd_config
Batalkan komentar pada baris ini:
AuthorizedKeysFile %h/.ssh/authorized_keys
dan terakhir restart server ssh Anda:
systemctl restart sshd
Sekarang coba sambungkan ke server Anda:
ssh -p '4422' '[email protected]'
Kesimpulan
OpenSSH adalah standar untuk akses jarak jauh yang aman ke *server mirip Unix, menggantikan protokol telnet yang tidak terenkripsi. SSH (dan sub-protokol transfer file SCP) memastikan bahwa koneksi dari komputer lokal Anda ke server dienkripsi dan aman. Instalasi dasar OpenSSH sudah cukup aman, tetapi kami dapat meningkatkannya dengan mengikuti panduan di atas.