Pengertian Hardening Host
Host Hardening adalah prosedur yang meminimalkan ancaman yang datang dengan mengatur konfigurasi dan menonaktifkan aplikasi dan layanan yang tidak diperlukan. Instalasi firewall, instalasi antivirus, menghapus cookie, membuat password , menghapus program yang tidak diperlukan itu semua termasuk dalam Host Hardening.
Tujuan dari Host Hardening adalah untuk menurunkan resiko ancaman serangan atau menutup lubang keamanan yang ada pada sebuah komputer, hal ini biasanya dilakukan dengan menghapus semua program/file yang tidak diperlukan atau dengan cara melakukan konfigurasi pada layanan yang sedang digunakan atau sedang berjalan.
Elemen-elemen Hardening Host
Berikut ini merupakan elemen elemen dari Host Hardening
- Security Policy
Security Policy terbagi menjadi berbagai bidang berdasarkan penggunaannya, bidang bidang itu antara lain:
Policy penggunaan computer.
- Tidak boleh meminjamkan account kepada orang lain.
- Tidak boleh mengambil/menaruh file dari komputer kantor, dll.
Policy penggunaan Installasi program.
- Tidak boleh menginsall program tanpa seijin staff IT.
- Tidak boleh menginsall program ilegal, dll.
Policy penggunaan Internet
- Tidak boleh menggunakan internet untuk kegiatan carding, hacking d
- Tidak boleh menggunakan internet untuk mengakses situs-situs yang berpotensi menyebarkan virus, dll.
Policy penggunaan Email
Tidak boleh menggunakan email kantor untuk kegiatan milis, dll.
Cryptografi
Kriptografi (cryptography) adalah ilmu dan seni menyimpan suatu pesan secara aman
Enkripsi dan Dekripsi
Cryptografi Symetric
Cryptografi Asymetric
Firewall
Firewall tersusun dari aturan aturan yang ditetapkan baik terhadap hardware, software maupun sistem itu sendiri, ini dilakukan dengan tujuan untuk melindungi komputer dalam jaringan, baik dengan melakukan filterasi, membatasi ataupun menolak suatu permintaan koneksi dari layanan luar jaringan seperti internet.
- IDS (Intrusion Detection System)
Satu cara umum melakukan otomatisasi pada pengawasan penyusupan adalah dengan menggunakan IDS. IDS akan mendeteksi jenis serangan dari “signature” atau “pattern” pada aktifitas jaringan. Bahkan dapat melakukan blokade terhadap traffic yang mencurigakan.
- Backup
Proses membuat data cadangan dengan cara menyalin atau membuat arsip data komputer sehingga data tersebut dapat digunakan kembali apabila terjadi kerusakan atau kehilangan. Backup memiliki dua tujuan. Tujuan utama adalah untuk mengembalikan data apabila data tersebut hilang, baik karena terhapus atau karena rusak (corrupt). Tujuan kedua adalah untuk mengembalikan data ke titik tertentu pada masa lalu. Karena fungsinya, proses backup mengharuskan pengguna menggandakan data, yang akhirnya menghabiskan kapasitas media penyimpanan. Ini mendorong ditemukannya teknologi-teknologi untuk mengefesienkan penyimpanan data backup, misalnya deduplikasi dan kompresi.
- Audit System
Bentuk pengawasan dan pengendalian dari infrastruktur teknologi informasi secara menyeluruh. Audit teknologi informasi ini dapat berjalan bersama-sama dengan audit finansial dan audit internal, atau dengan kegiatan pengawasan dan evaluasi lain yang sejenis. Pada mulanya istilah ini dikenal dengan audit pemrosesan data elektronik, dan sekarang audit teknologi informasi secara umum merupakan proses pengumpulan dan evaluasi dari semua kegiatan sistem informasi dalam perusahaan itu. Istilah lain dari audit teknologi informasi adalah audit komputer yang banyak dipakai untuk menentukan apakah aset sistem informasi perusahaan itu telah bekerja secara efektif, dan integratif dalam mencapai target organisasinya.
- Digital Forensik
Digital forensik berkaitan dengan :
- Pengecekan koneksi aktif
- Pengecekan listening port pasca insiden
- Pengecekan proses yang aktif pasca insiden
- Pengecekan log user yang login
- Pengecekan log system
- Pengecekan log pengakses service, dll
Langkah - langkah Hardening Host
Membuat user non-root (user biasa) Buat sebuah user biasa atau non-root, yaitu dengan menggunakan perintah :
# adduser {namauser}
. Contohnya,# adduser yori
. Kemudian masukkan password untuk user tersebut dan masukkan identitas tambahan (optional).[caption id=“attachment_39” align=“alignnone” width=“800”]
Add new user[/caption]
Menambahkah user non-root ke dalam grup sudoers Pada step ini, kita akan menambahkan user yang kita buat sebelumnya kedalam grup sudoers. Grup sudoers ini merupakan sebuah grup pada debian & turunannya, dimana jika user tergabung pada grup ini maka user tersebut dapat menjalankan perintah
sudo
. Caranya dengan mengetik perintah# visudo
dan kemudian tambahkan baris{username} ALL=(ALL) ALL
pada bagian bawah dariroot ALL=(ALL) ALL
. Atau dengan mengetik perintah# adduser {username}
.[caption id=“attachment_40” align=“alignnone” width=“800”]
Menambahkan user non-root ke dalam grup sudoers[/caption]
Membuat ssh key pada user non-root Membuat key ssh untuk user non-root yang kita buat pada step sebelumnya. Untuk membuat ssh key, dapat dilakukan dengan mengetik perintah
$ ssh-keygen -b 4096 -t rsa
.[caption id=“attachment_46” align=“alignnone” width=“616”]
Create new ssh key to current user[/caption]
Menutup akses trafik yang masuk dengan firewall ufw Pada step ini, kita akan mengganti pengaturan default pada firewall ufw. Memblokir trafik yang mengarah ke dalam :
$ sudo ufw default deny incoming
. Membuka akses trafik ke luar$ sudo ufw default allow outgoing
. Sebelum itu kita aktifkan service ufw dengan mengetik perintah$ sudo ufw enable
.[caption id=“attachment_47” align=“aligncenter” width=“421”]
Enable ufw service[/caption]
Lalu kita ubah konfigurasi ufw dengan menggunakan perintah yang telah dijelaskan diatas.
[caption id=“attachment_48” align=“aligncenter” width=“448”]
Mengganti konfigurasi ufw[/caption]
Membuka port yang dibutuhkan dengan firewall ufw Pada langkah ini, merupakan lanjutan dari langkah sebelumnya. Yaitu, kita akan mengecualikan service - service yang tidak kita inginkan untuk ikut terblokir oleh ufw. Kita dapat menggunakan perintah :
$ sudo ufw allow {nama_service}
[caption id=“attachment_49” align=“aligncenter” width=“333”]
Mengijinkan ssh port[/caption]
Menyalin public ssh key dari client ke dalam server untuk dapat login ssh tanpa perlu menggunakan password Pada step ini, kita lakukan dari sisi client. Step ini, kita akan mennyalin ssh key public yang dibuat pada client ke dalam server kita. Hal ini berguna agar client yang terdaftar dapat login dengan tanpa menggunakan password.
[caption id=“attachment_50” align=“alignnone” width=“735”]
Perintah ssh copy dari client[/caption]
Menyetel konfigurasi ssh untuk menonaktifkan login root Pada langkah ini, menjelaskan tentang bagaimana mencegah login ke user root menggunakan ssh. Adapun caranya yaitu, edit file /etc/ssh/sshd_config. Ubah PermitRootLogin menjadi no.
[caption id=“attachment_51” align=“alignnone” width=“800”]
Mencegah login root pada ssh[/caption]
Mengganti port ssh Mengganti port ssh dapat mempersulit dalam login dengan ssh. Pada saat ini, saya mengganti port ssh menjadi 9001.
[caption id=“attachment_52” align=“alignnone” width=“800”]
Change port ssh[/caption]
Menginstall unattended upgrades Menginstall paket ini adalah untuk penambahan update sekuritas tambahan.
[caption id=“attachment_53” align=“aligncenter” width=“645”]
Install unattended upgrade[/caption]
Menginstall postfix untuk dapat menggunakan layanan email
[caption id=“attachment_54” align=“aligncenter” width=“764”]
Install postfix[/caption]
[caption id=“attachment_58” align=“alignnone” width=“800”]
Konfigurasi postfix[/caption]
Menginstall logswatch untuk mengirim rangkuman melalui email tentang kondisi host
[caption id=“attachment_55” align=“alignnone” width=“800”]
Install Logwatch[/caption]
[caption id=“attachment_59” align=“alignnone” width=“800”]
Konfigurasi logwatch untuk mengirim email setiap 7 hari[/caption]
Menggunakan fail2ban untuk mengatasi serangan login ssh menggunakan metode Brute-Force
[caption id=“attachment_56” align=“aligncenter” width=“800”]
Install fail2ban[/caption]
[caption id=“attachment_57” align=“alignnone” width=“800”]
Konfigurasi fail2ban[/caption]
Mengkonfigurasi timezone menggunakan UTC dan menginstall NTP
[caption id=“attachment_60” align=“alignnone” width=“800”]
Set timezone to UTC & Install NTP[/caption]
Secure shared memory
[caption id=“attachment_61” align=“alignnone” width=“800”]
fstab file[/caption]
Menambahkan baner login
[caption id=“attachment_62” align=“alignnone” width=“800”]
Add banner login[/caption]
Memperkuat pada sisi network
$ nano /etc/sysctl.conf
cari net.ipv4.ip_forward=1 perhatikan tanda # dan hapuskan 2 tanda #
lalu kemudian cari net.ipv4.all.accept_source_route=0 dan net.ipv6.all.accept_source_route=0
perhatikan tanda # dan hapuskan 2 tanda # keduanya
Mencegah IP Spoofing
Konfigurasikan spoof dengan menambahkan atau mengedit pada baris di paling bawah.
$ sudo nano /etc/host.conf
[caption id=“attachment_63” align=“alignnone” width=“800”]
Prevent ip spoofing[/caption]