INFOLINUX 09/2005 50 TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial www.infolinux.web.id Linux Admin T ugas sistem operasi sangatlah berat. Selain bertugas dari sisi low level un- tuk berbicara dengan hardware dan mengatur proses sistem, sistem operasi juga harus bertindak layaknya seorang mata-ma- ta tangguh yang mencatat hampir semua hal yang terjadi pada komputer. Apa yang dicatat tersebut umumnya dimulai dari proses booting, kemudian event-event yang terjadi pada sistem ketika beroperasi, dan catatan-catatan lainnya. Tentu saja, karena sistem bisa berkembang menjadi begitu kompleks, sistem operasi ti- dak dapat mencatat semuanya sendiri. Oleh karena beberapa program yang berfungsi menyediakan service kemudian membantu sistem operasi untuk turut mencatat ke log sistem sesuai dengan tugas yang diemban- nya. Dengan demikian, log untuk hampir keseluruhan sistem pun dapat dicapai. Sebenarnya, apa saja yang bisa kita laku- kan dengan log-log tersebut? Berikut ini adalah beberapa di antaranya: Troubleshooting. Tidaklah mudah untuk melakukan troubleshooting. Apalagi pada sistem yang kompleks. Namun setidak- nya, dengan adanya log file, kita bisa mendapatkan sedikit catatan tentang apa yang terjadi sebelumnya. Ini diharapkan bisa membantu kita untuk memecahkan masalah. Audit keamanan. Umumnya, bicara ma- salah keamanan, sistem operasi multiuser seperti halnya Linux akan sangat peduli. Segala yang berhubungan dengan tinda- kan mengganggu hardware, mengganggu user lain, mengganggu sistem, menggang- gu jaringan umumnya akan dicatat. Ad- ministrator dapat membuat script seder- hana untuk melihat percobaan gangguan pada sistem. Hanya, tentu saja kita tidak bisa selalu mengandalkan log file untuk setiap percobaan gangguan. User yang nakal (dan hebat pula) selalu ada. Audit service. Apabila kita mengelola server yang menjalankan service SAMBA, SQUID, HTTPD, dan lainnya, bantuan log file akan terasa sangat berguna. Umum- nya, apa yang dilakukan oleh user un- tuk meminta service memang tidak akan dapat dicatat oleh server. Namun, penye- dia service semacam SAMBA, SQUID dan HTTPD akan membantu sistem dengan menyediakan catatan yang lebih detail, sekaligus melengkapi log sistem (tidak semua service menyediakan fitur ini). Umumnya, satu masalah besar yang menghambat log adalah tidak terinteg- rasinya log file. Di Linux, log general untuk sistem memang tersedia (syslog), namun, tidak semua proses lantas memiliki hak untuk mengubah file tersebut begitu saja. Dengan demikian, beberapa aplikasi akan memilih untuk membuat log file sendiri di lokasi yang bervariasi: mulai dari home di- rectory user saja (akan sangat menyebalkan) sampai lokasi temporary lain. Proses-proses semacam ini membuat log yang bahkan dapat dihapus oleh user. Sayangnya, kita tidak bisa memaksa semua aplikasi untuk dapat mencatat ke log sistem. Apa yang bisa dilakukan adalah menjaga sebaik-baiknya, sekaligus meman- faatkan log file semaksimal mungkin untuk menjaga sistem. Setelah ini, kita akan mulai membahas beberapa log file yang dapat membantu kita untuk melakukan troubleshooting, audit ke- amanan dan audit service. Hampir semua file log akan disimpan di direktori /var/log. An- da akan membutuhkan hak akses root untuk dapat membaca semua log yang dibahas di artikel ini. Sebagai catatan, beberapa log file disimpan di lokasi yang terpisah atau bahkan tidak tersedia, tergantung pada kebijakan distro. Distro yang menuruti standar Linux seharusnya tidak akan menghapus atau menggabungkan atau menyimpan ke tempat lain log file tertentu. Tulisan ini dibuat pada distro SUSE 9.3 Pro, namun seharusnya bisa diterapkan pada distro-distro lain. /var/log/messages Ini adalah file log yang sangat sangat ber- guna. Hampir semua kejadian sistem akan didokumentasikan di sini. Karena file ini merupakan catatan hampir semua aktivi- tas sistem, maka hanya user root dan group root yang bisa membacanya (namun be- berapa distro mengubahnya menjadi lebih ketat atau lebih longgar). File ini akan mencatat mulai proses boot- ing sampai service. Umumnya, beberapa service besar juga akan mencatat ke file log ini, jadi, boleh dikatakan, file log ini memi- liki hampir semua informasi. Berikut ini adalah baris-baris acak dari messages. Jun 14 11:44:29 tbiserv0 kernel: klogd 1.4.1, log source = /proc/ kmsg started. Jun 14 11:44:29 tbiserv0 kernel: ieee1394: Host added: ID:BUS [0-00:1023] GUID[000fea0000f64305] Jun 14 11:44:29 tbiserv0 kernel: hw_random hardware driver 1.0.0 loaded Jun 14 11:44:29 tbiserv0 kernel: Mengamati Log Sistem Hampir semua dari apa yang terjadi ketika komputer beroperasi, umumnya akan dicatat ke log file. Dengan demikian, administrator sistem dapat mengamati log untuk melihat apa saja yang sedang terjadi pada sistem, untuk kemudian dapat menindaklanjutinya sesuai dengan kebijakan yang diterapkan. Di artikel kali ini, kita akan membahas beberapa log di sistem yang mungkin akan sangat berguna dalam memecahkan masalah.
28
Embed
Linux Admin Mengamati Log Sistemftp.gunadarma.ac.id/pub/linux/magazine/infolinux/Tahun 2005/PDF...ministrator dapat membuat script seder-hana untuk melihat percobaan gangguan pada
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
INFOLINUX 09/200550
TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
Linux Admin
Tugas sistem operasi sangatlah berat.
Selain bertugas dari sisi low level un-
tuk berbicara dengan hardware dan
mengatur proses sistem, sistem operasi juga
harus bertindak layaknya seorang mata-ma-
ta tangguh yang mencatat hampir semua hal
yang terjadi pada komputer.
Apa yang dicatat tersebut umumnya
dimulai dari proses booting, kemudian
event-event yang terjadi pada sistem ketika
beroperasi, dan catatan-catatan lainnya.
Tentu saja, karena sistem bisa berkembang
menjadi begitu kompleks, sistem operasi ti-
dak dapat mencatat semuanya sendiri. Oleh
karena beberapa program yang berfungsi
menyediakan service kemudian membantu
sistem operasi untuk turut mencatat ke log
sistem sesuai dengan tugas yang diemban-
nya. Dengan demikian, log untuk hampir
keseluruhan sistem pun dapat dicapai.
Sebenarnya, apa saja yang bisa kita laku-
kan dengan log-log tersebut? Berikut ini
adalah beberapa di antaranya:
� Troubleshooting. Tidaklah mudah untuk
melakukan troubleshooting. Apalagi pada
sistem yang kompleks. Namun setidak-
nya, dengan adanya log fi le, kita bisa
mendapatkan sedikit catatan tentang apa
yang terjadi sebelumnya. Ini diharapkan
bisa membantu kita untuk memecahkan
masalah.
� Audit keamanan. Umumnya, bicara ma-
salah keamanan, sistem operasi multiuser
seperti halnya Linux akan sangat peduli.
Segala yang berhubungan dengan tinda-
kan mengganggu hardware, mengganggu
user lain, mengganggu sis tem, menggang-
gu jaringan umumnya akan dicatat. Ad-
ministrator dapat membuat script seder-
hana untuk melihat percobaan gangguan
pada sistem. Hanya, tentu saja kita tidak
bisa selalu mengandalkan log fi le untuk
setiap percobaan gangguan. User yang
nakal (dan hebat pula) selalu ada.
� Audit service. Apabila kita mengelola
server yang menjalankan service SAMBA,
SQUID, HTTPD, dan lainnya, ban tuan
log fi le akan terasa sangat berguna. U mum -
nya, apa yang dilakukan oleh user un-
tuk meminta service memang tidak akan
dapat dicatat oleh server. Namun, penye-
dia service semacam SAMBA, SQUID dan
HTTPD akan membantu sistem de ngan
menyediakan catatan yang lebih de tail,
sekaligus melengkapi log sistem (tidak
semua service menyediakan fi tur ini).
Umumnya, satu masalah besar yang
menghambat log adalah tidak terinteg-
rasinya log fi le. Di Linux, log general untuk
sistem memang tersedia (syslog), namun,
tidak semua proses lantas memiliki hak
untuk mengubah fi le tersebut begitu saja.
Dengan demikian, beberapa aplikasi akan
memilih untuk membuat log fi le sendiri di
lokasi yang bervariasi: mulai dari home di-
rectory user saja (akan sangat menyebalkan)
sampai lokasi temporary lain. Proses-proses
semacam ini membuat log yang bahkan
dapat dihapus oleh user.
Sayangnya, kita tidak bisa memaksa
semua aplikasi untuk dapat mencatat ke
log sistem. Apa yang bisa dilakukan adalah
menjaga sebaik-baiknya, sekaligus meman-
faatkan log fi le semaksimal mungkin untuk
menjaga sistem.
Setelah ini, kita akan mulai membahas
beberapa log fi le yang dapat membantu kita
untuk melakukan troubleshooting, audit ke-
amanan dan audit service. Hampir semua fi le
log akan disimpan di direktori /var/log. An-
da akan membutuhkan hak akses root untuk
dapat membaca semua log yang dibahas di
artikel ini. Sebagai catatan, beberapa log fi le
disimpan di lokasi yang terpisah atau bahkan
tidak tersedia, tergantung pada kebijakan
distro. Distro yang menuruti standar Linux
seharusnya tidak akan menghapus atau
menggabungkan atau menyimpan ke tempat
lain log fi le tertentu. Tulisan ini dibuat pada
distro SUSE 9.3 Pro, namun seharusnya bisa
diterapkan pada distro-distro lain.
/var/log/messagesIni adalah fi le log yang sangat sangat ber-
Mengamati Log SistemHampir semua dari apa yang terjadi ketika komputer beroperasi, umumnya akan dicatat ke log file. Dengan demikian, administrator sistem dapat mengamati log untuk melihat apa saja yang sedang terjadi pada sistem, untuk kemudian dapat menindaklanjutinya sesuai dengan kebijakan yang diterapkan. Di artikel kali ini, kita akan membahas beberapa log di sistem yang mungkin akan sangat berguna dalam memecahkan masalah.
INFOLINUX 09/2005 51
TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
Linux Admin
Linux agpgart interface v0.100 (c) Dave JonesJun 14 11:44:29 tbiserv0 kernel: agpgart: Detected an Intel 865 Chipset.Jun 14 11:44:29 tbiserv0 kernel: agpgart: Maximum main memory to use for agp memory: 941MJun 14 11:44:29 tbiserv0 kernel: agpgart: AGP aperture is 128M @ 0xe8000000Jun 14 11:44:29 tbiserv0 kernel: usbcore: registered new driver usbfsJun 14 11:44:29 tbiserv0 kernel: usbcore: registered new driver hubJun 14 11:44:29 tbiserv0 kernel: ACPI: PCI interrupt 0000:00:1d.7[D] -> GSI 23 (level, low) -> IRQ 185Jun 14 11:44:29 tbiserv0 kernel: ehci_hcd 0000:00:1d.7: EHCI Host Controller......Jun 14 13:07:09 tbiserv0 squid[8307]: Accepting HTTP connections at 0.0.0.0, port 8888, FD 12.Jun 14 13:07:09 tbiserv0 squid[8307]: Accepting ICP messages at 0.0.0.0, port 3130, FD 13.Jun 14 13:07:09 tbiserv0 squid[8307]: HTCP Disabled.Jun 14 13:07:09 tbiserv0 squid[8307]: Accepting SNMP messages on port 3401, FD 14.Jun 14 13:07:09 tbiserv0 squid[8307]: WCCP Disabled.Jun 14 13:07:09 tbiserv0 squid[8307]: Ready to serve requests.Jun 14 13:07:09 tbiserv0 squid[8307]: Done scanning /var/cache/squid swaplog (0 entries)Jun 14 13:07:09 tbiserv0 squid[8307]: Finished rebuilding storage from disk.Jun 14 13:07:09 tbiserv0 squid[8307]: 0 Entries scannedJun 14 13:07:09 tbiserv0
...Jun 14 17:32:05 tbiserv0 nmbd[5939]: [2005/06/14 17:32:05, 0] nmbd/nmbd_become_dmb.c:become_domain_master_browser_bcast(282)Jun 14 17:32:05 tbiserv0 nmbd[5939]: become_domain_master_browser_bcast:Jun 14 17:32:05 tbiserv0 nmbd[5939]: Attempting to become domain master browser on workgroup TBI-CKG on subnet 192.168.0.1Jun 14 17:32:05 tbiserv0 nmbd[5939]: [2005/06/14 17:32:05, 0] nmbd/nmbd_become_dmb.c:become_domain_master_browser_bcast(295)Jun 14 17:32:05 tbiserv0 nmbd[5939]: become_domain_master_browser_bcast: querying subnet 192.168.0.1 for domain master browser on workgroup TBI-CKG
...
...Jun 14 17:33:38 tbiserv0 dhcpd:
DHCPREQUEST for 192.168.0.99 from 00:0f:ea:e5:6b:22 (tbi03) via eth0Jun 14 17:33:38 tbiserv0 dhcpd: DHCPACK on 192.168.0.99 to 00:0f:ea:e5:6b:22 (tbi03) via eth0
[Tue Jun 21 11:50:11 2005] [warn] Init: Session Cache is not configured [hint: SSLSessionCache][Tue Jun 21 11:50:11 2005] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec2)[Tue Jun 21 11:50:11 2005] [notice] Apache/2.0.53 (Linux/SUSE) configured -- resuming normal operations[Tue Jun 21 11:57:18 2005] [error] [client 192.168.0.1] File does not exist: /srv/www/htdocs/favicon.ico
Bisa kita lihat bahwa level-level log ditu-
liskan dengan sangat mudah dibaca. Mulai
dari notice, warn, dan error.
/var/log/samba/log.*Bagi Anda yang menyalakan service SAM-
BA, Anda juga patut berbahagia. SAMBA
termasuk salah satu proyek open source ter-
baik dari sisi dokumentasi dan pencatatan.
Di dalam direktori /var/log/samba lah ter-
dapat catatan dari segala aktivitas yang ter-
jadi selama melayani.
Umumnya, Anda akan memiliki dua fi le
yaitu log.smbd dan log.nmbd. Apabila Anda
menggunakan winbind, maka sebuah log
tambahan, log.winbindd akan dapat Anda
temukan.
Di fi le-fi le log tersebut, dengan mudah
Anda bisa melihat apa yang sedang terjadi,
termasuk catatan berguna untuk menyele-
saikan masalah.
Contoh log.smbd:[2005/06/21 13:07:12, 1] smbd/service.c:make_connection_snum(642) tbi04 (192.168.0.98) connect to service dos initially as user dos (uid=1002, gid=100) (pid 6914)[2005/06/21 13:07:14, 1] smbd/service.c:make_connection_snum(642) tbi04 (192.168.0.98) connect to service netlogon initially as user dos (uid=1002, gid=100) (pid 6914)
[2005/06/21 13:12:24, 1] smbd/service.c:make_connection_snum(642) tbi04 (192.168.0.98) connect to service dos initially as user dos (uid=1002, gid=100) (pid 6914)[2005/06/21 13:12:39, 1] smbd/service.c:close_cnum(830) tbi04 (192.168.0.98) closed connection to service netlogon
Di fi le log.smbd tersebut, Anda bisa me-
lihat setiap detil koneksi SAMBA. Dalam
contoh tersebut, kita bisa melihat bagaima-
na proses logout sedang dilakukan (closed
connection).
Contoh fi le log.nmbd:[2005/06/21 11:50:09, 0] nmbd/nmbd_become_dmb.c:become_domain_master_browser_bcast(282) become_domain_master_browser_bcast: Attempting to become domain master browser on workgroup TBI-CKG on subnet 192.168.0.1[2005/06/21 11:50:09, 0] nmbd/nmbd_become_dmb.c:become_domain_master_browser_bcast(295) become_domain_master_browser_bcast: querying subnet 192.168.0.1 for domain master browser on workgroup TBI-CKG[2005/06/21 11:50:13, 0] nmbd/nmbd_logonnames.c:become_logon_server_success(124) become_logon_server_success: Samba is now a logon server for workgroup TBI-CKG on subnet 192.168.0.1[2005/06/21 11:50:17, 0] nmbd/nmbd_become_dmb.c:become_domain_master_stage2(113) *****
Samba server TBISERV0 is now a domain master browser for workgroup TBI-CKG on subnet 192.168.0.1 *****[2005/06/21 11:50:32, 0] nmbd/nmbd_become_lmb.c:become_local_master_stage2(396)
INFOLINUX 09/2005 53
TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
Linux Admin
*****
Samba name server TBISERV0 is now a local master browser for workgroup TBI-CKG on subnet 192.168.0.1
*****
Di fi le log.nmbd tersebut, Anda bisa me-
lihat setiap detil SAMBA yang berhubungan
dengan kegiatan name resolution. Pada con-
toh tersebut, terlihat proses bagaiman SAM-
BA server bernegosiasi menjadi LMB.
/var/log/squid/*.logSquid juga merupakan salah satu service
TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
PHP
Bekerja dengan teks sebenarnya me-
nyenangkan. Apabila Anda ba nyak
bekerja dengan pemrograman atau
SQL seperti disebutkan, banyak sekali pem-
rosesan teks yang terjadi pada bidang-bi-
dang tersebut. Barangkali yang paling umum
adalah bagaimana interpreter atau kompiler
memeriksa apakah kode Anda benar atau ti-
dak. Setelah itu, bagaimana interpreter atau
kompiler mengenali maksud Anda menge-
tikkan kode program Anda. Contoh lain
yang sangat umum juga adalah bagaimana
database engine mengenali dan memahami
sintaks SQL yang Anda berikan.
Tentu saja, pemrosesan tersebut tidak
sesederhana bagaimana kita memeriksa
input dengan if misalnya. Karena, kita ti-
dak akan tahu persis bagaimana seseorang
menuliskan kode program atau sintaks SQL
misalnya. Ada yang menuliskan dalam be-
berapa baris untuk satu perintah, ada yang
menggunakan banyak tab dan spasi, ada
yang menuliskannya sedempet mungkin,
dan lain sebagainya. Belum lagi kalau kita
mengizinkan adanya bagian opsional dari
suatu sintaks. Apa yang bisa kita lakukan
adalah dengan memberikan aturan. Sebagai
contoh, aturan-aturan fungsi dalam bahasa
pemrograman tertentu. Atau, aturan sintaks
SQL untuk mengambil data. Sebagai con-
toh, berikut ini adalah aturan sintaks SE-
LECT dalam PostgreSQL:
SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
* | expression [ AS output_ name ] [, ...] [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY expression [, ...] ] [ HAVING condition [, ...] ] [ { UNION | INTERSECT | EXCEPT } [ ALL ] select ] [ ORDER BY expression [ ASC | DESC | USING operator ] [, ...] ] [ LIMIT { count | ALL } ] [ OFFSET start ] [ FOR UPDATE [ OF table_name [, ...] ] ]
Setelah aturan kita defi nisikan, maka
kemudian kita dapat mengatur sejumlah
parser untuk menangani input dari user.
Bicara soal parser itu sendiri, banyak sekali
tool parser yang ada di dunia open source.
Parser-parser generator tersebut dapat di-
manfaatkan apabila Anda berniat untuk
membangun aturan bahasa sendiri. Umum-
nya, apabila Anda ingin membangun bahasa
pemrograman sendiri.
Di artikel ini, kita tidak akan membahas
parser-parser tersebut. Apa yang akan kita
bahas adalah pembuatan parser sederhana
dengan memanfaatkan regular expression.
Bahasa pemrograman yang akan dipergu-
nakan adalah bahasa PHP. Dan, tentu saja,
karena regular expression bekerja dengan
sangat lambat, maka kecepatan parsing akan
jauh kalah dibandingkan kalau parsing di-
lakukan oleh tool yang sebenarnya.
Beberapa contoh yang akan kita bahas
adalah pemeriksaan apakah suatu sintaks
benar atau salah. Tentu saja, sintaks tersebut
kita buat sesuai aturan yang kita inginkan.
Setelah itu, kita juga bisa memanfaatkan
regular expression untuk mengambil teks
tertentu yang memenuhi sejumlah aturan
(yang kita buat sendiri) untuk diproses le-
bih lanjut. Contoh yang paling nyata adalah
ketika kita ingin membangun sendiri doku-
mentator dari source code kita.
Regular expression yang akan kita ba-
has mencakup posix extended RE dan Perl
Compatible RE, sebagaimana yang didu-
kung oleh PHP. Versi PHP yang digunakan
adalah 4.x.
Posix Extended Regular expressionPosix extended RE adalah implementasi
PHP untuk regular expression POSIX yang
diatur dalam POSIX 1003.2. Umumnya,
program-program di Linux yang kompati-
bel dengan standar POSIX juga menerapkan
regular expression yang mengacu kepada
standar POSIX tersebut. Contoh yang pa-
ling baik adalah grep dan tr.
Di PHP, umumnya Posix RE lebih mudah
digunakan daripada PCRE. Sayangnya, Posix
RE PHP tidaklah binary-safe. Namun, untuk
pemrosesan teks yang kompleks sekalipun,
Posix RE sudah jauh lebih dari cukup.
Parsing Sederhana dengan Regular ExpressionBagi Anda yang terbiasa bekerja dengan pemrograman atau SQL, tentunya bekerja de-ngan sesuatu yang melibatkan penggunaan sintaks adalah hal yang wajar. Baik sintaks dalam pemrograman ataupun statement SQL. Di artikel kali ini, kita akan membahas cara melakukan parsing sederhana secara high level memanfaatkan regular expression. De-ngan demikian, kita bisa membuat sintaks sederhana, memeriksa apakah suatu sintaks valid atau tidak dan atau mengambil teks tertentu dalam suatu file untuk diformat lebih lanjut.
INFOLINUX 09/2005 55
TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
PHP
Umumnya, PHP yang terinstal pada
sistem Anda telah dilengkapi dengan du-
kungan untuk regular expression ini, se-
hingga instalasi tambahan tidak diperlukan.
Implementasi Posix RE di PHP dilakukan
melalui fungsi-fungsi berikut ini:
� ereg_replace (untuk mengganti teks ber-
dasarkan pattern RE).
� ereg (untuk mencari teks berdasarkan
pattern RE).
� eregi_replace (sama seperti ereg_replace,
namun bekerja secara case insensitive).
� eregi (sama seperti ereg, namun bekerja
secara case insensitive).
� split (memecah teks menjadi array ber-
dasarkan pattern RE).
� spliti (sama seperti split, namun bekerja
secara case insensitive).
� sql_regcase (pembuatan RE untuk pen-
carian case insensitive).
Dengan fungsi-fungsi tersebut (yang
sebenarnya sangat sedikit, hanya ada tiga
sampai empat fungsi kalau tidak memper-
hatikan variannya), Anda sudah bisa mem-
bangun pemrosesan teks yang luar biasa
menggunakan RE. Berikut ini adalah be-
berapa contoh sederhana.
ereg dan eregiAndai kata Anda memiliki sejumlah teks, di
if (ereg($pat, $input1)) echo “$input1 sesuai dengan aturan $pat”; else echo “$input1 TIDAK sesuai dengan aturan $pat”; echo “\n”;
if (ereg($pat, $input2)) echo “$input2 sesuai dengan aturan $pat”; else echo “$input2 TIDAK sesuai dengan aturan $pat”; echo “\n”;
if (ereg($pat, $input3)) echo “$input3 sesuai dengan aturan $pat”; else echo “$input3 TIDAK sesuai dengan aturan $pat”; echo “\n”;
?>
Penjelasan kode:� Kita memiliki tiga variabel, masing-ma-
sing adalah $Input1, $input2 dan $in-
put3. Ketiga variabel tersebut akan diuji
dengan pattern $pat.
� Fungsi ereg() akan mengembalikan nilai
true atau false sesuai dengan hasil peme-
riksaan RE berdasarkan $pat kepada $in-
put1, $input2, atau $input3.
Berikut ini adalah keluaran dari kode
tersebut:
$ php a.php 2005-06-19 sesuai dengan aturan ([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})2005-6-19 sesuai dengan aturan ([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})05-06-19 TIDAK sesuai dengan aturan ([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})
TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
LDAP
� Artikel ini hanya menekankan penggu-
naan LDAP bagi Samba sebagai servis
autentikasi user. Pembaca diharapkan
telah menguasai kemampuan adminis-
trasi dasar Samba.
� Server LDAP di-setting sesuai artikel ke-
dua.
� Samba domain yang digunakan ialah
dynre. Nama domain ini dapat diganti
disesuaikan dengan nama domain pada
sistem komputer pembaca.
� Mesin bernama samba.dynre.com
dikonfi gurasi sebagai Primary Domain
Controller (PDC). Servis Samba ini
dapat diletakkan pada dua mesin yang
terpisah seperti yang dijelaskan dalam
artikel kedua pada bagian “Konfi gurasi
Jaringan” ataupun di dalam satu mesin
dengan LDAP server.
Kebutuhan softwareSeluruh kebutuhan paket RPM Samba ini
tersedia di dalam CD Fedora Core 2.
� samba-common-3.0.3-5.i386.rpm (terse-
dia dalam CD 1), berisi fi le-fi le Samba
umum yang harus diinstal terlebih da-
hulu sebelum paket RPM Samba yang
lainnya.
� samba-client-3.0.3-5.i386.rpm (tersedia
dalam CD 1), berisi fi le-fi le Samba client
saja. Untuk mesin yang akan digunakan
sebagai mesin samba client saja, cukup
menginstal paket RPM ini, tidak perlu
menginstal paket RPM berikutnya yaitu
paket RPM Samba server.
� samba-3.0.3-5.i386.rpm (tersedia dalam
CD 1), berisi fi le-fi le Samba daemon
server. Di dalam paket RPM ini terdapat
utility smbldap yang akan digunakan un-
tuk administrasi user-user Samba server
yang terkoneksi dengan LDAP server.
Selain paket RPM Samba di atas, di
dalam distribusi Fedora Core 2 ini terdapat
utility yang akan mempermudah adminis-
trasi Samba:
� system-config-samba-1.2.9-2.noarch.
rpm (tersedia dalam CD 1), berisi utility
administrasi Samba berbasis grafi s.
� samba-swat-3.0.3-5.i386.rpm (tersedia
dalam CD 4), berisi utility administrasi
berbasis web yang menggunakan proto-
kol HTTP dengan port 901.
Integrasi User Account dengan LDAPBagian 3 dari 3 Artikel
Fungsi utama komputer server di kantor ukuran kecil dan menengah biasanya sebagai file dan printer server. Samba sangat penting keberadaannya sebagai pengganti Windows Server yang populer dengan kemampuannya sebagai file dan printer server.
Perkantoran menggunakan fi le server
sebagai pusat tempat untuk me nyim-
pan fi le yang gunanya untuk men-
share fi le, memberikan keamanan/secu-
rity kepada fi le-fi le tersebut karena letaknya
tersentralisasi, dan membuat proses back-up
data lebih effi sien. Sedangkan sebagai print-
er server, ini akan menghemat printer yang
dibeli karena tidak perlu semua komputer
di kantor dibelikan printer satu-satu.
Bagian ketiga seri tulisan ini akan
menjelaskan cara men-setting Samba versi 3
dengan menggunakan LDAP sebagai servis
informasi direktori serta cara-cara adminis-
trasinya. Berikut adalah kebutuhan sebelum
kita memulai setting LDAP untuk Samba:
Gambar 1. Ssamba SWAT dan system-config-samba.
INFOLINUX 09/2005 61
TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
access to attr=userPassword,sambaLMPassword,sambaNTPassword by dn=”uid=root,ou=people, dc=dynre,dc=com” write by self write by anonymous authaccess to * by dn=”uid=root,ou=people, dc=dynre,dc=com” write by self write by users read by anonymous read
cd /usr/share/doc/samba-3.0.3/LDAP/smbldap-toolscp smbldap*.p? /usr/sbinchmod 753 /usr/sbin/smbldap_conf.pmchmod 750 /usr/sbin/smbldap*.plchgrp 512 /usr/sbin/smbldap*.p?
� Compile utility pembuat password yang
compatible dengan WinNT password
mkntpwd:
# cd /usr/share/doc/samba-3.0.3/LDAP/smbldap-tools/mkntpwd# make# cp mkntpwd /usr/sbin
� Jalankan smbldap-populate.pl, untuk
inisialisasi LDAP database dengan user
dan group account yang diperlukan un-
tuk administrasi sesuai Windows NT:
# smbldap-populate.pl
Hasil output-nya akan terlihat seperti di
bawah. Ada beberapa pesan kesalahan teta-
pi itu tidak menjadi masalah karena struk-
tur data kelompok LDAP tersebut telah
dibuat pada pembahasan artikel kedua:
Using builtin directory structureadding new entry: dc=DYNRE,dc=COMfailed to add entry: Already exists at ./smbldap-populate.pl line 323, <GEN1> line 2.adding new entry: ou=People,dc=DYNRE,dc=COMfailed to add entry: Already exists at ./smbldap-populate.pl line 323, <GEN1> line 3.adding new entry: ou=Group,dc=DYNRE,dc=COMfailed to add entry: Already exists at ./smbldap-populate.
INFOLINUX 09/2005 63
TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
LDAP
pl line 323, <GEN1> line 4.adding new entry: ou=Computers,dc=DYNRE,dc=COMadding new entry: uid=Administrator,ou=People,dc=DYNRE,dc=COMadding new entry: uid=nobody,ou=People,dc=DYNRE,dc=COMfailed to add entry: Already exists at ./smbldap-populate.pl line 323, <GEN1> line 7.adding new entry: cn=Domain Admins,ou=Group,dc=DYNRE,dc=COMadding new entry: cn=Domain Users,ou=Group,dc=DYNRE,dc=COMadding new entry: cn=Domain Guests,ou=Group,dc=DYNRE,dc=COMadding new entry: cn=Administrators,ou=Group,dc=DYNRE,dc=COMadding new entry: cn=Users,ou=Group,dc=DYNRE,dc=COMfailed to add entry: Already exists at ./smbldap-populate.pl line 323, <GEN1> line 12.
adding new entry: cn=Guests,ou=Group,dc=DYNRE,dc=COMadding new entry: cn=Power Users,ou=Group,dc=DYNRE,dc=COMadding new entry: cn=Account Operators,ou=Group,dc=DYNRE,dc=COMadding new entry: cn=Server Operators,ou=Group,dc=DYNRE,dc=COMadding new entry: cn=Print Operators,ou=Group,dc=DYNRE,dc=COMadding new entry: cn=Backup Operators,ou=Group,dc=DYNRE,dc=COMadding new entry: cn=Replicator,ou=Group,dc=DYNRE,dc=COMadding new entry: cn=Domain Computers,ou=Group,dc=DYNRE,dc=COM
Administrasi userPerintah-perintah untuk administrasi user
dan group ini sintaksnya sangat mirip de-
ngan perintah standar untuk administrasi
user dalam Linux, seperti userdel, useradd,
dan usermod. Hanya di sini ditambah bebe-
rapa parameter yang khusus untuk samba.
� smbldap-usermod.pl: memodifi kasi user
account yang ada.
User account Linux dalam LDAP server
yang dibuat tanpa menggunakan utili ty
smbldap ini tidak akan mempunyai ob-
jectclass sambaSamAccount. Dalam ar-
tikel kedua telah terdapat user account
junusd, tetapi user account ini tidak dapat
digunakan untuk login ke Samba server
sebelum ditambahkan objectclass sam-
baSamAccount, lalu masukkan password:
# smbldap-usermod.pl -a junusd# smbldap-passwd.pl junusd
� smbldap-useradd.pl: menambah user dan
komputer account.
Pada Samba, jika di-setting konfi gurasi nya
menyerupai Windows NT, nama worksta-
tion terlebih dahulu harus ditam bahkan
ke server melalui smbldap-useradd.pl -w
ini. Jadi utility smbldap ini ber guna untuk
INFOLINUX 09/200564
TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
LDAP
administrasi user account dan komputer
account. Itu berlaku untuk setiap mesin
workstation yang terkoneksi ke server.
� smbldap-userdel.pl: menghapus user dan
komputer account.
Selain bertujuan utama menghapus user
account, komputer account dapat diha-
pus dengan menyebutkan nama kom-
puter account tersebut.
� smbldap-usershow.pl: menampilkan user
account tertentu.
Administrasi group� smbldap-groupmod.pl: memodifi kasi group
yang ada.
Group Linux dalam LDAP server yang
dibuat tanpa menggunakan utility
smbldap ini tidak akan mempunyai ob-
jectclass sambaGroupMapping. Dalam
artikel kedua, telah terdapat group users,
tetapi group ini tidak dapat digunakan
sebagai group Samba sebelum ditambah-
kan objectclass sambaGroupMapping:
# smbldap-groupmod.pl -a users
� smbldap-groupadd.pl: menambah group.
� smbldap-groupdel.pl: menghapus group.
� smbldap-usershow.pl: menampilkan group
tertentu.
Migrasi dari Windows NTMigrasi Windows NT server yang telah ber-
tahun-tahun ada dalam kantor dapat di-
lakukan menjadi Samba server, dengan tetap
mempertahankan user, group, dan kompu-
ter account yang ada di Windows NT. Setelah
proses migrasi selesai, tidak terjadi peruba-
han sama sekali di sisi mesin-mesin worksta-
tion client, atau transparant. Hal ini sangat
penting untuk meminimalkan komplain dari
user. Jika berhasil dengan baik, kemudian
pemindahan fi le-fi le data yang ada, printer
driver, dan ACL atribut sekuriti yang ada juga
berlangsung dengan lancar, akan membuat
user tanpa sadar telah menggunakan Samba
sebagai pengganti Windows NT server.
Di sini tidak diberikan secara detail cara-
nya, hanya diberikan garis besarnya untuk
menghindarkan kompleksitas artikel ini.
� Pada Windows NT server, login seba-
gai Administrator, lalu jalankan utility
pwdump yang bisa didownload dari ftp://
ftp.samba.org/pub/samba/pwdump/.
� Kemudian fi le teks hasil pwdump ini
di-copy ke mesin Samba, lalu jalan-
kan smbldap-migrate-accounts.pl dan
smbldap-migrate-groups.pl.
� Terakhir, dengan teliti dan hati-hati se-
suaikan uid dan gid dari tiap-tiap user
dan group account yang telah ada di
Linux dengan user dan group account
yang ada pada Windows NT.
Administrasi user dengan JXplorerJXplorer merupakan utility LDAP browser
berbasis Java. Sebelum menjalankan utili-
ty ini, terlebih dahulu download JRE (Java
Runtime Environment) dari www.javasoft.
Gambar 3. Modifikasi atribut alamat email dengan JXplorer.
TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
LIDS
Ketika kali pertama mendengar nama
LIDS (Linux Intrusion Detection
System) yang langsung terbayang
di benak saya adalah sebuah aplikasi yang
berfungsi sebagai sistem pendeteksi penyu-
sup pada network semacam SNORT. Na-
mun saya keliru besar, karena ternyata yang
dimaksud itu adalah NIDS (Network Intru-
sion Detection System). LIDS adalah sebuah
patch dan tool admin untuk mengoptimal-
kan fungsi keamanan pada kernel Linux.
LIDS merupakan sebuah implementasi dari
referensi monitor pada kernel. LIDS juga
merupakan sebuah Mandatory Access con-
trol pada kernel.
Mengapa menggunakan LIDS?Mungkin pertanyaan ini akan kerap kali
mun cul. Mengapa menggunakan LIDS, se-
mentara banyak security patch yang dibuat
oleh berbagai pihak? Jawabannya cukup
sederhana, “Sesuai dengan kebutuhan”,
atau lebih cocok dengan istilah “Use the
right tools for the right jobs”. Masing-masing
patch yang dikeluarkan tentunya memiliki
kelebihan ter sendiri, dan itu semua kembali
kepada anda, patch mana yang paling cocok
untuk keperluan Anda.
Namun yang perlu diperhatikan adalah
beberapa permasalahan yang ada pada
sistem operasi Linux secara umum, yaitu:
� File system tidak memiliki proteksi atau
pengamanan.
� Proses yang berjalan tidak memiliki pro-
teksi atau pengamanan.
� Administrasi terhadap system tidak ter-
lindungi.
� Super User (root) memiliki kekuasaan
penuh yang dapat melanggar hak.
� Model dari Access Control List (DAC)
pada Linux belum lah cukup.
Begitulah beberapa permasalahan umum
yang terdapat pada sistem operasi Linux.
Tapi isu yang paling besar dari permasalahan
di atas adalah account “Maha Dewa” root.
Per ma sa lahan ini pun mungkin terdapat
pula pada system *NIX lainnya. Jika sebuah
proses atau user memiliki privileges root,
maka tidak ada sedikit pun alasan yang dapat
mencegah pro ses atau user tersebut untuk
meng hancurkan sistem. Tidak heran jika ac-
count atau privileges root sangat diminati oleh
para intruder. Hal ini sangat membuat me-
reka yang bertugas sebagai sysadmin harus
menderita sakit kepala, pusing tujuh keliling.
Permasalahan inilah yang ingin ditangani
oleh LIDS dengan mengimplementasikan
Access Control Lists (ACLs) untuk mencegah
mereka yang ingin merusak sistem, meski
mereka memiliki privi leges root sekali pun.
Dengan ACLs, LIDS ini mampu melakukan
proteksi terhadap fi le dan proses.
Fitur-fitur pada LIDSFitur yang ditawarkan oleh LIDS cukup
banyak dan cukup untuk melindungi mesin
Linux anda dari tangan-tangan jahil para in-
truder. Fitur-fi tur tersebut adalah:
� Perlindungan atau proteksi terhadap fi le
dan direktori dari apa pun termasuk root
pun tidak dapat melakukan perubahan
dari fi le atau direktori yang diproteksi.
Bahkan sebuah fi le pun dapat disembu-
nyikan (hidden).
� Perlindungan atau proteksi terhadap
proses dari apa saja, termasuk root, tidak
dapat mematikan proses yang diproteksi.
Bahkan sebuah proses dapat disembu-
nyikan (hidden).
� Access Control Lists yang lebih baik.
� Dapat menggunakan dan menambahkan
kapabilitas untuk mengontrol seluruh
sistem.
� Peringatan terhadap keamanan langsung
dari kernel.
� Pendeteksi port scanner pada kernel.
� Mendukung framework LSM (Linux Se-
curity Model) pada kernel 2.5.x dan 2.6.x.
� Pembatasan (restriction) terhadap akses
proses jaringan.
Kekurangan LIDSJika sebuah sistem memiliki kelebihan tentu
ia juga akan memiliki kekurangan, demiki-
an juga dengan LIDS. Beberapa kekurangan
LIDS yang saya amati di antaranya:
� Setiap fi le dan proses yang berada pada
system linux harus memiliki ACLs, hal ini
tentu akan cukup merepotkan. Namun,
hal ini dapat dimaklumi karena keamanan
berbanding terbalik dengan kenyamanan.
� Kesalahan dalam mendefi nisikan ACLs
akan mengunci sistem, sehingga kita ti-
dak dapat berbuat apapun.
Mengamankan Server Linux dengan LIDSBagian 1 dari 2 Artikel
Di satu sisi, banyak hacker yang selalu mencari tahu kelemahan sistem untuk diperbaiki. Di sisi lain, banyak hacker yang berusaha mencari tahu dan mengembangkan berbagai cara untuk melindungi sistem dari serangan-serangan yang sangat tidak diinginkan. Beri-kut ini kita membahas salah satu karya hacker, LIDS.
INFOLINUX 09/2005 67
TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
LIDS
� Setiap fi le harus memiliki ACLs yang
jelas, tak terkecuali untuk fi le yang berisi
scripting. Untuk hal ini ACLs juga harus
diturunkan terhadap fi le lain yang akan
dipanggil oleh skrip tersebut.
� LIDS belum mampu untuk mendeteksi
keanehan-keanehan atau penyerangan
pada level aplikasi, contohnya seperti pe-
nyerangan terhadap web melalui proto-
kol http, sql injection.
Implementasi LIDSDi atas telah dibahas mengenai kelebihan,
kekurangan serta fi tur-fi tur yang ditawarkan
oleh LIDS, namun bagaimana implemen-
tasinya pada dunia nyata? Bagaimana LIDS
dapat membantu Anda mengamankan me-
sin Linux anda? Berikut implementasi LIDS
dalam dunia nyata untuk mengamankan me-
sin Linux Anda.
Berikut ini beberapa metode penyera-
ngan secara remote (jarak jauh) yang umum
dilakukan oleh para intruder, dan bagaima-
na LIDS mencegahnya:
1. Intruder melakukan port scanning Gambar 1 menunjukkan proses port
scanning dan dua tindakan LIDS, yaitu
memberi tahu ke system administrator
dan menutup semua port.
2. Remote exploit untuk mendapatkan privilege root
Gambar 2 menunjukkan proses intruder
berusaha mengakses root dan cara LIDS
mencegahnya.
3. Remote exploit untuk melakukan port binding/connect back
Gambar 3 menjelaskan proses intruder
mengakses root, menjelajahi sistem dan
membuat back door, serta tindakan LIDS
mengatasi remote exploit ini.
4. Expolit lokal terhadap sebuah daemon yang berjalan
Gambar 4 menunjukkan salah satu dari
metode penyerangan secara lokal yang
umum dilakukan oleh para intruder, dan
bagaimana LIDS mencegahnya.
Cerita di atas hanya sebagian kecil dari
berbagai teknik yang dilakukan oleh para
intruder untuk mendapatkan akses root
terhadap sistem, serta bagaimana LIDS
mempersulit intruder dalam mendapat-
kan akses ter hadap root atau bahkan akses
penuh ter hadap sistem. Masih banyak teknik
yang digunakan oleh para intruder untuk
me nguasai sistem, di sini lah LIDS ber-
tugas untuk mempersulit mereka agar
tidak menguasai bahkan merusak sistem.
Namun, sekali pun Anda menggunakan
patch pengamanan berlapis tujuh seke-
las LIDS, tapi jika Anda malas mengikuti
perkembangan dan memperbarui sistem
Anda, semua ini akan sia-sia.
Prasyarat instalasi LIDSDalam tulisan ini penulis berasumsi bah-
wa pembaca telah memiliki pengetahuan
dasar tentang kernel serta cara melakukan
kompilasi kernel. Distribusi Linux yang
digunakan pada tulisan ini adalah Red Hat
Linux 9.0, terinstalasi lengkap dengan paket
development.
Kebutuhan awal:
1. Kernel versi 2.4.29 dapat diambil dari
situs resmi kernel http://www.kernel.
org atau mirror terdekat http://kambing.
vlsm.org/kernel-linux.
2. LIDS versi 1.2.2 untuk kernel 2.4.29 ber-
nama linux-2.4.29-lids1.2.2-ow1.diff.
bz2, dapat diambil dari http://www.lids.
org atau http://irvan.or.id/download.php.
3. LIDS Tool versi 0.5.6 dapat diambil dari
http://lids.planetmirror.com/download/
lidstools/lidstools-0.5.6.tar.gz , atau dari
mirror terdekat http://irvan.or.id/down-
load.php.
4. Paket development pada linux sperti gcc,
gnumake, ncurses, dan lain-lain.
Tahapan instalasi dan konfigurasi LIDSKini kita akan masuk kepada tahapan insta-
lasi dan konfi gurasi LIDS untuk melindungi
mesin dari tangan intruder, dengan paket-
paket yang telah dikumpulkan. Tahapan ini
dibagi lagi menjadi beberapa langkah, yaitu:
� Patching dan kompilasi kernel Linux
dengan LIDS.
� Instalasi lidstool.
� Konfi gurasi ACLs pada LIDS.
Mari kita mulai tahapan-tahapan tersebut.
1. Patching dan kompilasi kernel Linux dengan LIDS
Pertama-tama agar semua paket tersusun
rapih, buat direktori yang bernama lids di
Gambar 3. Remote exploit dan port binding.
Gambar 4. Penyerangan lokal.
Gambar 1. Proses port scanning.
Gambar 2. Akses privilege root dan cara mengatasinya.
INFOLINUX 09/200568
TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
# cd linux# patch -p1 < ../linux-2.4.29-lids1.2.2-ow1.diff
Konfi gurasikan kernel.
# make mrproper# make menuconfig
Dari perintah make menuconfi g akan
menghasilkan tampilan konfi gurasi seperti
gambar 5.
Pada menu pertama terdapat pilihan
Code maturity level options. Masuk pada
menu tersebut dan aktifkan pilihan Prompt
for incomplete driver. Hal ini sangat dianjur-
kan pada HOWTO dari situs yang bersang-
kutan sebelum kita mengaktifkan LIDS.
Ketika kernel telah di-patch, maka akan
tampil satu menu yaitu menu Linux Intru-
sion Detection System.
Untuk dapat menggunakan LIDS seperti
yang ditunjukan pada HOWTO dari situs
yang terkait, Anda harus mengaktifkan be-
berapa pilihan pada menu Linux Intrusion
Detection System. Untuk kebutuhan awal
hanya dengan konfi gurasi dasar, sudah sa-
ngat cukup untuk melindungi system anda
dari tangan-tangan intruder.
Masuk ke menu Linux Intrusion Detec-
tion System dan aktifkan pilihan yang ada
seperti berikut:
[*] Linux Intrusion Detection System support (EXPERIMENTAL) --- LIDS features(512) Maximum protected objects to manage (512) Maximum ACL subjects to manage(512) Maximum ACL objects to manage[ ] Hang up console when raising a security alert [*] Security alert when execing unprotected programs before sealing LIDS [ ] Do not execute unprotected programs before sealing LIDS [*] Attempt not to flood logs (60) Authorised time between two identic logs (seconds) [*] Allow switching LIDS protections/features [*] Allow switching LIDS/LIDS_GLOBAL [*] Implicitly protect LIDS admin passwd [ ] Restrict mode switching to specified terminals (3) Number of attempts to submit password (3) Time to wait after a fail (seconds) [ ] Allow any program to switch LIDS protections [*] Allow reloading config.
Gambar 6. Menuconfi g LIDS.
Gambar 5. Konfigurasi kernel dengan make menuconfig.
INFOLINUX 09/2005 69
TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
LIDS
file [*] Port Scanner Detector in kernel [*] Send security alerts through network [*] Hide klids kernel thread(3) Number of connection tries before giving up[*] Attempt not to flood logs(60) Authorised time between two identic logs (seconds) [*] Allow switching LIDS protections/features [*] Allow switching LIDS/LIDS_GLOBAL [*] Implicitly protect LIDS admin passwd [ ] Restrict mode switching to specified terminals (3) Number of attempts to submit password (3) Time to wait after a fail (seconds) [ ] Allow any program to switch LIDS protections [*] Allow reloading config. file [*] Port Scanner Detector in kernel [*] Send security alerts through network [*] Hide klids kernel thread(3) Number of connection tries before giving up (30) Sleep time after a failed connection (16) Message queue size [*] Enable security network [*] Enable NETFILTER MARK[*] Enable Trusted Path Execution (TPE) mode feature [ ] Enable Trusted Domain Enforcement (TDE) feature [ ] Enable CAP_LIDS_SANDBOX_EFF_SET [ ] LIDS Debug
Step By Step Konfigurasi Squid Proxy Server dengan Berbagai Studi KasusBagian 2 dari 2 Artikel
Proxy server adalah server yang berguna sebagai perantara antara client dengan server gateway sebelum berhubungan ke Internet. Dengan adanya proxy server ini, maka url / situs yang sering di-browsing akan semakin terasa semakin cepat terakses oleh user, karena telah disimpan di dalam cache proxy. Selain itu, proxy server juga memiliki fungsi lainnya, di antaranya autentifikasi user, memblok situs, memblok banner, dan lain-lain.
INFOLINUX 09/2005 71
TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
#----------------------------# redirect program (bagian ini berisikan program tambahan yang akan digunakan # untuk meningkatkan kinerja squid).#Disini squid memanggil program wrapzap yang akan menjalankan dua buah #program redirector yang dipanggil oleh wrapzap yaitu redirector squid_re dan #redirector squidguard
# ps ax | grep squid_re..........................................................9153 ? Ss 0:00 /usr/bin/perl /usr/local/adzap/scripts/zapchain /usr/local/adzap/scripts/squid_redirect /usr/bin/squidguard9156 ? Ss 0:00 /usr/bin/perl /usr/local/adzap/scripts/zapchain /usr/local/adzap/scripts/squid_redirect /usr/bin/squidguard/usr/bin/perl -w /usr/local/adzap/scripts/squid_redirect9164 ? S 0:00 /usr/bin/squidguard9168 ? S 0:01 /usr/bin/perl -w /usr/local/adzap/scripts/squid_redirect..........................................................
9. Test ke browser, dengan mengetikkan si-
tus yang terdapat banyak banner, misal:
www.detik.com, jika Anda melihat banner
yang terdapat pada situs detik.com telah
berubah menjadi tulisan This AdZaped,
berarti Anda telah berhasil mengonfi -
gurasikan squid untuk memblok banner
iklan.
10. Test juga dengan mengetikkan salah
satu situs yang termasuk ke dalam daf-
tar blacklist squidguard (ex:// http://20-
asian-pics.com). Jika situs tersebut te-
redirect ke situs http://www.eramuslim.
com, artinya Anda telah dapat men-
jalankan multiple redirector squid secara
bersamaan.
Bahkan jika ingin menambahkan pro-
gram redirector squid yang lain, Anda
hanya perlu menambahkan path pro-
gramnya di fi le wrapzap.
11. Untuk melihat log fi le, url yang berhasil
di blok banner-nya, Anda dapat menge-
tikkan perintah berikut :
# tail -f /var/log/httpd/access_log
5. Membatasi ukuran file (kuota) yang bisa di-download oleh user pada interval waktu tertentu.
Setelah melihat beberapa studi kasus di atas,
mungkin ada peningkatan kecepatan pada
waktu akses suatu sites yang dibuka oleh
user. Apalagi kalau situs tersebut sudah ter-
daftar kedalam cache squid.
Selain itu, kecepatan akses juga bergan-
tung pada jalur bandwidth yang anda sewa
Banner situs yang belum diblok sebelum menggunakan adzap. Banner situs yang telah diblok setelah menggunakan adzap.
INFOLINUX 09/200572
TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
Squid
dari ISP. Lalu ada juga faktor yang pa ling
penting yang paling berpengaruh pada
waktu akses suatu situs, yaitu kebiasaan
beberapa user yang suka men-download di
Internet. Mengambil suatu fi le (download)
dari Internet memang menyenangkan bagi
beberapa user, akan tetapi kalau tidak disia-
sati dengan baik hal ini justru menimbulkan
masalah bagi user lainnya. Saat men-down-
load suatu fi le yang besar (ex:/ fi le iso cd
linux), biasanya bandwidth yang ada akan
berkurang secara drastis, sehingga user biasa
yang ingin sekadar browsing merasa begitu
lambat waktu akses Internetnya. Dan kalau
sudah begini, hal ini tentunya akan menu-
runkan produktivitas kerja.
Agar tidak terjadi hal yang demikian,
maka seorang administrator harus dapat me-
nentukan kebijakan yang berlaku pada saat
user men-download suatu fi le dari Internet.
Sebagai contoh, penulis akan menjelas-
kan dengan studi kasus agar dapat lebih
mudah dipahami.
Persyaratannya :
1. PT XYZ ingin agar semua komputer yang
terhubung ke Internet dibatasi jumlah
download-nya, yaitu ukuran fi le yang dapat
ter-download maksimal hanya 2 MB.
2. Ketentuan No. 1, hanya berlaku selama
jam kerja, yaitu dari jam 08.00–17.30,
setelah lewat dari jam tersebut, user be-
bas men-download fi le dengan ukuran
fi le tak terbatas.
Untuk menerapkan hal di atas, yang per-
lu Anda lakukan hanyalah menambahkan
beberapa setting-an di fi le squid.conf. Baca
langkah-langkah di bawah ini:
1. Buka fi le squid.conf
# vi /etc/squid.conf
2. Lalu edit pada bagian berikut:
.............................
.............................# Note : Untuk Settingan Lengkapnya, dapat anda temukandi CD InfoLINUX kali ini.
# acl definisi (bagian ini berisikan batasan-batasan yang akan dilakukan oleh # server squid). acl lan src 192.168.0.0/255.255.255.0 acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl SSL_ports port 443 563 acl Safe_ports port 80 21 443 563 70 210 1025-65535 acl Safe_ports port 280 acl Safe_ports port 488 acl Safe_ports port 591 acl Safe_ports port 777 acl CONNECT method CONNECT acl tdkbebasdownload time 08:00-17:30 # rule (bagian ini berisikan keterangan untuk membiarkan
atau menolak bagian acl # yang telah dibuat). http_access allow lan http_access deny manager http_access allow localhost http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access deny all acl magic_words2 url_regex -i ftp .exe .mp3 .vqf .tar.gz .gz .tar.bz2 .bz2 .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .raw .wav .iso # Cancel download if file is bigger than 2MB = 2000 X 1024 byte = 2048000 byte reply_body_max_size 2048000 allow magic_words2 tdkbebasdownload # icp access icp_access allow lan
.............................
.............................
3. Restart service squid Anda, untuk meli-
hat perubahan:
# service squid restart
4. Pada saat jam kerja, coba Anda test
download suatu fi le dari Internet yang
besar fi lenya lebih dari 2 MB. Jika hasil-
Metode authentifikasi Squid dengan menggunakan mysql-auth.Peringatan file yang tidak bisa didownload karena melebihi kuota.
INFOLINUX 09/2005 73
TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
$ cd mysql_auth-0.8/ $ make $ su –c “make install”
INFOLINUX 09/200574
TUTORIAL Berita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
Squid
9. Tambahkan database untuk autentifi kasi
user
# cd scripts/ # mysql -u root -p < create_scripts
10. Sekarang coba Anda tes dengan menam-
bahkan user ke tabel data yang ada di
database mysql_auth dengan menggu-
nakan program mypasswd.
# mypasswd supri sup234 Password record ADDED succesfully.
Anda dapat mengeceknya ke dalam tabel
data yang ada di database mysql_auth,
apakah record yang baru dimasukkan
oleh program nypasswd, sudah ada.
# mysql -u root -p mysql_authmysql> select *from data;+-------+------------------+| user | password |+-------+------------------+| supri | 79d544277322393c |+-------+------------------+1 rows in set (0.21 sec)
Dapat Anda lihat hasilnya di atas, kalau
password yang kita masukkan untuk u ser
supri sudah langsung terenkripsi. Hal ini
karena setting-an yang terdapat di fi le
mysql_auth.conf, di mana nilai variabel
encrypt_password_form di set menjadi
YES.
11. Tes validasi user dan password yang telah
anda buat dengan menggunakan pro-
gram mysql_auth
ERR
# mysql_auth supri cobasupri sup234OK
12. Setelah hasil validasi sudah benar, lang-
kah berikutnya adalah menghubungkan
program mysql_auth dengan squid. Un-
tuk itu Anda dapat mengedit fi le squid.
conf.
# vi /etc/squid.conf..........................................................# Tambahan untuk authentifikasiauth_param basic program
/usr/bin/mysql_authauth_param basic realm Squid proxy-caching web serverauth_param basic children 5auth_param basic credentialsttl 2 hours..........................................................# acl definisi (bagian ini berisikan batasan-batasan yang akan dilakukan oleh server # squid).# Dan bagian ini adalah inti dari penerapan kebijakan yang ada di proxy server ..........................................................acl butuhpasswd proxy_auth REQUIREDacl myNet src 192.168.0.0/255.255.255.0acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_objectacl localhost src 127.0.0.1/255.255.255.255..........................................................
# rule (bagian ini berisikan keterangan untuk membiarkan atau menolak bagian acl # yang telah dibuat)...........................................................# Baris ini juga http_access allow butuhpasswdhttp_access allow myNethttp_access allow managerhttp_access allow localhosthttp_access deny !Safe_portshttp_access deny CONNECT !SSL_ports
# Baris ini juga authenticate_ip_ttl 2 hourshttp_access deny all
.............................
.............................
13. Test di browser, dengan mengetikkan ala-
mat suatu situs, kemudian tekan Enter.
Jika muncul layar autentifi kasi setelah
anda menekan tombol Enter, coba Anda
masukkan username dan password yang
telah dibuat, sebagai contoh : username
: supri, password: sup234.
Jika masuk dan tidak mengalami ma-
salah, berarti metode autentifi kasinya
sudah berjalan dengan baik.
7. Transparant proxySetelah menjelaskan keenam cara di atas,
akhirnya sampai juga pada cara terakhir yang
akan penulis jelaskan. Pada semua kasus se-
belumnya, Anda harus men-setting secara
manual setting-an proxy di web browser cli-
ent agar dapat ber-Internet. Mungkin kalau
hanya sepuluh client, hal itu tidak menjadi
masalah. Tetapi bagaimana jika komputer
yang harus disetting berjumlah ratusan,
tentu hal ini akan merepotkan Anda sebagai
administrator. Belum lagi jika suatu saat,
terdapat lagi perubahan IP dan port proxy
server yang digunakan.
Untuk menyiasati hal tersebut, diperlu-
kan suatu cara agar Anda tidak perlu me-
masukkan secara manual setting-an proxy
server yang berlaku. Caranya adalah Anda
dapat menggunakan transparant proxy.
Prinsip kerja transparant proxy adalah se-
buah fi rewall atau redirector lainnya akan
menangkap koneksi TCP yang ditujukan
ke port tertentu pada remote host, dan
kemudian akan mengarahkan koneksi
TCP tersebut ke proxy server lokal. Proxy
server menggunakan header HTTP untuk
menentukan ke mana proxy akan melaku-
kan koneksi dan request dari mana yang
akan di-proxy. Untuk mengaplikasikan
transparant proxy, Anda dapat memerlu-
kan aplikasi Iptables. Dengan Iptables, an-
da cukup membuat rule untuk menangkap
trafi k yang ditujukan untuk port 80, dan
mengarahkan trafi k ini ke port dari proxy
server (biasanya 3128 atau 8080).
Untuk lebih jelasnya, Anda dapat mengi-
kuti petunjuk yang diberikan ada di bawah
ini:
1. Dimisalkan kali ini Anda sudah dapat
menjalankan proxy server secara manual
dengan baik, sekarang tinggal bagaima-
na caranya agar dapat berjalan secara
transparant proxy.
2. Pastikan paket dan service iptables sudah
terinstal dengan baik di sistem Anda.
3. Squid terkonfi gurasi dengan menggu-
nakan port 3128.
INFOLINUX 09/2005 75
TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
4. Alamat network yang digunakan adalah
192.168.0.0/24.
Cara mengatur konfi gurasi transparant
proxy:
1. Pastikan kalau sistem telah mendukung
IP Forwarding. Caranya ubah parameter
yang ada di /etc/sysctl.conf pada bagian
ip_forward.
net.ipv4.ip_forward = 0
menjadi:
net.ipv4.ip_forward = 1
Setelah itu, restart service network Anda:
# service network restart
2. Berikutnya edit fi le squid.conf Anda, ke-
mudian tambahkan baris di bawah ini
pada bagian paling bawah dari fi le itu.
# transparent proxyhttpd_accel_host virtualhttpd_accel_port 80httpd_accel_with_proxy onhttpd_accel_uses_host_header on
Tips Instalasi Paket Mandriva Linux Melalui JaringanMenginstalasi paket di Linux memang selalu dihadapkan dengan masalah dependensi. Tapi, hal tersebut bukanlah masalah lagi.
Gambar 1. Mempersiapkan direktori repositori. Gambar 2. Menambahkan baris Alias pada commonhttpd.conf.
INFOLINUX 09/2005 77
TUTORIALBerita | Ulasan | Adu Software | Utama | Bisnis | Apa Sih Sebenarnya... | Tutorial
www.infolinux.web.id
Mandriva Linux
# chmod 755 /home/repositori/pakets# cd /home/repositori/pakets# genhdlistparsing .
Apabila tidak terdapat keluaran pesan
error, berarti tidak terdapat masalah pada
paket-paket RPM didalam direktori ini.
Jika Anda ingin menambahkan direkto-
ri-direktori lain, misalnya direktori /home/
repositori/updates untuk menaruh paket-
paket RPM update Mandriva Linux resmi
yang diperoleh dari Internet, atau direktori
/home/repositori/penting untuk menaruh
paket-paket RPM yang harus terinstalasi
pada setiap komputer client jaringan.
Tapi, jangan lupa untuk mengatur per-
mission direktorinya agar dapat diakses oleh
siapa saja, jalankan perintah ‘genhdlist’.
Sekarang direktori untuk repositori pa-
ket-paket RPM Mandriva Linux sudah siap.
Kemudian, kita akan melakukan penga-
turan pada Apache web server agar dapat
diakses oleh komputer-komputer client.
Sebagai root, editlah fi le commonhttpd.
conf yang terdapat di direktori /etc/httpd/
conf dengan menggunakan tool editor (di
sini kami menggunakan vim).
# vim /etc/httpd/conf/commonhttpd.conf
Carilah di dalam fi le commonhttpd.conf
tersebut bagian Aliases, seperti pada gambar
2, kemudian tambahkan baris:
Alias /repositori /home/repositori
Sehingga menjadi seperti yang terlihat
pada gambar 2. Kemudian pada bagian ak-
hir dari fi le commonhttpd.conf tambahkan:
...<Directory /home/repositori> Options Indexes MultiViews AllowOverride None <IfModule mod_access.c> Order allow,deny Allow from all </IfModule></Directory>...
Sehingga menjadi seperti yang terlihat
pada gambar 3.
Sekarang, restart service Apache agar
perubahan-perubahan yang baru saja kita
lakukan terupdate pada service Apache:
# /etc/init.d/httpd restart
Periksalah apakah perubahan yang kita
lakukan barusan sudah benar dengan brow-
ser Firefox, dan coba kunjungi “http://local-
host/repositori/” atau “http://192.168.0.33/
repositori/”, maka seharusnya akan me-
nampilkan seperti pada gambar 4. Nah, se-
karang server repositori siap digunakan.
Lalu, untuk pengaturan pada komputer-
komputer client, jalankan perintah:
# urpmi.addmedia <nama repositori> http://<nomor IP server repositori/direktori