Gak tau kenapa akhir-akhir ini kalo makan makanan yang berbahan dasar "Jengkol", kepala jadi pusing seperti masuk angin kira-kira. Padahal ini salah satu makanan favorit saya sejak kecil. Saya kepikiran apa gara-gara udah bertambah umur gitu[?]. Sewaktu kecil saya pernah makan sampe 10x dalam sehari kalo nemu jengkol ini, apapun cara masaknya. Biasanya disemur, dikecap atau di goreng plus pake sambal terasi mentah, lalab, asin, kerupuk dan kawan-kawan. Sampe-sampe keram perut dan dibawa kedokter (Over Dosis.red). Jujur saja sampe saat ini belom ada makanan yang ngalahin "candu" jengkol ini. Orang sunda bilang kalo makan ama jengkol "Olok Sangu! (Boros nasi)".
23 Maret 2014
13 Maret 2014
Setup DNSSEC-BIND di FreeBSD
Untuk menambah keamanan
1. Buat direktori untuk
Bind
sebagai resolver
saya coba implementasikan DNSSEC
di FreeBSD
1. Buat direktori untuk
key
& private
file:# mkdir /etc/namedb/key
# cd /etc/namedb/key
# dnssec-keygen -f KSK -a RSASHA1 -b2048 -n ZONE example.com
# dnssec-keygen -a RSASHA1 -b 768 -n ZONE example.com
2. Append isi dari kedua file *.key
ke file db domain zone
:# cd /etc/namedb/
# cat key/Kexample.com.+005+*.key >> master/example.com.db
3. Sign untuk db domain zone
, sehingga terbetuk file example.com.db.signed
di direktori master
# dnssec-signzone -o example.com -k Kexample.com.+005+15439.key ../master/example.com.db Kexample.com.+005+26382.key
4. Edit named.conf
untuk menggunakan db domain yang telah di signed
zone "example.com" {
type master;
file "master/example.com.db.signed"
}
5. Untuk fingerprint
bisa dicoba dengan command
# cd /etc/namedb/master/
# dnssec-dsfromkey -1 -f example.com.db.signed example.com example.com. IN DS 51367 5 1 527EE9DED3B1DC3F7FE9C7F3CE08E8E56674D6A8
6. Silahkan ditest outputnya kurang lebih seperti ini# dig +dnssec +short example.com
A 5 2 3600 20140411175317 20140312175317 26382 example.com. hmBbAz1245O6tVLuXjnlKLqCH0JKguISPn3vTPI+ju8Kp8aBcgTI10tTQ7gtm5Xe7KJn60ggLnPIpnQN0GpVD5APbnOnsXi4QL0YKxJDp+yVcXbryG0svDaYaGtixhEp
26 Februari 2014
Menanti Kelahiran Dede "kecil"
Puji Tuhan, Diah Estiani istri saya telah hamil. Tuhan memang baik dan masih percaya untuk membesarkan titipanNya. Kalo istri hamil itu koq makin gede perutnya malah makin sexy yah... terlebih makin sayang banget... kadang juga saya suka kasian kl udah sakit pinggang, susah bergerak yah gimana lagi namanya juga lagi hamil (sabar yah sayang :-*). Yang penting suami harus siap jadi "suami siaga"....
Usia kandungan sekarang ampir 5 bulan dan kalo ngidam nih biasanya yang asem-asem dan pedes-pedes, tapi sayangnya istri saya punya maag, jd sering kambuh deh... ujungnya sering muntah-muntah. Susah emang salah satu sisi emang lagi ngidam tp sisi lain malah badannya gak kuat jenis makanan seperti itu.
Saya percaya semuanya pasti lancar selama kita berusaha dan tetep deket ama Tuhan, selalu doa untuk meminta apapun juga. Tuhan pasti sediakan semuanya kebutuhan kita, Amien
Label:
Curhat
02 November 2013
Push Notifications iPhone
Beberapa bulan ini sering terjadi masalah dengan "push notifications iPhone", saya coba-coba mulai dari network system, karena di tempat saya semua di area DMZ lewat NAT, semua device terkoneksi lewat WiFi. Disamping itu, iPhone saya bawaan dari Aussie yg telah di Unlock (FU). Mungkin karena iPhonenya sering di otak-atik jadi banyak kemungkinan permasalahan notifikasi harus dilihat dari berbagai hal. Langkah yang saya tempuh adalah:
- Jika menggunakan WiFi pastikan encrypt methodnya mendukung device anda, saya menggunakan WEP 64 bit, gunakan channel yg tidak interferensi jika anda menggunakan beberapa AP (Access Point) sebagai repeater.
- Jika anda menggunakan router, pastikan TCP port 5223, TCP Port 443 sudah diallow. Untuk lebih detail silahkan check http://support.apple.com/kb/TS4264
- Yang sering menjadi kendalanya adalah di devicenya itu sendiri (iPhone), banyak permasalahan setelah upgrade iOS, atau resetting iPhone, push notifications jadi tidak jalan. Setelah saya coba-coba dari mulai resetting/restoring device, login/logout Apple ID, dsb semua tidak ada yang berhasil. Alhasil yang paling mujarab adalah dengan menggunakan metode "Deactivate RedSn0w", seperti kita ketahui RedSn0w salah satu tool Jailbreak iPhone.
- Download RedSn0w.
- Sambungkan iPhone dengan PC/Laptop.
- Extract dan jalankan RedSn0w yang sudah didownload.
- Pada menu RedSn0w klik Extras -> Even More -> Deactivate.
- Pastikan iPhone anda sudah deactivated ditandai ada box dengan peringatan Activation Screen.
- Buka iTunes, secara otomatis iTunes meminta Apple ID/Passwordnya. Masukan Apple ID/Passwordnya, lalu iTunes akan secara otomatis meng-Activekan iPhone anda.
- Reboot iPhone.
- Selamat mencoba semoga berhasil :-).
14 Agustus 2013
Make World FreeBSD
1. Install
3 Kita mulai build keseluruhan
Update
cvsup
binary dan buat file stable-file.
# cd /usr/ports/net/cvsup-without-gui (Asumsi anda tidak running X system)
# make ; make install ; make clean
# cd /root/
# mkdir cvsup
# cd cvsup
# vim stable-file
# cat stable-file
*default host=cvsup3.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_4
*default delete use-rel-suffix
src-all
Catatan: Untuk
tag=RELENG_4
, artinya anda melakukan upgrade last-version untuk FreeBSD 4.X, untuk tag
bisa dilihat di http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvs-tags.html, sedangkan src-all
artinya anda melakukan upgrade untuk seluruh source /usr/src
. anda bisa customize untuk ini sesuai kebutuhan anda.
# cvsup -g -L 2 stable-file (Tunggu sampe selesai)
2. Prepare untuk file/config yg diperlukan, buat file make.conf
:# vim /etc/make.conf
# cat /etc/make.conf
CFLAGS= -O -pipe
COPTFLAGS= -O -pipe
NOPROFILE= true
USA_RESIDENT= YES
IPFW2=true
COMPAT22= YES
COMPAT3X= YES
Catatan: Untuk keperluan ini "sangat relatif" silahkan mengacu ke
/etc/defaults/make.conf
untuk detailnya.
Jika mesin yang anda pake standalone atau PC jangkrik tentunya ada baiknya
kita masuk ke single user mode, tapi kalo mesin anda sbg server yg musti
operational tidak usah masuk single user pun no problem dng konsekwensi
makan waktu pengerjaan lebih lama. Skip langkah ini kalo anda tidak
mengehendaki masuk single user.# shutdown now
# fsck -p
# mount -a -t ufs
# swapon -a
Hapus file object kalo2 sebelomnya anda telah melakukan proses ini.
# cd /usr/
# chflags -R noschg obj/*
# cd obj
# rm -rf *
Catatan: Hilangkan flag schg
agar bisa anda hapus, anda bisa view dengan perintah ls -loFa
untuk jelasnya.3 Kita mulai build keseluruhan
/usr/src
dan meletakan file2 preinstall di /usr/obj
secara otomatis biasanya file object.
# cd /usr/src
# make buildworld
# make buildkernel KERNCONF=NAMA_KERNEL_ANDA_SEKARANG
# make installkernel KERNCONF=NAMA_KERNEL_ANDA_SEKARANG
# make installworld
# make delete-old (Optional)
# make delete-old-libs (Optional)
Jika anda gagal dan berniat untuk mengulanginya anda bisa lakukan.
# chflags -R noschg /usr/obj/*
# cd /usr/obj
# rm -rf *
# cd /usr/src
# make cleandir (2X)
# cvsup -g -L 2 stable-file (Ulang sekali lagi)
4. Update semua file configurasi system /etc
, /dev /stand
.
# cd /
# cp -Rp /etc /etc.old
# mkdir /var/tmp/root (Untuk FreeBSD 4.X only)
# cd /usr/src/etc (Untuk FreeBSD 4.X only)
# make DESTDIR=/var/tmp/root distrib-dirs distribution (Untuk FreeBSD 4.X only)
Catatan: Kita buat direktori sementara untuk menyimpan file2 yang baru, kita tempatkan di /var/tmp/root
.Update
/dev
.
# cp /var/tmp/root/dev/MAKEDEV /dev (Untuk FreeBSD 4.X only)
# cd /dev ; sh MAKEDEV all (Untuk FreeBSD 4.X only)
Update stand.
# cd /usr/src/release/sysinstall ; make all install (Untuk FreeBSD 4.X only)
5. Update file² yg diperlukan.
# mergemaster -s
Catatan: Anda akan dihadapkan beberapa options dan perbandingan 'file yang lama' dan 'file yang baru', untuk [
6. Reboot.
merge
] anda pijit 'm
', di layar anda ada 2 bagian yaitu bagian kiri dan
bagian kanan, dimana bagian kiri adalah file config lama,
bagian kanan file config baru, anda tinggal pilih 'l
' (left)
untuk file lama (bisa berkali-kali), pijit 'r
' untuk file baru
(bisa berkali-kali), jika ada option tampil anda pilih 'i
'
untuk install
, proses ini terus menerus sampe semua file
dibandingkan sistem. *HATI HATI UNTUK PROSES INI*
Semua file baru disalin di direktori "/var/tmp/temproot/
"
ketika "mergemaster -s
". Jika kelak diperlukan bisa ngebrowse
kembali ke direktori ini.08 Juli 2013
ipfw_WF2Q+
1. Jika anda ingin menimplementasikan
3. Bikin rule di
WF2Q+
dengan ipfw
di mesin dengan tujuan:
- Sharing bandwidth antar client misalnya untuk ratio 1:4.
- Sharing bandwidth evenly/rata diantara client tersebut (Tapi bukan garansi/CIR).
- Adanya bandwidth peak/burst diantara client jika client yg lain idle.
2. Untuk sharing bandwidth dengan ratio 1:4 bisa anda kelompokan client anda dalam
satu group misalnya:- Host A, B, C, D diberi bandwidth rebutan/sharing sebesar 128 Kbit/s, dengan IP Address:
* Host A : 192.168.0.1/32
* Host B : 192.168.0.2/32
* Host C : 192.168.0.3/32
* Host D : 192.168.0.4/32
Asumsi subnet yg anda pilih /24
atau 255.255.255.0
, jika anda ingin menggunakan subnetting juga itu lebih bagus.3. Bikin rule di
/etc/rc.firewall
dan letakan sebelom rule permit/deny:
ipcl_grup01="192.168.0.0/24{1,2,3,4}"
bw_share01="128Kbit/s"
bw_down_share01="128Kbit/s"
bw_up_share01="64Kbit/s"
ifint="inside_interface"
# Sample format 1 - Limiting downstream saja.
${fwcmd} add 1 queue 1 ip from any to ${ipcl_group01} out via ${ifint} // Downstream
${fwcmd} queue 1 config weight 50 queue 4 pipe 1 mask dst-ip 0xffffffff
${fwcmd} pipe 1 config queue 4 bw ${bw_down_share01}
# Sampel format 2 - Limiting upstream saja.
${fwcmd} add 1 queue 1 ip from ${ipcl_group01} to any in via ${ifint} // Upstream
${fwcmd} queue 1 config weight 50 queue 4 pipe 1 mask src-ip 0xffffffff
${fwcmd} pipe 1 config queue 4 bw ${bw_up_share01}
# Sample format 3 - Limiting downstream/upstream menjadi satu flow.
${fwcmd} add 1 queue 1 ip from any to ${ipcl_group01} out via ${ifint} // Downstream
${fwcmd} add 2 queue 1 ip from ${ipcl_group01} to any in via ${ifint} // Upstream
${fwcmd} queue 1 config weight 50 queue 4 pipe 1 mask all
${fwcmd} pipe 1 config queue 4 bw ${bw_share01}
# Sample format 4 - Limiting upstream/downstream dengan masing2 flow terpisah.
${fwcmd} add 1 queue 1 ip from any to ${ipcl_group01} out via ${ifint} // Downstream
${fwcmd} add 2 queue 2 ip from ${ipcl_group01} to any in via ${ifint} // Upstream
${fwcmd} queue 1 config weight 50 queue 4 pipe 1 mask dst-ip 0xffffffff
${fwcmd} queue 2 config weight 50 queue 4 pipe 2 mask src-ip 0xffffffff
${fwcmd} pipe 1 config queue 4 bw ${bw_down_share01}
${fwcmd} pipe 2 config queue 4 bw ${bw_up_share01}
WF2Q+
merupakan varian dari sistem quering policy, dan jangan lupa setelah di assign via queue
mesti terhubung ke pipe
.
Keterangan:
- queue [Dibagian rule : ${fwcmd} add 1 queue...] : Assign untuk rule WF2Q+.
- weight : Nilei pembanding flow quering (Bukan priority).
Default 1, allow [1 s/d 100].
- queue [Dibagian rule : ${fwcmd} queue 1 config weight 50 queue...] : Ukuran/jumlah dari "queue/slot" sbg pembanding terhadap jumlah bandwidth. Default 50.
- queue [Dibagian rule : ${fwcmd} pipe 1 config queue...] : Ukuran/jumlah dari "queue/slot" sbg pembanding terhadap jumlah bandwidth. Default 50
- pipe : Assign rule untuk ukuran bandwidth yg terkoneksi.
- mask dst-ip/src-ip : Digunakan untuk masking IP Address/subneting dan port. "dst-ip" digunakan untuk "downstream", "src-ip" digunakan untuk "upstream" dari sample rule diatas (Tergantung dari posisi IP client/port). 0xffffffff adalah value subnet, sama dengan "0.0.0.0/0" (Match all IP Address). Untuk port default "0x0000" artinya tidak menspesifikan/pembatasan port.
4. Perhitungan:
bw_perclient = (w_client / w_jumlah_) * bw_total
Sample diatas perclient mempunyai weight masing2 50, total bw 128 Kbit/s. Katakanlah untuk host A bisa dikalkulasikan sbb:
bw_host_A = (50 / (50*4)) * 128 Kbit/s
= (50 / 200) * 128 Kbit/s
= 32 Kbit/s
Jika semua host aktif maka dummynet
akan berusaha membagi rata sejumlah 32 Kbit/s per hostnya. Nah contoh diatas mempunyai weight
yg sama besarnya, gimana kalo contohnya begini:
w_host_A = 30
w_host_B = 50
w_host_C = 50
w_host_D = 50
Maka bisa kita kalkulasikan bw yg didapat oleh host A dan host B sbb:
bw_host_A = (30 / (30+50+50+50)) * 128 Kbit/s
= (30 / 180) * 128 Kbit/s
= 21.333 Kbit/s
bw_host_B = (50 / (30+50+50+50)) * 128 Kbit/s
= (50 / 180) * 128 Kbit/s
= 35.55 Kbit/s
Contoh lain:
w_host_A = 10
w_host_B = 20
w_host_C = 30
w_host_D = 40
bw_host_A = (10 / (10+20+30+40)) * 128 Kbit/s
= (10 / 100) * 128 Kbit/s
= 12.8 Kbit/s
bw_host_B = (20 / (10+20+30+40)) * 128 Kbit/s
= (20 / 100) * 128 Kbit/s
= 25.6 Kbit/s
Perhitungan queue slot
. Dalam hal ini queue di rule diatas adalah 4, maka bisa dikalkulasikan:
bw_perclient = bw_total/slot_queue
Dari sample diatas bisa dihitung untuk host A sbb:
bw_host_A = 128 Kbit/s / 4
= 32 Kbit/s
Jika semua host aktif maka
4. Jika kita rubah misalnya
dummynet
akan berusaha membagi rata bandwidth 32 Kbit/s per slot-nya (1 slot = 32 Kbit/s). IMHO, queue slot
mendingan disesuaikan dengan jumlah client yg share, contoh diatas 1:4 berarti queue slot
-nya4. Jika kita rubah misalnya
queue slot
menjadi 8 slot maka ada kemungkinan host A akan menggunakan lebih dari 1 slot, artinya bisa cenderung ngerebut slot jatah host lain.
root:~# uname -srnm
FreeBSD gw-core-introuter.kumprang.com 4.10-STABLE i386
root:~# ipfw queue show
00001: 24.000 Kbit/s 0 ms 50 sl. 1 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
0 tcp 74.6.68.227/42040 202.146.228.9/80 5535 3192733 0 0 0
00002: 68.000 Kbit/s 0 ms 6 sl. 0 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
00003: 36.000 Kbit/s 0 ms 6 sl. 0 queues (1 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0x00000000/0x0000
q00001: weight 50 pipe 2 6 sl. 6 queues (64 buckets) droptail
mask: 0x00 0x00000000/0x0000 -> 0xffffffff/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
17 ip 0.0.0.0/0 192.168.1.1/0 81105 53885327 0 0 2960
26 ip 0.0.0.0/0 192.168.1.10/0 121939 96279102 0 0 3719
27 ip 0.0.0.0/0 192.168.1.11/0 134476 96276870 0 0 6141
28 ip 0.0.0.0/0 192.168.1.12/0 35325 17986730 0 0 1243
29 ip 0.0.0.0/0 192.168.1.13/0 43479 35034555 0 0 1247
34 ip 0.0.0.0/0 192.168.1.50/0 154963 152289033 0 0 8521
q00002: weight 50 pipe 3 6 sl. 6 queues (64 buckets) droptail
mask: 0x00 0xffffffff/0x0000 -> 0x00000000/0x0000
BKT Prot ___Source IP/port____ ____Dest. IP/port____ Tot_pkt/bytes Pkt/Byte Drp
12 ip 192.168.1.50/0 0.0.0.0/0 128724 17526438 0 0 211
42 ip 192.168.1.1/0 0.0.0.0/0 71625 8097141 0 0 592
48 ip 192.168.1.12/0 0.0.0.0/0 28546 2747603 0 0 131
50 ip 192.168.1.13/0 0.0.0.0/0 32582 3594117 0 0 29
60 ip 192.168.1.10/0 0.0.0.0/0 102737 10325047 0 0 73
62 ip 192.168.1.11/0 0.0.0.0/0 89624 8851578 0 0 100
Kolom paling kanan pertanda paket yg sudah
Sistem kerjanya, andaikata host A menggunakan bandwidth melebihi kapasitas sharing bandwidth bedasarkan perhitungan diatas dan host B pada saat bersamaan mulai ngeload bandwidth (katakanlah mulai ngeclick browser) maka host A akan didrop secara random untuk memberikan kesempatan kepada host B sampai kedudukannya seimbang (katakanlah jika bandwidth 128 Kbit/s maka host A akan mendapatkan 64 Kbit/s dan host B akan mendapatkan 64 Kbit/s), dan ketika host B tidak ngeload bandwidth (idle) maka host A akan mendapatkan bandwidth 128 Kbit/s kembali.
didrop
, uji gampangnya lihat saja jika kita download gede2an
(pake getright/flashget) pasti banyak yg didrop sesuai dengan perhitungan diatas. Dan silahkan coba download dengan cara dilimit di client (pake getright/flashget misalnya) sesuei dengan perhitungan diatas, nah gimana hasilnya tuh :-).Sistem kerjanya, andaikata host A menggunakan bandwidth melebihi kapasitas sharing bandwidth bedasarkan perhitungan diatas dan host B pada saat bersamaan mulai ngeload bandwidth (katakanlah mulai ngeclick browser) maka host A akan didrop secara random untuk memberikan kesempatan kepada host B sampai kedudukannya seimbang (katakanlah jika bandwidth 128 Kbit/s maka host A akan mendapatkan 64 Kbit/s dan host B akan mendapatkan 64 Kbit/s), dan ketika host B tidak ngeload bandwidth (idle) maka host A akan mendapatkan bandwidth 128 Kbit/s kembali.
04 Juni 2013
Merubah Tipe File Windows Ke UNIX
1. Caranya beginoh:
# perl -i.bak -npe 's/\r\n/\n/g' file ...
2. Atau bisa kita pake:
# tr -d '\r' < dos-text-file > unix-file
3. Atau bisa juga:
# col -b < dos-text-file > unix-text-file
26 Mei 2013
Console UNIX Berwarna
1. Silahkan porting:
# cd /usr/ports/misc/gnuls/
# make ; make install
2. Bikin alias di ~/
, kalo root pake .bashrc
, sedangkan user pake .bash_profile
.
# cat .bashrc
alias ls='gnuls --color=auto -a'
$ cat .bash_profile
alias ls='gnuls --color=auto -a'
28 April 2013
Windows XP Restart
Lumayan dikerjain dengan komputer billing di warnet saya karena selalu restart persatuan waktu yg tidak bisa ditentukan. Awalnya saya curiga hardware (Memori/Prosesor kepanasan/Power Supply yg udah jelek). Saya coba untuk membawa komputer saya ke reparasi hardware untuk mengeceknya tapi ternyata komputer tidak apa-apa. Ganti-ganti memori, benerin heatsing karena takut kepanasan, sampe ganti kabel power takut udah jelek, plus ganti kabel SATA Hardisk. Tapi ternyata bukan!
Dengan melihat perbedaan di tempat saya dengan di tempat reparasi hardware adalah "Di tempat saya dicolok kabel LAN, sedangkan di reparasi hardware tidak dicolok kabel LAN". Logika perbedaan yang simple tapi menjadi awal clue pemecahannya. Saya coba di tempat saya tidak dicolok kabel LAN dan ternyata komputer tidak restart lagi!. OK, permasalahan ternyata di seputar LAN device, cable, atau switch LAN?. Saya mulai mencari solusi untuk masalah ini:
- Ganti ethernet dengan external ethernet (Asalnya ethernet onboard).
- Ganti kabel UTP
- Ganti port colokan di switch dan merestart switch.
- Update driver LAN onboard
Ternyata semua ke-4 solusi itu tidak mengatasi setiap kali kabel UTP di colokin komputer selalu restart. OK, saya mulai lebih detail lagi dengan melihat log via "Event Viewer", dan bengo! ternyata ada beberapa log error yang cukup serius:
Error code 00000027, parameter1 baad00a3, parameter2 a7a6b3b8, parameter3 a7a6b0b4, parameter4 00040001.
Saya mulai mencari informasi dari Google, dan ada beberapa solusi yang bisa ditawarkan:- Menambah memori fisik.
- Menambah paging file via virtual memory.
Tapi ternyata error itu masih nampak :-(, akhirnya saya coba untuk reinstall Windows dan akhirnya error itu tidak nampak, asumsi saya karena sistem udah rusak duluan jadi mau gak mau harus reinstall Windowsnya.
Besoknya saya install IDM (Internet Download Manager) untuk mendownload video, loh errornya kembali muncul komputer sering restart lagi. Saya cek kembali log Event Viewer ternyata ketemu lagi masalah yang sama. OK berarti semuanya ini gara-gara IDM sialan!.
System damage/error karena tidak bisa mengakses (read) memory address setelah menginstall IDM (Internet Download Manager) inilah penyebab utamanya!.
Untuk solusinya mudah sekali, tinggal uninstall saja IDM keparatnya :). Permasalahnya karena saya kurang sistematis mengerjakannya, tidak diurut dari kemungkinan yang terdekat dan pengerjaannya yang paling mudah dulu. Mudah-mudahan sharing ini membantu pembaca.
07 Maret 2013
ARCHIVER dan COMPRESSION di UNIX
Untuk create archiver di UNIX menggunakan perintah
1. Misalnya kita akan bikin archive file maka:
3. Nah sekarang archive kita ingin kita kompres sbg contoh:
6. Jika anda menggunakan archiver sekaligus kompresi model
7. Menggunakan compresi
tar
, untuk aplikasi kompresi menggunakan gzip/gunzip
.1. Misalnya kita akan bikin archive file maka:
$ tar cvf file.tar .
Note:
2. Setelah terbentuk file.tar maka kita lakukan pengecekan:
c=[c]reate, v=[v]erbose, f=[f]ile, titik[.]
menunjukan
current directory atau direktori aktif sekarang. Jadi jika anda
pengen bikin archive dng nama direktori "coba", anda bikin dulu
direktori "coba" setelah itu anda masukan file2 yg hendak anda
archiving ke direktori itu (coba), selanjutnya anda masuk ke
direktori "coba" lalu lakukan perintah diatas. karena defaultnya
tar ngebackup (melihat) device (tape) /dev/sa0
, padahal kita
sebenernya ingin bikin archive di darektori aktif sehingga otomatis
proses kita akan gagal dengan itu maka kita perlu pake option
[f]ile
untuk mengarahkan archive kita. output errornya:
tar: can't open /dev/sa0 : Device not configured
$ tar tf file.tar atau $tar tf file.tar | more
Note: Untuk option [f]ile
sama halnya dng kejadian diatas, kalo nggak maka akan nampilin error yg sama persis.3. Nah sekarang archive kita ingin kita kompres sbg contoh:
$ gzip -c9v file.tar > file.tar.gz
4. Sebetulnya tar juga sudah membawa untuk "filtering" direct ke bentuk file compression cuma untuk customize kompresi tidak selengkap jika kita pisah dng 2 proses (proses tar
dan proses gzip
). Misalnya untuk proses tar
langsung difilter thd kompresi:
$ tar zcvf foo.tgz * atau
$ tar zcvf foo.tar.gz *
Secara otomatis foo.tgz
dan foo.tar.gz
akan terbentuk, jangan lupa untuk mengecheck kalo2 archivenya rusak. dengan cara mirip dengan langkah diatas:
$ tar ztvf foo.tgz atau
$ tar ztvf foo.tar.gz
5. Untuk mengecheck apakah proses yg kita lakukan benar, kita check dng cara:
$ tar tfzv file.tar.gz atau $tar tfzv file.tar.gz | more
Note: Kita lakukan kompresi dng menggunakan gzip/gunzip
. untuk options c=[c]reate
, 9
=kompresi paling baik, v
=[v]erbose, z
=untuk nampilin kompresi, untuk f
sama keterangannya ama yg diatas.6. Jika anda menggunakan archiver sekaligus kompresi model
*.zip
, maka di UNIX telah disediakan toolnya yaitu zip
dan unzip
untuk sebaliknya. Misalnya kita akan create test.zip
di direktori /etc
maka:
$ cd /etc
$ zip -r -v -9 test.zip *
Jika anda ingin menencrypt isi arsip bisa gunakan -e [encrypt]
$ zip -r -v -e -9 test.zip *
Note: Opsi -r[ecrusive]
, -v[erbose]
, -9 [Best Compression]
, dan untuk Asterik (*)
menunjukan "current directory". Untuk membuka anda bisa gunakan "unzip
" misalanya:
$ cd /tmp
$ unzip test.zip
Jika anda ingin membuat archive "hanya untuk file tertentu", anda bisa gunakan beberapa options, sebagai contoh:
$ zip -c -v -9 /hasil/file/foo.zip -j /target/config/source.conf
Dengan perintah diatas maka kita akan meletakan foo.zip
di dalam direktori /hasil/file/
dengan mengambil source.conf
(file yang mau dizip) di direktori /target/config/
, dengan option -j
maka "full path dari source.conf
direktori tidak akan di zip
".7. Menggunakan compresi
bzip/bzip2
, Anda bisa menggunakan ekstensi *.tar.bz
, *.tar.bz2
, *.tbz
sebagai contoh.
$ tar -cvf backup.tar *
$ bzip -cvf backup.tar > backup.tar.bz atau
$ bzip2 -cvf backup.tar > backup.tar.bz2
Untuk bzip
hasil akhir berekstensi *.bz
, sedangkan untuk bzip2
hasil akhir berekstensi *.bz2
, nah selain itu ada beberapa contoh dengan fasilitas "filtering" via kompresi misalnya:
$ tar -ycvf backup.tbz * atau
$ tar -ycvf backup.tar.bz *
Dan untuk bzip2
:
$ tar -ycvf backup.tar.bz2 *
Untuk pengechekan kita bisa gunakan perintah spt:
$ tar ytvf backup.tbz
$ tar ytvf backup.tar.bz
$ tar ytvf backup.tar.bz2
Untuk pengekstrakan *.tbz, *.bz, *.bz2
lakukan spt:
$ tar yxvf backup.tbz
$ tar yxvf backup.tar.bz
$ tar yxvf backup.tar.bz2
PS: Untuk options dan keterangan lebih lanjut anda bisa baca manual gzip/gunzip
, bzip/bzip2
, zip
, unzip
dan tar
.
09 Januari 2013
Intisari IPFILTER
ipf melihat rule yg dilist secara berurutan dari atas ke bawah. Misalnya:
block in all....(1)
pass in all.....(2)
Pertama akan dijalankan rule (1), setelah itu rule (2). Jadi otomatis hasilnya rule (2) alias paket boleh masuk. Rule2 yg bertumpuk seperti. Misalnya:
block in all....(1)
block in all....(2)
block in all....(3)
block in all....(4)
block in all....(5)
pass in all.....(6)
Rule (1) s/d (4) tidak ada faedahnya. Dengan quick
kita dapat meyederhanakan rule2 kita. Misalnya:
block in quick all...(1)
pass in all..........(2)
Bisa kita artikan rule (1) akan dilihat pertama, selanjutnya ipf melaksanakan ketentuan semua rule tsb sampe selesai baru rule (2). Penulisan subnet IP yg diperbolehkan adalah 255.255.0.0
atau /16
. Misalnya:
block in quick from 192.168.0.0/16 to any
atau
block in quick from 192.168.0.0/255.255.0.0 to any
Kita dapat mengunakan keyword on
untuk menspesifikan interface yg kita pake. Misalnya:
block in quick on xl0 all
atau
block in quick on xl0 from 192.168.0.0/16 to any
Kita dapat menentukan juga outgoing paket dng nama keyword out
. Misalnya:
pass out quick on xl0 from 192.168.0.0/16 to any
Jika kita ingin melogkan apa yg terjadi, maka ada baiknya kita gunakan keyword log
. Misalnya:
block in log quick on xl0 from 192.168.0.0/24 to any
Keyword proto
dapat kita gunakan untuk menspesifikan protocol yg kita pake berikut dengan tipe protocolnya. Backslash (\
) dapat kita pake untuk menyambung perintah pada line berikutnya. Misalnya:
block in log quick on xl0 proto icmp from any to any
atau
pass in quick on xl0 proto icmp from any to 192.168.0.0/24 \
icmp-type 0
Pengunaan keyword port
lebih menitik beratkan kepada port yg dilalui. Misalnya:
block in log quick on tun0 proto tcp from any to \
192.168.0.0/24 port = 22
Untuk membangun rule2 yg sangat kuat ada baiknya kita kompile kernel dengan default deny all
, shg kita list rule yg kita perlu (This my fav). Kita mulai dengan rule deny
kayak gini. Misalnya:
block in all
block out all
Nah baru kita listing rule2 yg diperbolehkan. Misalnya:
pass in quick on xl0 proto tcp from any to 192.168.0.1/24 \
port = 80
Arti rule tsb adalah membolehkan paket yg masuk di ethernet xl0 dengan jenis protocol tcp dari mana saja ke
192.168.0.1/24
lewat port 80 (www)
. Jika ada respon dari 192.168.0.1/24
akan tetep ditolak juga, maka agar terjadi komunikasi (tidak pincang) maka kita listing juga rule sebaliknya. Misalnya:
pass out quick on tun0 proto tcp from 20.20.20.1/32 \
port = 80 to any
Ada keyword yg sangat menarik disini yaitu
keep-state
, jika rule kita dibubuhi keep-state
ini berati rule tersebut dah masuk ke state table ipf
, sehingga ipf
tidak perlu lagi mengecek ulang validasi rule tersebut alias jika terjadi handshake
di kemudian hari ipf
akan langsung mengijinkan masuk. Misalnya:
pass out quick on xl0 proto tcp from 192.168.0.1/24 to any \
keep state
Artinya adalah mengijinkan paket yg keluar di
xl0
dengan protocol tcp
dari 192.168.0.1/24
ke mana saja, dengan keep-state
ini rule yg bersangkutan langsung di apply ke state table dan ipf
tidak akan ikut campur nggak akan ngecheck ulang lagi validasi. ini terjadi pas pertama kali SYN
paket menyentuh hand shake
server kita.
Sangat delematis kita menggunakan keep-state
, coba kita pikirkan baik2 akan muncul pertanyaan dibenak kita "Oh..kalo gitu ipf hanya mengenal SYN
yg dulu dung, dengan kata lain SYN
pas entry ke state table pertama kali..?", yups memang benar meski ipf
akan close
(idle
)selama 60 detik (1 menit) tapi bukan refresh
. dengan kata lain paket SYN
-nya basi. ini pun berlaku untuk koneksi TCP
selanjutnya misalnya yg lainya (FIN
, XMAS
etc) setelah handshake terjadi.
Untuk masalah diatas tentunya ada solusi tersendiri. dengan penambahan keyword flags
alias menspesifikan flags untuk TCP
. Misalnya:
pass in quick on tun0 proto tcp from any to 192.168.0.1/24 \
port = 23 flags S keep state
Artinya rule diatas akan hanya melihat flags TCP
SYN
saja untuk flags
lainya (FIN
, XMAS
etc) tentunya akan keblock.
Berikut 6 flags TCP:
+----------------------------------+--------------+
|Singkatan dari koneksi TCP/IP | Flags |
+----------------------------------+--------------+
| SYN | S |
| URG | U |
| PUSH | P |
| FIN | F |
| RST | R |
| ACK | A |
+----------------------------------+--------------+
Jika kita menulis flags S
bisa kita tulis S/SUPFRA
. dengan kata lain paket hanya cocok flags
S
. Misalnya:
Jika kita tulis flags S/SA
artinya match dengan S
dan
flags "UPFR"...(1)
Jika kita tulis flags S/SAUP
artinya match dengan S
dan
flags "FR".....(2)
Dalam perjalan paket tersebut tidak jarang terpecah-pecah (fragmention) Untuk mengatisipasi tentunya ipf
telah menyediakan, yaitu dengan keyword keep frags
(tanpa tanda '-'). Misalnya:
pass in quick on xl0 proto tcp from any to 192.168.0.1/32 \
port = 23 flags S keep state keep frags
Keyword return-rst
berguna untuk merespon jika service tidak tersedia. return-rst
hanya berlaku untuk jenis protocol TCP
. Misalnya:
block return-rst in log proto tcp from any to 192.168.0.0/24 \
port = 23
Hasilnya untuk rule diatas adalah connection refused
. Ada keyword return-icmp(jenis_error)
. Misalnya:
block return-icmp(port-unr) in log quick on tun0 proto udp \
from any to 192.168.0.0/24 port = 111
Untuk jenis_error kita pake port-unr
(port unreachable).
Selain respone block
paket spt diatas ipf
menyediakan keyword return-icmp-as-desta
. Misalnya:
block return-icmp-as-dest(port-unr) in log on tun0 proto udp \
from any to 192.168.0.1/24 port = 111
Jika anda ingin mengatur log
, kita bisa gabungkan dengan Syslog
. ada keyword log level
. Misalnya:
block in log level auth.info quick on xl0 from 192.168.0.1/24 to
any port = 22
Jika anda mau mendapatkan informasi log
header gunakan keyword log body
pada proses ini ipf
akan memberikan 128 bytes
pertama dari paket. Untuk mempersingkat/efesiensi rule, kita bisa bikin kelas2 nah dengan mengunakan pasangan keyword head
dan group
. Misalnya:
block out quick on xl0 all head 10 ...(1)
pass out quick proto tcp from any to 192.168.0.1/24 port = \
80 flags S keep state group 10 .......(2)
Jika paket bukan untuk xl0
, make nggak akan match
dengan rule (1) dan rule (2) dan sebaliknya jika match
maka akan dieksekusi rule (2) dan rule2 lainya yg mempunyai keyword group 10
. artinya jika kita mempunyai network yg cukup besar dengan macam2 rule tentunya kita sedikit kewalahan dengan head dan group kita bisa membagi rule tersebut menjadi tree style
. Misalnya:
block out quick on xl0 all head 1 ...(1a)
pass out quick proto tcp from any to 192.168.0.1/24 port = \
80 flags S keep state group 1 .......(2a)
block out quick on xl1 all head 2 ...(1b)
pass out quick proto tcp from any to 192.168.0.2/24 port = \
80 flags S keep state group 2 .......(2b)
Jika ada paket dengan cocok dengan rule (xa) make untuk kelompok rule (xb) akan diabaikan, dan sebaliknya tentunya ini akan menambah efesiensi kerja ipf
kita. Jika kita lakukan traceroute
dari mesin luar ke mesin kita secara default kita mendapatkan hop2 routing tersebut, ada yg menarik dari
ipf
ini salah satunya keyword fastroute
, dengan keyword ini kita bisa menyembunyikan informasi2 hop tersebut. Misalnya:
block in quick on xl0 fastroute proto udp from any to any \
port 33434 >< 33465
Hal ini terjadi karena ada proses penurunan Time To Live (TTL)
dari paket Acknowledging (ACK)
. Catatan:
< : Lebih kecil
> : Lebih besar
= : Sama dengan
<= : Lebih kecil sama dengan
>= : Lebih besar sama dengan
!= : Tidak sama dengan
<> : Kurang dari X, lebih dari X
>< : Lebih besar dari X, kurang dari X
25 September 2012
Twitter Webbase Client
Bermula dari permintaan si cinta
@DiahEstiani
yg meminta via/from custom dari apps twitter
, maka yang terpikir oleh saya adalah bagaimana menyajikan bentuk webbase
yang kompatibel dan mudah digunakan. Sebelomnya saya sudah membikinnya tapi hanya posting saja tentunya ini bikin ribet dan sulit untuk pemakai.
Maka saya iseng-iseng mencari
webbase
untuk client webbase dan tentunya bertajuk Open Source
, setelah berhari-hari saya mendapatkan Dabr
, untuknya bukan cuma webbase untuk digunakan di Desktop
saja, featurenya bisa untuk mobile
juga. Setup Dabr
ini tidaklah terlalu sulit, hanya 3 langkah saja (Register Apps di dev.twitter.com
, setup webserver
di hostingan, dan Dabr
itu sendiri).Yang dibutuhkan untuk register
API Twitter
:- Name: (yg selanjutnya menjadi nama app anda, via/from di
twitter
) Website
: (Jika diklik di apps via/from akan dilinkan kemana)Application type: Read, Write and Access direct messages
Consumer key:
Consumer secret:
Selanjutnya kita siapkan hostingan,
Dabr
tidak menyimpan Username/Password
, melainkan langsung diproses oleh Oauth twitter
. System yang dibikin oleh dev Twitter
untuk keamanan dan menghindari pihak ke 3 untuk mencuri data-data yang bersifat privasi. Beberapa persyaratan yg harus dipenuhi untuk ngehosting Dabr
adalah:Webserver
(Apache
,Lighttpd
,Nginx
dsb).PHP
PHP
Module (php5-json, php5-curl, php5-mcrypt, php5-session
Dabr
, yg diperlukan hanya Consumer key
dan Consumer secret
, kita letakan di config.php
.budsz:~/a$ fetch http://dabr.googlecode.com/files/dabr-r430.zip dabr-r430.zip
budsz:~/a$ ls -l
total 88
drwxr-xr-x 3 budsz poison 512 Sep 25 14:31:38 2012 .
drwxr-xr-x 26 budsz poison 1536 Sep 25 14:30:47 2012 ..
drwxr-xr-x 5 budsz poison 512 Sep 25 14:31:34 2012 dabr
-rw-r--r-- 1 budsz poison 82709 Aug 16 19:15:20 2011 dabr-r430.zip
budsz:~/a$ unzip dabr-r430.zip
Archive: dabr-r430.zip
d dabr
extracting: dabr/.htaccess
extracting: dabr/.project
extracting: dabr/about.html
d dabr/browsers
extracting: dabr/browsers/bigtouch.css
extracting: dabr/browsers/bigtouch.php
extracting: dabr/browsers/blackberry.php
extracting: dabr/browsers/desktop.php
extracting: dabr/browsers/list.csv
extracting: dabr/browsers/text.php
extracting: dabr/browsers/touch.css
extracting: dabr/browsers/touch.js
extracting: dabr/browsers/touch.php
extracting: dabr/browsers/worksafe.php
d dabr/common
extracting: dabr/common/advert.php
extracting: dabr/common/Autolink.php
extracting: dabr/common/browser.php
extracting: dabr/common/Embedly.php
extracting: dabr/common/Extractor.php
extracting: dabr/common/HitHighlighter.php
extracting: dabr/common/lists.php
extracting: dabr/common/menu.php
extracting: dabr/common/OAuth.php
extracting: dabr/common/Regex.php
extracting: dabr/common/settings.php
extracting: dabr/common/theme.php
extracting: dabr/common/twitter.php
extracting: dabr/common/user.php
extracting: dabr/config.sample.php
d dabr/images
extracting: dabr/images/dabr.png
extracting: dabr/images/dm.png
extracting: dabr/images/dmL.png
extracting: dabr/images/map.png
extracting: dabr/images/mapL.png
extracting: dabr/images/q.png
extracting: dabr/images/qL.png
extracting: dabr/images/reply.png
extracting: dabr/images/replyall.png
extracting: dabr/images/replyallL.png
extracting: dabr/images/replyL.png
extracting: dabr/images/retweet.png
extracting: dabr/images/retweeted.png
extracting: dabr/images/retweetedL.png
extracting: dabr/images/retweetL.png
extracting: dabr/images/star.png
extracting: dabr/images/starL.png
extracting: dabr/images/star_grey.png
extracting: dabr/images/star_greyL.png
extracting: dabr/images/trash.gif
extracting: dabr/images/trashL.png
extracting: dabr/images/twitter_button_2_lo.gif
extracting: dabr/index.php
Rubah permission untuk setiap filenya dulu:budsz:~/a/$ cd dabr
budsz:~/a/dabr$ find . -type f -exec chmod 644 *.* {} \;
budsz:~/a/dabr$ cp config.sample.php config.php
Edit file config.php
, isi dengan data-data yg sudah didapatkan ketika kita registrasi apps di Twitter:// OAuth consumer and secret keys. Available from http://twitter.com/oauth_clients
define('OAUTH_CONSUMER_KEY', 'Isi_dengan_Consumer_key_anda');
define('OAUTH_CONSUMER_SECRET', 'Isi_dengan_Consumer_secret_anda');
Sisanya bisa anda setting sesuai dengan kebutuhan anda seperti
// API key for Twitpic - sign up at http://dev.twitpic.com/
define('TWITPIC_API_KEY', '');
// bit.ly login and API key for URL shortening
define('BITLY_LOGIN', '');
define('BITLY_API_KEY', '');
Setelah itu kita perlu melakukan Rewrite
dari webserver kita, tergantung webserver apa yang anda pake, saya menggunakan Lighttpd
dengan syntax
sbb:$HTTP["host"] =~ "subdomain\.domain\.tld" {
dir-listing.exclude = ( "favicon.ico" )
server.document-root = "/path/to/wwwdir"
url.rewrite-if-not-file = (
"^/w/(.*)\?(.*)$" => "/w/index.php?q=$1&$2",
"^/w/(.*)$" => "/w/index.php?q=$1",
)
}
DONE!
22 Juli 2012
Shell Scripting Twitter's Bot
Iseng-iseng gak ada kerjaan, saya coba untuk ngetwit auto dengan menggunakan scripting sederhana digabung dengan Python Twitter Tools, ujungnya menghasilkan kinerja yang lumayan memuaskan. Berikut deskripsinya:
"The Minimalist Twitter API for Python is a Python API for Twitter, everyone's favorite Web 2.0 Facebook-style status updater for people on the go"
.Pertama
login
di shell
lalu lakukan download dan pengekstrakan:
budsz:~$ fetch http://pypi.python.org/packages/source/t/twitter/twitter-1.8.0.tar.gz
budsz:~$ tar zxvf twitter-1.8.0.tar.gz
Sehingga terbentuk direktori twitter-1.8.0
budsz:~$ ls -ld twitter-*
drwxr-xr-x 6 budsz poison 512 Jul 22 15:27:08 2012 twitter-1.8.0
Ada beberapa hal yang perlu anda edit, jika anda menggunakan Twitter API, yaitu file-file yang digunakan untuk autentifikasi
Oauth twitter
. Disini saya tidak akan menjelaskan pembuatan Twitter API, silahkan ngerefer ke site Twitter Developers. Pertama silahkan edit file:budsz:~$ vim twitter-1.8.0/twitter/cmdline.py
Edit bagian
CONSUMER_KEY
dan CONSUMER_SECRET
, isi nilainya dengan Apps
yang sudah anda buat sebelomnya.CONSUMER_KEY='your_consumer_key'
CONSUMER_SECRET='your_consumer_secret'
Untuk penginstallan dibutuhkan
SetupTools
, silahkan sesuaikan dengan kebutuhan anda. Selanjutnya tinggal lakukan proses penginstalan dengan root
access untuk SetupTools/twitter-1.8.0.tar.gz
:root:~# cd /usr/ports/devel/py-setuptools
root:~# make install clean
root:~# pkg_info | grep py26
py26-setuptools-0.6c11_3 Download, build, install, upgrade, and uninstall Python packages
root:~# easy_install ~budsz/twitter-1.8.0
Note: Jika anda tidak mempunyai Apps
silahkan langsung loncat proses instalasi saja yang anda kerjakan.Uji coba, login kembali menggunakan user biasa:
budsz:~$ twitter -h (Untuk command line help)
budsz:~$ twitter (Login spt diweb, masukan user/password, setelah itu exit maka akan diminta PIN cukup tekan enter saja, defaultnya disimpan di ~$HOME/$USER/.twitter_oauth)
Untuk menggunakan di console/shell
:budsz:~$ twitter set "Hello World!" (Posting new twit)
budsz:~$ twitter search "cinta" (Seaching keyworld di public)
budsz:~$ twitter rate
Remaining API requests: 350 / 350 (hourly limit)
Next reset in 3544s (Sun Jul 22 17:38:01 2012)
Implementasi untuk auto posting anda tinggal gabungin dengan fasilitas
cron(8)
dan Shell scripting.
18 Juni 2012
Liku-liku Sebuah Perjalanan Hidup
Kadang kita tidak pernah mengetahui apa yang ada didepan kita, termasuk rencana kita sendiri kedepannya. Liku-liku kehidupan itulah "seni" dalam menjalankan ibadah sebagai umat yang sudah dianugrahi kehidupan dari Tuhan, kewajiban dalam mengemban tugas, kewajiban sebagai penganut agama. Kadang kita melalui tanjakan/turunan yang curam, belokan yang berbahaya. Namun dengan segala konsekwensi dan resikonya kita harus melalui itu dengan senyum dan semangat tentunya dengan ucapan syukur juga. Itu semua sudah "satu paket" dalam kehidupan, baik suka dan duka, kita hanya bisa menjalaninya saja. Adapun dalam proses yang "terjal" ini, Tuhan selalu melengkapinya dengan solusinya juga, jadi gak perlu kuatir dan takut akan ini semua.
Penghiburan daripadaNya sudah diberikan walau diberikan sementara waktu saja. Seseorang yang bisa membuat kita tersenyum walau sesaat, bisa bahagia walau sesaat itulah salah satu "persinggahan" saja dalam kehidupan ini. Kadang kita sebagai manusia sulit dan terlena akan semua hal yg bersifat sementara ini; "Hello, kamu belom sampe tujuan kamu, ini cuma tempat istirahat saja. Disana ada hal yang lebih indah daripada disini. Ayo tetep semangat untuk mencapai tujuan akhir ini.". Memang kita sakit/pedih ketika kehilangan orang yang benar-benar kita cintai/sayangi, tetapi kita juga harus bisa bijaksana dalam menelaah ini, lebih baik jika dia pergi meninggalkan kita, daripada dia juga tidak mempunyai masa depan bersama kita. Kita harus bisa belajar iklas/rela dengan semua kejadian ini dan semua sudah diatur yang Maha Kuasa.
Ini sekedar lirik lagu kenangan manis bersamamu walau sesaat dan aku tidak akan pernah bisa lupa:
...
"Just close your eyes
The sun is going down
You'll be alright
No one can hurt you now
Come morning light
You and I'll be safe and sound"
Ini sekedar lirik lagu kenangan manis bersamamu walau sesaat dan aku tidak akan pernah bisa lupa:
...
"Just close your eyes
The sun is going down
You'll be alright
No one can hurt you now
Come morning light
You and I'll be safe and sound"
...
"Thank you for all the love that you give a while, you may be happy with him, good luck"
16 Mei 2012
Jailbreak dan Unlock
Kadang saya tidak mau menuntaskan beberapa kerjaan oprekan jadi kena penyakit lupa :-). Saya mempunyai iPhone dari adik saya dengan provider Vodafone Australia tentu jika dipake di Indonesia jelas tidak dapat digunakan karena dilock baik software (SU) dan Basebandnya. Setelah google beberapa hari ternyata menemukan tool yang bertebaran di internet dan proses ini dinamakan JailBreak untuk bisa menggunakan iPhone dan Unlock untuk bisa menggunakan baseband (Keperluan Telp, SMS).
Ada beberapa kesimpulan untuk dipahami sebelom pengerjaan ini:
- Upgrade firmware hanya bisa dilakukan dengan versi terbaru.
- Downgrade firmware hanya bisa dilakukan jika anda menyimpan SHSH Blobs atau custom firmware.
- Jika anda mengupgrade firmware maka secara otomatis versi baseband ikut naik juga (Sekali sudah terupdate maka tidak akan bisa kembali ke versi sebelomnya).
- Agar versi baseband tidak ikut naik anda harus mengcustom firmware anda terlebih dahulu.
- JailBreak ada 2 macam yaitu Untethered dan Tethered, Untethered merupakan JailBreak sempurna dalam artian tidak perlu dipancing/booting dengan PC/Laptop untuk masuk menu, sedangkan Tethered harus dipancing/dibooting dengan menggunakan PC/Laptop tiap kali iPhone Restart/Shutdown.
Untuk JailBreak ada beberapa tool yang bisa digunakan:
- RedSn0w (Recommended).
- Sn0wbreeze.
- GreenPois0n.
- JailbreakMe.
Untuk Unlock bisa menggunakan Software/Hardware, kelebihan hardware lebih banyak mensupport versi baseband dibanding versi softwarenya, adapun tool yang bisa digunakan:
- Gevey Simcard (Hardware Base).
- Ultrasn0w (Software Base).
- SAM Unlock (Software Base).
Untuk keperluan tambahan seperti custom firmware, saving SHSH Blobs bisa menggunakan tool:
- iFaith (Custom firmware, saving SHSH Blobs) (Recommended).
- RedSn0w (Custom firmware, saving SHSH Blobs) (Recommended).
- TinyUmbrella (Saving SHSH Blobs).
05 April 2012
Jiarah ke makam ibu tercinta
Tidak terasa udah ampir 1 tahun kepergian mamih (7 April 2011), tadi pagi kita sekeluarga nyempetin jiarah ke makan ibu kami tercinta. Semuanya sudah beres dari pembangunan makamnya. Ada beberapa foto yang saya kumpulkan untuk diabadikan bersama papi endut/uwi :)
18 Maret 2012
H264 Streaming Dengan Lighttpd
Selama ini saya menggunakan file-file yang berformat untuk streaming
FLV
untuk streaming video LAN
. Sayangnya ada beberapa video bagus tapi berformat MP4
, nah permasalahannya bagaimana jika ingin menggunakan file berformat MP4
. Berikut saya akan share beberapa caranya, seperti biasa saya bertanya ke Google
, akhirnya dapet juga trik jitu.
Saya menggunakan Lighttpd
H264
MP4
-nya. Untuk mempercepat produktifitas saya menggunakan ports
saja.
Install Lighttpd
via ports
(Cukup dibuild
saja).root:~# cd /usr/ports/www/lighttpd
root:/usr/ports/www/lighttpd# make
Download module versi terakhir:root:~# fetch http://h264.code-shop.com/download/lighttpd-1.4.18_mod_h264_streaming-2.2.9.tar.gz
root:~# tar zxvf lighttpd-1.4.18_mod_h264_streaming-2.2.9.tar.gz
root:~# cd lighttpd-1.4.18/src/
root:~# cp mod_h264_streaming.c /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp mod_streaming_export.h /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp moov.c /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp moov.h /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp mp4_io.c /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp mp4_io.h /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp mp4_reader.c /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp mp4_reader.h /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp mp4_writer.c /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp mp4_writer.h /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp mp4_process.c /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp mp4_process.h /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp output_bucket.c /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp output_bucket.h /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp output_mp4.c /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
root:~# cp output_mp4.h /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
Tambahkan Makefile.am
di /usr/ports/www/lighttpd/work/lighttpd-1.4.30/src/
lib_LTLIBRARIES += mod_h264_streaming.la
mod_h264_streaming_la_SOURCES = mod_h264_streaming.c \
mod_streaming_export.h \
moov.c moov.h \
mp4_io.c mp4_io.h \
mp4_reader.c mp4_reader.h \
mp4_writer.c mp4_writer.h \
mp4_process.c mp4_process.h \
output_bucket.c output_bucket.h \
output_mp4.c output_mp4.h
mod_h264_streaming_la_CFLAGS = $(AM_CFLAGS) -DBUILDING_H264_STREAMING
mod_h264_streaming_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
mod_h264_streaming_la_LIBADD = $(common_libadd)
Lakukan penginstalan Lighttpd
root:/usr/ports/www/lighttpd# make install clean
Edit/tambahkan option yang diperlukan untuk lighttpd.conf
root:~# vim /usr/local/etc/lighttpd/lighttpd.conf
server.modules = (....................
"mod_h264_streaming",
....................
)
# MP4 streaming
h264-streaming.extensions = ( ".mp4" )
Edit dan jalankan startup script
root:~# vim /usr/local/etc/rc.d/lighttpd
Edit : ${lighttpd_enable="NO"}
menjadi : ${lighttpd_enable="YES"}
root:~# /usr/local/etc/rc.d/lighttpd start
root:~# ps ax | grep lighttpd
72915 ?? S 0:00.74 /usr/local/sbin/lighttpd -f /usr/local/etc/lighttpd/lighttpd.conf
9444 p0 S+ 0:00.00 grep lighttpd
03 Februari 2012
Pembangunan Kuburan Mami
Secara pribadi aku sudah tidak ada budget untuk pembangunan ini, tapi Tuhan tau kondisi keuangan keluarga kami. Puji Tuhan, akhirnya tepat pada waktunya berkat selalu ada meskipun kondisi seperti ini. Kami sekeluarga memutuskan pembangunan kuburan ini sesederhana mungkin. Pada akhir Januari 2012 pembangunan dimulai, ada beberapa foto-fotonya dan konsep tulisan untuk batu nisan (Bongpay).
Konsep Bongpay.
Lambang salib dibikin lebih lebar rationya.
Dingding tanpa besi, ditujukan agar lebih awet (Besi sering karatan kalo sudah tahunan).
Untuk tempat kembang cukup di bagian kaki saja, biar nantinya bekas-bekas bunga tidak merusak pemandangan.
Tampak dari atas.
Tampak dari samping.
Tembok bagian belakang.
02 Februari 2012
Bikin Mirror Update Kaspersky Antivirus
Sering kali kita direpotkan dengan update Kaspersky Antivirus yang cukup makan waktu, ditambah koneksi yang lemot mungkin bikin anda pegel-pegel. Banyak aplikasi yang memudahkan untuk kebutuhan ini, tapi saya mencoba dengan cara lain ( Yang ada di otak saya.baca ) dan terbilang cara ini manual, tapi cukup ampuh dan sederhana. Pertama-tama untuk kebutuhan ini perlu anda siapkan:
Diasumsikan webserver sudah ready ( Saya menggunakan Lighttpd under FreeBSD ), saya coba memonitor path file apa saja yang diperlukan untuk update Kaspersky Antivirus 2011, anda bisa menggunakan bitanalyzer, tcpdump, URLSnooper, Wireshark dsb. Setelah itu saya coba bikin
script
sederhana:budsz:~$ mkdir kav ; cd kav
budsz:~/kav$ cat kav.sh
#!/bin/sh
WGETBIN="wget -m -nH -N -R *.html"
BASEURL="ftp://dnl-00.geo.kaspersky.com"
CURDIR="/home/budsz/kav"
cd $CURDIR
for LISTDIR in \
AutoPatches/kav11 \
bases/apu \
bases/av/ark \
bases/av/emu \
bases/av/kdb/i386 \
bases/av/qscan \
bases/av/wa \
bases/blst \
bases/dnscln \
bases/ids \
bases/info \
bases/klifppcfg \
bases/ksn \
bases/pdm \
bases/sco/i386/win \
bases/ssa \
bases/sw2 \
bases/uds \
bases/upd \
bases/vlns \
bases/wmuf \
diffs/bases/apu \
diffs/bases/av/emu/i386 \
diffs/bases/av/kdb/i386 \
diffs/bases/blst \
diffs/bases/dnscln \
diffs/bases/klifppcfg \
diffs/bases/ksn \
diffs/bases/pdm \
diffs/bases/sco/i386/win \
diffs/bases/uds \
diffs/bases/wmuf \
index
do
# Looping untuk downloading
$WGETBIN $BASEURL/$LISTDIR
echo "----------------------------------"
echo " Mirroring beres untuk: "$LISTDIR
echo "----------------------------------"
done
# Hapus file '.listing'
find . -name ".listing" -delete
Script itu diberi nama kav.sh
, lalu disimpan di directory kav
. Setelah itu dijalankan secara automatic dengan menggunakan cron
:budsz:~$ crontab -l
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/root/
SHELL=/bin/sh
MAILTO=""
HOME=/var/log
0 7 * * * /home/budsz/kav/kav.sh > /dev/null
Setiap jam 7.00 melakukan update dengan main server. Biar lebih enak dilihat, anda bisa bikin virtual domain/host di lighttpd.conf/code>:
$HTTP["host"] =~ "av\.example\.net" {
dir-listing.exclude = ( "favicon.ico" )
server.document-root = "/home/budsz/kav"
}
Dan A Record
atau CNAME
di Bind
:
budsz:~$ host av.example.net
av.example.net has address 172.16.135.145
Setelah selesai tinggal arahkan setting update server pada Kaspersky Antivirus:
- Setting.
- Update Setting.
- Update Source.
- Isikan http://av.example.net/ ( Checklist ).
- Jangan lupa unchecklist Kaspersky Lab Update Server.
15 Januari 2012
PF Dilema Rules
Saya mempunyai PF rules spt ini di /etc/pf.conf:
porthttp = "80" # HTTP Port
portsquid = "7080" # Squid Port
ifint0 = "rl0" # Ethernet ke LAN
rdr pass on $ifint0 proto tcp from 192.168.0.0/24 to any port $porthttp -> $ipproxy port $portsquid
Rules diatas berguna untuk Redirection (RDR)/Transparent Proxy. Lalu saya mempunyai rules spt ini:ipwebmodem = "{ 10.0.0.1/32, 10.1.0.1/32 }"
block in quick on $ifint0 proto tcp from 192.168.0.0/24 to $ipwebmodem port = 80
Hasil: block rules ke 2 tidak akan bekerja alias tidak akan keblock. Jika rules diatas dituker tentu tidak akan bisa karena Statement Order tidak valid. Cara ini bisa diakali dengan menambahkan Exception (Pengecualian) menggunakan table unproxy pada RDR rules, sehingga rules menjadi:
table { 0.0.0.0/0, !10.0.0.0/30, !10.1.0.0/30 }
porthttp = "80" # HTTP Port
portsquid = "7080" # Squid Port
ifint0 = "rl0" # Ethernet ke LAN
rdr pass on $ifint0 proto tcp from 192.168.0.0/24 to port $porthttp -> $ipproxy port $portsquid
ipwebmodem = "{ 10.0.0.1/32, 10.1.0.1/32 }"
block in quick on $ifint0 proto tcp from 192.168.0.0/24 to $ipwebmodem port = 80
Langganan:
Postingan (Atom)