Skip to main content

Mengamankan Akses Login ke Server Produksi Linux

ยท 4 min read
Premium Fast Network
Owner @ Premium Fast Network

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 root#

useradd 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 User#

passwd johndoe

Login ke User dari root#

su johndoe

Penggunaan Command Non root User#

Semua 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 passwordless#

Sekarang 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-Keys#

SSH-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
  1. Setiap pengeditan konfigurasi ssh, dapat menyebabkan anda tidak bisa login ke server, kami sarankan anda membackup config sebelum melakukan perubahan.
  2. Pastikan anda memiliki VNC Console, jika anda tidak bisa login via ssh, maka anda masih bisa edit konfigurasi di VNC Console

Update konfigurasi SSH#

nano /etc/ssh/sshd_config

1. Ganti Port SSH#

Port 2020

Anda bebas mengganti port sesuai keinginan anda, diatas hanyalah contoh

2. Disable root login#

PermitRootLogin no

3. Disable Password Authentication#

Passwordauthentication no

Keseluruhan Konfigurasi SSH yang dirubah#

Port 2020PermitRootLogin noPasswordauthentication no

Restart SSH Service#

sudo systemctl restart ssh

Test Login#

ssh 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.