You are on page 1of 34

Keamanan LINUX

Keamanan merupakan isu utama dalam jaringan. Apalagi jika seluruh host tersambung ke
Internet. Melindungi jaringan, berarti melindungi setiap host yang ada dalam jaringan,
baik workstation maupun server. Fokus bahasan bab ini adalah melindungi linux server
Anda, baik ancaman dari luar jaringan (misalnya dari Internet), maupun internal jaringan
(ancaman dari salah satu user Anda). Pembahasan hanya menyentuh secara global,
dengan beberapa contoh program yang dapat dipergunakan. Tujuannya adalah untuk
memberikan kerangka berfikir dalam menyusun konsep keamanan dalam jaringan, dan
mempraktekannya lewat beberapa program yang dicontohkan.

Arsitektur kemanan di Linux, mempunyai enam komponen :

• Account Pemakai (User Account)


• Kontrol Akses secara Diskresi (Discretionary Access Control)
• Kontrol Akses Jaringan (Network Access Control)
• Enkripsi (Encryption)
• Logging
• Deteksi penyusupan (Intrusion Detection)

Account Pemakai (User Account)


Kekuasaan dalam mengadministrasi sistem secara keseluruhan berada dalam satu
account, yakni root. Dengan root, Anda bisa mengontrol sistem file, user, sumber daya
(devices), bahkan akses jaringan. Model diktatorial ini memudahkan administrator dalam
menangani sistem. Jika ada satu user yang melanggar aturan, root bisa membuat account-
nya beku, tanpa mengganggu yang lain. Atau mengatur siapa-siapa saja yang boleh
mengakses suatu file, memberikan hak khusus pada user-user tertentu.. Setiap user diatur
pula lingkungan di mana dia boleh main-main sepuasnya, atau cuma melihat-lihat. Hal ini
memberikan keuntungan bagi pemakai maupun sistem :

• Kecerobohan salah satu pemakai tidak akan berpengaruh terhadap sistem secara
keseluruhan
• Masing-masing pemakai memiliki privacy yang ketat

Untuk itu account root biasanya hanya digunakan saat-saat tertentu saja. Misalnya
perbaikan sistem. Dan biasanya account root dipergunakan pada modus single user.
Dapat Anda bayangkan apa yang terjadi dengan jaringan Anda jika penyusup dari luar
memperoleh akses root.

Kontrol Akses secara Diskresi


(Discretionary Access Control)
Setiap pemakai Linux, memiliki account tersendiri, yang masing-masing dibedakan
dengan user name dan password. Setiap file memiliki atribut kepemilikan, group, dan
user umum. Satu file, bisa diberikan atribut tertentu, sehingga hanya dapat dibaca atau
dieksekusi oleh pemiliknya saja. Pembatasan ketat ini dinamakan Discretionary Access
Control (DAC). Hal ini pula yang menyebabkan virus jarang ditemui atau jarang tersebar
di Linux. Sebab virus biasanya menulis file ke dalam sistem. Dengan DAC, virus hanya
berpengaruh pada file-file yang dimiliki oleh salah seorang user yang mengeksekusi virus
tersebut. Sedangkan sistemnya sendiri tidak tersentuh.

Root merupakan satu-satunya account yang punya akses penuh ke seluruh sistem. Root
juga dipakai untuk mengadministrasi seluruh sistem, mengganti atribut file, hingga
mengadministrasikan divais. Karena itu, demi keamanan, root biasanya hanya dipakai
untuk perawatan atau perbaikan sistem saja. Untuk mengetahui atribut file :

$ ls -l

total 27

drwx--- 5 fade users 1024 Feb 8 11:27 Desktop

drwx--- 2 fade users 1024 Feb 28 10:15 Mail

-rw---- 2 fade users 509 Feb 29 10:14 Mailbox

-rw---- 1 fade hacker 318 Feb 29 10:11 dead.letter

drwxr-xr-x 3 fade hacker 1024 Feb 14 09:12 ftp.linuxrouter.org

drwx--- 2 fade users 1024 Feb 29 10:14 mail

drwx--- 2 fade users 1024 Feb 14 12:07 nsmail

-rw-r-r- 1 fade hacker 17358 Feb 23 09:11 sinkcp.gif

-rw-r-r- 1 fade hacker 393 Feb 24 10:13 spam

drwxr-xr-x 2 fade hacker 1024 Feb 22 08:36 temp

Beberapa program penting berkaitan dengan Discretionary Access Control :

Subsections

• su (Substitute User).
• shadow.
• Pro aktif Password
o passwd+
o anlpasswd
o npasswd

su (Substitute User).

Jangan menggunakan user root untuk penggunaan sehari-hari. Jika memang mendesak,
jalankan program su. Program ini memungkinkan Anda menggunakan account root untuk
sementara. Caranya :

$ su

lalu Anda akan diminta password.

password :

Setelah Anda isi dengan benar, prompt akan berubah menjadi pagar. Jika telah selesai,
ketik exit

# exit

kembali ke prompt user. Selain su, dapat dipakai pula program sudo, yakni memberikan
beberapa user untuk dapat mengeksekusi program tertentu sebagai root. Konfigurasi
filenya berada di

/etc/sudoers

shadow.

Secara default, instalasi binary slackware, telah mengaktifkan shadow password. shadow
adalah program yang membuat file /etc/passwd menjadi dapat dibaca (readable) tetapi
tidak lagi berisi password, dan sebagai gantinya disimpan di file /etc/shadow.Berikut
contoh tipikal file passwd :

halt:x:7:0:halt:/sbin:/sbin/halt

root:x:0:0::/root:/bin/bash

operator:x:11:0:operator:/root:/bin/bash

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

sync:x:5:0:sync:/sbin:/bin/sync

bin:x:1:1:bin:/bin:
ftp:x:404:1::/home/ftp:/bin/bash

daemon:x:2:2:daemon:/sbin:

adm:x:3:4:adm:/var/adm:

lp:x:4:7:lp:/var/spool/lpd:

mail:x:8:12:mail:/var/spool/mail:

news:x:9:13:news:/usr/lib/news:

uucp:x:10:14:uucp:/var/spool/uucppublic:

man:x:13:15:man:/usr/man:

games:x:12:100:games:/usr/games:

guest:x:405:100:guest:/dev/null:/dev/null

nobody:x:65534:100:nobody:/dev/null:

fade:x:1000:103:,,,:/home/fade:/bin/bash

alias:x:7790:2108::/var/qmail/alias:/bin/true

qmaild:x:7791:2108::/var/qmail:/bin/true

qmaill:x:7792:2108::/var/qmail:/bin/true

qmailp:x:7793:2108::/var/qmail:/bin/true

qmailq:x:7794:2107::/var/qmail:/bin/true

qmailr:x:7795:2107::/var/qmail:/bin/true

qmails:x:7796:2107::/var/qmail:/bin/true

Satu baris mencerminkan satu user, lengkap dengan atributnya. Berikut keterangan tiap
field :

Username:password:UserID:GroupID:keterangantambahan:homedirektori:shell

Ambil contoh dari user fade :

fade:x:1000:103:,,,:/home/fade:/bin/bash

Keterangan dari line tersebut :

• Username : fade
• Password : x
• User ID (UID) : 1000
• Group ID (GID) : 103
• Keterangan tambahan : -
• Home Direktori : /home/fade
• Shell Default : /bin/bash

Password dalam file ini dapat dibaca oleh setiap user, tapi yang tampak hanya x saja.
Password yang sebenarnya disimpan di file shadow (terenkripsi). Berikut file shadow dari
password diatas :

root:pCfouljTBTX7o:10995:0:::::

halt:*:9797:0:::::

operator:*:9797:0:::::

shutdown:*:9797:0:::::

sync:*:9797:0:::::

bin:*:9797:0:::::

ftp:*:9797:0:::::

daemon:*:9797:0:::::

adm:*:9797:0:::::

lp:*:9797:0:::::

mail:*:9797:0:::::

news:*:9797:0:::::

uucp:*:9797:0:::::

man:*:9797:0:::::

games:*:9797:0:::::

guest:*:9797:0:::::

nobody:*:9797:0:::::

fade:OihQw6GBf4tiE:10995:0:99999:7:::

alias:!:10995:0:99999:7:::

qmaild:!:10995:0:99999:7:::
qmaill:!:10995:0:99999:7:::

qmailp:!:10995:0:99999:7:::

qmailq:!:10995:0:99999:7:::

qmailr:!:10995:0:99999:7:::

qmails:!:10995:0:99999:7:::

Sebagai salinan dari /etc/passwd, shadow menyimpan satu record dalam satu baris yang
dibagi menjadi 9 bagian (dipisahkan oleh titik dua) :

• Nama user
• Password user
• Jumlah hari digantinya password sejak 1 Januari 1970
• Jumlah hari sebelum user diijinkan untuk mengubah password
• Jumlah hari sebelum user dipaksa untuk mengganti password
• Jumlah hari sebelum user diingatkan untuk mengganti password
• Jumlah hari yang tersisa di mana user harus mengganti password sebelum user
tersebut dihapus.
• Jumlah hari dihapusnya password sejak 1 Januari 1970
• Field terakhir dipakai sendiri oleh shadow

Table: Program Bantu shadow dan fungsinya


Nama program Fungsi
chage Mengganti informasi waktu berlakunya sebuah password

chfn
Menggantikan chfn bawaan Linux untuk bisa mengganti
informasi yang tampil di finger.

chsh
Menggantikan chsh bawaan Linux untuk mengganti shell
yang sudah di set secara default
gpasswd Menambah user baru ke dalam grup
groupadd Menambah grup
groupdell Menghapus grup
groupmod Modifikasi grup

grpck
Verifikasi dengan membandingkan antara /etc/group
dan /etc/passwd

id
Menggantikan id standar, berfungsi untuk menampilkan
UID (User ID) pada saat login.

login
Menggantikan login standar, sehingga bisa berinteraksi
dengan shadow untuk autentikasi

newgrp
Menggantikan perintah standar newgrp. User dapat
berganti group dalam satu session, setelah login kembali

passwd
Menggantikan perintah passwd standar, mengingat
shadow punya struktur yang berbeda.

pwck
Sinkronisasi antara /etc/passwd dan /etc/shadow.
Biasa dilakukan setelah menambah password atau user

pwconv
Menyatukan file /etc/passwd lama ke dalam file
shadow yang baru.

pwunconv Memisahkan informasi dalam /etc/shadow kembali ke


/etc/passwd
su Menjalankan shell dengan atribut root
userdel Menghapus nama user
usermod Mengganti informasi tentang user

Pro aktif Password

Linux menggunakan metode enkripsi DES (Data Encription Standard) untuk


passwordnya. Namun seketat apapun enkripsi yang dilakukan akan menjadi percuma jika
user memilih password yang mudah ditebak. User biasanya memilih hal-hal umum
sebagai password, misalnya :

• Tanggal lahir (dirinya sendiri atau salah satu anggota keluarga)


• Nomor Mobil
• Nama salah satu anggota keluarga (baik ditulis langsung, atau dengan variasi
huruf besar/dibalik dan sebagainya)
• Kata-kata yang ada di kamus, ditulis terbalik
• Nama favorit (pacar, artis, penyanyi, dan sebagainya)

Pilihan ini sangat riskan, sebab program semacam crack, dapat menebaknya dengan
mencocokkan kamus yang ada dengan mudah. Bahkan program ini dapat diberikan
pilihan kombinasi. Untuk itu perlu dibuat kebijakan yang baik untuk password.
Catatan :
Crack dapat Anda peroleh di http://www.users.dircon.co.uk/crypto/index.html.
Anda dapat menggunakannya sebagai ujicoba untuk test seberapa jauh keamanan
password dalam jaringan Anda. Dokumentasinya dapat pula Anda peroleh di
http://alloy.net/writings/funny/crack_readme.txt.
Program pembantu dalam cek password di antaranya :

Subsections

• passwd+
• anlpasswd
• npasswd

passwd+

Program yang ditulis oleh Matt Bishop ini mampu meningkatkan logging, dan
mengingatkan user jika mengisi password yang mudah ditebak. passwd+ dapat Anda
peroleh di ftp://ftp.dartmouth.edu/pub/security

anlpasswd

Program ditulis dalam perl oleh Argonne National Laboratory. anlpasswd mempunyai
aturan standar dalam pengisian password. Meski demikian dapat ditambahkan beberapa
aturan yang dibuat sendiri, seperi jumlah minimal, gabungan huruf besar huruf kecil,
gabungan angka dan huruf. anlpasswd dapat Anda peroleh di :
ftp://coast.rs.purdue.edu/pub/tools/unix/anlpasswd/analpasswd-2.3.tar.Z
npasswd

Program sederhana, ditulis oleh CLYDE HOOVER merupakan program pengganti passwd
yang biasa. npasswd dapat Anda peroleh di :
http://www.uetxas.edu/cc/unix/software/npasswd/doc untuk dokumentasi
http://www.utexas.edu/cc/unix/software/npasswd untuk programnya

Network Access Control


Linux dapat memilih komputer mana saja yang dapat mengaksesnya. Pembatasan antar
jaringan ini dinamakan Network Access Control. Alat pengontrolan akses jaringan ini
dinamakan firewall.

Subsections

• Tentang Firewall
• Tipe firewall :
• Filter Paket di Linux
o TCP Wrapper sebagai Kontrol Akses

Tentang Firewall

Secara umum, firewall biasanya menjalankan fungsi:

• Analisa dan filter paket

Data yang dikomunikasikan lewat protokol di internet, dibagi atas paket-paket.


Firewall dapat menganalisa paket ini, kemudian memperlakukannya sesuai
kondisi tertentu. Misal, jika ada paket a maka akan dilakukan b. Untuk filter
paket, dapat dilakukan di Linux tanpa program tambahan.

• Bloking isi dan protokol

Firewall dapat melakukan bloking terhadap isi paket, misalnya berisi applet Jave,
ActiveX, VBScript, Cookie.

• Autentikasi koneksi dan enkripsi

Firewall umumnya memiliki kemampuan untuk menjalankan enkripsi dalam


autentikasi identitas user, integritas dari satu session, dan melapisi transfer data
dari intipan pihak lain. Enkripsi yang dimaksud termasuk DES, Triple DES, SSL,
IPSEC, SHA, MD5, BlowFish, IDEA dan sebagainya.
Catatan:
Untuk mempelajari firewall, minimal Anda harus mengetahui bagaimana TCP/IP bekerja.
Sebagai literatur, Anda dapat membaca Buku TCP/IP karangan ONNO W. PURBO.
Dokumen online berbahasa Indonesia tentang pengenalan TCP/IP juga tersedia di
http://www.k-elektronik.org.

Tipe firewall :

1. Network-Level Firewall

Filter paket dilakukan biasanya dijalankan di router. Filter ini dapat dijalankan
dengan memberlakukan rule set tertentu. Contoh tipikal dari Network-Lever
Firewall adalah TCP Wrappers. Filter paket di Linux akan dibahas pada bagian
selanjutnya.

2. Application-Proxy Firewall/Application Gateways

Berbeda dengan firewall sebelumnya yang memfilter dan bloking paket,


Application-Proxy firewall meneruskan paket yang ada ke host internal yang
dituju. Firewall ini bisa dikatakan sebagai jembatan. Application-Proxy Firewall
biasanya berupa program khusus. Lebih jauh tentang Application Gateways dapat
Anda baca artikel karangan JOHN WACK di
http://www.telstra.com.au/pub/docs/security/800-10/node52.html.

Catatan :
Contoh tipikal dari Application-Proxy Firewall adalah TIS FWTK (Trusted Information
System Firewall Toolkit), beberapa sumbernya :
http://www.micrognosis.com/nreadwin/fwtk/history.txt ; tentang sejarah TIS
FWTK. http://www.ssc.com/lj/issue25/1024.html ; dokumen "Creating Firewall
using the TIS Toolkit" karangan BENJAMIN EWY.
ftp://ftp.tis.com/pub/firewalls/toolkit/dist ; Program TIS FWTK. Untuk
menginstallnya di Linux, Anda harus mendownload patchnya di
ftp://ftp.tisl.ukans.edu/pub/security/firewalls/fwtkpatches.tgz.

Filter Paket di Linux

Program paling populer untuk filter paket (dan dimasukkan hampir kesemua distribusi
Linux) adalah TCP Wrappers, dibuat oleh WIETSE VENEMA. Aplikasinya berada di

/usr/sbin/tcpd

Catatan :
Dokumentasi yang dilampirkan pada saat TCP Wrappers ini dipublikasikan dapat Anda
baca di http://www.raptor.com/lib/tcp_wrapper.ps.
Untuk melihat bagaimana TCP Wrappers ini bekerja, lihat sampel /etc/inetd.conf
secara umum :

ftp stream tcp nowait root /usr/sbin/ftpd

telnet stream tcp nowait root /usr/sbin/telnetd

shell stream tcp nowait root /usr/sbin/rshd

login stream tcp nowait root /usr/sbin/rlogind

pop3 stream tcp nowait root /usr/sbin/pop3d

Ambil contoh salah satu, yakni telnetd :

telnet stream tcp nowait root /usr/sbin/telnetd

Penjelasan dari entri telnet tersebut adalah :

• Service yang dijalankan adalah telnet


• Tipe soket STREAM
• Protokol yang digunakan TCP
• Nowait berarti bahwa inetd harus memanggil program telnetd pada saat
dibutuhkan.
• Root berarti bahwa telnetd harus dijalankan dengan user root
• /usr/sbin/telnetd menunjukkan letak program telnetd.

Jika ada permintaan telnet dari klien, maka inetd akan memanggil program telnetd
untuk melayaninya. Dengan demikian, server akan dijalankan oleh satu buah daemon,
yakni inetd, jika ada permintaan. Masalahnya adalah, program daemon tidak bisa
menyeleksi tiap koneksi yang masuk. Untuk itu dijalankan TCP Wrappers.
Catatan :
Binary Slackware, SuSE dan RedHat secara otomatis sudah menjalankan TCP Wrapper
begitu selesai instalasi.
Dengan TCP Wrapper, tcpd akan memotong permintaan inetd kepada semua service.
Dalam contoh di atas, saat ada user menjalankan telnet di port 25, inetd akan
memanggil telnetd. Tapi sebelum ke telnetd, dipotong dulu oleh tcpd, dicocokkan
dengan beberapa rule set yang telah diatur. Jika memenuhi syarat, akan diteruskan ke
telnetd. Jika tidak, permintaan diputus.

Berikut isi dari inetd.conf yang telah dipasang tcpd (TCP Wrappers)

ftp stream tcp nowait root /usr/sbin/tcpd wu.ftpd -l -i -a


telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd

telnet stream tcp nowait root /usr/sbin/tcpd


/usr/sbin/in.telnetsnoopd

shell stream tcp nowait root /usr/sbin/tcpd in.rshd -L

login stream tcp nowait root /usr/sbin/tcpd in.rlogind

pop3 stream tcp nowait root /usr/sbin/tcpd in.pop3d

Subsections

• TCP Wrapper sebagai Kontrol Akses

TCP Wrapper sebagai Kontrol Akses

Tcpd dalam memberlakukan aturannya, membaca dua konfigurasi file, yaitu

• /etc/hosts.allow - host yang diperbolehkan untuk mengakses


• /etc/hosts.deny - host yang tidak diperbolehkan untuk mengakses

Pada saat selesai instalasi, isi file hosts.allow Anda akan tampak sebagai berikut :

# hosts.allow This file describes the names of the hosts which are

# allowed to use the local INET services, as decided by

# the '/usr/sbin/tcpd' server.

# Version: @(#)/etc/hosts.allow 1.00 05/28/93

# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org

#
# End of hosts.allow.

Dan file hosts.deny akan tampak :

# hosts.deny This file describes the names of the hosts which are

# *not* allowed to use the local INET services, as decided

# by the '/usr/sbin/tcpd' server.

# Version: @(#)/etc/hosts.deny 1.00 05/28/93

# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org

# End of hosts.deny.

Untuk memasukkan rule set dalam file tersebut, WIETZE VENEMA membuat bahasa
tersendiri yang dituangkan dalam hosts_options. Untuk mengetahui detailnya, Anda
bisa ketikkan :

$ man hosts_options

Inti dari rule set pada kedua file di atas menggunakan format :

Daemon list : client list : option

Misalnya, Anda ingin memberikan akses hanya untuk mesin dengan nomor ip 1.2.3.4,
dapat menuliskan :

ALL:ALL:DENY

ALL:1.2.3.4:ALLOW

Rule set tersebut, dapat Anda masukkan dalam file /etc/hosts.deny, sehingga file
tersebut menjadi seperti berikut :
#

# hosts.deny This file describes the names of the hosts which are

# *not* allowed to use the local INET services, as decided

# by the '/usr/sbin/tcpd' server.

# Version: @(#)/etc/hosts.deny 1.00 05/28/93

# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org

ALL:ALL:DENY

ALL:1.2.3.4:ALLOW

# End of hosts.deny.

Anda bisa melakukan ujicoba dengan mengakses service pada inetd lewat nomor IP
1.2.3.4 dan nomor IP lain. Lihat perbedaannya, sekaligus mengetes apakah ruleset yang
Anda buat telah berjalan dengan baik.

Enkripsi
Enkripsi adalah proses mengacak data sehingga tidak dapat dibaca oleh pihak lain. Pada
kebanyakan proses enkripsi, Anda harus menyertakan kunci sehingga data yang
dienkripsi dapat didekripsikan kembali. Ilmu yang mempelajari teknik enkripsi disebut
kriptografi. Gambaran sederhana tentang enkripsi, misalnya mengganti huruf a dengan n,
b dengan m dan seterusnya. Model penggantian huruf sebagai bentuk enkripsi sederhana
ini sekarang tidak dipergunakan secara serius dalam penyembunyian data. ROT-13 adalah
program yang masih suka dipergunakan. Intinya adalah mengubah huruf menjadi 23
huruf didepannya. Misalnya b menjadi o dan seterusnya. Pembahasan enkripsi akan
terfokus pada enkripsi password dan enkripsi komunikasi data.

Subsections
• Enkripsi Password
• Enkripsi komunikasi data
• Secure Shell (SSH)
o Instalasi SSH
o Konfigurasi Server

• SSL (Secure Socket Layer)


o SSL dengan Apache

Enkripsi Password

Password di Linux dibuat dengan menggunakan metode tingkat lanjut dalam enkripsi,
yakni DES (Data Encryption Standard). Menurut Federal Processing Standards
Publication 46-2, DES didefinisikan sebagai ;

Sebuah algoritma matematika untuk menjalankan enkripsi (enchypering) dan dekripsi


(dechypering) informasi koding binary. Enkripsi mengkonversikan data menjadi bentuk
yang sulit ditebak, disebut chyper. Proses dekripsi cypher mengkonversikan data kedalam
bentuk aslinya, disebut plain-text. (terjemahan bebas)
Enkripsi dan dekripsi dilakukan tergantung pada kunci (key). Kunci ini dibuat
berdasarkan masukan dari user pada saat mengetikkan password terdiri dari binary 64
digit. Jika password yang diketikkan kurang dari binary 64 digit, maka DES akan
menambahkannya secara otomatis. Dari binary 64 digit, 56 dipergunakan untuk enkripsi,
dan 8 dipergunakan untuk cek kesalahan (error checking).

Saat seorang penyusup (atau siapa saja) akan melakukan crack terhadap password di
Linux, mereka biasanya mempergunakan kamus (dictionary attack). Saat melakukan
crack, penyusup akan mengambil kata-kata dari kamus, kemudian mengenkripsinya
dengan DES. Dalam proses ini, kata demi kata diberikan secara terus menerus, kemudian
diproses sebagaimana Linux memproses passwordnya. Hasilnya akan dicocokkan dengan
daftar yang ada di /etc/passwd. Jika cocok, program cracker akan memberitahukan
kepada penyusup, bahwa password sudah berhasil ditemukan.

Untuk meningkatkan keamanan password dalam jaringan Anda, baca kembali sub bab
tentang Discretionary Access Control.

Enkripsi komunikasi data

Di dalam Internet (atau intranet) data yang dikirimkan dari satu komputer ke komputer
lainnya, pasti melewati komputer-komputer lain. Ambil contoh, pada saat Anda
memasukkan password untuk mengecek account email di hotmail, data akan dikirim
dalam bentuk teks biasa melewati beberapa host sebelum akhirnya diterima oleh hotmail.
Pernahkah Anda berfikir bahwa salah satu dari komputer yang dilewati oleh data Anda
dipasangi program sniffer?

Sniffer adalah program yang membaca dan menganalisa setiap protokol yang melewati
mesin di mana program tersebut diinstal. Secara default, sebuah komputer dalam jaringan
(workstation) hanya mendengarkan dan merespon paket-paket yang dikirimkan kepada
mereka. Namun demikian, kartu jaringan (network card) dapat diset oleh beberapa
program tertentu, sehingga dapat memonitor dan menangkap semua lalu lintas jaringan
yang lewat tanpa peduli kepada siapa paket tersebut dikirimkan.

Kembali ke contoh tadi, jalankan traceroute untuk mengetahui berapa banyak


host/komputer yang dilewati data Anda. Lakukan test berikut pada saat komputer sedang
online.

# traceroute www.hotmail.com

1 * * nas1-3.cbn.net.id (202.158.2.228) 1610.03 ms

2 nas1-rtif.cbn.net.id (202.158.2.225) 129.58 ms 119.94 ms 119.881


ms

3 * 203.127.108.137 (203.127.108.137) 620.031 ms 679.721 ms

4 202.160.250.29 (202.160.250.29) 639.809 ms 629.684 ms 710.019 ms

5 202.160.250.6 (202.160.250.6) 619.77 ms 939.703 ms 819.83 ms

6 S-0-0-0-explorer.ix.singtel.com (202.160.255.214) 849.86 ms


829.723 ms 829.886 ms

7 s4-1-0.paloalto-cr13.bbnplanet.net (4.0.17.249) 810.22 ms 901.074


ms 818.614 ms

8 p2-2.paloalto-nbr2.bbnplanet.net (4.0.2.221) 819.889 ms 799.684


ms 809.797 ms

9 p2-0.paloalto-cr1.bbnplanet.net (4.0.6.78) 809.877 ms 819.611 ms


839.936 ms

10 p0-0.mshotmail.bbnplanet.net (4.0.24.14) 809.757 ms 889.695 ms


849.887 ms

11 * * *

12 law5-rsp-c.hotmail.com (216.32.183.14) 870.029 ms 879.73 ms


869.859 ms

13 lc2.law5.hotmail.com (209.185.243.135) 929.954 ms * 870.017 ms


Catatan :
Pada mesin Windows Anda juga dapat melakukan tes serupa dengan menjalankan
perintah tracert pada prompt. Misal c:\>tracert www.hotmail.com
Untuk menjaga data yang dikomunikasikan, Anda dapat menerapkan beberapa program
enkrisi komunikasi data. Di antaranya yang terkenal adalah secure shell (ssh), dan secure
socket layer (SSL).

Secure Shell (SSH)

Menurut RFC (Request For Comment) dari Secure Shell (SSH):

Secure Shell adalah program yang melakukan loging terhadap komputer lain dalam
jaringan, mengeksekusi perintah lewat mesin secara remote, dan memindahkan file dari
satu mesin ke mesin lainnya.
Algoritma enkripsi yang didukung oleh SSH di antaranya BlowFish (BRUCE SCHNEIER),
Triple DES (Pengembangan dari DES oleh IBM), IDEA (The International Data
Encryption Algorithm), dan RSA (The Rivest-Shamir-Adelman). Dengan berbagai metode
enkripsi yang didukung oleh SSH, Anda dapat menggantinya secara cepat jika salah satu
algoritma yang Anda terapkan mengalami gangguan.

Subsections

• Instalasi SSH
• Konfigurasi Server

Instalasi SSH

Saat ini SSH dalam bentuk kode sumber dapat diperoleh dihttp://www.ssh.fi,
sedangkan binarynya untuk klien dan server dapat Anda peroleh
dihttp://www.replay.com. Beberapa paket program utama yang dijadikan satu paket
dalam SSH suite adalah :

1. make-ssh-known-host

Skrip Perl yang membuat database dari host-host yang otomatis dibuat
berdasarkan domain.

2. scp

The Secure Shell Copy Program, mengamankan penggAndaan data dari satu
komputer ke komputer lainnya. Data ditransfer dalam bentuk enkripsi oleh SSH.
3. ssh

The Secure shell client, program yang bekerja seperti telnet. Perintah dapat Anda
jalankan secara remote sebagaimana telnet bekerja.

4. ssh-add

Menambahkan kunci (key) baru terhadap autentikasi ssh-agent

5. ssh-agent

Digunakan untuk autentikasi lewat jaringan dengan model RSA.

6. sshd

Secure shell server, secara default bekerja pada port 22.

7. ssh-keygen

Program pembuat kunci (key generator) untuk ssh.

Untuk instalasinya mempergunakan langkah-langkah standar dalam kompilasi dan


instalasi program yang berbentuk kode sumber.

$ gunzip ssh-1.2.27 | tar xvf -

$ cd ssh-1.2.27

$ ./configure

$ make

$ su

password :

# make install

Selesai proses instalasi, Anda dapat mulai mengedit file konfigurasi untuk SSH :

• /etc/sshd_config (File konfigurasi server)


• /etc/ssh_config (File konfigurasi klien)
Konfigurasi Server

Secara default, /etc/sshd_config Anda akan tampak sebagai berikut :

Port 22

ListenAddress 0.0.0.0

HostKey /etc/ssh_host_key

RandomSeed /etc/ssh_random_seed

ServerKeyBits 768

LoginGraceTime 600

KeyRegenerationInterval 3600

PermitRootLogin yes

IgnoreRhost no

StrictModes yes

QuietMode no

X11Forwarding yes

X11DisplayOffset 10

FascistLogging no

PrintMod yes

KeepAlive yes

SyslogFacility DAEMON

RhostsAuthentication no

RhostsRSAAuthentication yes

PasswordAuthentication yes

PermitEmptyPasswords yes

UserLogin no

# Checkmail no
#PidFile /u/zappa/.ssh/pid

# AllowHosts *.our.com friend.other.com

# DenyHosts lowsecurity.theirs.com *.evil.org evil.org

# Umask 022

#SilentDeny yes

Sebagai referensi dalam mengedit konfigurasi tersebut, berikut penjelasan tentang fungsi-
fungsi dari beberapa parameter yang perlu :

Table: Parameter /etc/sshd_config


Parameter/etc/sshd_config Parameter Penjelasan
Digunakan untuk mengontrol grup yang dapat
AllowGroups [groups] memanfaatkan fasilitas SSH. Antar grup dipisahkan
dengan spasi. Misal AllowGroups root user
Dipergunakan untuk mengontrol host-host yang dapat
AllowHosts [hosts] mengakses layanan SSH. Host dapat diberikan dalam
bentuk nama atau nomor IP. Misalnya AllowHosts
*.pasarrumput.com 192.168.11.1

AllowTCPForwarding
Dipergunakan untuk menentukan apakah TCP
forwarding diperbolehkan. Secara default di set yes.
Digunakan untuk menentukan apakah user yang sedang
CheckMail login dengan ssh diberitahu jika ada email masuk atau
tidak. Secara default diset yes.
Digunakan untuk mengontrol grup yang tidak
DenyGroups
diperbolehkan untuk memanfaatkan fasilitas SSH.
Sebagaimana AllowGroup, parameter ini menggunakan
spasi untuk memisahkan grup satu dengan lainnya.

DenyHosts
Untuk mengontrol host-host yang tidak diperbolehkan
untuk mengakses layanan SSH.

FascistLogging
Untuk menentukan apakah sshd menjalankan aktivitas
logging

HostKey
Untuk menentukan letak file kunci dari host. Secara
default file kunci ada di /etc/ssh_host_key

IdleTimeout
Untuk menentukan waktu pemutusan layanan jika ada
session yang tidak melakukan aktivitas.

IgnoreRhosts
Untuk menentukan apakah sshd membaca file .rhosts
atau tidak.

KeepAlive
Untuk menentukan apakah sshd mengirimkan pesan
bahwa layanan masih berjalan atau tidak

LoginGraceTime
Untuk menentukan waktu jeda saat user bisa login
kembali akibat kegagalan login pada sesi sebelumnya

PermitEmptyPassword
Untuk menentukan apakah diperbolehkan atau tidak
user mengirimkan password kosong
Untuk menentukan apakah root dapat log in dengan ssh,
PermitRootLogin dan jika diperbolehkan apakah masih perlu autentikasi
password

PrintMod
Untuk menentukan apakah sshd perlu menyampaikan
motd (message of the day) saat user login

Untuk menentukan apakah sshd menggunakan


Untuk menjalankan sshd, cukup ketikkan sshd sebagai root.

# sshd

Ada beberapa pilihan dalam menjalankan sshd. Pilihan ini diketikkan sebagai prefiks saat
menjalankan sshd. Misal :

# sshd -g 60 (menjalankan sshd dengan timeout untuk klien 60 detik)

Table: Pilihan saat menjalankan sshd


Pilihan (prefiks) Fungsi
Dipergunakan untuk menentukan berapa bit yang
-b [bits] dipergunakan sebagai kunci. Secara default dipakai 768
bits.
Dipergunakan untuk menjalankan dalam modus DEBUG.
-d Ini berguna untuk mengamati proses server yang sedang
berjalan.
Dipergunakan untuk menentukan file config yang lain
-f [config-file]
selain yang ditunjuk secara default (/etc/sshd_config)
Dipergunakan untuk menentukan timeout jika ada
pengguna yang meminta sebuah sesi tetapi tidak
-g [timeout]
melakukan autentikasi. Defaultya 600 detik. Disarankan
untuk mengeset ke 60 detik.
Dipergunakan untuk menentukan alternatif lain dari file
-h [host-key]
host key. Defaulntya adalah /etc/ssh_host_key.
Dipergunakan untuk menjalankan sshd dari inetd. Namun
oleh pembuatnya disarankan untuk tidak dijalankan lewat
-i inetd. Hal ini disebabkan karena sshd harus membuat key
untuk tiap sesi, sehingga mempengaruhi kinerja daemon
lain yang dijalankan lewat inetd.
Dipergunakan untuk mengeset waktu, berapa lama sshd
harus membuat (generating) kunci (session key) yang
-k baru. Defaultnya adalah sekali dalam sejam. Jika diset 0
maka sshd tidak akan pernah membuat session key yang
baru.
Dipergunakan untuk menentukan port alternatif bagi
-p [port]
sshd. Defaultnya adalah port 22.
Dipergunakan untuk mematikan logging (tidak
-q
melakukan pencatatan terhadap aktifitas sshd.

Untuk klien, ssh mempergunakan file /etc/ssh_config. Secara default file tersebut berisi :

# This is ssh client systemwide configuration file. This file provides


# default for users, and the values can be changed in per-user
#configuration
# files or on yhe command line.
# configuration data is parsed as follows:
# 1. Command line options
# 2. User- specificc file
# 3. Systemwide file
# Any configuration value is only change the first time it is set.
# Thus, host-specific definitistion should be at the beginning of the
# configuration file, and defaults at the the end.

# Sitewide defaults for various options

# Host *
# ForwardAgent yes
# ForwardX11 yes
# RhostsAuthentication yes
# RhostRSAAuthentication yes
# RSAAuthentication yes
# TISAuthentication no
# PasswordAuthentication yes
# FallBackToRsh yes
# UserRSH no
# BatchMode no
# StrictHostKeyChecking no
# IdentifyFile -/.ssh/identity
# Port 22
# Chiper idea
# EscapeChar -

Tabel berikut menjelaskan parameter yang dipergunakan dalam file ssh_config

Table: Parameter ssh_config (untuk klien ssh)


Pilihan Fungsi
BatchMode [yes/no] Dipergunakan untuk meminta username dan kata
kunci pada saat koneksi dimulai.
Cipher [cipher] Dipergunakan untuk menentukan metode enkripsi.
Pilihannya adalah idea, des, 3des (triple
DES), blow-fish, arcfour, dan none.
ClearA11Forwadings Dipergunakan untuk meminta agar ssh meneruskan
untuk membaca beberapa file konfigurasi dalam satu
sesi.
Compression [yes/no] Dipergunakan untuk meminta ssh menggunakan
kompresi selama sesi berjalan.
Compressionlevel [0-9] Dipergunakan untuk menentukan level kompresi.
Semakin kecil nomornya, kompresi semakin cepat,
tapi kualitas lebih jelek. Paling besar adalah 9,
memberikan kompresi dengan kualitas bagus, tapi
memperlambat kinerja.
ConnectAttempts [#] Dipergunakan untuk menentukan berapa kali ssh
akan mencoba berkoneksi kembali saat sebuah sesi
tidak berhasil di inisialisasikan.
EscapeChar [charracter] Dpergunakan untuk menentukan karakater Escape.
FallBackToRsh [yes/no] Dipergunakan untuk menentukan apakah ssh harus
berpindah ke rsh jika koneksi ke ssh server tidak
berhasil.
ForwardAgent [yes/no] Dipergunakan untuk menentukan apakah koneksi
dengan program autentikasi lain akan diteruskan
atau tidak.
ForwardX11 [yes/no] Dipergunakan untuk meneruskan sesi X11 secara
otomatis.
GetewayPorts [yes/no] Dipergunakan untuk menentukan apakah host
remote dapat tersambung secara lokal lewat port
yang meneruskannya.
Hostname [hostname] Dipergunakan untuk menentukan nama host yang
login secara default.
Identityfile [file] Dipergunakan untuk menetukan file alternatif
identitas RSA. Defaultnya adalah .ssh/identity.
KeepAlive [yes/no] Dipergunakan untuk menentukan apakah klien ssh
mengirimkan pesan secara terus menerus kepada
server remote.
KerberosAuthentication Dipergunakan untuk menentukan ssh memakai
Klien windows dapat memmanfaatkan SSH dengan mempergunakan program telnet Tera
Term Pro + TTSSH for Windows. Secara default Tera Term Pro tidak mendukung ssh,
untuk itu perlu ditambahkan program TTSSH for Windows. Terra Term Pro dapat
diperoleh di
http://hp.vector.co.jp/authors/VA002416/teraterm.html. Sedangkan TTSSH
dapat diperoleh di
http://www.zip.com.au/roca/ttssh.html.

SSL (Secure Socket Layer)

SSL merupakan salah satu metode enkripsi dalam komunikasi data yang dibuat oleh
Netscape Communication Corporation. Sebagaimana yang dijelaskan dalam SSL
Protocol Internet Draft (The SSL Protocol, Version 3.0 oleh ALAN O. FREIER dan PAUL
C. KOCHER, dapat Anda buka di http://home.netscape.com/eng/ssl3/ssl-
toc.html.

SSL adalah Protokol berlapis. Dalam tiap lapisannya, sebuah data terdiri dari panjang,
deskripsi dan isi. SSL mengambil data untuk dikirimkan, dipecahkan kedalam blok-blok
yang teratur, kemudian dikompres jika perlu, menerapkan MAC, dienkripsi, dan hasilnya
dikirimkan. Di tempat tujuan, data didekripsi, verifikasi, dekompres, dan disusun
kembali. Hasilnya dikirimkan ke klien di atasnya. (terjemahan bebas).
SSL hanya mengenkripsikan data yang dikirim lewat http. Bagaimana SSL berjalan dapat
digambarkan sebagai berikut :

• Pada saat koneksi mulai berjalan, klien dan server membuat dan mempertukarkan
kunci rahasia, yang dipergunakan untuk mengenkripsi data yang akan
dikomunikasikan. Meskipun sesi antara klien dan server diintip pihak lain, namun
data yang terlihat sulit untuk dibaca karena sudah dienkripsi.
• SSL mendukung kriptografi public key, sehingga server dapat melakukan
autentikasi dengan metode yang sudah dikenal umum seperti RSA dan Digital
Signature Standard (DSS).
• SSL dapat melakukan verifikasi integritas sesi yang sedang berjalan dengan
menggunakan algoritma digest seperti MD5 dan SHA. Hal ini menghindarkan
pembajakan suatu sesi.

Lebih lanjut artikel yang saya sarankan untuk dibaca untuk mengetahui lebih dalam
tentang SSL (semuanya berbahasa Inggris) :

1. Analysis of the SSL 3.0Protocol,DAVID WAGNER dan BRUCE SCHENEIDER;


http://www.counterpane.com/ssl.html
2. Introducing SSL and Certificates, menjelaskan keuntungan sertifikasi SSL;
http://www.ultranet.com/fhirsch/Papers/cook/ssl_intro.html
3. Securing Communications on the Intranet and Over the Internet, TAHEL
ELGAMAL, JEFF TREUHAFT, danFRANK CHEN, Netscape Communications
Corporation;
http://www.go-digital.net/whitepapers/securecomm.html
4. The Secure Socket Layer Protocol and Applications, ALLAN SCHIFFMAN, Terisa
Systems,Inc;
http://www.terisa.com:80/presentations/ams/ssl/index.htm

Subsections

• SSL dengan Apache

SSL dengan Apache

Menambahkan SSL kedalam apache membutuhkan prosedur yang cukup rumit. Sebelum
Anda memulainya, pastikan bahwa Anda benar-benar membutuhkan. SSL biasa dipakai
untuk aplikasi e-commerce untuk verifikasi keabsahan kartu kredit atau untuk formulir
yang berisi data penting. Jika memang Anda belum berencana untuk menggunakannya,
lewati saja bagian ini, dan coba nanti jika Anda menginginkanya.

Program yang dibutuhkan :

• Apache 1.2.6 atau lebih


• SSLeay ; ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/SSLeay-0.8.1b.tar.gz
• Patch SSL untuk Apache; ftp://ftp.ox/ac/uk/pub/crypto/SSL/Apache-
SSL/, sebagai contoh
apache_1_2_6+ssl_1_17.tar.gz

Catatan:
Jika Apache sudah terinstall dalam komputer Anda, maka perlu dijalankan instalasi ulang,
agar patch SSL bisa dimasukkan.
Proses pertama, ekstrak dan instal program SSLeay

$ cp SSLeay-0.8.1b.tar.gz /usr/src

$ cd /usr/src

$ tar -zxvf SSLeay-0.8.1b.tar.gz

$ cd /SSLeay-0.8.1b

$ perl ./Configure linux-elf

Catatan:
Configure Linux-elf hanya berjalan hanya untuk mesin Linux. Untuk mengetahui pilihan-
pilihan configure-nya jalankan perintah # perl ./Configure
$ make

$ make rehash

$ make install

Proses selanjutnya adalah ekstrak dan instal Patch SSL untuk Apache ke dalam direktori
sumber Apache.

# cp apache_1_2_6+SSL_1_17.tar.gz /usr/src/apache-1.2.6

# cd /usr/src/apache-1.2.6

# tar -zxvf apache_1_2_6+SSL.tar.gz

Yang akan diekstrak adalah :

• ben.pgp.key.asc- Kunci PGP dari penyusun program


• EXTRAS.SSL - dokumentasi tambahan fitur
• LICENSE.SSL - Lisensi Apache SSL
• Md5sums - MD5 checksums untuk file-file yang diekstrak
• Md5sums.asc - tandatangan md5sums dari penyusun program
• README.SSL - dokumentasi pengenalan singkat
• SECURITY- Artikel tentang keamanan dari sistem SSL
• Src/apache_ssl.c - Modul tambahan untuk Apache
• SSLconf/conf/access.conf - file konfigurasi akses untuk apache yang masih
kosong
• SSLconf/conf/httpd.conf - Contoh file httpd.conf (file konfigurasi untuk
Apache)
• SSLconf/conf/mime.types - contoh file konfigurasi mime.types
• SSLpatch- File patch yang akan dipergunakan.

Setelah file diekstrak, jalankan patch SSL

# patch -p1 < SSLpatch

Lalu pindah ke/usr/src/apache-1.2.6/src, kopikan fileConfiguration.tmpl


menjadiconfiguration. Edit file configuration, dan ganti variabel SSL_BASE untuk
menunjuk ke direktori SSLeay yang sebelumnya telah diinstall.

# cp Configuration.tmpl /usr/src/apache-1.2.6/src

# cd /usr/src/apache-1.2.6/src

# pico Configuration.tmpl
Ganti baris # SSL_BASE= /u/ben/cork/scuzzy-ssleay6 menjadi

SSL_BASE=/usr/src/SSLeay-0.8.1b

TekanCtrl-Xuntuk menyimpan, dan jalankan program make untuk apache.

# make

Pastikan bahwa prosedur yang dijalankan telah berjalan dengan benar. Cek apakah make
telah membuat file httpsd. Jika ada, maka semuanya berjalan dengan baik.

Setelah itu, edit file sertifikasi SSL yang terletak di /usr/local/ssl/lib. Nama filenya
ssleay.cnf. Sesuaikan isiannya dengan kebutuhan Anda, dan jalankan make
certificate.

# make certificate

Proses ini akan menghasilkan file httpsd.pem yang terletak di


/usr/src/apache_1.2.6/SSLconf/conf.

Selanjutnya, sebelum Apache dijalankan, Anda perlu cek terlebih dahulu file konfigurasi
httpsd (sebagaimana file konfigurasi Apache yang telah dibahas sebelumnya, yakni
httpd.conf, access.conf dan srm.conf). Cek parameter-paremeter yang berkaitan
dengan SSL, seperti contoh berikut :

SSLCACertificatePath /var/httpd/conf

SSLCACertificateFile /var/httpd/conf/httpsd.pem

SSLCertificateFile /var/httpd/conf/httpsd.pem

SSLLogFile /var/httpd/logs/ssl.log

SSLCacheServerPort 8080

SSLCacheServerPath /usr/src/SSLeay-0.8.1b

SSLSessionCacheTimeout 10000

Untuk menjalankan Servernya dengan menunjuk file konfigurasi yang telah dibuat,
cukup jalankan perintah :

# httpsd -f /var/httpd/conf/httpd.conf

Logging
Linux memiliki fasilitas logging yang sangat komprehensif. Untuk yang baru saja
bermigrasi ke Linux, mungkin belum terbiasa memanfaatkan logging. Pada sistem
operasi non UNIX, kebanyakan meminimalkan logging, bahkan tidak ada sama sekali.

Logging adalah prosedur di mana sebuah sistem operasi atau aplikasi merekam setiap
kejadian dan menyimpan rekaman tersebut untuk dapat dianalisa di kemudian hari.
Kejadian yang direkam ini bisa saja menyangkut sistem operasi, atau khusus program-
program tertentu saja.

Semua file log di Linux disimpan dalam direktori /var/log. Beberapa program/file log
yang penting adalah :

Subsections

• lastlog
• last
• xferlog
• access_log
• error_log
• messages

lastlog

Berisi rekaman kapan user login terakhir kali. Yang ditampilkan adalah nama login, port
dan waktu login terakhir kali. Untuk memanggilnya cukup ketikkan lastlog, dan berikut
contoh outputnya.

# lastlog

Username Port From Latest

root tty1 Tue Jul 3 18:55:24 +0700


2000

bin **Never logged in**

daemon **Never logged in**

adm **Never logged in**

lp **Never logged in**

sync **Never logged in**


shutdown **Never logged in**

halt **Never logged in**

mail **Never logged in**

alias **Never logged in**

qmaild **Never logged in**

qmaill **Never logged in**

qmailp **Never logged in**

qmailq **Never logged in**

qmailr **Never logged in**

qmails **Never logged in**

xfs **Never logged in**

postfix **Never logged in**

sofyan **Never logged in**

mysql **Never logged in**

spawn tty1 Tue Jul 3 18:56:10 +0700


2000

xferlog

Mencatat semua informasi yang pernah login di ftp daemon. Data yang ditampilkan
berupa waktu saat ini, durasi transfer file, host yang mengakses (baik nomor IP maupun
nama host), jumlah file yang ditransfer, nama file, tipe transfer (Binary atau ASCII),
perintah khusus yang diberikan (jika file dikompres atau tar), arah transfer (incoming,
outgoing), modus akses (anonymous, guest, atau user resmi), nama user, layanan, metode
otentikasi, dan user ID.

# less /var/log/xferlog

access_log

Berisi rekaman untuk layanan http (HyperText Transfer Protocol) atau layanan web
server. Access_log biasanya terdiri dari Nomor IP dari pengakses, jam dan tanggal
akses, printah atau permintaan, dan kode status.
# less /var/log/ access_log

error_log

Berisi rekaman pesan kesalahan atas service http atau web server. Error_log terdiri dari
jam dan waktu, tipe kesalahan, alasan kesalahan, layanan, dan perintah yang dijalankan
berikutnya (kadang-kadang).

# less /var/log/error_log

messages

Rekaman kejadian sistem dan kernel, ditangani oleh dua daemon;

• syslogd merekam semua program yang dijalankan. Untuk


mengkonfigurasikannya dapat mempergunakan syslog.conf.
• klogd, menerima dan merekam pesan kernel

File messages dapat dilihat di /var/log/messages. Berikut contohnya :

# less /var/log/messages

Deteksi Penyusupan (Intrusion Detection)


Deteksi penyusupan adalah aktivitas untuk mendeteksi penyusupan secara cepat dengan
menggunakan program khusus yang otomatis. Program yang dipergunakan biasanya
disebut sebagai Intrusion Detection System (IDS).

Tipe dasar dari IDS adalah:

• Rule-based systems - berdasarkan atas database dari tanda penyusupan atau


serangan yang telah dikenal. Jika IDS mencatat lalulintas yang sesuai dengan
database yang ada, maka langsung dikategorikan sebagai penyusupan.
• Adaptive systems - mempergunakan metode yang lebih canggih. Tidak hanya
berdasarkan database yang ada, tapi juga membuka kemungkinan untuk
mendeteksi terhadap bentuk bentuk penyusupan yang baru.

Bentuk yang sering dipergunakan untuk komputer secara umum adalah rule-based
systems.

Pendekatan yang dipergunakan dalam rule-based systems ada dua, yakni pendekatan
pencegahan (preemptory) dan pendekatan reaksi (reactionary). Perbedaannya hanya
masalah waktu saja. Pendekatan pencegahan, program pendeteksi penyusupan akan
memperhatikan semua lalu lintas jaringan. Jika ditemukan paket yang mencurigakan,
maka program akan melakukan tindakan yang perlu. Pendekatan reaksi, program
pendeteksi penyusupan hanya mengamati file log. Jika ditemukan paket yang
mencurigakan, program juga akan melakukan tindakan yang perlu.

Beberapa contoh program IDS di antaranya:

1. chkwtmp

Program yang melakukan pengecekan terhadap entri kosong. Dalam arti, wtmp
mencatat sesuatu tapi isinya kosong. Program ini dapat diperoleh di
http://sunsite.ics.forth/gr/pub/systools/chkwtmp/chkwtmp-
1.0.tar.gz.

2. tcplogd

Program yang mendeteksi stealth scan. Stealth scan adalah scaning yang
dilakukan tanpa harus membuat sebuah sesi tcp. Sebuah koneksi tcp dapat
terbentuk jika klien mengirimkan paket, dan server mengirimkan kembali
paketnya dengan urutan tertentu, secara terus menerus sehingga sesi tcp dapat
berjalan. Stealth scan memutuskan koneksi tcp sebelum klien menerima kembali
jawaban dari server. Scaning model ini biasanya tidak terdeteksi oleh log umum
di Linux. Tcplogd dapat diperoleh di http://www.kalug.net/tcplogd.

3. hostsentry

Program yang mendeteksi login anomali. Anomali disini termasuk perilaku aneh
(bizzare behaviour), anomali waktu (time anomalies), dan anomali lokal (locale
anomalies). Versi beta dari program ini dapat diperoleh di
http://www.psionic.com/abacus/hostsentry.

Ringkasan
Dari sini, Anda sudah mulai mempunyai kepedulian yang cukup terhadap keamanan
jaringan Anda. Secara singkat, sudah pelajari bersama bagaimana arsitektur keamanan di
Linux. Jika keamanan sudah diset secara maksimal menurut perspektif kita, maka yang
diperlukan hanyalah kerajinan untuk membaca file-file log yang dibuat oleh Linux.
Meskipun bisa dibilang bahwa jaringan tidak mempunyai data-data keamanan yang
penting, tapi kepedulian terhadap masalah keamanan ini akan memudahkan pekerjaan di
kemudian hari.

Dengan pesatnya perkembangan sistem informasi, maka perlu bagi para pemelihara
jaringan untuk tetap terlibat dalam isu-isu terakhir dalam bidang teknologi. Ketinggalan
terhadap isu bug, virus, dan isu keamanan lainnya, akan membuat jaringan yang dirawat
menjadi rawan akan penyusupan.

Beberapa contoh sumber informasi untuk keamanan secara umum :


• http://www.cert.org ; memberikan saran berdasarkan riset dan study tentang
kemampuan, tanggapan dan isu keamanan secara umum
• http://geek-girl.com/bugtraq ; berisi koleksi milis yang membahas tentang
bug secara umum.
• http://security.linuxtoday.com; berisi berita-berita terakhir tentang
penemuan kelemahan keamanan dalam sistem Linux.
• http://www.seifried.org/lasg; berisi artikel tentang aspek penting dalam
keamanan Linux, dibuat oleh KURT SIFRIED. Dokumennya dapat diperoleh dalam
bentuk pdf.

You might also like