Category Archives: UNIX Like

Lebih Dekat dengan Program Brackets ‘[‘ di GNU/ Linux

Untuk pengguna GNU/ Linux, ada hal menarik dalam direktori /usr/bin di distro yang kita gunakan. Program brackets ‘[‘ yang lebih kita kenal saat aktifitas scripting di shell (misalnya saat menggunakan kondisi if di script) dapat kita temukan pada direktori /usr/bin . Mari mengenal lebih dekat dengan program brackets tersebut.

Berkas aneh tersebut merupakan bagian dari GNU Coreutils, yang jika saya baca dari sumbernya langsung GNU , merupakan sebuah ekspresi kondisi yang mengembalikan nilai salah atau benar (true or false) dari kondisi yang didefinisikan.

returns a status of 0 (true) or 1 (false) depending on the evaluation of the conditional expression expr

Nilai tersebut sangat penting jika kita membutuhkan nilai keluaran yang akan di proses lebih lanjut. Mari kita coba buktikan dengan menuliskan ‘[‘ pada shell. Maka keluaran yang akan diperoleh adalah :
$ [
-bash: [: missing `]’

Hal tersebut karena kita menggunakan fungsi fasilitas built in shell. Coba kita analisis lebih jauh dengan mengidentifikasi file tersebut :
$ type [
[ is a shell builtin

Implementasi

Pertama-tama kita coba dengan menggunakan brackets penutup (dengan menggunakan spasi dan tanpa spasi)
$ [ ]
$ []
-bash: []: command not found

Berikutnya akan kita uji dengan informasi sebagai berikut: Setiap program ‘[‘ akan mengembalikan nilai (exit status) yang dapat dievaluasi dengan parameter : ‘$?’ . Dimana nilai kembalian 0 adalah benar dan 1 adalah salah.
Kita uji dengan penggunaan argumen -e <file> apakah suatu file ditemukan atau tidak :
$ [ -e /hary ]
$ $?
-bash: 1: command not found

$ [ -e /usr/bin/df.exe ]
$ $?
-bash: 0: command not found

Fungsi ‘[‘ ini juga dapat bekerja pada string seperti pengujian apakah sebuah string lebih dari Nol (Ada) atau string sama dengan Nol atau String sama dengan kosong (Null). Berikut pengujiannya :
$ [ -n “Ada string” ]
$ $?
-bash: 0: command not found

$ [ -n “” ]
$ $?
-bash: 1: command not found

$ [ -z “” ]
$ $?
-bash: 0: command not found

$ [ -z “Ada string” ]
$ $?
-bash: 1: command not found

Pengujian berikutnya membandingkan apakah dua string sama atau tidak. Berikut contohnya :
$ [ “tifosilinux” = “tifosilinux” ]
$ $?
-bash: 0: command not found

$ [ “tifosilinux” = “usmile” ]
$ $?
-bash: 1: command not found

$ [ “tifosilinux” != “tifosilinux” ]
$ $?
-bash: 1: command not found

Bagaimana perlakuannya dengan integer ?. Kita bisa uji dengan cara berikut :
$ [ 89 -eq 89 ]
$ $?
-bash: 0: command not found

$ [ 1 -eq 2 ]
$ $?
-bash: 1: command not found

$ [ 1 -ne 1 ]
$ $?
-bash: 1: command not found

Yang terakhir, kita bisa melakukan pengecekan apakah file ditemukan atau tidak :
$ [ -f /home/User25/reconnection.sh ]
$ $?
-bash: 0: command not found

$ [ -f /home/User25/mandrake.txt ]
$ $?
-bash: 1: command not found

Catatan tambahan :
Ada beberapa opsi selain -f untuk melakukan pengecekan file/ berkas, diantaranya :
-d : Pengecekan direktori
-b : Pengecekan blok file (seperti /dev/sda, etc)
-S : Pengecekan socker (seperti /var/run/acpid)
-r : Pengecekan file dapat di baca
-w : Pengecekan file dapat ditulisi
-x : Pengecekan file dapat di execute

Kustomisasi Packet Internet Groper (PING)

Kernel Hacking ??.. Saya pikir kita tidak perlu masuk hingga ke level kernel untuk bisa melakukan  kustom output pada saat melakukan request ping. Caranya ?..

Karena sebenarnya hal ini berjalan pada level applications. Paket yang digunakan pun hanyalah iputils-ping (saya menggunakan linux Knoppix untuk uji coba). Dengan sedikit modifikasi pada notifikasi di file C ( ping.c dan ping_common.c ).

Jadi, ditahap awal kita bisa purge binary aplikasi iputils dan menggunakan source iputils. Gunakan ‘alias’ atau berkas .bashrc atau profile-mu untuk dapat memanggil binary file dari ping.

Selamat Mencoba

Image

Mencari Format Assessment Security yang Baik

Image

SCREENSHOT

hary

Surveillance Camera – ZoneMinder

Judul yang saya tulis ini merupakan subject sewaktu saya masih aktif menyelesaikan laporan selama kuliah dulu. Bukan satu-satunya rekomendasi bagi yang ingin menggunakan cctv cam di linux, namun boleh di coba juga.

Kali ini aplikasi yang dirancang bangun tidak menggunakan basis rpm seperti dulu saat saya menggunakan openSuSE 11.2 emerald. Ubuntu mempermudah segalanya, hanya tinggal bagaimana kemahiran saat troubleshoot nya.

Gunakan repositori ke :
~# add-apt-repository ppa:iconnor/zoneminder
~# apt-get update && apt-get install zoneminder && apt-get install php5-cgi && a2enmod cgi && a2enmod rewrite && sed -i ‘s/var\/www/usr\/share\/zoneminder/g’ /etc/apache2/site-enabled/<config_file> && apt-get install v4l-utils

Pastikan informasi device kita peroleh di sistem, seperti width and height pixel dari cam yang digunakan :
zoneminderzoneminder2

Oh ya, pastikan juga nilai memori di sisi kernel (E.G : kernel.shmall = 268435456 dan kernel.shmmax = 268435456) mendukung aplikasi zoneminder ini dengan asumsi alokasi memori :
256MB : 256 *1024*1024
512MB : 512*1024*1024

*) ffmpeg sudah obsolete ya dude, gunakan avconv jika ada keperluan olah data streaming audio dan video

Selamat berkreasi & Happy GNU/ Linux

What’s Next ..

Ingin tau code yang akan atau sedang saya bangun ?.. tunggu di github ya 😉 .. see ya

Hary

‘Penjara’ untuk GNU/ Linux [Linux Jail]

Kembali.. knowledge di masa lalu namun perlu saya tulis juga di blog ini sebagai catatan dan pengingat. Tidak ada hal yg bisa ‘sempurna’ untuk di ingat bagi seorang yg dhoif dan mengidap dyslexia seperti saya ini *halah .

Jadi begini, terkadang kita tidak selalu bisa membuat orang melakukan kejahatan atau kesalahan di awal agar alibi nya dijadikan faktor agar ia dipenjara. Cukup dengan melihat bagaimana suatu hal berharga yang kita miliki agar tidak ‘tersentuh’ dan ‘dicolek2’, apalagi klw bukan muhrim nya [maka nya buruan nikah har.. *haduh >.< .. sama siapa ?.. sama yuki kato ? 😀 ]. -tulisan malam jadinya tidak fokus- . Maka mari kita proteksi data kita dari hal2 yg tidak kita inginkan dengan step teknis, singkat, padat, dan ‘kurang’ akurat berikut 😀 . Check these out.

1). Pastikan anda tahu sistem anda termasuk kategori 32 atau 64 bit .. hahaha (Lah kok ketawa 😀 ). Serius,.. ini untuk menentukan berkas2 yang ingin kita salin atau gunakan.
2). Unduh berkas jailkit di sini : http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz . Trims Om Oliver
3). Ekstrak, configure, compile dan install.
4). Set temporary variable hanya agar mudah dalam me-set konfigurasi direktori dan pastinya agar tulisan ini menjadi singkat 😀 . ~# D=/home/<nama_direktori>
5). mkdir -p $D
6). ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}
7). mkdir -p $D/dev/ && mknod -m 666 $D/dev/null c 1 3 && mknod -m 666 $D/dev/tty c 5 0 && mknod -m 666 $D/dev/zero c 1 5 && mknod -m 666 $D/dev/random c 1 8
8). chown root:root $D && chmod 0755 $D && ls -ld $D # <- to verify
9). mkdir -p $D/bin && cp -v /bin/bash $D/bin # Pada step ini adalah fungsi apa2 saja yg ingin kita berikan untuk user, apakah ia hanya di izinkan untuk listing/ copying atau lainnya. Jika tidak ingin repot, download script disini http://www.cyberciti.biz/files/lighttpd/l2chroot.txt , kemudian jadikan executable agar bisa di eksekusi.
10). ldd /bin/bash
11). mkdir -p $D/lib/ && mkdir -p $D/lib64/ && mkdir -p $D/lib/x86_64-linux-gnu/ && cp -v /lib/x86_64-linux-gnu/{libncurses.so.5,libtinfo.so.5,libdl.so.2,libc.so.6} $D/lib/
12). cp -v /lib64/ld-linux-x86-64.so.2 $D/lib64/
13). cp -va /lib/x86_64-linux-gnu/libnss_files* $D/lib/x86_64-linux-gnu/
14). adduser <Username>
15). cp -vf /etc/{passwd,group} $D/etc/ # Agar lebih aman (setelah prosedur jail ditulisan ini selesai), sisakan 2 baris terakhir yang berkaitan dg user2 jail saja, baik untuk passwd dan group
16). pada sshd_config , pastikan baris2 berikut ini aktif :

Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
##  Apply the chrooted jail to the user called tom and jerry ##
Match User <Username>
ChrootDirectory /home/<direktori>
## Allow sftp to chrooted jail ##
ForceCommand internal-sftp

17). service ssh restart
18). mkdir -p $D/home/<nama_direktori> && chown -R <Username>:<Username> $D/home/<nama_direktori>/ && chmod -R 0700 $D/home/<nama_direktori>/
19). Silahkan testing dg aplikasi client ftp atau sftp.
20). Eh iya, agar tidak ada yg marah.. saya menggunakan referensi nya di sini : http://www.cyberciti.biz/faq/debian-ubuntu-restricting-ssh-user-session-to-a-directory-chrooted-jail/
21). Yang terakhir, JANGAN EKSEKUSI PARAM DIATAS JIKA SAYA, ANDA, atau KITA TIDAK PAHAM . 

Kali ini tidak ada screenshot (tapi bukan berarti praktik ini hoax loh) . Lebih dikarenakan saya ‘lelah’ 😀

Reg.