all about technology

Mengamankan Server Dengan Aman & Terjaga


Pengamanan Server Linux

Mengamankan Server Dengan Aman & Terjaga



Cara Mengamankan Server Dengan Aman & Terjaga

Bagaimana agar Server Linux kita terjaga dari orang orang jahil ?

  1. Pengamanan terhadap mode single user
  2. Melakukan pemeriksaan file-file log pada Linux
  3. Melakukan backup
  4. Memproteksi perintah-perintah linux tertentu
  5. Merestriksi perintah su
  6. Mengkonfigurasi file /etc/inittab dan file /etc/fstab
  7. Mensetting unmask dan time out
  8. Mengkonfigurasi file /etc/issue dan issue.net serta file/etc/securetty 
  9. Merestriksi diirektori /etc/rc.d dari user selain root
  10. Mengkonfigurasi file /etc/sysctl.conf
Penjelasan :

Linux yang sering disebut-sebut "The Hackers OS", menjadi Operating System yang populer. Perjuangan para pecinta Open Source dalam Me-Linux-kan masyarakat tampaknya tidak sia-sia. Linux disukai karena FREE, secure dan tampilan grafisnya yang kini kian menawan saja. Walaupun sudah diakui ketangguhannya, namun bukan berarti Linux 100% secure. Tentu masih ada beberapa system celah kemanan yang bisa di rusak.

Oleh karena itu, dalam tutorial ini, saya bermaksud untuk berbagi informasi mengenai bagaimana cara-cara mengamankan mesin Linux anda. Semoga dapat digunakan dengan baik.


Hal apa saja yang sebaiknya anda lakukan?


1. Pengamanan terhadap mode Single User
Pertama-tama, kita harus membuat password lilo. Edit dan tambahkan option-option di bawah ini pada file /etc/lilo.conf (file utama pengaturan option-option pada LILO) :

Contoh file /etc/lilo.conf
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=00 #tambahkan !
default=linux
restricted # tambahkan !
password=t3rs3r4h # tambahkan !
image=/boot/vmlinuz-2.2.12-20
label=linux
initrd=/boot/initrd-2.2.12-10.img
root=/dev/sda6
read-only

:: Keterangan parameter selengkapnya:

boot :

Memberitahu device yang memiliki boot sector. Boot sector dibaca dari device ini dan di mount sebagai root.

Linear : Mengenerate linear sector addrress. Lihat dokumentasi LILO.

install : Menginstal file yang telah ditentukan sebagi boot sector yang baru. Jika install tidak dipakai, /etc/lilo/boot.b dipakai sebagi default.

message : Untuk menampilkan file teks, besarnya maksimum 65,535 byte.

verbose : Menampilkan progress reporting. Option lain seperti -v dan -q. Lihat dokumentasi LILO.

backup : Menyalin boot sector asli ke file .

force-backup : Sama dengan backup. Option ini menimpa salinan backup yang telah dibuat dan akan mengabaikan option backup bila keduanya dipakai.

Prompt : Meminta masukan saat boot.

timeout : Mengeset waktu tunggu keyboard sebelum menjalankan option berikutnya. Defaultnya 5 detik. Masukkan value 0 jika ingin LILO menunggu sampai ada masukkan darii keyboard.

serial : Mengijinkan masukan dari serial line dan keyboard ke LILO.

ignore-table : Mengabaikan tabel partisi yang corrupt.

password : Memasang password untuk melindungi boot images.

restricted : digunakan bersama dengan option password, restricted di sini berarti password lilo hanya akan berlaku/ditanyakan jika user MENULISKAN/MENGGUNAKAN paramater atau option tertentu pada saat booting linux (misalkan LILO: linux –s, linux root=/dev/hda1 rw init=/bin/sh, dll). Dan password TIDAK akan ditanyaakan jika kita booting TIDAK MENGGUNAKAN parameter (misalkan Lilo: linux).

password : t3rs3r4h berisi password lilo untuk booting (dalam hal ini berarti password lilonya adalah t3rs3r4h). Baca baca manualnya dengan mengetik perintah:
[root]# man lilo.conf

Setelah itu settinglah agar file /etc/lilo.conf hanya dapat terbaca oleh root.
[root]# chmod 600 /etc/lilo.conf

Jangan lupa untuk mengupdate konfigurasi /etc/lilo.conf yang baru.
[root]# /sbin/lilo

dan buat agar file /etc/lilo.conf bersifat immute (sehingga file /etc/lilo.conf ini tidak akan bisa diubah/diedit tanpa melakukan un-immute) :
[root]# chattr +i /etc/lilo.conf

Untuk melakukan perubahan/mengedit file /etc/lilo.conf harus dilakukan un-immute terlebih dahulu dengan perintah :
[root]# chattr -i /etc/lilo.conf



2.Melakukan pemeriksaan file-file log pada Linux
Cobalah periksa file-file log Linux anda (terutama yang terletak di direktori /var/log).
[root]# less /var/log/messages
[root]# less /var/log/maillog
[root]# less /var/log/xferlog


3.Melakukan backup
Seringkali penyusup masuk ke dalam sistem dan merusak dengan menghapus berkas/data yang dapat ditemui. Jika intruder ini berhasil menjebol sistem dan masuk sebagai super user (administrator), maka ada kemungkinan dia dapat menghapus seluruh berkas. Untuk itu, adanya backup yang dilakukan secara rutin merupakan sebuah hal yang esensial.


Untuk sistem yang sangat esensial, secara berkala perlu dibuat backup yang letaknya berjauhan secara fisik. Hal ini dilakukan untuk menghindari hilangnya data akibat bencana seperti kebakaran, banjir, gempa dan lain lain. Apabila data-data dibackup akan tetapi diletakkan pada lokasi yang sama, kemungkinan data akan hilang jika tempat yang bersangkutan mengalami bencana


Backup lebih baik dilakukan secara rutin dan secara menyeluruh. Kita bisa melakukan backup tiap hari misalnya atau tiap jangka waktu tertentu sesuai dengan kebutuhan dan tuntutan keamanan sistem kita. Sebagai medianya dapat digunakan harddisk, atau tape (lebih baik). Untuk melakukan backup direktori home (misal : /home) dan di bawahnya pada file /root/bkhome.tar.gz di hard sik yang sama, gunakan perintah berikut :

[root]# tar –cvzf ~/bkhome.tar.gz /home


Untuk keamanan yang lebih baik, ada beberapa file pada Linux yang perlu untuk kita konfigurasi. Kebanyakan file yang akan kita manipulasi ada di direktori /etc karena file-file konfigurasi terletk disana.



4. Memproteksi perintah-perintah linux tertentu

Kita bisa juga memproteksi/merestriksi perintah-perintah tertentu agar cuma bisa dijalankan oleh root. Ada kalanya perintah/program yang diinstal pada linux harus dilindungi agar tidak disalah gunakan oleh user lain sehingga dapat mengganggu keamanan sistem atau mengganggu user yang lain (misal : rpm, wall, mc, nmap, repeat, dll). Gunakan perintah chmod agar perintah tersebut cuma bisa dieksekusi oleh root (700), misalnya untuk merestriksi perintah rpm :
[root]# chmod 700 /bin/rpm
Cobalah untuk merestriksi perintah-perintah lainnya (contoh : wall, repeat, reboot, shutdown, poweroff, halt, dll).



5. Merestriksi perintah su (substitute user)
Untuk meningkatkan keamanan, kita perlu untuk membatasi jumlah user/menghalangi user tertentu agar tidak bisa menjadi root dengan perintah su (substitute user). Edit file /etc/pam.d/su :
[root]# vi /etc/pam.d/su

auth required /lib/security/pam_pwdb.so shadow nullok
account required /lib/security/pam_pwdb.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_pwdb.so shadow use_authtok nullok
session required /lib/security/pam_pwdb.so
session optional /lib/security/pam_xauth.so

tambahkan 2 baris berikut ini :
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel

Baris di atas mengandung arti hanya anggota group wheel (user dengan gid = 10) saja yang bisa menjalankan perintah su menjadi root. Setelah itu, gunakan perintah berikut untuk memilih user-user mana saja yang bisa memakai su untuk root (bisa juga melalui userconf) :
[root]# usermod -G10 hakim

G adalah supplementary groups di mana user juga merupakan anggota dari group tersebut. “10” adalah nomor id dari group “wheel” dan hakim adalah nama usernya. Dengan perintah di atas, maka user dengan nama hakim akan dimasukkan ke dalam grup wheel. Untuk mengeceknya dapat digunakan perintah id :
[root]# id hakim

6.Mengkonfigurasi file /etc/inittab dan file /etc/fstab
Konfigurasi file /etc/inittab

#
# inittab This file describes how the INIT process should set up
# the system in a certain run-level.

# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Things to run in every runlevel.
ud::once:/sbin/update

# Trap CTRL-ALT-DELETE
# ca::ctrlaltdel:/sbin/reboot -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm -nodaemon


KETERANGAN KONFIGURASI :

id:3:initdefault:
Kita bisa mengeset default run level sehingga secara otomatis akan booting dengan run level yang diinginkan (Jangan menggunakan run level 0 (halt) dan 6 (reboot)). Konfigurasi di atas berarti default runlevel adalah 3 (Full Multi User).

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/reboot
Dengan PERINTAH di atas maka tombol CTRL-ALT-DELETE akan dianggap sebagai perintah reboot. Untuk mendisablenya dapat dilakukan dengan cara menambahkan tanda komentar (#) sehingga perintah tersebut tidak akan dieksekusi :
# Trap CTRL-ALT-DELETE
# ca::ctrlaltdel:/sbin/reboot

# Run gettys in standard runlevels
Di bawah komentar ini berisi tty yang diaktifkan pada server yang secara default akan ada enam (tty1 – tty6). Virtual console ini dapat kita kurangi (misal : menjadi lima) dengan cara menambahkan tanda komentar (#):
# 6:2345:respawn:/sbin/mingetty tty6

Jangan lupa jalankan perintah berikut agar perubahan yang kita lakukan dibaca ulang :
[root]# /sbin/init q
Manual file /etc/inittab dapat dilihat dengan perintah :
[root]# man inttab


:: Konfigurasi /etc/fstab

File ini berisi filesistem-filesistem yang dimount secara otomatis pada saat sistem startup. Jika kita membagi partisi sistem dengan optimum, tentu akan lebih memudahkan dalam memanage sistem kita. Keuntungan dari multiple partition antara lain :
• Memudahkan mengatur back up dan upgrade
• Lebih cepat dalam proses booting (kasus tertentu)
• Kemampuan mengontrol file system yang dimount
• Proteksi dari SUID program
Kita bisa membuat option-option tertentu (misal noexec, nodev, dan nosuid) untuk partisi-partisi yang telah kita buat. Contoh isi file /etc/fstab :
/dev/hda11 / ext2 defaults 1 1
/dev/hda1 /boot ext2 nodev,noquota 1 2
/dev/hda8 /home ext2 exec,nodev,nosuid,rw,usrquota 1 2
/dev/hdc1 /var/www ext2 exec,nodev,suid,rw 1 2
/dev/hdc2 /var/ftp ext2 exec,nodev,suid,rw 1 2
/dev/hdc3 /cache ext2 exec,nodev,suid,rw 1 2
/dev/hdc4 /home2 ext2 exec,nodev,nosuid,rw,usrquota 1 2
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0
/dev/hda9 /usr ext2 exec,dev,suid,rw 1 2
/dev/hda10 /var ext2 exec,dev,suid,rw 1 2
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
none /proc proc defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
/dev/hda5 swap swap defaults 0 0
/dev/hda6 swap swap defaults 0 0
/dev/hda7 swap swap defaults 0 0

defaults berarti membolehkan semuanya (quota, read-write, and suid) dalam partisi tersebut. noquota berarti tidak mengeset users quotas dalam partisi ini. nosuid berarti tidak mengeset SUID/SGID access dalam partisi ini. nodev berarti tidak mengeset character atau special devices access dalam partisi ini. noexec berarti tidak mengeset eksekusi binary apapun dalam partisi ini. quota membolehkan users quotas dalam partisi ini. ro membolehkan read dalam partisi ini. rw membolehkan read-write dalam partisi ini. suid membolehkan SUID/SGID access dalam partisi ini. Pastikan untuk menambahkan option nosuid pada partisi-partisi tertentu terutama partisi home untuk menghindari kemungkinan pengaksesan root dengan program SUID. Agar lebih jelas, dapat lihat manualnya dengan perintah :
[root]# man fstab
Yang perlu kita perhatikan di sini adalah mengaktifkan nosuid, yang berarti tidak mengizinkan adanya file suid (misalkan pada direktori /home).





7.Mensetting unmask dan time out
unmask

Perintah umask digunakan untuk menentukan mode penciptaan file baku/secara otomatis pada sistem. Jika file diciptakan tanpa mengindahkan setting permisi, pemakai secara tidak sengaja mungkin dapat memberi permisi membaca atau menulis kepada seseorang yang tidak seharusnya memiliki permisi ini. Umumnya setting umask mencakup 022, 027, dan 077 (yang paling terbatas). Normalnya umask diset dalam /etc/profile, sehingga berlaku untuk semua pemakai sistem. Pastikan untuk membuat umask root 077, yang akan meniadakan permisi membaca, menulis, dan mengeksekusi bagi pemakai lain, kecuali dirubah secara eksplisit menggunakan chmod.

Pembatasan waktu (time out)
Kita bisa mengeset berapa lama waktu logout secara otomatis jika ada shell yang tidak dipakai selama jangka waktu tertentu (time out), misal = 5 menit = 300 detik. Edit file /etc/profile (File ini berisi environment dan startup program). Pada bagian :
TMOUT=7200
ganti 7200 dengan 300
Dengan begitu jika ada console yang tidak kita gunakan dalam waktu tertentu/kita lupa tidak menutupnya maka secara otomatis akan menutup dalam waktu 300 detik.




8.Mengkonfigurasi file /etc/issue dan issue.net serta file/etc/securetty
File etc/issue dan issue.net

File ini akan menampilkan jenis sistem operasi kita (sekaligus kernelnya) pada waktu telnet (file /etc/issue.net) dan waktu login secara lokal/langsung (file /etc/issue). Lebih baik kita mengganti isi file /etc/issue dan /etc/issue.net, sehingga dapat meminimalkan kerawanan keamanan jaringan.
[root]# vi /etc/issue
[root]# vi /etc/issue.net
Contoh isi file /etc/issue dan /etc/issue.net :
Welcome to spyrozone.net

File /etc/securetty
File ini mengizinkan TTY device mana saja yang dapat dipakai oleh root untuk login. Edit file /etc/securetty dan disable TTY device dengan memberi tanda comment pada awal baris (#).


tty1 menjadi #tty1
tty2 menjadi #tty2
tty3 menjadi #tty3
tty4 menjadi #tty4
tty5 menjadi #tty5
tty6 menjadi #tty6
tty7 menjadi #tty7
tty8 menjadi #tty8



Dengan demikian tidak ada user yang bisa langsung menggunakan root untuk login, tetapi harus menggunakan user biasa baru setelah itu menggunakan program su (substitute user) untuk berbah menjadi root.




9.Proteksi Direktori /etc/rc.d/*


Direktori /etc/rc.d/ ini sangat penting karena file-file pada direktori akan dijalankan ketika sistem startup/booting. Khusus direktori /etc/rc.d/init.d/* berisi servis-servis yang akan dijalankan pada saat startup sebagai daemon. Pastikan direktori ini tidak bisa diakses oleh user selain root :
[root]# chmod -R 700 /etc/rc.d/*




10. Konfigurasi file /etc/sysctl.conf
File ini merupakan file konfigurasi kernel parameter pada saat run time. Ada baiknya file ini juga kita konfigurasikan, misal :
# Enable ignoring ping request (untuk mengkonfigurasi agar sistem kita ignore terhadap ping request)
net.ipv4.icmp_echo_ignore_all = 1
# Enable ignoring broadcasts request (agar sistem ignore terhadap broadcast request)
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Enable TCP SYN Cookie Protection (agar sistem terlindung dari SYN attack, yaitu salah satu jenis Denial of Service Attack (Dos))
net.ipv4.tcp_syncookies = 1
# Disable ICMP Redirect Acceptance (melindungi dari kemungkinan perubahan routing tables)
net.ipv4.conf.all.accept_redirects = 0
# Enable always defragging Protection (harus diaktifkan jika sistem kita adalah gateway untuk IP Masquerading)
net.ipv4.ip_always_defrag = 1

Agar konfigurasi di atas dieksekusi, jangan lupa untuk menjalankan perintah berikut :

[root]# /etc/rc.d/init.d/network restart

atau bisa juga dengan perintah :

[root]# service network restart

Sampai disini dulu ya teman-teman nanti akan saya lanjutkan postingannya !


Sumber:http://hack.spyrozone.net/0193_Mengamankan_Linux_Anda_by_y3ppy_WWW.SPYROZONE.TK_08_April_2007.html

Tag : Linux
0 Komentar untuk "Mengamankan Server Dengan Aman & Terjaga"

Back To Top