SSH adalah protokol yang banyak digunakan untuk mengakses server Linux dengan aman. Sebagian besar pengguna menggunakan koneksi SSH dengan pengaturan default untuk terhubung ke server jauh. Namun, konfigurasi default tanpa jaminan juga menimbulkan berbagai risiko keamanan.
Akun root server dengan akses SSH terbuka mungkin berisiko. Dan terutama jika Anda menggunakan alamat IP publik, jauh lebih mudah untuk meretas kata sandi root. Oleh karena itu, diperlukan pengetahuan tentang keamanan SSH.
Inilah cara Anda dapat mengamankan koneksi server SSH Anda di Linux.
1. Nonaktifkan Login Pengguna Root
Untuk ini, pertama, nonaktifkan akses SSH pengguna root dan buat pengguna baru dengan hak akses root. Mematikan akses server untuk pengguna root adalah strategi pertahanan yang mencegah penyerang mencapai tujuan mereka untuk menyusup ke dalam sistem. Misalnya, Anda dapat membuat pengguna bernama akar contoh sebagai berikut:
useradd -m contoh root
passwd contoh root
usermod -aG sudo contoh root
Berikut penjelasan singkat dari perintah-perintah di atas:
- tambahkan pengguna membuat pengguna baru dan -m parameter membuat folder di bawah rumah direktori untuk pengguna yang Anda buat.
- Itu paswd perintah adalah untuk menetapkan kata sandi ke pengguna baru. Ingatlah bahwa kata sandi yang Anda berikan kepada pengguna harus rumit dan sulit ditebak.
- usermod -aG sudo menambahkan pengguna yang baru dibuat ke grup admin.
Setelah proses pembuatan pengguna, perlu dilakukan beberapa perubahan pada sshd_config mengajukan. Anda dapat menemukan file ini di /etc/ssh/sshd_config. Buka file dengan editor teks apa pun dan buat perubahan berikut:
# Autentikasi:
#LoginGraceTime 2m
IzinRootLogin no
Akar contoh AllowUsers
IzinRootLogin baris akan mencegah pengguna root mendapatkan akses jarak jauh menggunakan SSH. Termasuk akar contoh dalam IzinkanPengguna list memberikan izin yang diperlukan kepada pengguna.
Terakhir, restart layanan SSH menggunakan perintah berikut:
sudo systemctl restart ssh
Jika gagal dan Anda menerima pesan kesalahan, coba perintah di bawah ini. Ini mungkin berbeda berdasarkan distro Linux yang Anda gunakan.
sudo systemctl restart sshd
2. Mengubah Port Default
Port koneksi SSH default adalah 22. Tentu saja, semua penyerang mengetahui hal ini dan oleh karena itu, perlu untuk mengubah nomor port default untuk memastikan keamanan SSH. Meskipun penyerang dapat dengan mudah menemukan yang baru nomor port dengan pemindaian Nmap, tujuannya di sini adalah untuk mempersulit pekerjaan penyerang.
Untuk mengubah nomor port, buka /etc/ssh/sshd_config dan buat perubahan berikut pada file:
Termasuk /etc/ssh/sshd_config.d/*.conf
Pelabuhan 5922
Setelah langkah ini, restart layanan SSH lagi dengan sudo systemctl restart ssh. Sekarang Anda dapat mengakses server Anda menggunakan port yang baru saja Anda tentukan. Jika Anda menggunakan firewall, Anda juga harus membuat perubahan aturan yang diperlukan di sana. Saat menjalankan netstat -tlpn perintah, Anda dapat melihat bahwa nomor port Anda untuk SSH telah berubah.
3. Blokir Akses untuk Pengguna Dengan Kata Sandi Kosong
Mungkin ada pengguna tanpa kata sandi di sistem Anda yang mungkin Anda buat secara tidak sengaja. Untuk mencegah pengguna tersebut mengakses server, Anda dapat mengatur IzinKosongkanKata Sandi nilai garis dalam sshd_config mengajukan ke Tidak.
PermitEmptyPassword no
4. Batasi Upaya Masuk/Akses
Secara default, Anda dapat mengakses server dengan melakukan upaya sandi sebanyak yang Anda inginkan. Namun, penyerang dapat menggunakan kerentanan ini untuk memaksa server secara brutal. Anda dapat secara otomatis mengakhiri koneksi SSH setelah sejumlah upaya tertentu dengan menentukan jumlah upaya sandi yang diizinkan.
Untuk ini, ubah MaxAuthTries nilai dalam sshd_config mengajukan.
MaxAuthTries 3
5. Menggunakan SSH Versi 2
Versi kedua SSH dirilis karena banyaknya kerentanan di versi pertama. Secara default, Anda dapat mengaktifkan server untuk menggunakan versi kedua dengan menambahkan Protokol parameter untuk Anda sshd_config mengajukan. Dengan cara ini, semua koneksi Anda di masa mendatang akan menggunakan SSH versi kedua.
Termasuk /etc/ssh/sshd_config.d/*.conf
Protokol 2
6. Mematikan Penerusan Port TCP dan Penerusan X11
Penyerang dapat mencoba untuk mendapatkan akses ke sistem Anda yang lain dengan meneruskan port melalui koneksi SSH. Untuk mencegahnya, Anda dapat mematikan Izinkan PenerusanTcp dan Penerusan X11 fitur di sshd_config mengajukan.
X11Penerusan no
AllowTcpForwarding no
7. Menghubungkan Dengan Kunci SSH
Salah satu cara paling aman untuk terhubung ke server Anda adalah dengan menggunakan Kunci SSH. Saat Anda menggunakan Kunci SSH, Anda dapat mengakses server tanpa kata sandi. Selain itu, Anda dapat sepenuhnya mematikan akses kata sandi ke server dengan mengubah parameter terkait kata sandi di sshd_config mengajukan.
Saat Anda membuat Kunci SSH, ada dua kunci: Publik dan Pribadi. Kunci publik diunggah ke server yang ingin Anda sambungkan dan kunci pribadi disimpan di komputer yang digunakan untuk membuat koneksi.
Buat kunci SSH dengan ssh-keygen perintah di komputer Anda. Jangan tinggalkan Frasa sandi bidang kosong dan ingat kata sandi yang Anda masukkan di sini. Jika Anda membiarkannya kosong, Anda hanya dapat mengaksesnya dengan file kunci SSH. Namun, jika Anda menetapkan kata sandi, Anda dapat mencegah penyerang dengan file kunci untuk mengaksesnya. Sebagai contoh, Anda dapat membuat kunci SSH dengan perintah berikut:
ssh-keygen
8. Pembatasan IP untuk Koneksi SSH
Sebagian besar waktu, firewall memblokir akses menggunakan kerangka standarnya sendiri dan bertujuan untuk melindungi server. Namun, ini tidak selalu cukup dan Anda perlu meningkatkan potensi keamanan ini.
Untuk melakukan ini, buka /etc/hosts.allow mengajukan. Dengan tambahan yang Anda buat ke file ini, Anda dapat membatasi izin SSH, mengizinkan blok IP tertentu, atau memasukkan satu IP dan memblokir semua alamat IP yang tersisa dengan perintah tolak.
Di bawah ini Anda akan melihat beberapa contoh pengaturan. Setelah melakukan ini, restart layanan SSH seperti biasa untuk menyimpan perubahan.
Pentingnya Keamanan Server Linux
Masalah keamanan data dan data cukup detail dan harus diperhatikan oleh semua administrator server. Keamanan server adalah masalah yang sangat sensitif karena fokus utama serangan adalah server web, dan mereka berisi hampir semua informasi tentang suatu sistem. Karena sebagian besar server berjalan pada infrastruktur Linux, sangat penting untuk memahami sistem Linux dan administrasi server.
Keamanan SSH hanyalah salah satu cara untuk melindungi server. Dimungkinkan untuk meminimalkan kerusakan yang Anda terima dengan menghentikan, memblokir, atau memperlambat serangan. Selain menyediakan keamanan SSH, ada banyak metode berbeda yang dapat Anda terapkan untuk mengamankan server Linux Anda.