Lewati ke isi

Mari lakukan penganaman pertama pada server linux kita

5-10 menit saja cukup, tergantung kecepatan mengetikan perintah pada CLI

passwd

Dengan pengguna root lakukan penggantian kata sandi dengan menggunakan perintah passwd, lalu isikan kata sandi baru bagi root, disarankan menggukan program password agar dapat menghasilkan kata sandi acak dan dapat disimpan dengan aman

passwd

Pembaruan

Setelah itu perbarui sistem dengan perintah

apt-get update; apt-get upgrade -y

install fail2ban

apt-get install fail2ban

fail2ban bekerja cukup baik tanpa konfigurasi lebih lanjut, untuk sementara biarkan saja dia berjalan apa adanya.

memberikan akses pengguna

useradd deploy
mkdir -p /home/deploy/.ssh
chmod 700 /home/deploy/.ssh

membuat dan menggunakan otentikasi kunci publik

Penggunaan otentikasi kunci publik untuk menggantikan akses menggunakan kata sandi. Sebelumnya pada komputer lokal buat terlebih dahulu kunci SSH dengan perintah

ssh-keygen -t rsa -b 2048 -f ~/.ssh/[NAMA_KUNCI] -C [PENGGUNA]
chmod 400 ~/.ssh/[NAMA_KUNCI_PUBLIK]

Pada komputer server, buat berkas authorized_keys dan salin isi dari [NAMA_KUNCI_PUBLIK] kedalam berkas tersebut. Setelah itu modifikasi dengan chmod dan berikan akses kepada pengguna dengna chown

nano /home/deploy/.ssh/authorized_keys
chmod 400 /home/deploy/.ssh/authorized_keys
chown deploy:deploy /home/deploy -R

Berikan kata sandi yang kuat untuk pengguna tersebut lalu simpan hanya untuk digunakan pada kondisi darurat.

passwd deploy

Kemudian jalanankan visudo memberikan akses kepada root dan pengguna deploy. Kemontari seluruh baris, lalu tambahkan.

root    ALL=(ALL) ALL
deploy  ALL=(ALL) ALL

Kunci akses SSH

Atus ssh agar tidak dapat menggukan kata sandi sebagai akses masuk, dan berikan akses kepada pengguna yang diingikan. Pertimbahkan juga untuk membatasi akses berdasarkan alamat IP

nano /etc/ssh/sshd_config

Lalu tambahkan atau ganti nilai pada berkas sshd_config menjadi seperti di bawah.

PermitRootLogin no
AllowUsers deploy
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys
PasswordAuthentication no

Jangan tutup dulu sesi root yang sedang aktif, buka sesi ssh baru untuk melakukan uji coba login dengan menggunakan pengguna baru saja dibuat.

ssh -i ~/.ssh/[NAMA_KUNCI_PRIVAT] [PENGGUNA]@[ALAMAT_IP]

Setelah berhasil, lalu jalankan ulang layanan ssh

service ssh restart

Jika setelah restart, dari komputer lokal berhasil tersambung dengan server, baru aman untuk menutup sesi root yang sebelumnya masih aktif.

Firewall

Ubuntu datang dengan paket ufw kepanjangan dari uncomplex firewall, yang membuat pengelolaan dasar firewall menjadi mudah. Jalankan perintah di bawah

ufw allow 22
ufw allow 80
ufw allow 443
ufw enable

Perintah di atas, memberikan akses dasar terhadap suatu server, yaitu membuka port 22 untuk layanan ssh, 80 dan 443 untuk layanan web.

Mengaktifkan pembaruan otomatis

Saat melakukan pengelolaan terhadap satu sampai dengan 3 mesin, proses menjalankan perintah apt-get update; apt-get upgrade -y masih cukup menyenangkan. Namun bayangkan jika server yang diurus ada selusin atau bahkan lebih. Walaupun menjalankan pembaruan otomatis tanpa konfirmasi atau pengujian kompabilitas server juga tidak disarankan, namun tidak adanya pembaruan sama sekali juga adalah suatu hal yang tidak kalau buruk. Jadi pengaturan untuk menajalankan pembaruan yang sifatnya keamanan sangata dibutuhkan.

Instal terlebih dahulu paket untuk pengatur pembaruan yang diingikan

apt-get install unattended-upgrades

Jalankan perintah di bawah untuk memeriksa paket apa yang sifatnya patch yang perlu diperbarui. Opsi --dry-run digunakan untuk mensimulaikan pembaruan tanpa langsung penerapan terhadap server.

unattended-upgrade --dry-run -d

Jika sudah yakin dan ingin proses pembaruan berjalan otomatis, suntung berkas /etc/apt/apt.conf.d/10periodic

nano /etc/apt/apt.conf.d/10periodic

Silakan hapus konten yang ada jika sudah cukup paham dan ganti dengan isi di bawah, atau cukup dengan meyesuaikannya saja

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattendeed-Upgrade "1";

Satu konfigurasi lagi

nano /etc/apt/apt.conf.d/50unattended-upgrades

Pastikan pembaruan yang dilakukan sifatnya adalah hanya keamanan

Ubuntu

Unattended-Upgrade::Allowed-Origins {
        "Ubuntu lucid-security";
//      "Ubuntu lucid-updates";
};

Debian GCP

...
Unattended-Upgrade::Origins-Pattern {
        ...
        "origin=Debian,codename=${distro_codename},label=Debian-Security";
};

Rujukan:

Pemantauan catatan (log)

Logwatch adalah daemon yang dapat digunakan untuk memantau dan mengirimkan notifikasi via surel. Instal terlebih dahulu.

apt-get install logwatch

Suting berkas proses cron logwatch

nano /etc/cron.daily/00logwatch

Lalu tambahkan atau sesuaikan entri pada cron tersebut

/usr/sbin/logwatch --output mail --mailto [email protected] --detail high

Hore, yak cukup sudah!!! Pengaturan ini adalah dasar yang dapat diterapkan hampir kepada setiap server, terutama pada lingkungan distro Debian

Rujukan: