Tak dapat dipungkiri bahwa kemajuan teknologi telah mempermudah kehidupan manusia. Namun, kemajuan teknologi juga dapat mempermudah para hacker untuk meretas dan menyerang sistem TI bisnis. Maka tak heran apabila serangan siber terus meningkat tiap tahunnya. Mengingat hal tersebut, i3 sebagai salah satu IT expert di Indonesia mengadakan diskusi mengenai security hardening yang diikuti oleh para end-user dan salah satu konsultannya, Fikri Muhammad Arifin.
Q: Apa itu security hardening?
A: Security Hardening adalah suatu proses pengamanan sistem TI yang bertujuan untuk mengurangi kerentanan dan meningkatkan keamanan sistem TI terhadap berbagai serangan yang dapat terjadi. Dengan security hardening, Anda dapat membuat standar konfigurasi keamanan pada setiap server. Tentunya, dalam proses security hardening terdapat banyak komponen yang wajib dikonfigurasi/atur, antara lain informasi server, pengaturan akses dan user, pengaturan password dan partisi, keamanan jaringan dan kernel, dan masih banyak lagi.
Q : Apa saja langkah-langkah yang wajib dilakukan untuk melakukan security hardening?
A: Security Hardening terbagi menjadi lima langkah, yaitu:
- Buatlah dokumen standar security hardening untuk dijadikan acuan dan standar (benchmark), seperti dokumen dari Center for Internet Security (CIS).
- Buatlah script agar implementasi security hardening dapat dipermudah.*
- Lakukanlah gap assessment untuk mengecek kondisi sistem Anda dan membandingkannya dengan standar yang ada.
- Implementasikan security hardening sesuai dengan standar yang telah ditentukan.
- Dokumentasikan hasil dan keefektifitasan security hardening supaya bisa dijadikan tolak ukur di kemudian hari.
*Langkah kedua diperuntukkan bagi bisnis yang baru menginstal (fresh install) dan bersifat opsional.
Q : Apa saja tips-tips yang dapat Pak Fikri berikan untuk memudahkan proses security hardening?
A: Pertama, lakukanlah security hardening saat instalasi baru, di mana semua konfigurasi operating system (OS) masih default dan belum ada aplikasi. Dengan demikian, Anda tidak perlu takut akan dampak security hardening terhadap jalannya aplikasi yang dapat mendisrupsi bisnis.
Kedua, backup setiap file serta konfigurasi yang diubah saat security hardening. Hal ini untuk mencegah terjadinya hal-hal yang tidak diinginkan saat kesalahan konfigurasi terjadi. Apabila file pam.d tidak di-backup, misalnya dan terjadi miskonfigurasi pada file tersebut, Anda tidak akan bisa login dan wajib masuk emergency mode yang akan membutuhkan restart.
Ketiga, siapkan koneksi cadangan (backup connection) agar Anda dapat tetap mengakses server walaupun salah satu koneksi bermasalah. Sebagai contoh, apabila Anda ingin mengkonfigurasi secure shell (SSH), siapkanlah koneksi lain, seperti akses desktop jarak jauh (remote desktop) ataupun console sehingga Anda tetap bisa mengakses server kalau satu koneksi terputus akibat miskonfigurasi SSH.
Keempat, lakukanlah pengecekan hasil konfigurasi untuk memastikan konfigurasi sudah diterapkan. Dengan pengaturan password, misalnya Anda dapat mengecek apakah pengaturan sudah diterapkan dengan mencoba mengganti password user .
Kelima, sesuaikan poin security hardening dengan kondisi server. Hal ini berarti jika Anda memiliki server on premise maka putuskanlah koneksi SSH dengan Internet, tetapi jika Anda menggunakan cloud service provider, koneksi SSH dengan Internet tidak boleh putus/disabled karena Anda tidak memiliki akses lain untuk melakukan security hardening.
Terakhir, buatlah template virtual machine (VM) yang sudah di-harden berupa file dengan format .ova. Jika security hardening dilakukan dalam jumlah besar, gunakanlah Ansible (Linux) atau Group Policy Object (Windows) untuk melakukan push policy ke setiap user yang menggunakan domain yang sama. Hal ini akan mempercepat proses security hardening.
Q: Apakah ada perbedaan untuk Ada security hardening di VM, bare-metal dan cloud?
A: Sebenarnya tidak ada perbedaan yang signifikan, hanya perbedaan perihal aksesnya saja. Terdapat beberapa platform/vendor/produk yang meminta akses Remote Desktop Protocol (RDP) dinonaktifkan untuk melakukan security hardening, sementara salah satu cloud provider membutuhkan akses RDP untuk melakukan security hardening.
Q: Apakah hardening bisa dilakukan sendiri atau harus menggunakan vendor?
A: Mengingat proses security hardening yang begitu rumit dan kompleks, alangkah lebih baik jika menggunakan vendor, khususnya bagi Anda yang belum memiliki standar security hardening ataupun bagi yang memiliki server dalam status produksi. Hal ini dikarenakan miskonfigurasi saat security hardening dapat mengakibatkan tidak berjalannya aplikasi ataupun rusaknya server. Namun, bila standar security hardening sudah ada dan script sudah sering dijalankan, silakan lakukan security hardening secara mandiri.
Q: Walaupun telah melakukan security hardening, tetap saja ada berbagai ancaman yang timbul, khususnya denial-of-service attack (DDoS). Bagaimana cara mengatasinya?
A: Tak dapat dipungkiri bahwa sangat sulit untuk mengatasi DDoS karena sumbernya yang bervariasi. Pada umumnya, DDoS menyebabkan kenaikkan bandwidth serta penggunaan sumber daya. Hal ini dapat diatasi dengan menggunakan load balancing, mem-blacklist atau whitelist IP. Jika kesulitan mengatasi DDoS secara mandiri, Anda dapat menggunakan DDoS Protection as a Service untuk membantu Anda melawan serangan DDoS yang hadir dalam bentuk resource atau traffic flooding.
Tentang i3
PT Inovasi Informatika Indonesia (i3) dikenal sebagai perusahaan penyedia solusi dan layanan TI yang berfokus pada Open Source, Security, Big Data dan Cloud bagi bisnis. i3 menyediakan layanan TI yang komprehensif, meliputi konsultasi, migrasi dan implementasi, pelatihan, troubleshooting, dan managed services. Untuk informasi lebih lanjut perihal layanan dan solusi yang ditawarkan, Anda dapat menghubungi kami melalui info@i-3.co.id.
Linux adalah sistem operasi gratis yang merupakan turunan dari Unix, banyak pengembang dan komunitas Linux di dunia. Linux dikenal sulit digunakan dibandingkan WIndows OS, Bagi teman-teman yang sedang belajar menggunakan Linux perintah dasar-dasar di terminal Linux wajib kita ketahui karena kita akan menggunakannya untuk mengoperasikan sistem Linux.
A
adduser = Tambah pengguna ke sistem
addgroup = Tambah grup ke sistem
alias = Buat sebuah alias
apropos = Cari Bantuan halaman manual (man-k)
apt-get = Cari dan menginstal paket perangkat lunak (Debian)
aspell = Pemeriksa Ejaan
awk = Cari dan Ganti teks, database sort / validate / index
B
basename = Strip direktori dan akhiran dari nama file
bash = GNU Bourne-Again Shell
bc = Arbitrary bahasa kalkulator presisi
bg = Kirim ke latar belakang
break = Keluar dari sebuah loop
builtin = Jalankan shell builtin
bzip2 = Compress atau dekompresi file bernama (s)
C
cal = Tampilkan kalender
case = kondisional melakukan perintah
cat = Menampilkan isi file
cd = Mengganti Directori
cfdisk = Tabel partisi manipulator untuk Linux
chgrp = Mengubah kepemilikan grup
chmod = Mengubah izin akses
chown = Mengubah pemilik file dan grup
chroot = Jalankan perintah dengan direktori root yang berbeda
chkconfig = Sistem layanan (runlevel)
cksum = Cetak byte CRC checksum dan menghitung
clear = Hapus layar terminal
cmp = Membandingkan dua file
comm = Bandingkan dua file diurutkan baris demi baris
command = Jalankan perintah – shell mengabaikan fungsi
continue = Resume iterasi berikutnya dari suatu loop
cp = Menyalin satu atau lebih file ke lokasi lain
cron = Daemon menjalankan perintah yang dijadwalkan
crontab = Jadwalkan perintah untuk menjalankan di lain waktu
csplit = Split file ke dalam konteks – potongan ditentukan
cut = membagi file menjadi beberapa bagian
D
date = Menampilkan atau mengubah tanggal & waktu
dc = Desk Kalkulator
dd = Mengkonversi dan menyalin file, menulis header disk, boot record
ddrescue = Alat untuk memperbaiki data
declare = Deklarasikan variabel dan memberi mereka atribut
df = Tampilkan ruang disk
diff = Tampilkan perbedaan antara dua file
diff3 = Tampilkan perbedaan di antara tiga file
menggali = DNS lookup
dir = Daftar isi direktori singkat
dircolors = Warna setup untuk `ls ‘
dirname = Convert semua pathname ke beberapa path
dirs = Tampilkan daftar direktori yang diingat
dmesg = Mencetak pesan-pesan kernel & driver
du = Perkiraan penggunaan kapasitas file
E
echo = Tampilkan pesan di layar
egrep = Cari file untuk baris yang sesuai dengan ekspresi yang diperpanjang
eject = Mengeluarkan media removable
enable = Mengaktifkan dan menonaktifkan perintah shell builtin
env = Environment variabel
ethtool = Pengaturan kartu Ethernet
eval = Evaluasi beberapa perintah / argumen
exec = Menjalankan perintah
exit = Keluar dari shell
expect = mengotomatiskan aplikasi yang bebas diakses melalui terminal
expand = Convert tab ke spasi
eksport = Set variabel lingkungan
expr = Evaluasi ekspresi
F
false = Tidak melakukan apa-apa, tidak berhasil
fdformat = Tingkat rendah format sebuah floppy disk
fdisk = tabel partisi manipulator untuk Linux
fg = Kirim pekerjaan untuk foreground
fgrep = Cari file untuk baris yang cocok dengan string yang tetap
file = Tentukan jenis file
find = Cari file yang memenuhi kriteria yang diinginkan
fmt = Format ulang tipe teks
fold = Wrap teks agar sesuai dengan lebar tertentu.
for = Memperluas kata-kata, dan menjalankan perintah
format = Format disk atau kaset
free = Tampilkan penggunaan memori
fsck = Memeriksa dan memperbaiki sistem File konsistensi
ftp = File Transfer Protocol
fungsi = Tentukan fungsi macro
fuser = Identifikasi / memutuskan proses yang sedang mengakses file
G
gawk = Cari dan Ganti teks dalam file
getopts = Menguraikan parameter sesuai posisi
grep = Cari file untuk baris yang cocok dengan pola tertentu
group = Cetak nama grup pada pengguna
gzip = Compress atau dekompresi nama file
H
hash = Mengingat seluruh pathname dari sebuah nama argumen
head = Output bagian pertama dari file
help = Tampilkan bantuan untuk perintah built-in
history = Perintah history
hostname = Cetak atau mengatur nama sistem
I
id = Cetak user dan grup id
if = melakukan perintah kondisional
ifconfig = Konfigurasi antarmuka jaringan
ifdown = Menghentikan antarmuka jaringan
ifup = Memulai antarmuka jaringan keatas
import = Menangkap layar server X dan menyimpan sebuah gambar ke file
install = Menyalin file dan mengatur atribut
J
join = gabung garis pada field umum
K
kill = Memberhentikan proses yang sedang berjalan
killall = Memberhentikan proses oleh nama
L
less = Tampilan output satu layar pada satu waktu
let = Melakukan aritmatika pada variabel shell
ln = Membuat hubungan antara file
local = Membuat variabel
locate = Cari file
logname = Cetak nama login
logout = Keluar dari sebuah login shell
look = Tampilan baris yang dimulai dengan string tertentu
lpc = Program Kontrol jalur printer
lpr = Off line print
lprint = Mencetak file / Print file
lprintd = Abort pekerjaan print
lprintq = Daftar antrian print
lprm = Hapus pekerjaan dari antrian print
ls = List informasi tentang file
lsof = List membuka file
M
make = Sekelompok Kompilasi ulang dari program
man = Bantuan manual
mkdir = Membuat folder baru
mkfifo = Membuat FIFOs (bernama pipa)
mkisofs = Buat hybrid ISO9660/JOLIET/HFS filesystem
mknod = Membuat blok atau karakter file khusus
more = Tampilan output satu layar pada satu waktu
mount = Mount file system
mtools = Memanipulasi file MS-DOS
mv = Memindahkan atau mengubah nama file atau direktori
mmv = Pindahkan massa dan mengubah nama (file)
N
netstat = Informasi Jaringan
nice = Mengatur prioritas perintah atau pekerjaan
nl = Nomor baris dan menulis file
nohup = Jalankan perintah kebal terhadap hangups
nslookup = Query Internet menyebut server secara interaktip
notify-send = Mengirim desktop notifications
O
open = membuka file dalam aplikasi default
op = Operator akses
P
passwd Memodifikasi password user
paste = Menggabungkan baris file
pathchk = Periksa nama file portabilitas
ping = Test sambungan jaringan
pkill = memberhentikan proses running
popd = Mengembalikan nilai sebelumnya dari direktori sekarang
pr = Siapkan file untuk dicetak /print
printcap = kemampuan pencetak Database
printenv = Cetak variabel lingkungan
printf = Format dan mencetak data
ps = Status Proses
pushd = Simpan dan kemudian mengubah direktori sekarang
pwd = Mengetahui direktori kita berada
Q
quota = Tampikan penggunaan disk dan membatasinya
quotacheck = Meneliti sistem file untuk penggunaan disk
quotactl = Set kuota disk
R
ram = perangkat disk ram
rcp = Salin file antara dua mesin
read = Membaca baris dari standar input
readarray = Baca dari stdin ke variabel array
readonly = Menandai variabel / fungsi sebagai readonly
reboot = Reboot sistem
rename = Ubah nama file
renice = Ubah prioritas dari proses yang berjalan
remsync = Sinkronisasi remote file melalui email
return = Keluar fungsi shell
rev = Membalikkan baris dari sebuah file
rm = Menghapus file
rmdir = Remove folder
rsync = Remote file copy (Synchronize file pohon)
S
screen = Multiplex terminal, run remote shells via ssh
scp = Secure copy (remote file copy)
sdiff = Menggabungkan dua file secara interaktif
sed = Stream Editor
select = Menerima input keyboard
seq = Print urutan numeric
set = Memanipulasi variabel shell dan fungsi
sftp = Secure File Transfer Program
shift = Pergeseran parameter posisi
shopt = Pilihan shell
shutdown = Shutdown atau restart linux
sleep = Delay/penundaan untuk jangka waktu tertentu
slocate = Cari file
sort = Mengurutkan file teks
source = Jalankan perintah dari file `.”
split = Split file ke dalam fixed-potong
ssh = Secure Shell client (remote login program)
strace = Trace sistem panggilan dan sinyal
su = Gantikan identitas pengguna
sudo = Jalankan perintah sebagai user lain
sum = Mencetak checksum untuk file
symlink = Buatlah nama baru untuk file
sync = Sinkronisasi data pada disk dengan memori
T
tail = Output bagian terakhir file
tar = Tape Archiver
tee = Redirect output ke beberapa file
test = Evaluasi ekspresi kondisional
time = Program Mengukur waktu running
times = User dan sistem waktu
touch = Ubah file timestamps
top = Daftar proses yang berjalan pada sistem
traceroute = Trace Route to Host
trap = Jalankan perintah ketika sebuah sinyal adalah set (Bourne)
tr = Translate, squeeze, dan / atau menghapus karakter
true = Tidak melakukan apapun, berhasil
tsort = Topologi sort
tty = Print filename dari terminal pada stdin
type = menjelaskan perintah
U
ulimit = Batasi pengguna resources (sumber daya)
umask = Para pengguna menciptakan file tersembunyi
umount = Unmount (tidak menaiki) perangkat
unalias = Hapus alias
uname = Informasi sistem print
unexpand = Convert spasi untuk tab
Uniq = Uniquify file
unit = Mengkonversi unit dari satu skala ke yang lain
unset = Hapus variabel atau nama fungsi
unshar = Uraikan catatan arsip shell
until = Mengeksekusi perintah (sampai error)
useradd = Membuat akun user baru
usermod = Memodifikasi akun user
users = Daftar para pengguna yang sekarang ini login
uuencode = Encode file biner
uudecode = Decode file yang dibuat oleh uuencode
V
v = Daftar isi direktori Verbosely ( `ls-l-b ‘)
vdir = Daftar isi direktori Verbosely ( `ls-l-b ‘)
vi = Text Editor
vim = Text Editor
vmstat = Laporan statistik memori virtual
W
watch = Mengeksekusi / menampilkan sebuah program secara berkala
wc = Cetak byte, kata, dan baris menghitung
whereis = Cari pengguna $ path, halaman manual dan file source untuk program
which = Cari pengguna $ path untuk file program
while = Jalankan perintah
who = Cetak semua nama pengguna yang sedang log in
whoami = Cetak pengguna saat ini dan nama id ( `id-un ‘)
wget = Ambil halaman web atau file melalui HTTP, HTTPS atau FTP
write = Mengirim pesan ke pengguna lain
X
xargs = Jalankan utility, melewati daftar argumen yang dibangun
xdg-open = Buka file atau URL dalam aplikasi yang disukai pengguna.
Y
yes = Cetak string sampai di interrupt
. = Skrip menjalankan perintah shell yang sekarang
zip = Paket zip dan kompres (arsip) file
!! = Jalankan perintah terakhir lagi
### = Komentar / Remark
./ = Perintah menjalankan program
Dalam terminal pada saat membuat atau mengedit file:
Dalam vi editor atau editor lainnya ada dua mode, mode COMMAND untuk perintah dan mode INSERT untuk mengetik.
Tekan tombol ESC untuk pindah ke mode COMMAND
Tekan tombol INSERT untuk pindah ke mode INSERT
Save, pindah ke mode COMMAND lalu ketik :w
Save dan Exit :wq
Exit :q atau :q!
Cara masuk ke hard drive/hard disk/partisi
pertama kita harus melihat partisi tersebut dengan mengetikan
# fdisk -l atau # ls /dev
Biasanya sebelum kita bisa dapat masuk partisi diharuskan me mount partisi tersebut.
setelah list dari directory /dev ditampilkan lihat partisi yang ingin kita mount. Misalnya kita memutuskan untuk memount partisi dev sda1. flashdisk menggunakan nama sdc, sdc1 dst.
Maka ketik :
# mount /dev/sda1 /mnt
Penjelasan : mount adalah command sedang /dev/sda1 adalah lokasi dari device yang akan di mount. Dan /mnt adalah directory tujuan dari proses mount.
6. Sekarang isi dari directory sda1 bisa kita lihat di directory mount /mnt. Ketik :
# ls /mnt
maka akan tampil list dari sda1
7. Untuk melepas drive. Ketik :
# umount /dev/sda1
Biasanya untuk linux desktop partisi terdapat di /media (tetapi harus dimount dulu)
# cd /media
untuk melihat semua partisi.
# ls
Untuk menghapus file dan folder di trash
# rm -rf ~/.local/share/Trash/files
#rm -rf ~/.local/share/Trash/files/*
Untuk melihat isi trash
# ls ~/.local/share/Trash