|
[193]. MENGAMANKAN LINUX ANDA
------------------------------------------------------
Author : y3ppy
Contact :
y3ppy_neutron@yahoo.com
CopyLEFT (c) 2007
www.spyrozone.net All Rights Reserved
» 18/04/2007 21:05:00 WIB
------------------------------------------------------
--< Table Of Contents:
----------------------------------------------------------
I. Preface
II. Apa saja yang sebaiknya anda lakukan??
01. Pengamanan terhadap mode single user
02. Melakukan pemeriksaan file-file log pada Linux
03. Melakukan backup
04. Memproteksi perintah-perintah linux tertentu
05. Merestriksi perintah su
06. Mengkonfigurasi file /etc/inittab dan file /etc/fstab
07. Mensetting unmask dan time out
08. Mengkonfigurasi file /etc/issue dan issue.net serta
file/etc/securetty
09. Merestriksi diirektori /etc/rc.d dari user selain
root
10. Mengkonfigurasi file /etc/sysctl.conf
III. Penutup
----------------------------------------------------------------------------------
I. Preface
-----------
Linux, yang disebut-sebut
sebagai "The Hackers OS", dewasa ini 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 celah di dalamnya yang bisa
dijadikan sebagai jalan masuk bagi pihak-pihak yang tidak bertanggungjawab (hayoo...
siapa yang suka iseng... ^_^)
Karena itulah, dalam tutorial ini, saya bermaksud untuk berbagi informasi
mengenai bagaimana cara-cara mengamankan mesin Linux anda. Semoga bermanfaat.
II. Apa saja yang sebaiknya anda lakukan??
------------------------------------------
-----[01]. 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=<boot_device>
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=<boot_sector>
Menginstal file yang telah ditentukan sebagi boot sector yang baru. Jika install
tidak dipakai, /etc/lilo/boot.b dipakai sebagi default.
message=<message_file>
Untuk menampilkan file teks, besarnya maksimum 65,535 byte.
verbose=<level>
Menampilkan progress reporting. Option lain seperti -v dan -q. Lihat dokumentasi
LILO.
backup=<backup_file>
Menyalin boot sector asli ke file <backup_file>.
force-backup<backup_file>
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=<tsecs>
Mengeset waktu tunggu keyboard sebelum menjalankan option berikutnya. Defaultnya
5 detik. Masukkan value 0 jika ingin LILO menunggu sampai ada masukkan darii
keyboard.
serial=<parameter>
Mengijinkan masukan dari serial line dan keyboard ke LILO.
ignore-table
Mengabaikan tabel partisi yang corrupt.
password=<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
-----[02]. 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
-----[03]. 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.
-----[04]. 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).
-----[05]. 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
-----[06]. 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).
-----[07].
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.
-----[08]. 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 #tty2
tty3 #tty3
tty4 #tty4
tty5 #tty5
tty6 #tty6
tty7 #tty7
tty8 #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.
-----[09].
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
III. Penutup
------------
Wah, sebenarnya masih banyak
lagi hal-hal yang harus anda lakukan untuk meningkatkan keamanan mesin anda.
Namun, sepertinya kita harus berpisah sampai disini karena keterbatasan waktu ;)
Sampai jumpa... ^_^
---[
Thanks to:
-
Firstly... Off course to kk
SPYRO KiD, the amazing Teenage Hackerz... *_* tetaplah rendah diri seperti
sekarang kak, jangan pernah ada pikiran untuk jadi sombong ;) saya dukung
perjuangan kk!!
-
My Love.. Gita in SMAN 1
SIDOARJO
-
Sohib-sohib di SMAN 3 SIDOARJO
-
Fl0wlight, My sister in Crack
SKY.. jangan mainan Python melulu, buruan cari jodoh!! kayaknya kk SPYRO lagi
jomblo tuch.. ;p
-
Semua yang suka nongkrong di
www.spyrozone.net .. salam kenal guys.. ;)
/* ------------------------------|EOF|------------------------------ */
|