Tahapan Awal Untuk Mengamankan Server Ubuntu 18.04 Pada VPS / Dedicated Server

Mengamankan Server Linux harus menjadi pertimbangan sebelum anda melakukan setting lebih lanjut, pada halaman ini anda akan dibantu step-step Cara Mengamankan Server Ubuntu 18.04 yang nantinya akan menjadi server dimana aplikasi atau website anda berada mengingat Ubuntu ini merupakan OS server yang cukup banyak diminati oleh pengguna server karena popularitasnya yang telah populer lebih awal dibandingkan OS linux server lainnya.

Sebelum kita memulai tutorial inti dari langkah awal Cara Mengamankan Server Ubuntu 18.04 ini, kami berasumsi bahwa anda telah memahami cara menggunakan putty, jika belum, silahkan anda membuka posting kami sebelumnya Cara Menggunakan Putty dan 10 Command Line SSH

Langkah Awal Cara Mengamankan Server Ubuntu 18.04 pada VPS

 

Syarat-Syarat Yang Harus Dipenuhi

  • Linux VPS atau Dedicated Server
  • Ubuntu 18.04 Telah terinstall
  • Aplikasi Putty
  • Pengetahuan dasar tentang linux command line

Jika anda belum mempunyai VPS atau Dedicated Server, silahkan anda membeli terlebih dahulu, kami menyarankan untuk membeli VPS sesuai target pengunjung, untuk target pengunjung lokal VPS lokal atau sever Singapore atau bisa juga server Eropa. Pertimbangan lain yaitu pelayanan, pembayaran dan harga tentunya.

Login Root dan Mengganti Password

Cara Mengamankan Server Ubuntu 18.04 yang pertama kali yang bisa anda lakukan adalah mengganti Password yang diberikan oleh pihak hosting, password ini akan dikirimkan via email bersamaan dengan semua detail VPS yang anda sewa.

Bukankah password yang di generate otomatis oleh sistem hosting adalah password yang cukup rumit?, iya, passwordnya memang cukup rumit, akan tetapi telah tertulis didalam inbox email anda sehingga bisa jadi celah kebocoran password, bahkan hosting terkemuka Digitalocean secara otomatis meminta untuk mengganti password saat anda pertama login ke server anda.

Login terlebih dahulu melalui terminal Putty dengan menggunakan user root dan password anda kemudian ganti password dengan command line berikut:


passwd

Masukkan password baru, kemudian “enter”, masukkan lagi password baru sebagai konfirmasi kemudian “enter”, outputnya seperti berikut:

[email protected]:~# passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
[email protected]:~#

Aktifkan Firewall Pada Server

Langkah kedua untuk Mengamankan Server Ubuntu 18.04 yaitu mengaktifkan Firewall pada server anda, namun sebelum mengaktifkan firewall, terlebih dahulu kita yakinkan bahwa akses dari aplikasi OpenSSH diizinkan sehingga kita bisa login kembali nantinya via terminal Putty, untuk memberikan akses pada OpenSSH, ikuti langkah berikut:

Cek terlebih dahulu aplikasi apa saja yang terinsatall dengan menggunakan command line berikut:


ufw app list

Outputnya sebagai berikut:

[email protected]:~# ufw app list
Available applications:
OpenSSH
[email protected]:~#

Berikan akses ke OpenSSH dengan command line berikut:


ufw allow OpenSSH

Outputnya sebagai berikut:

[email protected]:~# ufw allow OpenSSH
Rules updated
Rules updated (v6)

Sekarang aktifkan firewall dengan command line berikut dan ketik y pada sesi pertanyaan:


ufw enable

Output:

[email protected]:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Sekarang cek status firewall dan pastikan bahwa akses OpenSSH diizinkan dengan tanda “Allow”.


ufw status

Output:

[email protected]:~# ufw status
Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)

Tambah User Baru dan Berikan Hak Privilleges

Langkah berikutnya kita akan menambahkan user baru yang akan kita pakai nantinya untuk mengakses SSH dari terminal Putty, mengapa harus menambah user baru?, nanti akan saya jelaskan pada bagian berikutnya.


adduser nama_user

Ganti nama_user dengan nama user yang anda inginkan, contoh berikut saya menggunakan nama “mawar”, ketik “y” pada setiap pertanyaan dan isi identitas user yang anda masukkan, maka outputnya sebagai berikut:


[email protected]:~# adduser mawar
Adding user `mawar' ...
Adding new group `mawar' (1000) ...
Adding new user `mawar' (1000) with group `mawar' ...
Creating home directory `/home/mawar' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for mawar
Enter the new value, or press ENTER for the default
        Full Name []: Mawar
        Room Number []: 031
        Work Phone []: 081254890661
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y

Sekarang anda buka terminal Putty baru dan login dengan menggunakan user baru anda untuk memastikan bahwa user baru anda telah dibuat dengan benar, jika anda berhasil masuk maka anda telah memiliki user baru.

Berikan hak Privilleges pada user baru anda sehingga nantinya user baru bisa memiliki akses terhadap command line yang dimiliki root dengan menambah sudo pada awal command line, untuk memberikan hak privilleges gunakan command line usermod -aG sudo nama_user, dalam hal ini user saya mawar maka command linenya sebagai berikut:


usermod -aG sudo mawar

Output:


[email protected]:~# usermod -aG sudo mawar
[email protected]:~#

Ganti Default Port Untuk SSH dan Disable Root Login

Secara default, port yang digunakan untuk mengakses server via terminal SSH adalah port 22, sekarang kita akan menggunakan port yang lain untuk alasan keamanan karena port 22 ini terlalu umum dan setiap orang tahu bahwa port default itu adalah port 22, jika anda mengganti ke port pilihan anda dan men-disable port 22 maka ini akan menambah kerja keras hacker untuk menemukan port mana yang anda gunakan untuk mengakses server via SSH terminal.

Port pada contoh berikut saya akan menggunakan port 19288, port bisa anda pilih sendiri, konon port ini bisa anda ganti dengan angka apa saja dari 1025 sampai 65536, pada sebagian hosting membuka semua port yang tersedia, namun pada sebagian hosting hanya membuka port umum untuk keperluan web seperti port 21 untuk akses FTP, 22 untuk akses SSH, 80 untuk akses ke http dan port 443 untuk akses https. Jika demikian, anda harus membuka port pilihan anda sendiri dengan menggunakan command line berikut:


ufw allow nomor_port

Output:


[email protected]:~# ufw allow 19288
Rule added
Rule added (v6)

Sekarang anda bisa mengganti default port dari port 22 ke port pilihan anda, saya akan mengganti ke port 19288.


nano /etc/ssh/sshd_config

Nano editor akan membuka file sshd_config, cari #port 22, uncomment atau hilangkan tanda pagar dan ganti 22 ke port pilihan anda.


..................
Port 19288
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
..................

Disable root login dengan mengganti  PermitRootLogin yes ke no


..................
#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
..................

Scroll terus kebawah Uncomment / hilangkan tanda pagar pada UseDNS no dan tambahkan AllowUsers nama_user dibawahnya.


..................
#ClientAliveCountMax 3
UseDNS no
AllowUsers mawar
#PidFile /var/run/sshd.pid
..................

Simpan file sshd_config dengan menekan Ctrl+O pada keyboard dan ketik y kemudian enter, file konfigurasi sudah tersimpan, keluar editor nano dengan menekan Ctrl+x pada keyboard. Reload SSH dengan menggunakan command line berikut:


systemctl reload ssh

Sekarang anda test root dan user login anda, buka terminal SSH putty yang baru, jangan tutup dulu terminal anda dengan login root saat ini, test menggunakan kombinasi login root – port 22, root – port pilihan anda, user – port 22 dan user – port pilihan anda.

Seharusnya anda hanya bisa mengakses server anda menggunakan kombinasi user baru – port pilihan anda. dalam hal ini saya menggunakan user mawar dan port 19288.

Putty port baru


login as: mawar
[email protected]'s password:
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.15.0-42-generic x86_64)
..................

Saat ini saya telah bisa login dengan port 19288 dan user mawar, saya tidak bisa lagi login dengan menggunakan port 22 dan user root artinya keamanan server saya telah meningkat dari port umum yaitu port 22 yang semua orang tahu ke port rahasia yaitu port 19288, demikian juga user root ini user umum namun sanga powerful, anda tidak bisa mengeksekusi apapun tanpa user root oleh sebab itu user root ini disebut juga “Super User”.

Nah, sekarang bagaimana dong kalau tidak bisa masuk sebagai user root, sementara banyak task yang hanya bisa dieksekusi oleh user root? Ada dua cara untuk melakukan task root yaitu:

1. Melakukan Task root Melalui Login User Baru

Pada step sebelumnya saat membuat user baru kita telah menambahkan hak akses Privilleges ke user baru sehingga user baru bisa melakukan task root dengan bantuan grup sudo, yaitu menambahkan kata sudo yang artinya Super User Do pada awal command line dan anda akan diminta password user anda.


sudo nama_command_line

Contoh:


[email protected]:~$ sudo ufw status
[sudo] password for mawar:
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
19288                      ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
19288 (v6)                 ALLOW       Anywhere (v6)
..................

2. Masuk Sebagai root Melalui Login User Baru

Anda tetap bisa masuk sebagai root hanya saja tidak bisa langsung melalui gerbang port 22 maupun port pilihan anda, anda harus masuk terlebih dahulu sebagai user baru anda kemudian dari jendela terminal user baru andalah anda bisa masuk sebagai user root.

Caranya mudah tinggal ketik su pada terminal dan masukkan password root anda.


su

Output:


mawa[email protected]:~$ su
Password:
root@test:/home/mawar#

Kesimpulan

Kita telah melakukan Cara Mengamankan Server Ubuntu 18.04 untuk mengamankan VPS dan Dedicated server anda, pada langkah awal Mengamankan Server linux berbasis Ubuntu ini kita telah melakukan:

  1. Penggantian password bawaan untuk root
  2. Mengaktifkan firewall
  3. Membuat user baru dan memberikan privilleges root
  4. Mengganti pintu port default ke port rahasia
  5. Mencegah root masuk langsung melalui pintu port manapun

Kita juga telah membahas bagaimana cara mengeksekusi command line yang hanya bisa dilakukan oleh root sementara root login tidak bisa dilakukan melalui pintu terminal SSH langsung ke port, dengan demikian akan menambah kerja keras hacker untuk merusak server anda dimana mereka harus berusaha keras menemukan pintu port rahasia anda, nama user anda karena mereka tidak bisa masuk dengan root yang mana user root ini semua hacker tahu, merka juga harus menemukan port mana saja yang tidak terkunci dan mereka harus menemukan nama user rahasia anda.