Mungkin banyak yang masih awam apa yang dimaksud dengan istilah hardening disini. Istilah hardening yang dimaksud adalah sekumpulan disiplin ilmu atau teknik yang digunakan untuk meningkatkan tingkat keamanan suatu sistem dalam hal ini sistem yang akan dibahas adalah Ubuntu Server.
Ada banyak teknik yang bisa digunakan untuk Hardening Ubuntu Server, beberapa diantaranya adalah sebagai berikut :
Mengamankan Shared Memory
Shared Memory adalah cara yang efisien untuk berbagi data antar program. Karena dua atau lebih proses dapat menggunakan space memory yang sama, telah ditemukan bahwa karena shared memory secara default di mount sebagai read/write, menyebabkan folder /run/shm dapat dengan mudah dieksploitasi.
Jika anda tidak menyadarinya, shared memory bisa digunakan untuk menyerang service yang sedang berjalan. Karena itulah perlu untuk mengamankan bagian memory tersebut.
Hal ini bisa dilakukan dengan memodifikasi file /etc/fstab :
sudo nano /etc/fstab
Kemudian, tambahkan baris berikut di bagian paling bawah file :
tmpfs /run/shm tmpfs defaults,noexec,nosuid 0 0
Simpan dan tutup file tersebut. Agar perubahannya dapat segera dirasakan, anda harus reboot server terlebih dahulu.
Hindari penggunaan FTP, Telnet, dan service Rlogin/Rsh di Linux
Di kebanyakan konfigurasi jaringan, username, password, perintah FTP/telnet /rsh dan file-file yang di transfer bisa di capture oleh siapapun yang berada di jaringan yang sama dengan menggunakan packet sniffer. Solusi yang umum untuk mengatasi masalah ini adalah dengan menggunakan Open SSH, SFTP, atau FTPS (FTP Over SSL) yang menambahkan enkripsi SSL atau TLS ke layanan FTP.
Ketik perintah berikut ini untuk menghapus NIS, rsh, dan service-service usang lainnya :
sudo apt --purge remove xinetd nis yp-tools tftpd atftpd tftpd-hpa telnetd rsh-server rsh-redone-server
Pastikan tidak ada user Non-Root yang mempunyai UID dengan nilai 0
Hanya akun root yang mempunyai UID 0 dengan akses full permission ke sistem. Ketik perintah berikut ini untuk menampilkan semua akun yang mempunyai UID 0 :
awk -F: '($3 == "0") {print}' /etc/passwd
Anda harusnya hanya melihat satu baris seperti contoh berikut :
root:x:0:0:root:/root:/bin/bash
Matikan login root
Jangan pernah login sebagai root user. Anda seharusnya menggunakan sudo untuk mengeksekusi perintah level root hanya ketika diperlukan saja, sudo menaikkan tingkat keamanan sistem tanpa sharing password root ke user dan admin lain, sudo juga menyediakan fitur audit dan tracking juga. Untuk mematikan akses root ssh, edit file /etc/ssh/sshd_config :
sudo nano /etc/ssh/sshd_config
Kemudian cari baris dengan tulisan PermitRootLogin dan ubah valuenya jadi no :
PermitRootLogin no
Aktifkan Login SSH hanya untuk user tertentu saja
Secure Shell (SSH) adalah tool yang digunakan untuk login kedalam server linux anda. Meskipun SSH secara umum aman secara default, anda bisa membuatnya lebih aman lagi dengan mengaktifkan login ssh hanya untuk user tertentu saja. Contohnya anda cuma mau mengizinkan login ssh untuk user pengguna dari ip address 192.168.1.254, maka berikut langkah-langkah yang harus dilakukan :
Buka file ssh config :
sudo nano /etc/ssh/sshd_config
Di bagian paling bawah dari file tersebut, tambahkan baris sebagai berikut :
AllowUsers pengguna@192.168.1.254
Simpan dan tutup file tersebut, kemudian restart service sshd dengan perintah :
sudo systemctl restart sshd
SSH sekarang hanya akan mengizinkan login user pengguna dari ip address 192.168.1.254. Jika ada user selain pengguna yang mencoba login ke server, mereka akan tetap dimintai password, akan tetapi password tersebut tidak akan diterima (walaupun password tersebut benar) dan akses masuk akan ditolak.
Install fail2ban
Fail2ban adalah sebuah intrusion prevention system yang memonitor file log dan mencari pattern tertentu yang berisi peluang login yang gagal. Jika jumlah tertentu dari login gagal terdeteksi dari ip address tertentu (dalam waktu yang ditentukan), fail2ban akan memblokir akses dari ip address tersebut.
Untuk menginstall fail2ban, buka terminal dan masukkan perintah berikut :
sudo apt install fail2ban
Didalam folder /etc/fail2ban, anda akan menemukan file konfigurasi utama yaitu jail.conf dan juga folder jail.d. File jail.conf merupakan file konfigurasi utama dan folder jail.d berisi file konfigurasi yang lain. Jangan mengedit file jail.conf. Alih-alih, kita akan membuat file konfigurasi baru yang akan memonitor aktifitas login ssh dengan perintah berikut :
sudo nano /etc/fail2ban/jail.local
Kemudian tambahkan baris-baris konfigurasi berikut kedalam file tersebut :
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
Berikut arti file konfigurasi tersebut :
- Mengaktifkan jail untuk ssh
- Mengatur port ssh yang dimonitor di port 22
- Gunakan filter sshd
- Atur file log yang akan dimonitor
- Maksimal percobaan login adalah 5 kali
Simpan dan tutup file tersebut, kemudian restart service fail2ban dengan perintah berikut :
sudo systemctl restart fail2ban
Terima Kasih, selamat mencoba dan bereksperimen !.