27 April 2009

Firewall


Firewall merupakan sebuah perangkat yang diletakkan antara Internet dengan jaringan internal. Informasi yang keluar atau masuk harus melalui firewall ini.


Tujuan utama dari firewall adalah untuk menjaga (prevent) agar akses (ke dalam maupun ke luar) dari orang yang tidak berwenang (unauthorized access) tidak dapat dilakukan. Konfigurasi dari firewall bergantung kepada kebijaksanaan (policy) dari organisasi yang bersangkutan, yang dapat dibagi menjadi dua jenis:

· apa-apa yang tidak diperbolehkan secara eksplisit dianggap tidak diperbolehkan (prohibitted)

· apa-apa yang tidak dilarang secara eksplisit dianggap diperbolehkan (permitted)

Firewall bekerja dengan mengamati paket IP (Internet Protocol) yang melewatinya. Berdasarkan konfigurasi dari firewall maka akses dapat diatur berdasarkan IP address, port, dan arah informasi. Detail dari konfigurasi bergantung kepada masing-masing firewall.

Firewall dapat berupa sebuah perangkat keras yang sudah dilengkapi dengan perangkat lunak tertentu, sehingga pemakai (administrator) tinggal melakukan konfigurasi dari firewall tersebut. Firewall juga dapat berupa perangkat lunak yang ditambahkan kepada sebuah server (baik UNIX maupun Windows NT), yang dikonfigurasi menjadi firewall. Dalam hal ini, sebetulnya perangkat komputer dengan prosesor Intel 80486 sudah cukup untuk menjadi firewall yang sederhana.

Pemantau adanya serangan

Sistem pemantau (monitoring system) digunakan untuk mengetahui adanya tamu tak diundang (intruder) atau adanya serangan (attack). Sistem ini dapat memberitahu administrator melalui e-mail maupun melalui mekanisme lain seperti melalui pager. Contoh program yang dapat digunakan antara lain courtney (UNIX). Program courtney akan memberitahu melalui e-mail apabila ada probe.

Pemantau integritas sistem

Pemantau integritas sistem dijalankan secara berkala untuk menguji integratitas sistem. Salah satu contoh program yang umum digunakan di sistem UNIX adalah program Tripwire. Program paket Tripwire dapat digunakan untuk memantau adanya perubahan pada berkas. Pada mulanya tripwire dijalankan dan membuat database mengenai berkas-berkas atau direktori yang ingin kita amati. Informasi mengenai besarnya berkas, kapan dibuatnya, pemiliknya, dan sebagainya tercatat dalam sebuah database. Hal ini dilakukan dengan menggunakan hash function. Apabila ada perubahan, maka keluaran dari hash function itu akan berbeda dan akan ketahuan adanya perubahan.

Audit: Mengamati Berkas Log

Segala kegiatan penggunaan sistem dapat dicatat dalam berkas yang biasanya disebut “logfile” atau “log” saja. Berkas log sangat berguna untuk mengamati penyimpangan yang terjadi. Kegagalan untuk masuk ke sistem (login) misalnya tersimpan di dalam berkas log. Untuk itu para administrator diwajibkan untuk rajin memelihara dan menganalisa berkas log yang dimilikinya.

Letak dan isi dari berkas log bergantung kepada operating system yang digunakan. Di sistem berbasis UNIX, biasanya berkas ini berada di direktori /var/adm atau /var/log. Contoh berkas log yang ada di sistem Linux Debian dapat dilihat pada Table 2 on page 33.

Nama Berkas

Keterangan

/var/adm/auth.log

Berisi informasi yang berhubungan dengan authenti­cation. Gagal login, misalnya, dicatat pada berkas ini.

/var/adm/daemon.log

Informasi mengenai program-program daemon seperti BIND, Sendmail, dsb.

/var/adm/mail.log

Berisi informasi tentang e-mail yang dikirimkan dan diterima serta akses ke sistem email melalui POP dan IMAP.

/var/adm/syslog

Berisi pesan yang dihasilkan oleh program syslog. Kegagalan login tercatat di sini.

Sebagai contoh, berikut ini adalah cuplikan baris isi dari berkas / var/adm/auth.log:

Apr 8 08:47:12 xact passwd[8518]: password for `pc' changed by root

Apr 8 10:02:14 xact su: (to root) hendra on /dev/ttyp3

Baris pertama menunjukkan bawah password untuk pemakai “pc” telah diganti oleh “root”. Baris kedua menunjukkan bahwa pemakai (user) yang bernama “hendra” melakukan perintah “su” (substitute user) dan menjadi user “root” (super user). Kedua contoh di atas menunjukkan entry yang nampaknya normal, tidak mengandung security hole, dengan asumsi pada baris kedua memang pemakai

Apr 5 17:20:10 alliance wu-ftpd[12037]: failed login from

ws170.library.msstate.edu [130.18.249.170], m1

Apr 9 18:41:47 alliance login[12861]: invalid password for `hendra' on `ttyp0' from `ppp15.isp.net.id'


Baris di atas menunjukkan kegagalan untuk masuk ke sistem melalui fasilitas FTP (baris pertama) dan telnet (baris kedua). Pada baris kedua terlihat bahwa user “budi” (atau yang mengaku sebagai user “budi”) mencoba masuk melalui login dan gagal memberikan password yang valid. Hal ini bisa terjadi karena ketidak sengajaan, salah memasukkan password, atau bisa juga karena sengaja ingin mencoba-coba masuk dengan userid “budi” dengan password coba­coba. Cara coba-coba ini sering dilakukan dengan mengamati nama user yang berada di sistem tersebut (misalnya dengan menggunakan program finger untuk mengetahui keberadaan sebuah user).


Contoh berikut diambil dari isi berkas /var/adm/mail.log, yang berfungsi untuk mencatat aktivitas yang berhubungan dengan sistem mail.

Apr 9 18:40:31 mx1 imapd[12859]: Login faiure user=^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P ^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^ P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P

host=vhost.txg.wownet.net

Apr 9 18:40:32 mx1 imapd[12859]: Success, while reading line user=^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P ^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^ P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P^P

host=vhost.txg.wownet.net


Contoh di atas menunjukkan hal yang sedikit aneh dari akses ke servis email melalui IMAP (ditunjukkan dengan kata “imapd” yang merupakan server dari servis IMAP). Pertama, user yang digunakan tidak valid. Kedua, kebetulan administrator tidak memiliki remote user yang berasal dari host yang disebut di atas. Setelah diselidiki, ternyata memang ada lubang keamanan dari implementasi “imapd” yang digunakan. Ini diketahui setelah melihat informasi yang ada di

web site CERT (See “Sumber informasi dan organisasi yang berhubungan dengan keamanan sistem informasi” on page 54.). Untuk itu administrator cepat-cepat menutup servis imap tersebut, mengambil dan memasang versi baru dari imapd yang tidak memiliki lubang keamanan tersebut.


Contoh-contoh di atas hanya merupakan sebagian kecil dari kegiatan menganalisa berkas log. Untuk sistem yang cukup ramai, misalnya sebuah perguruan tinggi dengan jumlah pemakai yang ribuan, analisa berkas log merupakan satu pekerjaan tersendiri (yang melelahkan). Untuk itu adanya tools yang dapat membantu administrator untuk memproses dan menganalisa berkas log merupakan sesuatu yang sangat penting. Ada beberapa tools sederhana yang menganalia berkas log untuk mengamati kegagalan (invalid password, login failure, dan sebagainya) kemudian memberikan ringkasan. Tools ini dapat dijalankan setiap pagi dan mengirimkan hasilnya kepada administrator.


Backup secara rutin


Seringkali tamu tak diundang (intruder) masuk ke dalam sistem dan merusak sistem dengan menghapus berkas-berkas yang dapat ditemui. Jika intruder ini berhasil menjebol sistem dan masuk sebagai super user (administrator), maka ada kemungkinan dia dapat menghapus seluruh berkas. Untuk itu, adanya backup yang dilakukan secara rutin merupakan sebuah hal yang esensial. Bayangkan apabila yang dihapus oleh tamu ini adalah berkas penelitian, tugas akhir, skripsi, yang telah dikerjakan bertahun­tahun.

Untuk sistem yang sangat esensial, secara berkala perlu dibuat backup yang letaknya berjauhan secara fisik. Hal ini dilakukan untuk menghindari hilangnya data akibat bencana seperti kebakaran, banjir, dan lain sebagainya. Apabila data-data dibackup akan tetapi diletakkan pada lokasi yang sama, kemungkinan data akan hilang jika tempat yang bersangkutan mengalami bencana seperti kebakaran.


Penggunaan Enkripsi untuk meningkatkan keamanan


Salah satau mekanisme untuk meningkatkan keamanan adalah dengan menggunakan teknologi enkripsi. Data-data yang anda kirimkan diubah sedemikian rupa sehingga tidak mudah disadap. Banyak servis di Internet yang masih menggunakan “plain text” untuk authentication, seperti penggunaan pasangan userid dan password yang sering dapat dilihat dengan program sniffer. Penggunaan enkripsi untuk remote akses (misalnya melalui telnet atau rlogin) akan dibahas di bagian berikut.


Telnet atau shell aman


Telnet atau remote login digunakan untuk mengakses sebuah “remote site” atau komputer melalui sebuah jaringan komputer. Akses ini dilakukan dengan menggunakan hubungan TCP/IP dengan menggunakan userid dan password. Informasi tentang userid dan password ini dikirimkan melalui jaringan komputer secara terbuka. Akibatnya ada kemungkinan seorang yang nakal melakukan “sniffing” dan mengumpulkan informasi tentang pasangan userid dan password ini.

Untuk menghindari hal ini, enkripsi dapat digunakan untuk melindungi adanya sniffing. Paket yang dikirimkan dienkripsi dengan RSA atau IDEA sehingga tidak dapat dibaca oleh orang yang tidak berhak. Salah satu implementasi mekanisme ini adalah SSH (Secure Shell). Ada beberapa implementasi SSH ini, antara lain:

  • ssh untuk UNIX (dalam bentuk source code, gratis)
  • SSH untuk Windows95 dari Data Fellows (komersial) http://www.datafellows.com/
  • TTSSH, yaitu skrip yang dibuat untuk Tera Term Pro (gratis, untuk Windows 95) http://www.paume.itb.ac.id/rahard/koleksi
  • SecureCRT untuk Windows95 (shareware / komersial)