Mengamankan Akses Login ke Server Produksi Linux
Pada server produksi, sangat disarankan untuk menggunakan user non-root sebagai akses ke server, kenapa? karena jika user root anda terhack karena kelemahan password, tentu saja hacker bisa melakukan apa saja di sistem anda.
sumber ilustrasi: DI SINI
info
OS yang kami gunakan:
- Server: Debian 10
- Desktop: Ubuntu 19.04
#
Cara Membut User Non rootuseradd johndoe -U -m -s /bin/bash -G sudo
#
Penjelasan Command- useradd adalah command untuk membuat user
- johndoe adalah nama user yang ingin dibuat
- -U berfungsi untuk membuat group dengan nama group sama dengan nama user
- -m berfungsi membuat direktori user (default: /home/namauser)
- -s /bin/bash berfungsi untuk memberikan akses shell /bin/bash ke user
- -G sudo berfungsi memasukkan user ke group sudo
#
Setting Password Userpasswd johndoe
#
Login ke User dari rootsu johndoe
#
Penggunaan Command Non root UserSemua command yang membutuhkan akses root, maka harus menggunakan awalan sudo, contoh:
sudo apt updatesudo apt upgradesudo apt install nanosudo apt install wget
Untuk mengakses root akun, gunakan perintah:
johndoe@localhost:~$ sudo su[sudo] password for johndoe: root@localhost:/home/johndoe#
#
Error sudo command not found- Jika anda mengalami itu, maka install dahulu package sudo, ini mungkin terjadi jika anda menggunakan installasi minimal.
- Jika anda masih login di user, maka ketika command exit untuk kembali ke akun root, atau bisa menggunakan command sudo su
apt install sudo
#
Menutup akses ssh ke root dan gunakan passwordlessSekarang akun root belum lah benar-benar aman, kita harus buat user root tidak bisa diakses remote oleh orang lain, terutama di server online produksi.
Untuk mengatasi itu ada beberapa langkah yang harus kita lakukan, yaitu mengubah configurasi pada SSH Server yang kita gunakan dan gunakan passwordless agar lebih aman.
#
Setting SSH-KeysSSH-Keys ini nanti akan kita gunakan untuk login ke server yang digunakan, dengan ssh-keys kita tidak perlu memasukkan password untuk login.
#
Pada Komputer/Laptop Yang Kita Gunakan- Disini saya menggunakan OS Linux Ubuntu pada Desktop saya, sehingga saya hanya perlu menjalankan command berikut untuk generate ssh-keys :
ssh-keygen -t rsa -b 4096
- Anda akan diminta memasukkan passsphare, tekan enter jika tidak ingin menggunakannya
- Semua files keys akan tersimpan pada folder ~/.ssh
$ ls ~/.sshid_rsa id_rsa.pub
- Untuk menggunakan ssh-keys di server, catat files id_rsa.pub sebagai ssh-keys public, sedangkan id_rsa digunakan untuk verifikasi keys yang digunakan (jangan share files ini, ini merupakan ssh-keys private anda)
#
Pada Server Produksi- Buat folder ~/.ssh
mkdir -p ~/.ssh
- Copy semua data yang ada pada file id_rsa.pub dari komputer/laptop yang anda gunakan ke files ~/.ssh/authorized_keys pada server.
nano ~/.ssh/authorized_keys
- Anda bisa menyimpan banyak public keys di files authorized_keys
#
Test Login dengan SSH-Keys- Pada komputer anda, gunakan perintah :
ssh johndoe@1.2.3.4
Catatan: 1.2.3.4 merupakan alamat ip server produksi anda
- Jika anda berhasil login tanpa input password, maka pengaturan ssh-keys anda sukses
warning
- Setiap pengeditan konfigurasi ssh, dapat menyebabkan anda tidak bisa login ke server, kami sarankan anda membackup config sebelum melakukan perubahan.
- Pastikan anda memiliki VNC Console, jika anda tidak bisa login via ssh, maka anda masih bisa edit konfigurasi di VNC Console
#
Update konfigurasi SSHnano /etc/ssh/sshd_config
#
1. Ganti Port SSHPort 2020
Anda bebas mengganti port sesuai keinginan anda, diatas hanyalah contoh
#
2. Disable root loginPermitRootLogin no
#
3. Disable Password AuthenticationPasswordauthentication no
#
Keseluruhan Konfigurasi SSH yang dirubahPort 2020PermitRootLogin noPasswordauthentication no
#
Restart SSH Servicesudo systemctl restart ssh
#
Test Loginssh johndoe@1.2.3.4 -p 2020
- -p 2020 merupakan port yang kita gunakan sesuai dengan settingan config yang dirubah
- Jika anda sukses login, maka edit config sudah benar
- Jika seseorang mencoba login dengan root akun, maka automatis ditolak
$ ssh root@1.2.3.4ssh: connect to host 1.2.3.4 port 22: Connection refused$ ssh root@1.2.3.4 -p 2020ssh: connect to host 1.2.3.4 port 2020: Connection refused
Sekian tutorial dari kami, semoga bermanfaat.