Hi,

Kalo mungkin malas melakukan instalasi/kompilasi snort dkk di mesin Unix, ada solusi singkat dan cukup meriah.

Cukup install OpenIDS di mesin Anda, Aplikasi ini berjalan di atas OpenBSD, jadi instalasi yang dilakukan sama persis ketika kita menginstall OpenBSD.

Paket yang akan terinstall ketika Anda menginstall OpenIDS antara lain :

  • OpenBSD sbg OS platform nya
  • Snort
  • MySQL
  • BASE
  • SnortALog
  • Oinkcode
  • dll

Ok, bagi yg tertarik, silakan baca2 dulu di http://www.prowling.nu/.

Memang sampai saat ini belom ada mirror atau repo di Indonesia, tapi setahu saya di situs nya itu ada HowTo yang sudah ter translate ke Bahasa Indonesia.

OK, Salam ngoprek!

dEekZ_

Advertisements

Apache+PHP Di TSL/Trustix

November 16, 2007

Buat yg udah pada master, minta sedikit pencerahannya..
Iseng2 install Trustix, pingin nyobain distro yang konon paling ‘secure’ di keluarga Linu* ini.
Instalasi lancar, gak lupa di add juga Apache+PHP waktu instalasi.
Masalah mulai muncul waktu pingin jalanin Apache+PHP.. Ada beberapa perbedaan dengan Linux pada umumnya Bos..

~ Document root default ada di /home/httpd/html/, jadi jangan coba2 mencari nya di /var, karena memang tidak ada disana. hehehe
~ Secara default Apache di TSL tidak mengijinkan penulisan sintax PHP dengan <? saja, tapi harus komplit.. <?php.

Jadi seperti ini:

# Pertama, pastikan modul php telah ter-load di httpd konfig nya. Cari di /etc/httpd/conf.d/httpd-php.conf. Contohnya sbb:

——————————————————–
### The follwoing is needed to enable PHP5 support
LoadModule php5_module /usr/lib/apache/libphp5.so
AddType application/x-httpd-php .php .php4 .php5 .inc
AddType application/x-httpd-php-source .phps

——————————————————–

# kedua, buat skrip sederhana di doc root nya, bisa dengan phpinfo() saja. (jangan lupa dengan diawali dengan <?php)
# jalankan Apache (/etc/init.d/httpd start) lalu periksa di browser Anda, Belum berhasil?? silahkan periksa log apache nya dan paste-kan hasilnya di comment 😀

Error yang mungkin nongol;
~ Waktu menjalankan Apache pertama kali, sangat dimungkinkan muncul peringatan : “Could not determine the server’s fully qualified domain name, using <ip anda> ServerName”
—> Hal tersebut disebabkan Apache tidak menemukan ServerName di konfig httpd nya. Jika tidak memiliki FQDN yang terdaftar, gunakan IP saja. Misal:

——————————————————-
ServerName 192.168.11.111:80  —-> sisipkan di file /etc/httpd/conf/httpd.conf
——————————————————-

~ File .php tidak bisa terbaca browser, padahal yakin konfig telah benar.
—> seperti yg disebutkan diatas, TSL secara default tidak mengijinkan penulisan sintak dengan <? saja, melainkan harus lengkap <?php. Jika tidak terbiasa dan ingin tetap menggunakan <? saja, silakan edit file /etc/httpd/php.ini. Ubah baris berikut:

——————————————————-
short_open_tag = Off
——————————————————-

rubah menjadi

——————————————————-
short_open_tag = On
——————————————————-

~ Muncul Error di browser, macam “Forbidden, You don’t have permission to access / on this server”
—> jangan lupa untuk merubah permission file di document root server kita,

——————————————————-
# chmod -R 755 /home/httpd/html/*
# _
——————————————————-

Sementara sekian, silakan dicaci maki..
😀

Setelah memiliki mesin Unix yang mendukung ipv6, sekarang bagaimana menjadikannya sebuah gateway?

 

BSD hadir dengan sebuah daemon yang bernama rtadv (router advertisement). Daemon yang akan megirimkan paket data yang berisi informasi prefix ipv6 kepada suatu interface. Rtadv akan melihat routing table dan memeriksa setiap perangkat yang terhubung langsung ke interface yang telah ditentukan. Jika perangkat tersebut tidak memiliki ipv6 static, maka daemon ini akan mengirimkan informasi prefix nya dan akan menunggu response dari klien. Jika klien di set dengan opsi ‘autoconfiguration’ maka dia akan menggunakan satu alamat yang valid dari prefix yang ditawarkan router.

 

Pada artikel sebelumnya telah kita tambahkan opsi untuk mengaktifkan daemon rtadv ini pada file /etc/rc.conf.

 

————————————/etc/rc.conf—————————————-

……

rtadvd_enable=”YES”

rtadvd_interfaces=”vr0″

……

————————————-END————————————————

 

Hal ini berarti rtadvd akan meng-advertise prefixnya ke semua perangkat yang terhubung langsung dengan interface vr0, entah itu mesin Windows ataupun Unix.

 

Ok, sekarang yang harus dilakukan adalah sedikit modifikasi di mesin klien.

 

– Windows:

 

1. Masuk ke Command Promt dan ketikkan “ipv6 install”

2 Ketikkan “ipv6 renew”

3. Periksa dengan ipconfig, apakah sudah memperoleh address ipv6 dari router.

4. Lakukan tes koneksi dengan ping6, tracert6

 

Screen Shoot Windows

 

– Linux

 

Masuk ke /etc/sysconfig/network dan tambahkan baris berikut:

 

————————————/etc/sysconfig/network——————————

……

NETWORKING_IPV6=yes

IPV6AUTOCONF=yes

……

————————————-END————————————————

 

Di /etc/sysconfig/network-scripts/ifcfg-eth0 tambahkan:

 

————————/etc/sysconfig/network-scripts/ifcfg-eth0———————–

……

IPV6INIT=yes

……

————————————-END————————————————

 

Sesudah itu restart service network Anda dan periksa dengan ifconfig eth0, apakah sudah mendapatkan address dari router..

 

Jika masih terjadi kesalahan, periksa kembali pekerjaan Anda dari awal.

Semoga membantu.

 

 

Langsung saja,
Goal projectnya adalah membuat sebuah mesin freeBSD/OpenBSD implemented ipv6.
Asumsi dasar:
– alocated ipv6 2402:aabb:1234::/64
– ptp dengan router 2402:aabb:ab00::2/126
– gateway/router 2402:aabb:ab00::1/126
– nameserver 2402:aabb::131

Kita akan membahas mengenai alokasi ipv6 yang benar2 alocated dari provider maupun alokasi APNIC, untuk setting dengan tunnel broker InsyaAllah saya sampaikan di waktu lain.

– FreeBSD

Pertama periksa config interface nya,
————————————BEGIN———————————————–
# ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33224
groups: lo
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
inet 127.0.0.1 netmask 0xff000000
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:09:3d:00:62:51
groups: egress
media: Ethernet autoselect (1000baseT full-duplex)
status: active
inet6 fe80::209:3dff:fe00:6251%rl0 prefixlen 64 scopeid 0x1
inet 202.190.24.2 netmask 0xfffffffc broadcast 202.190.24.3
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:09:3d:00:62:52
media: Ethernet autoselect (1000baseT full-duplex)
status: active
inet6 fe80::209:3dff:fe00:6252%vr0 prefixlen 64 scopeid 0x2
inet 10.10.10.1 netmask 0xffffff00 broadcast 10.10.10.255
————————————-END————————————————

OK, urutan commandnya adalah sbb:
1. Edit file /etc/rc.conf
tambahkan opsi2 berikut:

————————————/etc/rc.conf—————————————-
ipv6_enable=”YES”
ipv6_nerwork_interfaces=”auto”
ipv6_defaultrouter=”2402:aabb:ab00::1″
ipv6_router_enable=”YES”
ipv6_router=”/usr/sbin/route6d”
ipv6_gateway_enable=”YES”
rtadvd_enable=”YES”
rtadvd_interfaces=”rl0″
ipv6_ifconfig_rl0=”2402:aabb:ab00::2 prefixlen 126″
ipv6_ifconfig_vr0=”2402:aabb:1234::1 prefixlen 64″
————————————-END————————————————

Edit file /etc/resolv.conf

————————————/etc/resolv.conf————————————
nameserver 202.190.24.131
nameserver 2402:aabb::131
————————————-END————————————————

Simpan setting network Anda dan lihat perbedaannya.

————————————command———————————————
# sh /etc/netstart
# ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33224
groups: lo
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
inet 127.0.0.1 netmask 0xff000000
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:09:3d:00:62:51
groups: egress
media: Ethernet autoselect (1000baseT full-duplex)
status: active
inet6 fe80::209:3dff:fe00:6251%rl0 prefixlen 64 scopeid 0x1
inet6 2402:aabb:ab00::2 prefixlen 126
inet 202.190.24.2 netmask 0xfffffffc broadcast 202.190.24.3
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:09:3d:00:62:52
media: Ethernet autoselect (1000baseT full-duplex)
status: active
inet6 fe80::209:3dff:fe00:6252%vr0 prefixlen 64 scopeid 0x2
inet6 2402:aabb:1234::1 prefixlen 64
inet 10.10.10.1 netmask 0xffffff00 broadcast 10.10.10.255
# ping6 http://www.kame.net
PING6(56=40+8+8 bytes) 2402:aabb:ab00::2 –> 2001:200:0:8002:203:47ff:fea5:3085
16 bytes from 2001:200:0:8002:203:47ff:fea5:3085, icmp_seq=0 hlim=48 time=463.088 ms
16 bytes from 2001:200:0:8002:203:47ff:fea5:3085, icmp_seq=1 hlim=48 time=461.918 ms
16 bytes from 2001:200:0:8002:203:47ff:fea5:3085, icmp_seq=2 hlim=48 time=690.285 ms
^C
http://www.kame.net ping6 statistics —
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 461.918/538.430/690.285/107.379 ms
# _
————————————-END————————————————

– OpenBSD

Dengan asumsi alokasi ipv6 sama dengan contoh sebelumnya, sekarang kita beralih pada OpenBSD.
Ada 3 file konfigurasi utama yang harus diperhatikan di OpenBSD, yaitu:
1. /etc/hostname.<interface> # untuk menambahkan ipv6 address pada interface
2. /etc/mygate # untuk menambahkan default route/gateway
3. /etc/resolv.conf # untuk menambahkan nameserver

Langsung ke file pertama, karena kita memiliki 2 interface, maka ada 2 file yang harus diset, yaitu /etc/hostname.rl0 dan /etc/hostname.vr0.

————————————/etc/hostname.rl0———————————–
inet 202.190.24.2 255.255.255.252 NONE
inet6 alias 2402:aabb:ab00::2 126
————————————-END————————————————

————————————/etc/hostname.vr0———————————–
inet 10.10.10.1 255.255.255.0 NONE
inet6 alias 2402:aabb:1234::1 64
————————————-END————————————————

File kedua adalah /etc/mygate yaitu untuk menambahkan sebuah default router untuk mesin kita.

————————————/etc/mygate—————————————–
202.190.24.1
2402:aabb:ab00::1
————————————-END————————————————

OK, langsung menambahkan nameserver..

————————————/etc/resolv.conf————————————
nameserver 202.190.24.131
nameserver 2402:aabb::131
————————————-END————————————————

Prosedur pengecekan sama dengan FreeBSD..

————————————command———————————————
# sh /etc/netstart
# ifconfig
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 33224
groups: lo
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6
inet 127.0.0.1 netmask 0xff000000
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:09:3d:00:62:51
groups: egress
media: Ethernet autoselect (1000baseT full-duplex)
status: active
inet6 fe80::209:3dff:fe00:6251%rl0 prefixlen 64 scopeid 0x1
inet6 2402:aabb:ab00::2 prefixlen 126
inet 202.190.24.2 netmask 0xfffffffc broadcast 202.190.24.3
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 00:09:3d:00:62:52
media: Ethernet autoselect (1000baseT full-duplex)
status: active
inet6 fe80::209:3dff:fe00:6252%vr0 prefixlen 64 scopeid 0x2
inet6 2402:aabb:1234::1 prefixlen 64
inet 10.10.10.1 netmask 0xffffff00 broadcast 10.10.10.255
# ping6 http://www.kame.net
PING6(56=40+8+8 bytes) 2402:aabb:ab00::2 –> 2001:200:0:8002:203:47ff:fea5:3085
16 bytes from 2001:200:0:8002:203:47ff:fea5:3085, icmp_seq=0 hlim=48 time=463.088 ms
16 bytes from 2001:200:0:8002:203:47ff:fea5:3085, icmp_seq=1 hlim=48 time=461.918 ms
16 bytes from 2001:200:0:8002:203:47ff:fea5:3085, icmp_seq=2 hlim=48 time=690.285 ms
^C
http://www.kame.net ping6 statistics —
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 461.918/538.430/690.285/107.379 ms
# _
————————————-END————————————————

Sip, sekarang Anda telah memiliki sebuah mesin Unix yang enable ipv6. Tinggal sedikit konfigurasi untuk menjadikannya sebuah masin gateway.

Trims,
Dika_

Backup dengan ssh dan scp

September 28, 2007

Saya memiliki sebuah web server dengan load yang sangat besar karena web saya ini adalah sebuah portal yang sangat besar dan terkenal. Saya ingin setiap akses log dari web page saya tercatat di sebuah server backup, sehingga saya bisa memantau perkembangan situs portal saya serta bisa menjadikannya sebagai daya tarik kepada para pemasang iklan. Bagaimana saya bisa membuat sebuah mesin backup yang bisa mengambil data log dari server web saya tersebut?

Suatu hari, seseorang bertanya kepada Anda dengan pertanyaan seperti di atas. Apa yang sebaiknya dilakukan ?
Anda mulai berpikir untuk melakukan mirroring server dengan rsync atau sejenisnya. efektifkah menggunakan aplikasi mirroring semacam rsync hanya untuk mengambil data seberat file log dari page view sebuah web? Keadaan akan menjadi lain jika kita membicarakan file log dari portal yang benar2 besar macam detik.com misalnya. Jangan salah, file log perhari detik.com bisa mencapai angka 20Gb !!

Kemudian apa yang bisa digunakan untuk membuat sebuah server backup yang handal untuk kebutuhan ini? Coba ikuti cara saya, kemudian silakan beri komentar Anda..

Pertama, siapkan sebuah skenario seperti ini:

[web server]——-//——–[backup server]

Sederhana bukan? Syarat utama yang harus dipenuhi adalah, kedua mesin diatas harus bisa saling berinteraksi. Dan server backup tidak harus ber-IP publik. Bisa saja seperti ini, web server memiliki 2 interface, satu interface dengan ip publik dan terhubung ke internet dan satu interface lagi dengan ip privat dan terhubung ke server backup baik direct (langsung) maupun menggunakan sebuah switch. Jadilah kedua mesin tersebut terhubung..

Saya set kondisi spt ini:
1. Web server dengan OS unix, ip privat 10.10.10.1/24
2. Backup server dengan OS Unix, ip 10.10.10.2/24
3. Secure Shell (ssh) berjalan dengan baik di antara keduanya.

Next, kita langsung login ke Mesin backup-nya.
Langkah pertama yang dilakukan adalah membuat agar mesin server web kita percaya kepada mesin backup untuk melakukan koneksi ssh tanpa harus menyerahkan password. Caranya adalah dengan menciptakan sebuah key dengan generator ssh yang nantinya akan di”tanam” di mesin server target.

———————-<command>—————————

# ssh-keygen -t rsa

———————-<EOC>——————————-

Setelah Anda menekan enter, akan muncul beberapa pertanyaan, tinggalkan saja default dengan menekan enter. Maka Anda akan mendapatkan dua buah key yang masing2 akan diletakkan di mesin server target dan mesin backup. Cara mengirim ke mesin target adalah sbb:

———————-<command>—————————

# scp ~/.ssh/id_rsa.pub 10.10.10.1:.ssh/authorized_keys2
root@10.10.10.1’s password: ********* #masukkan password root mesin target.
id_rsa.pub 100% 225 0.0KB/s 00:00
#

———————-<EOC>——————————-

OK, sejauh ini Anda telah bisa melakukan koneksi ssh ke server target tanpa diminta password, silakan dicoba.

Berikutnya adalah membuat sebuah file yang akan bertugas melakukan peng-copy-an file target dan meletakkan pada sebuah folder di mesin backup. Misal file log berada di folder /var/log/httpd_log/access_log_$tgl di mesin target. Dan akan di letakkan di folder /var/backup/ pada mesin backup.
Caranya, buat sebuah file ssh-scp di mesin backup, yang misalnya berada di /etc/backup.sh sbb:

———————-<code>——————————

#!/bin/bash

tgl=$(date +%Y%m%d)
folder=”/var/backup/”

scp 10.10.10.1:/var/log/httpd_log/access_log_$tgl $folder
exit

———————-<EOC>——————————-

Cobalah skrip di atas dengan mengetikkan :

———————-<command>—————————

# sh /etc/backup.sh
#

———————-<EOC>——————————-

Kemudian periksa folder /var/backup/ Anda, seharusnya telah bertambah sebuah file di sana… jika ternyata belum ada, silahkan periksa kembali pekerjaan Anda dari awal. 🙂

OK, satu step lagi.. Buat skrip ini dieksekusi setiap pukul 23:59 malam (tepat sebelum berpindah tanggal, sebab script Anda memerintahkan untuk meng-copy log pada tanggal itu). Tentu saja dengan bantuan crontab, si tepat waktu, he he he.

Selesai. Semoga bermanfaat.

Langsung saja, ceritanya begini..
Di kantor, blok IP saya di bann untuk download diatas 500Kb, terus ada blocking beberapa situs (salah satunya FS–> duh..!)
Akhirnya sowan ke rumah Om Google, nanya2 sana-sini, ketemu cara ini deh.. yahud bgt.

Langsung..! kebutuhan:
– Windows XP
– Putty
– sebuah mesin Unix (ber-IP publik, dan kita mesti punya akses ke situ –> nah loo..)
– sedikit nyali (kalau kethuan si bos bisa berabe)
– udah. he he he

Pertama, kita buka si putty, isikan IP publik Mesin Unix inceran kita di kolom Host Name (or IP address) dan port 22 –> SSH

Di bar sebelah kiri pilih opsi SSH –> tunnels.
Nah, setelah itu, pertama yang harus dilakukan adalah memilih opsi dynamic pada radio button (form paling bawah)
Lalu isikan sembarang angka (port –> antara 5001 sd 9999) pada field ‘source port’ klik add, maka secara otomatis port yang kita masukkan akan berpindah ke kolom bagian atasnya.

Klik open. Sip, kita udah masuk ke konsole mesin target.. isikan autentikasi (username dan password)
Biarkan saja seperti itu, dan jangan di close, sebab pada dasarnya putty inilah yang menjadi tunnel (terowongan) yang menghubungkan Desktop kita dengan mesin unix yang kita tumpangi. Jadi kalo putty-nya kena close yaa.. jembatannya ambrol deh..
Sesudah itu waktunya berpindah ke mesin Window$ kesayangan kita, bukak browser anda (saya mencontohkan dengan IE)
Pilih menu Tools->Internet Options-> klik bar ‘Connections’ –> LAN settings.
setelah masuk menu LAN settings, beri tanda cek pada ‘Use Proxy …. ‘(biarkan form-nya kosong) kemudian klik Advanced.
Isikan pada bagian Socks dengan IP loopback (127.0.0.1) dan port dengan port yang tadi kita tentukan (5001 – 9999)

Klik OK.
Siap di tes deh..

Topologies:

Explain :

– panah warna merah menunjukkan jalur “resmi” yang seharusnya dilalui.
– panah warna Biru menunjukkan jalur yang dilalui dengan SSH-Tunnel

Mesin windows kita menggunakan mesin Unix sebagai (semacam)proxy untuk melakukan akses keluar. dengan memanfaatkan PuTty sebagai tunnel (terowongannya).

——–
dEEkZ_
——–

Crontab, si Tepat waktu

August 16, 2007

okay, langsung ajah..
di sistem operasi Unix dikenal sebuah fasilitas penjadwalan otomatis yang dinamakan cron/crontab.

secara umum, cron disimpan pada sebuah file yang letak dan namanya berbeda pada setiap distronya.Di Linux saya biasa memakai Fedora, dan BSD dengan OpenBSD. Nama, dan letak file konfigurasi di kedua distro tersebut berbeda. Di Fedora, ada di /etc/crontab, sedangkan di OpenBSD (dan distribusi BSD umumnya) terletak di /var/cron/tabs/root.

fungsinya adalah sama saja, yaitu untuk mencatat perintah (bisa berupa command line langsung maupun command yang sudah tersusun dalam sebuah file bash/shell/perl script) serta waktu (timing) kapan perintah tersebut akan dieksekusi.

Penulisan file cron ini pun sedikit berbeda pada setiap distro, namun secara garis besarnya sama.
bentuk umunya adalah sebagai berikut:

* * * * * * *

penjelasan :

di atas adalah bentuk umum untuk sintaks crontab. Terlihat ada 7 kolom (blok)

  • blok pertama adalah menit, yaitu menunjukkan menit pada jam yg dipilih — nilainya 0-59.
  • blok kedua adalah jam, yaitu menunjukkan jam pada hari/tanggal yang telah ditentukan. — nilainya 0-23.
  • blok ketiga adalah tanggal, yaitu menunjukkan tanggal pada bulan yang telah ditentukan. — nilainya 1-31.
  • blok keempat adalah bulan, yaitu menunjukkan bilangan bulan. — nilainya 1-12
  • blok kelima adalah hari dalam minggu, yaitu menunjukkan urutan hari dalam seminggu. — nilainya 1-7
  • blok keenam adalah user yang diberi hak untuk melakukan command. (blok ini tidak selalu diperlukan)
  • blok ketujuh adalah command atau letak file perintah.

contoh #1

30 05 * * * root rm /var/log/httpd/*

penjelasan:
jadi, setiap hari, pukul 05:30 pagi, perintah “rm /var/log/httpd/*” akan dieksekusi, yang berarti akan menghapus semua file dalam folder /var/log/httpd/.

contoh#2

10 05 01 * * root /bin/sh /etc/script.sh

penjelasan:
pada pukul 05:01 setiap tanggal 1, setiap bulannya, akan dieksekusi kumpulan perintah pada file “/etc/script.sh” (yang berupa file shell/bash script).
Sekian dulu, kalau ada waktu dan ilmu baru, insyaAllah saya tulis lagi..
-mohon koreksi-

regards,
dEekZ_