Penyiapan Server Awal dengan Ubuntu 20.04

Pengantar

Ketika Anda menciptakan server Ubuntu 20.04 yang baru untuk pertama kali, Anda harus melakukan beberapa langkah konfigurasi penting sebagai bagian dari persiapan dasar. Langkah-langkah ini akan meningkatkan keamanan dan penggunaan server Anda, serta memberikan Anda suatu fondasi yang kuat untuk berbagai tindakan berikutnya.

Langkah 1 — Log masuk sebagai root

Untuk log masuk ke server Anda, Anda perlu mengetahui alamat IP publik server Anda. Anda juga membutuhkan kata sandi atau — jika Anda menginstal kunci SSH untuk autentikasi — kunci privat untuk akun pengguna root. Jika Anda belum log masuk ke server, Anda mungkin ingin mengikuti panduan kami tentang cara terhubung ke Droplet dengan SSH, yang membahas proses ini secara mendetail.

Jika Anda belum terhubung ke server Anda, log masuk sekarang sebagai pengguna root dengan menggunakan perintah berikut (ganti bagian perintah yang disorot dengan alamat IP publik server Anda):

Terima peringatan tentang autentikasi hos jika peringatan itu muncul. Jika Anda menggunakan autentikasi kata sandi, berikan kata sandi root Anda untuk log masuk. Jika Anda menggunakan kunci SSH yang dilindungi frasa sandi, Anda mungkin diminta memasukkan frasa sandi saat kali pertama Anda menggunakan kunci pada setiap sesi. Jika ini bukan kali pertama Anda log masuk ke server dengan kata sandi, Anda juga dapat diminta mengubah kata sandi root.

Tentang root

Pengguna root adalah pengguna administratif dalam suatu lingkungan Linux yang memiliki privilese sangat luas. Karena privilese akun root telah ditingkatkan, Anda tidak disarankan untuk menggunakannya secara teratur. Hal ini dikarenakan salah satu kekuatan yang melekat pada akun root adalah kemampuan membuat perubahan yang sangat dekstruktif, sekalipun dilakukan secara tidak sengaja.

Langkah berikutnya adalah membuat akun pengguna baru dengan privilese yang lebih sedikit untuk penggunaan sehari-hari. Nantinya, kami akan mengajarkan cara mendapatkan privilese yang ditingkatkan hanya sewaktu Anda membutuhkannya.

Langkah 2 — Menciptakan Pengguna Baru

Setelah log masuk sebagai root, kita siap untuk menambah akun pengguna baru. Nantinya, kita akan log masuk dengan akun baru ini alih-alih root.

Ini adalah contoh penciptaan pengguna baru yang bernama sammy, tetapi Anda harus menggantinya dengan nama pengguna yang Anda suka:

  • adduser sammy

Anda akan diminta menjawab beberapa pertanyaan, mulai dari kata sandi akun.

Masukkan kata sandi yang kuat dan, secara opsional, isi informasi tambahan jika Anda mau. Ini tidak wajib diisi dan Anda dapat langsung menekan ENTER pada bidang apa pun yang ingin dilewati.

Langkah 3 — Memberikan Privilese Administratif

Sekarang, kita punya akun pengguna baru dengan privilese akun reguler. Namun, kadang kala kita perlu melakukan tugas-tugas administratif.

Agar tidak perlu log keluar dari pengguna biasa dan log masuk kembali sebagai akun root, kita dapat membuat sesuatu yang disebut sebagai superpengguna atau privilese root untuk akun biasa kita. Ini akan membuat pengguna biasa kita menjalankan berbagai perintah yang mengandung privilese administratif dengan memasukkan kata sudo sebelum setiap perintah.

Untuk menambahkan privilese ini kepada pengguna baru, kita perlu menambahkan pengguna ke grup sudo. Secara asali, pada Ubuntu 20.04, pengguna yang menjadi anggota grup sudo diperkenankan untuk menggunakan perintah sudo.

Sebagai root, jalankan perintah ini untuk menambahkan pengguna baru ke grup sudo (ganti nama pengguna yang disorot dengan pengguna baru Anda):

  • usermod -aG sudo sammy

Sekarang, saat log masuk sebagai pengguna reguler, Anda dapat mengetik sudo sebelum perintah untuk melakukan tindakan dengan privilese superpengguna.

Langkah 4 — Mengatur Firewall Dasar

Server Ubuntu 20.04 dapat menggunakan firewall UFW untuk memastikan hanya koneksi ke layanan tertentu yang diizinkan. Kita dapat mengatur firewall dasar secara sangat mudah menggunakan aplikasi ini.

Catatan: Jika server Anda beroperasi di DigitalOcean, Anda dapat menggunakan DigitalOcean Cloud Firewalls alih-alih firewall UFW. Kami menyarankan menggunakan satu firewall saja untuk menghindari pertentangan aturan yang mungkin sulit diawakutu.

Aplikasi dapat mendaftarkan profilnya di UFW saat instalasi. Profil-profil ini memungkinkan UFW untuk mengelola aplikasi berdasarkan nama. OpenSSH, suatu layanan yang memungkinkan kita terhubung ke server kita sekarang, memiliki profil yang terdaftar dengan UFW.

Anda dapat melihatnya dengan mengetik:

  • ufw app list
OutputAvailable applications:   OpenSSH 

Kita harus memastikan firewall mengizinkan koneksi SSH sehingga kita dapat log masuk lagi di kesempatan selanjutnya. Kita dapat mengizinkan koneksi ini dengan mengetik:

  • ufw allow OpenSSH

Setelah itu, kita dapat mengaktifkan firewall dengan mengetik:

  • ufw enable

Ketik y dan tekan ENTER untuk melanjutkan. Anda dapat melihat bahwa koneksi SSH masih diizinkan dengan mengetik:

  • ufw status
OutputStatus: active  To                         Action      From --                         ------      ---- OpenSSH                    ALLOW       Anywhere OpenSSH (v6)               ALLOW       Anywhere (v6) 

Jika Anda menginstal dan mengonfigurasi layanan tambahan, Anda akan perlu menyesuaikan pengaturan firewall untuk mengizinkan lalu lintas masuk, karena firewall masih memblokir semua koneksi kecuali untuk SSH. Anda dapat mempelajari beberapa operasi UFW yang umum dalam panduan UFW Essentials kami.

Langkah 5 — Mengaktifkan Akses Eksternal untuk Pengguna Reguler Anda

Karena kita telah memiliki pengguna reguler untuk penggunaan sehari-hari, kita perlu memastikan bahwa kita dapat melakukan SSH secara langsung ke akun tersebut.

Catatan: Sampai Anda sudah memastikan bahwa Anda bisa log masuk dan menggunakan sudo dengan pengguna baru Anda, kami menyarankan untuk tetap log masuk sebagai root. Dengan begitu, jika ada masalah, Anda dapat memecahkan masalah dan membuat perubahan yang diperlukan sebagai root. Jika Anda menggunakan DigitalOcean Droplet dan mengalami masalah dengan koneksi SSH root, Anda dapat log masuk ke Droplet menggunakan DigitalOcean Console.

Proses untuk mengonfigurasi akses SSH bagi pengguna baru Anda tergantung apakah akun root server Anda menggunakan kata sandi atau kunci SSH untuk autentikasi.

Jika Akun Root Menggunakan Autentikasi Kata Sandi

Jika Anda log masuk ke akun root menggunakan kata sandi, maka autentikasi kata sandi akan diaktifkan untuk SSH. Anda dapat melakukan SSH ke akun pengguna baru Anda dengan membuka sesi terminal baru dan menggunakan SSH dengan nama pengguna baru Anda:

Setelah memasukkan kata sandi pengguna reguler Anda, Anda akan log masuk. Ingat, jika Anda perlu menjalankan perintah dengan privilese administratif, ketik sudo sebelumnya seperti ini:

  • sudo command_to_run

Anda akan diminta memasukkan kata sandi pengguna reguler Anda saat menggunakan sudo untuk pertama kalinya pada setiap sesi (dan selanjutya secara berkala).

Untuk meningkatkan keamanan server Anda, kami sangat menyarankan untuk mengaktifkan kunci SSH alih-alih menggunakan autentikasi kata sandi. Ikuti panduan kami tentang mengaktifkan kunci SSH pada Ubuntu 20.04 untuk mempelajari cara mengonfigurasi autentikasi berbasis kunci.

Jika Akun Root Menggunakan Autentikasi Kunci SSH

Jika Anda log masuk ke akun root Anda menggunakan kunci SSH, maka autentikasi kata sandi dinonaktifkan untuk SSH. Anda akan perlu menambahkan salinan dari kunci publik lokal pada berkas ~/.ssh/authorized_keys pengguna baru agar bisa log masuk dengan sukses.

Karena kunci publik Anda sudah berada di dalam berkas ~/.ssh/authorized_keys akun root pada server, kita dapat menyalin berkas itu dan struktur direktorinya ke akun pengguna baru pada sesi yang ada.

Cara termudah untuk menyalin berkas dengan kepemilikan dan izin yang benar yaitu dengan menggunakan perintah rsync. Ini akan menyalin direktori .ssh pengguna root, menyimpan izin, dan memodifikasi pemilik berkas, semua itu hanya dengan satu perintah. Pastikan untuk mengganti bagian perintah yang disorot di bawah ini agar sesuai dengan nama pengguna reguler Anda:

Catatan: Perintah rsync memberikan perlakuan yang berbeda terhadap sumber dan tujuan yang diakhiri dengan tanda garis miring dibanding yang tidak diakhiri dengan tanda garis miring. Saat menggunakan rsync di bawah, pastikan direktori sumber (~/.ssh) tidak diakhiri dengan tanda garis miring (periksalah untuk memastikan Anda tidak menggunakan ~/.ssh/).

Jika Anda secara tidak sengaja menambahkan tanda garis miring pada akhir perintah, rsync akan menyalin konten *dari direktori ~/.ssh akun *root** ke direktori rumah pengguna sudo alih-alih menyalin seluruh struktur direktori ~/.ssh. Berkas akan berada di lokasi yang salah serta SSH tidak akan dapat menemukan dan menggunakannya.

  • rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

Sekarang, buka sesi terminal baru pada mesin lokal Anda, dan gunakan SSH dengan nama pengguna baru Anda:

Anda harus log masuk ke akun pengguna baru tanpa menggunakan kata sandi. Ingat, jika Anda perlu menjalankan perintah dengan privilese administratif, ketik sudo di depan perintah seperti ini:

  • sudo command_to_run

Anda akan diminta memasukkan kata sandi pengguna biasa saat menggunakan sudo untuk pertama kalinya pada setiap sesi (dan selanjutnya secara berkala).

Setelah Ini, Apa Selanjutnya?

Di titik ini, Anda memiliki fondasi yang kuat untuk server Anda. Anda dapat menginstal perangkat lunak apa pun yang dibutuhkan di server Anda sekarang.