Seringkali pengguna baru Linux tidak mengetahui service apa yang berjalan
pada Linux Box-nya, sehingga banyak service yang tidak diperlukan berjalan
tanpa ada manfaatnya. Hal ini biasanya terjadi karena banyak service yang
dijalankan default pada saat instalasi. Selain menambah beban kerja
komputer hal itu juga bisa menimbulkan masalah keamanan yang serius jika
komputer terhubung dengan jaringan.
Service merupakan program yang dijalankan oleh komputer untuk melayani
request yang ditujukan pada komputer tersebut. Sebagai contoh agar user
bisa melakukan telnet ke suatu server maka sever tersebut harus
menjalankan service telnetd, karena jika telnetd tidak dijalankan maka
server tersebut tidak akan bisa di telnet.
Kebanyakan service berjalan dengan menggunakan protokol TCP dan UDP dimana
masing masing service telah mempunyai nomor port tersendiri sehingga tidak
akan terjadi tabrakan antar service, misalnya :
- HTTP : TCP port 80
- POP3 : TCP port 110
- Telnet : TCP port 23
Informasi service dan nomor port serta protokol yang digunakan terdapat
pada file /etc/service, dan dapat dilihat dengan perintah $cat
/et/services
Pada saat pertama kali menginstal Linux, banyak sekali service yang secara
default juga terinstal dan berjalan. Sehingga perlu dilakukan pemeriksaan
apakah service-service yang telah berjalan tersebut benar-benar
dibutuhkan. Jika memantg tidak diperlukan sebaiknya service-service
tersebut dimatikan untuk mencegah ekploitasi dan pemborosan sumberdaya.
Pada Linux juga dikenal tiga jenis service yaitu init service, inet
service dan xinet service. Init service merupakan service yang dijalankan
oleh script init yang terdapat pada file dalam direktori /etc/rc.d/ atau
/etc/rc.d/init.d/. Inet service merupakan service yang dijalankan oleh
daemon inetd, dimana inetd sendiri dijalankan melalui init service,
sedangkan xinetd merupakan pengganti dari inetd yang digunakan pada kernel
2.4.x.
Mematikan semua service mungkin memang cara terbaik untuk menjaga keamanan
sistem, tetapi hal tersebut tidak mungkin dilakukan jika komputer tersebut
adalah sebuah server, karena untuk melayani request dari klien banyak
service yang harus dijalankan. Untuk memudahlan dalam mengambil keputusan
apakah sebuah service harus dijalankan atau dimatikan ada beberapa hal
yang dapat digunakan sebagai pedoman, yaitu :
Sedapat mungkin mengurangi service yang berjalan dengan tanpa mengorbankan
fungsi dari komputer tersebut.
Jika tidak mengenal suatu service untuk lebih aman sebaiknya dimatikan.
Memastikan bahwa service-service tersebut tidak mempunyai hole, dengan
melihat referensi dan informasi patch.
Untuk melihat service apa saja yang sedang dijalankan bisa digunakan
utilitas seperti chkconfig, netstat atau ps. Berikut adalah perintah
melihat service dengan menggunakan netstat
#netstat -ta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:www *:* LISTEN
tcp 0 0 *:https *:* LISTEN
tcp 0 0 *:telnet *:* LISTEN
tcp 0 0 *:login *:* LISTEN
tcp 0 0 *:X *:* LISTEN
Tetapi perintah itu hanya melihat service yang berjalan pada runlevel saat
itu, sedangkan untuk melihat service pada tiap run level bisa digunakan
chkconfig.
#chkconfig --list
. .
syslog 0:mati 1:mati 2:hidup 3:hidup 4:hidup 5:hidup 6:mati
crhidupd 0:mati 1:mati 2:hidup 3:mati 4:hidup 5:mati 6:mati
netfs 0:mati 1:mati 2:mati 3:mati 4:hidup 5:mati 6:mati
network 0:mati 1:mati 2:hidup 3:hidup 4:hidup 5:hidup 6:mati
.....................................
xinetd based services:
finger: hidup
tftp: mati
.........
Dari contoh diatas pada baris pertama menunjukan bahwa syslog akan
berjalan jika runlevelnya adalah 2, 3, 4 dan 5 sedangkan untuk runlevel
0,1 dan 6 syslog tidak akan berjalan, dan service yang dijalankan oleh
xinetd adalah finger dan tftpd.
Karena pada Linux Box penulis telah dilakukan charset Indonesia, maka off
menjadi mati dan on menjadi hidup.
Menjalankan dan Mematikan service.
Untuk mengaktifkan dan mematikan service cara yang digunakan berbeda untuk
service yang dijalankan melalui init script, inetd ataupu xinetd.
Untuk init service dapat digunakan perintah berikut
#/etc/rc.d/init.d/nama_service start
#/etc/rc.d/init.d/nama_service stop
atau
#service nama_service start
#service nama_service stop
Tetapi perintah-perintah diatas hanya menjalankan atau mematikan service
saat pada saat komputer berjalan, dan ketika direboot maka service
tersebut akan kembali seperti semula. Agar perubahan permanen maka harus
dirubah pada tiap runlevelnya. Untuk melakukan itu Linux telah menyediakan
beberapa utilitas seperti :
chkconfig : Dengan mode teks
ntsysv : Ncurses GUI utility
tksysv : Xwindows GUI utility
control-panel atau linuxconf : Xwindow GUI
Berikut adalah konfigurasi dengan menggunakan chkconfig
Untuk membuat sebuah service dijakankan oleh init script pada saat booting
pada semua runlevel digunakan perintah #chkconfig --add
contoh :
#chkconfig --add portsentry
Sedangkan untuk mengaktifkan pada tiap-tiap runlevel digunakan perintah
#chkconfig --level on
contoh :
#chkconfig --level 5 portsentry on
#chkconfig --level 5 ipchains on
Sedangkan untuk menonaktifkan sebuah service agar tidak dijalankan pada
tiap runlevel adalah :
#chkconfig --level off
contoh : #chkconfig --level 5 portsentry off
#chkconfig --level 5 ipchains off
Dan jika ingin menghapus atau mematikan service pada semua runlevel
digunakan perintah
#chkconfig --del
contoh :
#chkconfig --del portsentry
Pada inet service untuk mengaktifkan atau mematikan service yang harus
dilakukan adalah memberi tanda komentar (#) untuk service yang akan
dimatikan dan menghilangkan tanda komentar untuk service yang akan
dijalankan pada file /etc/inetd.conf/, kemudian restart inetd.
#vi /etc/inetd.conf
...........................
#time stream tcp nowait root internal
#pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d
#/etc/rc.d/init.d/inetd restart
Starting inetd [OK}
Sedangkan untuk xinet service maka harus dilakukan edit manual dengan teks
editor pada file yang terdapat pada direktori /etc/xinetd.d/. Isi dari
file yang harus dirubah adalah baris "disable", dimana kata "no" pada
baris tersebut harus diganti "yes" untuk mematikan service dan ganti kata
"yes" menjadi "no" untuk mengaktifkannya.
disable = no
menjadi
disable = yes
Sama halnya dengan inetd service jika terjadi perubahan pada service
didalam xinetd maka yang harus direstart adalah xinetd nya.
#service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
Bahan Bacaan :
Hal Burgiss, " Security Quick-Start HOWTO for Red Hat Linux", 2001.
Kurt Seifried, "Linux Administrator's Security Guide", 2001
David A. Ranch, "TrinityOS : A Guide to Configuring Your Linux Server for
Per-formance, "Security, and Managability" December 30, 2001
Penulis
Rofiq Yuliardi ( opic@linuxmail.org ) ,
Kelompok Study Linux UAD Djogjakarta
Senin, 10 Desember 2007
Manajemen Service pada Linux
Langganan:
Posting Komentar (Atom)
Tidak ada komentar:
Posting Komentar