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: