Langkah Hardening Sistem Operasi Fedora-Server 21 (1/2)

Dalam dokumen “Guide to General Server”, yang dikeluarkan oleh NIST pada Juli 2008, terdapat panduan untuk mengamankan/ hardening suatu sistem operasi. Adapun langkah-langkahnya adalah sebagai berikut.
a. memasang dan menambal (patch) sistem operasi
b. menghapus layanan, aplikasi, dan protokol yang tidak diperlukan
c. mengkonfigurasi pengguna-pengguna, grup-grup, dan otentikasi
d. mengkonfigurasi kontrol sumberdaya-sumberdaya
e. memasang dan mengkonfigurasi kontrol keamanan tambahan, seperti anti-virus, firewall berbasis host, dan sistem deteksi intrusi (IDS), jika diperlukan
f. menguji keamanan dari dasar sistem operasi untuk memastikan langkah yang dilakukan sesuai dengan yang dibutuhkan keamanan

Dalam artikel ini akan dibahas mengenai langkah hardening (a), (b), (c) dan (d).
Untuk bahasan mengenai langkah hardening (e) dan (f) dapat dilihat pada artikel “Langkah Hardening Sistem Operasi Fedora-Server 21 (2/2)“.

Catatan:

- Setiap perintah dalam tutorial ini diakhiri dengan menekan tombol "Enter".
- Tambahkan "sudo" di depan perintah jika diperlukan akses sebagai root.
- Perintah yang berwarna merah disesuaikan dengan keinginan sendiri.
- Tagar di depan perintah menunjukkan komentar, tidak perlu diketik.

a. Memasang dan Menambal (Patch) Fedora-Server 21

Dalam artikel ini akan dibahas langsung mengenai cara menambal (patch) Fedora-Server 21. Untuk langkah pemasangan Fedora-Server 21 bisa dilihat pada artikel sebelumnya (klik di sini).

Pada Fedora-Server, penambalan dilakukan dengan perintah “yum”. Jika penambalan dilakukan melalui proxy, lakukan konfigurasi proxy terlebih dahulu dalam berkas “yum.conf” dengan cara:

1. Gunakan perintah:

vi /etc/yum.conf

2. Tekan huruf “I“, lalu tambahkan baris berikut.

# The proxy server - proxy server:port number
proxy=http://proxy.domain.com:8080
# The account details for yum connections 
proxy_username=username 
proxy_password=password

3. Tekan tombol “Esc“, lalu ketik “:wq” untuk menyimpan dan keluar.

  • Untuk mengecek pemutakhiran (update) terbaru, gunakan perintah:
yum check-update
cek apdet
Gambar 1: Tampilan Fedora-Server saat megecek pemutakhiran terbaru

Secara default Fedora-Server 21 akan mencari peladen mirror tercepat untuk melakukan pemutakhiran. Lalu semua paket yang perlu dimutakhirkan akan ditampilkan.

cek apdet 2
Gambar 2: Beberapa paket yang tersedia untuk dimutakhirkan (jika ada)
  • Untuk melakukan pemutakhiran terbaru, gunakan perintah:
yum update

Sebelum mengunduh pemutakhiran, Fedora-Server akan menampilkan daftar paket yang akan diunduh beserta ringkasan transaksi pengunduhannya (jika ada) seperti pada Gambar 3.

yum apdet
Gambar 3: Tampilan Fedora-Server sebelum mengunduh pemutakhiran terbaru (jika ada)

Pilih huruf “y” untuk mengunduh, lalu tunggu hingga pemutakhiran selesai.

apdet complete
Gambar 4: Tampilan Fedora-Server saat selesai melakukan pemutakhiran

Penambalan selesai! 🙂

b. Menghapus layanan, aplikasi, dan protokol yang tidak diperlukan

Sebelum menghapus layanan dan aplikasi yang tidak diperlukan, kita perlu mengetahui jenis layanan/ aplikasi apa saja yang terdapat Fedora-Server 21.

  • Untuk melihat daftar semua layanan, gunakan perintah berikut.
# Layanan SysV
chkconfig --list

# Layanan systemd
systemctl list-unit-files

Untuk melihat semua layanan yang sedang berjalan, gunakan perintah berikut.

service --status-all
  • Untuk melihat status dari suatu layanan, gunakan perintah berikut.
service namalayanan status  
  • Untuk menghidupkan/ mematikan suatu layanan, gunakan perintah berikut.
# Menjalankan suatu layanan
systemctl start namalayanan

# Menghentikan suatu layanan
systemctl stop namalayanan

# Membuat suatu layanan hidup setiap boot
systemctl enable namalayanan

# Membuat suatu layanan mati (bukan sekedar dihentikan)
systemctl disable namalayanan

# Menjalankan ulang suatu layanan
systemctl restart namalayanan
  • Untuk melihat daftar semua port yang terbuka beserta layanannya, gunakan perintah berikut.
# Agar muncul soket layanan numerikal
netstat -tulpn

# Agar muncul soket layanan literal 
netstat -tulp
Gambar
Gambar 5: Contoh daftar log yang terbuka dengan soket numerikal
Gambar
Gambar 6: Contoh daftar port yang terbuka dengan soket literal
  • Untuk menutup suatu port dapat dilakukan dengan mematikan layanan terkait menggunakan perintah “systemctl” atau dengan menambah aturan baru di firewall menggunakan perintah berikut.
iptables -A INPUT -p tcp/udp --dport jenisprotokol/no.port -j DROP

c. Mengkonfigurasi Pengguna, Grup, dan Otentikasi

Mengkonfigurasi Pengguna dan Grup

  • Untuk menambah pengguna baru, gunakan perintah:
useradd username 

Lalu buat kata sandi untuk pengguna tersebut dengan perintah:

passwd username
  • Untuk menghapus suatu pengguna, gunakan perintah:
userdel username
  • Untuk mengetahui adanya id suatu pengguna, gunakan perintah:
id username
  • Untuk menambah grup baru, gunakan perintah:
groupadd groupname
  • Untuk menghapus suatu grup, gunakan perintah:
groupdel groupname
  • Untuk mengetahui daftar grup yang tersedia, gunakan perintah:
groups
  • Untuk memasukkan pengguna ke dalam suatu grup, gunakan perintah:
# Menambah ke dalam grup bawaan (default) seperti "root"
usermod -g groupname username

# Menambah ke dalam grup grup tambahan seperti "wheel"
usermod -a -G groupname username
  • Untuk mengeluarkan pengguna dari suatu grup, gunakan perintah:
gpasswd -d username groupname
  • Agar suatu pengguna diizinkan melakukan perintah “sudo”, masukkan pengguna tersebut ke dalam grup “wheel” dengan perintah:
usermod -a -G wheel username
  • Untuk membatasi hak akses root, buka berkas “su” dengan perintah:
vi /etc/pam.d/su

Lalu hilangkan tanda pagar pada baris berikut:

# auth required pam_wheel.so use_uid 

Setelah perubahan disimpan, hanya pengguna yang masuk ke dalam grup “wheel” yang dapat mengakses sebagai root.

Mengkonfigurasi Otentikasi

Untuk menerapkan otentikasi yang aman, diperlukan kebijakan kata sandi yang kuat. Salah satu cara menerapkannya adalah dengan menggunakan modul “pam_cracklib.so”.

Modul ini melakukan sejumlah pemeriksaan seperti memastikan kata sandi tidak mirip dengan kata-kata kamus, paling sedikit memiliki panjang tertentu, bukan kebalikan dari kata sandi sebelumnya, dan bukan kata sandi yang hanya diubah sedikit dari kata sandi sebelumnya.

Untuk menggunakan modul ini, lakukan langkah berikut.

1. Buka berkas “system-auth” dengan perintah berikut.

 vi /etc/pam.d/system-auth

2. Cari baris “password  required” dan edit menjadi seperti di bawah ini.

password required /lib/security/pam_cracklib.so retry=2 minlen=10 difok=6

# Keterangan:
# retry=2, artinya mencoba ulang paling banyak 2 kali
# minlen=10, artinya panjang kata sandi minimum 10 karakter
# difok=6, artinya paling banyak 6 karakter yang boleh sama dengan kata sandi sebelumnya

Selain itu, kata sandi para pengguna juga perlu diatur masa berlakunya supaya otentikasi lebih aman. Untuk mengatur masa berlakunya kata sandi, gunakan perintah berikut.

chage -m mindays -M maxdays -d lastday -I inactive -E expiredate -W warndays namapengguna

# Contoh:
# chage -m 7 -M 60 -W 7 pengguna1
# Artinya:
# -m 7 : jarak antar perubahan kata sandi minimum 7 hari
# -M 60: jarak antar perubahan kata sandi maksimal 60 hari 
# -W 7 : diperingatkan untuk mengganti kata sandi 7 hari sebelum tanggal expire

d. Mengkonfigurasi Kontrol Sumberdaya-Sumberdaya

  • Untuk melihat izin akses dari suatu berkas atau direktori, gunakan perintah:
ls -lha

Contoh hasil tampilannya:

Gambar
Gambar 7: Daftar izin akses dalam direktori “home” seorang pengguna

 

 

 

 

 

 

 

Karakter paling kiri berupa tanda “-” jika jenisnya berupa berkas, atau berupa huruf “d” jika berupa direktori. Sembilan karakter lainnya dipecah menjadi tiga bagian yang dapat diubah ke dalam permission bits, masing-masing menunjukkan izin akses dari pemilik, grup pemilik, serta pengguna lain di luar grup pemilik.

rwxr
Gambar 8: Bagan bit perizinan (permission bits)

Tabel permission bits:

  • Untuk mengubah izin akses dapat dilakukan dengan perintah “chmod” (change mode). Perintah ini dapat dilakukan dalam mode oktal atau mode simbolik.
# Mode oktal
chmod permissionbits folder/filename

# Mode simbolik
chmod <references><operator><modes> folder/filename
Reference Kelas Deskripsi
u user pemilik berkas
g group pengguna-pengguna yang merupakan anggota dari grup pemilik berkas
o others pengguna-pengguna bukan pemilik dan juga bukan anggota dari grup pemilik
a all semua pengguna
Operator Deskripsi
+ menambah suatu mode kepada suatu kelas
- menghilangkan suatu mode dari suatu kelas
= suatu mode dibuat sama persis dengan mode dari suatu kelas
Mode Nama Deskripsi
r read membuka suatu berkas atau direktori
w write membuat suatu berkas atau direktori
x execute mengeksekusi suatu berkas atau direktori

Contoh dengan mode oktal:

Gmabar
Gambar 9: Contoh perintah “chmod” dengan mode oktal
Contoh dengan mode simbolik:
Gambar
Gambar 10: Contoh perintah “chmod” dengan mode simbolik

 

 

 

Demikian pembahasan mengenai langkah hardening (a) sampai (d). Semoga bermanfaat 🙂

Silakan klik di sini untuk membaca artikel kelanjutannya 😀

 

Leave a Reply

Your email address will not be published. Required fields are marked *