Mengamankan Koneksi SSH Anda di Ubuntu 20.04
Tags: linux, ssh, ubuntu, port
Published: 2020-07-14 14:24:12


OpenSSH adalah implementasi protokol SSH. OpenSSH direkomendasikan untuk login jarak jauh, membuat cadangan, transfer file jarak jauh melalui scp atau sftp, dan banyak lagi. SSH sempurna untuk menjaga kerahasiaan dan integritas untuk pertukaran data antara dua jaringan dan sistem. Namun, keuntungan utama adalah otentikasi server, melalui penggunaan kriptografi kunci publik. Dari waktu ke waktu ada desas-desus tentang OpenSSH [zero day exploit](https://en.wikipedia.org/wiki/Zero-day_%28computing%29). Halaman ini menunjukkan cara mengamankan server OpenSSH Anda yang berjalan pada sistem ubuntu 20.04 server yang merupakan penjabaran dari tulisan saya tentang pengaturan awal server di [ITKoding](https://itkoding.com/) untuk meningkatkan keamanan sshd.

**1. Gunakan SSH login berbasis kunci publik**

Server OpenSSH mendukung berbagai otentikasi. Disarankan agar Anda menggunakan otentikasi berbasis kunci publik. Pertama, buat pasangan kunci menggunakan perintah ssh-keygen berikut di desktop / laptop lokal Anda:

    $ ssh-keygen -t key_type -b bits -C "comment"  
    $ ssh-keygen -t ed25519 -C "Login to production cluster at xyz corp"  
    $ ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_aws_$(date +%Y-%m-%d) -C "AWS key for abc corp clients"

Selanjutnya, instal kunci publik menggunakan perintah ssh-copy-id:

    $ ssh-copy-id -i /path/to/public-key-file user@host  
    $ ssh-copy-id user@remote-server-ip-or-dns-name  
    $ ssh-copy-id hernawan@ubuntul7-aws-server
Saat dipromosikan, masukkan kata sandi pengguna. Verifikasi bahwa login berbasis kunci ssh bekerja untuk Anda:

    $ ssh hernawan@ubuntul7-aws-server

**2. Nonaktifkan login pengguna root**

Sebelum kami menonaktifkan login pengguna root, pastikan pengguna biasa dapat login sebagai root. Sebagai contoh, izinkan pengguna hernawan untuk login sebagai root menggunakan perintah sudo.

    $ sudo adduser hernawan sudo

Setelah dikonfirmasi nonaktifkan login root dengan menambahkan baris berikut ke sshd_config:

    PermitRootLogin no  
    ChallengeResponseAuthentication no  
    PasswordAuthentication no  
    UsePAM no

**3. Nonaktifkan login berbasis kata sandi**

Semua login berbasis kata sandi harus dinonaktifkan. Hanya login berbasis kunci publik yang diizinkan. Tambahkan yang berikut ini di file sshd_config Anda:

    AuthenticationMethods publickey
    PubkeyAuthentication yes

**4. Batasi akses shs Users**

Secara default, semua pengguna sistem dapat masuk melalui SSH menggunakan kata sandi atau kunci publik mereka. Terkadang Anda membuat akun pengguna UNIX / Linux untuk tujuan FTP atau email. Namun, para pengguna dapat masuk ke sistem menggunakan ssh. Mereka akan memiliki akses penuh ke alat sistem termasuk kompiler dan bahasa scripting seperti Perl, Python yang dapat membuka port jaringan dan melakukan banyak hal mewah lainnya. Hanya izinkan pengguna hernawan untuk menggunakan sistem melalui SSH, tambahkan yang berikut ke sshd_config:

    AllowUsers hernawan

**5. Nonaktifkan Kata Sandi Kosong**

Anda perlu secara eksplisit melarang login jarak jauh dari akun dengan kata sandi kosong, perbarui sshd_config dengan baris berikut:

    PermitEmptyPasswords no

**6. Ubah Port SSH dan batasi pengikatan IP**

Secara default, SSH mendengarkan semua antarmuka yang tersedia dan alamat IP pada sistem. Batasi pengikatan port ssh dan ubah port ssh (banyak skrip memaksa hanya mencoba tersambung ke port TCP # 22). Untuk mengikat ke port 300, tambahkan atau perbaiki baris berikut di sshd_config:

    Port 300

**Kesimpulan**

Dengan 6 langkah tersebut kita sudah bisa meminimalisir dari serangan maupun brute force melalui SSH ke server.