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 accountnya 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
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
8 11:27 Desktop
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
-rw-r-r-
1 fade
hacker
drwxr-xr-x
2 fade
hacker
17358 Feb 23 09:11 sinkcp.gif 393 Feb 24 10:13 spam 1024 Feb 22 08:36 temp
Beberapa program penting berkaitan dengan Discretionary Access Control :
Subsections • •
su (Substitute User). shadow.
Pro aktif Password
•
o o o
passwd+ anlpasswd 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 User ID (UID) Group ID (GID) Keterangan tambahan Home Direktori Shell Default
: : : : : :
x 1000 103 /home/fade /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 pwconv pwunconv su
Sinkronisasi antara /etc/passwd dan /etc/shadow. Biasa dilakukan setelah menambah password atau user Menyatukan file /etc/passwd lama ke dalam file shadow yang baru. Memisahkan informasi dalam /etc/shadow kembali ke /etc/passwd
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
telnet stream tcp nowait /usr/sbin/in.telnetsnoopd
root root
/usr/sbin/tcpd
in.telnetd
/usr/sbin/tcpd
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 /etc/hosts.deny
- host yang diperbolehkan untuk mengakses - 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, <
[email protected]
# 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, <
[email protected]
# #
# 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, <
[email protected]
# # 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 ms
nas1-rtif.cbn.net.id (202.158.2.225)
129.58 ms
119.94 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)
5
202.160.250.6 (202.160.250.6)
639.809 ms 619.77 ms
629.684 ms
939.703 ms
6 S-0-0-0-explorer.ix.singtel.com (202.160.255.214) 829.723 ms 829.886 ms 7 ms
s4-1-0.paloalto-cr13.bbnplanet.net (4.0.17.249) 818.614 ms
8 ms
p2-2.paloalto-nbr2.bbnplanet.net (4.0.2.221) 809.797 ms
9 p2-0.paloalto-cr1.bbnplanet.net (4.0.6.78) 839.936 ms 10 p0-0.mshotmail.bbnplanet.net (4.0.24.14) 849.887 ms 11
119.881
710.019 ms
819.83 ms
849.86 ms
810.22 ms
819.889 ms
809.877 ms
809.757 ms
901.074
799.684
819.611 ms
889.695 ms
* * *
12 law5-rsp-c.hotmail.com (216.32.183.14) 869.859 ms
870.029 ms
13
929.954 ms *
lc2.law5.hotmail.com (209.185.243.135)
879.73 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 fungsifungsi dari beberapa parameter yang perlu :
Table: Parameter /etc/sshd_config
Parameter/etc/sshd_config Parameter Penjelasan AllowGroups [groups]
AllowHosts [hosts]
Digunakan untuk mengontrol grup yang dapat memanfaatkan fasilitas SSH. Antar grup dipisahkan dengan spasi. Misal AllowGroups root user Dipergunakan untuk mengontrol host-host yang dapat 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.
CheckMail
Digunakan untuk menentukan apakah user yang sedang login dengan ssh diberitahu jika ada email masuk atau tidak. Secara default diset yes.
DenyGroups
Digunakan untuk mengontrol grup yang tidak 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 LoginGraceTime PermitEmptyPassword
PermitRootLogin
PrintMod
Untuk menentukan apakah sshd mengirimkan pesan bahwa layanan masih berjalan atau tidak Untuk menentukan waktu jeda saat user bisa login kembali akibat kegagalan login pada sesi sebelumnya Untuk menentukan apakah diperbolehkan atau tidak user mengirimkan password kosong Untuk menentukan apakah root dapat log in dengan ssh, dan jika diperbolehkan apakah masih perlu autentikasi password 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 -b [bits]
-d -f [config-file]
Dipergunakan untuk menentukan berapa bit yang dipergunakan sebagai kunci. Secara default dipakai 768 bits. Dipergunakan untuk menjalankan dalam modus DEBUG. Ini berguna untuk mengamati proses server yang sedang berjalan. Dipergunakan untuk menentukan file config yang lain selain yang ditunjuk secara default (/etc/sshd_config)
-g [timeout]
Dipergunakan untuk menentukan timeout jika ada pengguna yang meminta sebuah sesi tetapi tidak melakukan autentikasi. Defaultya 600 detik. Disarankan untuk mengeset ke 60 detik.
-h [host-key]
Dipergunakan untuk menentukan alternatif lain dari file host key. Defaulntya adalah /etc/ssh_host_key.
-i
Dipergunakan untuk menjalankan sshd dari inetd. Namun oleh pembuatnya disarankan untuk tidak dijalankan lewat inetd. Hal ini disebabkan karena sshd harus membuat key untuk tiap sesi, sehingga mempengaruhi kinerja daemon lain yang dijalankan lewat inetd.
-k
Dipergunakan untuk mengeset waktu, berapa lama sshd harus membuat (generating) kunci (session key) yang baru. Defaultnya adalah sekali dalam sejam. Jika diset 0 maka sshd tidak akan pernah membuat session key yang baru.
-p [port] -q
Dipergunakan untuk menentukan port alternatif bagi sshd. Defaultnya adalah port 22. Dipergunakan untuk mematikan logging (tidak 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/ssltoc.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; 4.
http://www.go-digital.net/whitepapers/securecomm.html 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/ApacheSSL/, 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 pilihanpilihan 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 programprogram 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
root 2000
tty1
From
Latest Tue Jul
3 18:55:24 +0700
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 2000
tty1
Tue Jul
3 18:56:10 +0700
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; • •
merekam semua program yang dijalankan. Untuk mengkonfigurasikannya dapat mempergunakan syslog.conf. klogd, menerima dan merekam pesan kernel syslogd
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/chkwtmp1.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 :
• • • •
; 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. http://www.cert.org