Komputer dan elemen jaringan yang terhubung ke suatu jaringan
komputer akan berisiko tinggi untuk diserang oleh cracker. Beberapa
kemungkinan serangan bisa kita lihat sebagai berikut:
- Virus, worms, backdoor dan aplikasi trojan.
- Sniffing atau wire tapping.
- Password cracking.
- Eksploitasi terhadap bug-bug pada aplikasi yang ada dengan
teknik buffer overflow.
- Denial of Services (DoS).
Beberapa serangan di atas berbasiskan pada teknik-teknik yang
sudah populer dengan bantuan script atau tool yang mana biasanya
dimanfaatkan oleh cracker yang pengetahuannya tidak begitu tinggi
atau kurang memahami sistem. Sekali sebuah sistem berhasil dimasuki,
maka si penyusup ini bisa melakukan berbagai hal, beberapa
diantaranya adalah:
- Merubah atau menghapus informasi.
- Membeberkan informasi sensitif kepada pihak lain.
- Menginstall kode jahat yang bisa digunakan untuk mendapatkan
informasi lebih lanjut.
- Menggunakan sistem yang sudah dimasuki tadi untuk menyerang
sistem atau mesin yang lain pada jaringan komputer.
Tulisan ini akan membeberkan beberapa hal yang harus diperhatikan
oleh seorang Linux system administrator agar bisa mengamankan mesin
Linux-nya dengan lebih baik. Untuk itu pengetahuan yang baik
mengenai Linux memang sudah menjadi suatu keharusan. Penulis
berharap pembaca juga sudah mengerti mengenai dasar-dasar sistem
operasi Linux.
Sekarang mari kita simak berbagai langkah-langkah dalam
mengamankan sistem Linux Anda.
1. Instalasi Linux
Sebelum menginstall suatu distribusi Linux, maka Anda harus sudah
paham apa yang akan digunakan oleh server atau workstation. Ini
maksudnya adalah software-software apa yang akan diinstall pada
masing-masing fungsi server atau workstation tadi. Idealnya adalah
Anda harus menginstall software atau service yang benar-benar
dibutuhkan saja pada mesin Linux sesuai dengan fungsi mesin Linux
tersebut.
Pada distribusi Linux modern saat ini, mereka sudah membolehkan
pengguna untuk memilih tipe instalasi yang diinginkan. RedHat
contohnya, memberikan beberapa tipe instalasi seperti berikut ini.
- Workstation -- Instalasi tipe workstation ini akan membuat
sistem untuk digunakan pada penggunaan desktop. GUI akan
diinstall, dan ini bisa KDE ataupun Gnome atau keduanya.
Instalasi tipe ini tidak akan menginstall network daemon xinetd
(inet services), sebagai hasilnya maka service seperti finger,
telnet, talk dan FTP tidak akan bekerja.
- Server -- Instalasi tipe server akan membolehkan Anda untuk
membuat sistem Anda berfungsi sebagai Linux server. Di sini ada
tiga sub kategori, yaitu server minimum tanpa GUI, full server
tanpa GUI dan full server dengan GUI.
- Laptop -- Tipe ini mirip seperti pada tipe workstation.
- Custom -- Tipe ini sangat fleksibel pada saat instalasi
karena membolehkan Anda memilih apa saja yang ingin diinstall.
Tetapi fleksibel di sini bisa jadi awal dari kompleksitas
instalasi. Sistem yang sifatnya custom tapi di-custom secara
tidak benar akan membuat sistem tidak bisa bekerja dengan baik.
Di sini penulis merekomendasikan agar Anda memilih tipe
workstation atau server.
- Upgrade -- Ini digunakan jika Anda sudah memiliki sistem
Linux (misalnya RedHat) pada komputer Anda dan Anda ingin dengan
cepat untuk meng-update paket yang mutakhir.
Tulisan ini sebenarnya akan lebih condong pada mengamankan sistem
server Linux. Akan tetapi beberapa teknik juga bisa digunakan untuk
membantu dalam mengamankan workstation.
2. Buang paket software dan proses yang tidak perlu
Banyak software yang sebenarnya tidak diperlukan tetapi malah
diinstall biarpun Anda telah memilih sistem seminimal mungkin.
Sebagai contoh RedHat, pada tipe instalasi server ia akan
menginstall software-software berikut tanpa membolehkan Anda untuk
men-deselect-nya pada saat instalasi.

Jadi tahap pertama yang harus dilakukan setelah instalasi selesai
pada server adalah meng-uninstall software-software yang tidak
diperlukan. Gunakan perintah RPM berikut ini untuk melakukan
uninstall terhadap software-software tersebut.
[root@wen /]#
rpm -e <softwarenames>
yang mana <softwarenames> merupakan nama software yang ingin Anda
uninstall, contohnya anacron.
Program seperti anacron, apmd and at adalah daemon yang berjalan
sebagai suatu service pada background system Linux. Adalah hal yang
baik jika Anda terlebih dahulu menghentikan service mereka sebelum
meng-uninstall-nya. Untuk menghentikan proses mereka, gunakan
perintah seperti berikut ini.
[root@wen /]#
/etc/rc.d/init.d/proccessname stop
Contohnya:
#
/etc/rc.d/init.d/apmd stop
Shutting down APM daemon: [OK]
Sekali suatu proses sudah dihentikan, maka Anda bisa
meng-uninstall-nya dengan menggunakan perintah berikut ini.
[root@wen /]#
rpm –e –-nodeps software-name
Contohnya:
[root@wen /]#
rpm –e –nodeps anacron apmd at dhcpcd dosfstools eject
Contoh tersebut akan meng-uninstall anacron, apmd, at, dhcpd,
dosfstools dan eject. Anda bisa menambahkan sendiri daftar paket
software untuk di-uninstall. Daemon anacron memiliki spool directory
di /var/spool/anacron yang mana harus dihapus setelah paket anacron
di-uninstall. Perintah untuk menghapus directory tersebut adalah "rm
-rf /var/spool/anacron".
Program-program berikut ini digunakan untuk beberapa tipe
spesifik dari hardisk. Anda perlu membiarkan program yang memang
secara spesifik didesain bagi tipe hardisk yang Anda gunakan.
Gunakan perintah rpm untuk menghapus salah satunya, tetapi lewati
saja bagian ini jika memang sistem Anda memiliki dua tipe hardisk
(IDE dan SCSI).
- hdparm -- digunakan oleh hardisk tipe IDE dan tidak
digunakan untuk SCSI hardisk
- mkinitrd -- digunakan oleh hardisk tipe SCSI atau RAID dan
tidak digunakan untuk IDE hardisk
Program-program berikut ini digunakan untuk men-setup tipe
keyboard dan bahasanya, tipe mouse, default time zone Anda, NIS dan
password Anda, symbolic link Anda (pada directory /etc/rc.d) dan
utilitas menu text mode yang memungkinkan Anda untuk mengakses semua
fitur-fitur tersebut. Sangat direkomendasikan bahwa program-program
tersebut sebaiknya dihilangkan dengan perintah rpm setelah server
selesai diinstall.

Program-program berikut ini juga boleh dihapus jika tidak
digunakan pada server Anda.
- ash -- versi lebih kecil dari Bourne shell
- ash.static -- versi lebih kecil dari Bourne shell dan
statically linked
- cyrus-sasl -- authentikasi yang sederhana dan lapisan
security untuk program messaging elektronik cyrus
- krb5-libs -- shared library yang digunakan oleh Kerberos 5.
Setelah krb5-libs dihapus dengan perintah rpm, maka directory
/usr/kerberos bisa dihapus dengan perintah "rm -rf"
- openldap -- paket program protokol untuk akses directory
- procmail -- program pemrosesan e-mail yang biasa digunakan
oleh sendmail
- quota -- digunakan untuk memonitor/membatasi user/group disk
usage
- sendmail -- program mail transport agent (MTA)
- tcsh -- shell jenis lain yang juga banyak digunakan
- time -- digunakan oleh developer untuk mengoptimasi
programmnya
Checkpoint terakhir ketika meng-install program adalah pastikan
bahwa kompiler dan paket-paket software yang digunakan untuk
development tidak ikut diinstall dan pastikan semuanya sudah dihapus
sebelum server tersebut digunakan. Anda bisa menghapusnya dari
directory-nya masing-masing. Jika instalasinya dilakukan dengan
menggunakan RPM, maka Anda bisa menghapusnya dengan perintah berikut
ini.
[root@wen /]#
rpm –e [compiler package name]
Anda mungkin juga ingin menghapus file-file dokumentasi. Secara
default, semua RPM yang diinstall pada sistem Linux akan disertai
pula dengan dokumentasinya masing-masing. Dokumentasi ini berisi
file-file orisinil dari sumbernya, seperti README, FAQ, BUG,
INSTALL, NEWS dan lain sebagainya. Untuk menghapus
dokumentasi-dokumentasi ini Anda bisa ketikkan perintah berikut ini.
[root@wen /]#
cd /usr/share/doc/
[root@wen /]# rm –rf *
Service yang tidak diperlukan
Banyak service pada Linux yang mungkin tidak digunakan akan tetapi
dijalankan secara otomatis secara default setelah Anda meng-install
Linux. Tahap berikutnya dalam mengamankan Linux Anda adalah dengan
cara menghapusnya dari startup file pada directory /etc/rc3.d,
diasumsikan server booting ke Runlevel 3 multi-user mode. Berikut
ini adalah daftar auto-configuration soft links yang menunjuk ke
script aktual pada directory /etc/rc.d/init.d (daftar Anda mungkin
bisa agak berbeda, tergantung pada distribusi Linux yang Anda
gunakan, versi dan jenis instalasi).
1. S05apmd ->
../init.d/apmd
2. S10network -> ../init.d/network
3. S11portmap -> ../init.d/portmap
4. S15netfs -> ../init.d/netfs
5. S20random -> ../init.d/random
6. S30syslog -> ../init.d/syslog
7. S32gated -> ../init.d/gated
8. S40atd -> ../init.d/atd
9. S40crond -> ../init.d/crond
10. S45pcmcia -> ../init.d/pcmcia
11. S50inet -> ../init.d/inet
12. S55named -> ../init.d/named
13. S60lpd -> ../init.d/lpd
14. S60mars-nwe -> ../init.d/mars-nwe
15. S60nfs -> ../init.d/nfs
16. S65dhcpd -> ../init.d/dhcpd
17. S72amd -> ../init.d/autofs
18. S75keytable -> ../init.d/keytable
19. S80sendmail -> ../init.d/sendmail
20. S85gpm -> ../init.d/gpm
21. S85httpd -> ../init.d/httpd
22. S90xfs -> ../init.d/xfs
23. S91smb -> ../init.d/smb
24. S95innd -> ../init.d/innd
25. S99linuxconf -> ../init.d/linuxconf
26. S99local -> ../rc.local
Anda dapat mengganti atau menghapus link dan file yang tidak
dibutuhkan, sehingga service-service yang berhubungan dengannya
tidak akan terbawa ketika sistem melakukan booting. Pendekatan yang
lebih radikal adalah dengan menghapus mereka seluruhnya. Adalah
dianjurkan untuk mengganti nama file-nya terlebih dahulu dan
kemudian uji sistem Anda apakah tetap bisa bekerja dengan normal.
Setelah Anda yakin sistem tetap berjalan baik, barulah Anda bisa
menghapusnya. Anda juga bisa menghapus atau mengganti nama-nama file
pada directory runlevel yang lain, seperti graphic multi-user mode
(jika memang itu tidak digunakan lagi).
Jika Anda sedang mengamankan pre-installed Linux system, maka
Anda mungkin akan melihat lebih banyak services, tergantung dari
opsi instalasi pada saat Anda meng-install-nya. Intinya adalah
disable semua service yang memang tidak Anda gunakan. Anda juga bisa
mengubah nama filenya secara manual menjadi nama yang baru. Selama
file-file tersebut tidak didahului dengan huruf kapital S, maka
mereka tidak akan secara otomatis dijalankan ketika sistem booting.
Script berikut ini akan merubah file-file dari service-service yang
tidak digunakan menjadi .Nofilename, sebagai contoh S05apmd menjadi
.NoS05apmd.
#This script
renames the first five unneeded services
#in /etc/rc.d/rc3.d. You can repeat it to disable all
#the services you are not using
cd /etc/rc.d/rc3.d
for file in S05apmd S15netfs S32gated S40atd S45pcmcia
do
mv $file .NO$file
done
Tahap berikutnya adalah men-disable network services yang tidak
diperlukan dan ini biasanya diatur melalui proses inetd atau xinetd.
Pada prinsipnya, default service berikut ini sebaiknya di-disable
saja.

Untuk men-disable service-nya, buka file /etc/inetd.conf dengan
text editor, seperti vi dan letakkan tanda # pada bagian awal
masing-masing service yang ingin di-disable. Jika Linux Anda
menggunakan xinetd (bukannya inetd), maka edit file /etc/xinetd.conf
dan directory /etc/xinetd.d untuk men-disable service-service yang
tidak diperlukan tersebut. Berikut ini adalah contoh dari file
xinetd.conf.
#
# Simple configuration file for xinetd
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
}
includedir /etc/xinetd.d
Untuk men-disable servicenya, edit file pada /etc/xinetd.d dan
pastikan "disable = yes", seperti pada contoh service FTP berikut
ini.
# Converted by
inetdconvert
service ftp
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = in.ftpd
server_args = -l -a
disable = yes
}
Super internet server inetd atau xinetd harus di-restart agar
perubahan yang Anda lakukan bisa berjalan, atau Anda bisa me-restart
Linux Anda.
Perhatikan bahwa untuk sistem yang digunakan untuk produksi
(production system), adalah hal yang sangat direkomendasikan untuk
menghapus file-file service jika service-service tersebut sudah
di-disable. Jika tidak service yang dijalankan, maka inetd atau
xinetd sebaiknya di-disable dan dihapus dari dalam sistem Linux
Anda.
Jika Anda menginginkan remote terminal access dan kemampuan
transfer file, maka Anda dapat menginstall OpenSSH pada URL
http://www.openssh.org/
Tahap berikutnya Anda bisa menghapus atau mengosongkan crontabs
dan membersihkan file password. Anda sebaiknya membiarkan cron jobs
dan username yang telah Anda ketahui dan memang itu dibutuhkan oleh
server. Hapus job atau username lain yang tidak Anda ketahui.
Berikut ini hanyalah contoh kecilnya.
cd
/var/spool/cron/crontabs
rm adm lp sys
for user in adm lp news uucp operator games gopher ftp
do
/usr/sbin/userdel –r $user
done
Referensi
- Nortel Networks, Linux Operating System Hardening
Guideline Document, November 2003, Nortel Networks
Demikian tulisan mengenai beberapa cara mengamankan sistem
operasi Linux server Anda bagian yang pertama. Untuk membaca bagian
yang kedua silakan klik artikel "Mengamankan
Mesin Linux Anda - Bagian II". Pada bagian
berikutnya akan diulas lebih jauh hal-hal lain yang perlu
diperhatikan ketika mengamankan sistem Linux Anda. Semoga berguna bagi Anda
semuanya. Jika ada komentar atau saran bisa dikirimkan melalui
ariesa.rahardjo@gmail.com. Untuk membaca tulisan menarik lainnya
silakan menuju ke situs Sony AK Knowledge Center dengan alamat di
www.sony-ak.com.
Terima kasih.
| Send
your comments or suggestions |
|
|
|