Thursday, August 22, 2013

Aplikasi Sistem Informasi Akademik

Halo! Ketemu lagi di blog Tutorial Ubuntu Berbahasa Indonesia. Sudah beberapa hari ini saya absen posting dikarenakan kesibukan. Di postingan ini saya sedang tidak memiliki mood yang cukup untuk menulis, di postingan ini saya hanya akan promosi produk SIM Akademik yang digunakan ditempat saya bekerja. Barangkali anda sedang membutuhkan. hehehe

Sebenarnya saya sedang menjual beberapa aplikasi sistem informasi akademik. Aplikasi ini sudah diimplementasikan ditempat saya bekerja yaitu di Institut Manajemen Telkom. Jika anda adalah salah satu orang yang sedang membutuhkan aplikasi ini maka anda sedang berada dihalaman yang tepat. Saat ini saya mempunyai sistem informasi aplikasi akademik, sistem informasi aplikasi perpustakaan yang akan saya jelaskan dibawah.

GAMELAN
Secara umum, aplikasi di dunia pendidikan dapat dibagi menjadi 3, yaitu : 
  1. Aplikasi Akademik, yang terdiri dari :
    a. SIM Akademik
    b. SIM Knowledge Management
  2. Aplikasi Resource, yang terdiri dari :
    a. SIM Infrastruktur (Aset)
    b. SIM Human Resource
  3. Aplikasi Finance, yang terdiri dari :
    a. SIM Billing
    b. SIM Payment
    c. SIM Keuangan (General Ledger) Dan semua aplikasi tersebut saling terintegrasi dan mengakses pada Master Data yang sama, dan memiliki Management Report (Dashboard) yang fleksibel.

Sebuah platform teknologi yang memungkinkan organisasi mengimplementasi, mengintegrasi, dan mengkoordinasi proses bisnis yang mereka miliki secara flexible dengan Time to Market yang singkat. Mengapa aplikasi ini bernama gamelan? Jawabannya adalah, karena aplikasi ini berbasis framework yang dapat berkolaborasi dengan aplikasi-aplikasi lain. Didalamnya bukan hanya terdapat SIM Akademik tapi juga terdapat SIM Hrmis (Human Resource Sistem Information), SIM Knowledge Management, SIM Infrastruktur. Semuanya disatukan didalam sebuah aplikasi berbasis single sign onKelebihan dari Gamelan itu sendiri adalah dapat mengakomodasi semua kemungkinan proses bisnis, tanpa perlu melakukan perubahan script, namun hanya konfigurasi dan setting. Misalnya jika anda menginginkan seorang user hanya dapat mengakses fitur-fitur tertentu, anda sebagai administrator hanya tinggal memberikan batasan-batasan privileges untuk user tersebut via aplikasi, tidak perlu melakukan perubahan script yang membingungkan. Selain itu juga Gamelan ditargetkan untuk Delivery Time to Market yang minimum (hour based).
Referensi:
  1. TAM (Telecommunication Application Map)
  2. ITIL (IT Infrastructure Library)
  3. COBIT (Control Objectives for Information and Related Technology)
  4. ITGI (IT Governance Institute)

infrastruktur aplikasi akademik gamelan
Infrastruktur SIM Akademik Gamelan
Semua aplikasi konsumer (satelit) mengacu pada basis data yang terintegrasi dalam Masterdata untuk menjaga reliabilitas dan integritas data, dan memberikan kemudahan dan keleluasaan dalam melakukan update dan maintenance data sehingga bisa dimanfaatkan untuk pelaporan baik ke pihak manajemen maupun ke pihak luar. Proses bisnis end-to-end didesain sebagai berikut :

proses_bisnis_aplikasi_akademik_gamelan
Proses Bisnis SIM Akademik Gamelan
SIM Akademik, SIM Knowledge Management, SIM Infrastruktur, dan HRMIS berkolaborasi sesuai peruntukannya dan terintegrasi dalam Single Sign On dengan Masterdata dan masing-masing dapat menerbitkan tagihan (invoice) kepada SIM Finance modul Billing untuk dapat diproses lebih lanjut ke modul Payment agar bisa dilakukan transaksi keuangan melalui Bank maupun Collecting Agent.

customer_view_sim_akademik_gamelan
Customer View SIM Akademik Gamelan
Untuk informasi dasar mengenai harga, aplikasi ini di bandrol seharga Rp. 50.000.000,- (nego). Harga tersebut sudah termasuk biaya installasi dan akomodasi. Dimanapun lokasi anda, jika anda berminat pada aplikasi ini pihak kami siap untuk segera meluncur ke lokasi anda.
Untuk informasi lebih lanjut silahkan hubungi saya via email di : apocalypsix@gmail.com

Tuesday, August 13, 2013

System Monitoring Di Linux Ubuntu

Hiyaa... Kita bertemu lagi di blog Tutorial Linux Untuk Pemula, Sekarang saya akan berbagi pengalaman yang baru saya alami hari ini. Artikel ini sebenarnya tidak akan membahas tentang tools apa saja yang bisa kita pakai untuk monitoring sistem server. Saya hanya akan mengklarifikasi beberapa persoalan yang ternyata, bukan hanya saya yang pernah mengalaminya. Artikel ini hanya akan menjelaskan tentang perbedaan output dari top, free dan htop di linux. Entah anda pernah mengalaminya atau belum tapi saya rasa informasi ini akan cukup membantu.

Saya terbiasa melihat resource consumption server saya dengan htop, output dari htop adalah seperti ini :
output htop di ubuntu
htop
Anda lihat pada bagian Mem, saya memberikan kotak merah untuk menunjukkan ram usage dari server saya. Ternyata jika kita melihat ram usage di top, hasilnya akan berbeda. Pada top hasilnya seperti ini :
output top di linux ubuntu
top
Saya bingung kenapa bisa seperti ini, Silahkan lihat pada bagian Mem, disana disebutkan bahwa RAM usage adalah 1606832k dari 2050904k. Artinya dari 2 GB RAM yang ada, yang dipakai adalah sekitar 1,6 GB. Padahal htop menunjukkan bahwa yang terpakai hanyalah 428 MB. Membingungkan bukan?

Setelah saya mencari-cari informasi, ternyata keduanya menunjukkan hasil yang benar. Tidak ada kekeliruan dari hasil keduanya. Hanya saja yang terjadi adalah metode pembacaan yang bebeda sehingga menunjukkan hasil yang berbeda pula. Penjelasannya :

[ linux meminjam free ram untuk disk cached ]
Hal ini membuat RAM yang sebenarnya tidak dipakai oleh aplikasi TAPI dipinjam oleh disk cached dianggap telah terpakai oleh system. Pada akhirnya akan tampak RAM server anda LOW CRITICAL namun sebenarnya tidak. Semuanya baik-baik saja!


[ kenapa begitu? ]
Disk Caching membuat system bekerja lebih cepat! Tidak ada yang salah, kecuali untuk para pemula seperti saya. Ini sebenarnya tidak memakan RAM yang akan digunakan oleh aplikasi.


[ bagaimana jika kita akan menjalankan aplikasi lain? ]
Jika aplikasi anda lebih membutuhkan RAM. Linux akan mengembalikan Free RAM yang dipinjam oleh disk cache. Anda tidak akan kekurangan RAM!


[ apakah kita membutuhkan tambahan swap? ]
Tidak perlu, disk caching hanya meminjam RAM yang tidak digunakan sama sekali oleh aplikasi apapun. Ini tidak akan menggunakan swap. Jika aplikasi membutuhkan tambahan RAM, mereka hanya akan mengambil kembali dari disk cache. Mereka tidak akan mempermasalahkan swapping.


[ Bagaimana agar linux berhenti melakukan ini? ]
Anda tidak bisa men-disable disk caching. Satu-satunya alasan semua orang ingin men-disable disk caching adalah karena mereka pikir ini memakan RAM dan membuat aplikasi kekurangan RAM! Disk cache membuat aplikasi-aplikasi berjalan lebih cepat dan lebih halus, tapi disk cache TIDAK PERNAH memakan RAM yang akan digunakan oleh aplikasi. Jadi, tidak ada alasan tepat untuk men-disable disk cache.


[ mengapa TOP dan FREE mengatakan semua RAM kita digunakan padahal tidak? ]
Ini hanya kesalahpahaman istilah. Antara anda dan Linux setuju bahwa RAM yang telah dipakai oleh aplikasi disebut "DIPAKAI", sementara RAM yang tidak digunakan untuk apapun adalah "TIDAK DIPAKAI".

Anda mengatakan RAM "TIDAK DIPAKAI", tapi linux mengatakan ini "DIPAKAI"

RAM yang....Anda menyebutnyaLinux menyebutnya
dipakai oleh aplikasi Dipakai Dipakai
available untuk aplikasi, digunakan untuk sesuatu TIDAK DIPAKAI DIPAKAI
tidak digunakan untuk apapun TIDAK DIPAKAI TIDAK DIPAKAI

"Sesuatu" disini adalah apa yang top dan free sebut "buffers" dan "cached". Sejak anda dan terminologi Linux berbeda, anda beranggapan bahwa anda kekurangan RAM, padahal tidak.


[ Bagaimana kita melihat seberapa banyak RAM yang tidak dipakai? ]
Untuk melihat seberapa banyak RAM yang tidak dipakai oleh aplikasi, run free -m dan lihat pada row baris yang ada tanda "-/+ buffers/cache". Pada kolom free, itu jawaban dalam format Megabytes.

$ free -m
total used free shared buffers cached
Mem: 1504 1491 13 0 91 764
-/+ buffers/cache: 635 869
Swap: 2047 6 2041
$

Jika anda tidak tau bagaimana membaca angka, anda akan berpikir RAM telah digunakan sebanyak 99% ketika sebenarnya yang terpakai adalah 42%.

Itulah mengapa hasil terminologi TOP berbeda dengan HTOP dan FREE. Karena HTOP dan FREE tidak membaca RAM yang dipinjam oleh disk caching sebagai RAM yang terpakai.

Sampai disini, saya pikir keraguan saya terjawab. Semoga anda juga :)
Semoga artikel ini dapat bermanfaat,

Salam penguin! :)

Sunday, August 11, 2013

Perintah-Perintah Dasar di Linux Ubuntu (Part 2)

Hiya, bertemu lagi dengan saya di blog Tutorial Linux Untuk Pemula. Pada postingan sebelumnya saya sudah menuliskan banyak perintah-perintah dasar di linux (part 1). Pada postingan ini saya akan melanjutkan tugas saya berbagi dengan anda, blog ini adalah lanjutan dari postingan saya sebelumnya karena masih banyak perintah-perintah yang harus anda ketahui di linux. Oke langsung saja ya :D


[ cat ]
Teman kita yang satu ini bernama cat, tapi bukan kucing ya! :D untuk singkatannya saya juga tidak tau apa, tapi yang pasti cat bisa kita gunakan untuk melihat isi file tanpa harus membuka file tersebut. Cara penggunaan :
root@apocalypsix:# cat blogging.txt
Perintah diatas akan menampilkan isi dari file blogging.txt tanpa harus membukanya.


[ tail ]
Selanjutnya ada tail, biasanya tail digunakan untuk mengikuti perkembangan dari sebuah file secara real time. Seperti misalnya pada file access.log milik apache. Jika server anda adalah termasuk server yang sibuk dari transaksi web, log nya akan tersimpan di dalam file access.log. Dan kita bisa mengikuti perkembangan file tersebut secara real time. Cara menggunakan :
tail -f /var/log/apache2/access.log

[ tar ]
Yang selanjutnya adalah tar. Tar digunakan untuk mengkompress sebuah file, jika di windows mungkin tar mirip dengan winrar, tapi dari segi kompresi saya rasa tar lebih baik daripada winrar :D Cara mengkompres file tar di linux :
tar cf /path/anda/menyimpan/file.tar /path/file/yang/akan/anda/kompres
Sebenarnya ada banyak parameter pada perintah tar. Untuk melihat lebih jelasnya silahkan  lihat dengan mengetikkan perintah tar --help


[ fsck ]
Selanjutnya ada fsck. FSCK berfungsi sebagai file system checker, kadang perintah ini harus kita gunakan ketika file system kita mengalami crash.


[ locate ]
Teman kita yang selanjutnya bernama locate. Biasanya digunakan untuk mencari file di linux. Cara mencari file di linux :
locate access.log
Perintah diatas adalah mencari file access.log. Outputnya akan menampilkan path dimana file access.log tersimpan.


[ mount ]
Selanjutnya ada mount. Digunakan ketika kita mau melakukan mount harddisk external di linux, mount flashdisk di linux, atau mount partisi windows di linux. Perintah ini memiliki halaman khusus di blog saya, jika anda berminat mempelajarinya juga silahkan klik disini. Cara penggunaannya sudah ada di artikel tersebut.


[ ifconfig ]
Teman kita yang selanjutnya adalah ifconfig. Digunakan untuk mengkonfigurasi networking di linux. Tapi jika perintah ini di eksekusi tanpa parameter lain maka yang tampil adalah konfigurasi networking yang sudah terpasang di system anda. Memperlihatkan status Network Interface Card, memperlihatkan juga konfigurasi yang sudah terpasang didalamnya. Untuk mengkonfigurasi networking di linux anda bisa melakukannya di file /etc/network/interfaces. Tinggal edit file tersebut dengan editor nano.

Baiklah, menurut saya sesi untuk tutorial perintah-perintah dasar di linux cukup sampai artikel ini. Sebenarnya dari setiap perintah kita bisa mengkombinasikannya dengan perintah-perintah lain. Saya yakin seiring berjalannya waktu anda akan semakin terbiasa dan berteman semakin dekat dengan mereka! Seperti biasa, saya mengingatkan jika anda mengalami kesulitan di linux anda bisa menanyakannya kepada saya dengan menuliskannya di komentar. Saya pasti akan segera merespon. Berbagi pengalaman tidak akan membuat kita rugi, justru sebaliknya. Akan menambah wawasan kita! Semoga artikel-artikel di blog Tutorial Linux Untuk Pemula ini dapat memberikan kontribusi kepada anda yang mulai belajar dunia linux dan dunia CLI.

Salam Penguin! :)

Saturday, August 10, 2013

Perintah-Perintah Dasar di Linux Ubuntu (Part 1)

Haik! Saya tidak absen lagi sekarang untuk memposting artikel di blog Tutorial Linux Ubuntu Berbahasa Indonesia ini. Bicara mengenai hal-hal yang berat, saya jadi lupa kalau mungkin diluar sana banyak para newbie yang masih belajar linux seperti saya yang masih sangat asing dengan perintah-perintah dasar di linux. Untuk itulah saya menulis artikel ini, karena perintah-perintah di linux ini akan sangat diperlukan untuk pengoperasian kedepannya. Oke, langsung saja kita absen mereka satu per satu! :)

[ sudo ]
Makhluk pertama ini bernama SUDO. Mungkin jika anda browsing tutorial-tutorial linux di website lain dan menemukan makhluk ini diawalan sebuah perintah anda akan bertanya-tanya.."mahluk apakah ini?" :D
Saya perkenalkan ya...sudo adalah singkatan dari Super User DO. Artinya, mendeklarasikan bahwa yang akan memberi perintah adalah Super User atau lebih familiarnya Administrator. Contoh :
sudo apt-get installa apache

[ apt-get ]
Yang kedua adalah makhluk bernama apt-get. Ini singkatan dari Aptitude-get. Digunakan ketika kita mau menginstall sebuah paket di linux. Jika mau menginstall contohnya sama dengan contoh pertama. Tapi jika anda mau me-uninstall paket. maka perintahnya jadi seperti ini :
sudo apt-get remove apache
Atau bisa juga dengan ini, cara uninstall paket dengan lengkap
sudo apt-get remove --purge apache


[ ls ]
Teman kita yang selanjutnya bernama ls. Digunakan untuk menampilkan list file atau direktori di linux. Untuk atributnya, silahkan lihat dengan mengetikkan perintah ls -h (help page). Tapi output dari ls tanpa atribut lainnya kadang tidak membantu. Biasanya saya menambahkan atribut -lah untuk melihat siapa ownernya, dan berapa ukurannya (readable format).


[ Grep ]
Selanjutnya, ada GREP. Makhluk ini berguna untuk memfilter list file atau direktori yang ditampilkan ls sesuai dengan pola yang kita tentukan. Misalnya, dalam sebuah folder ada banyak file dengan berbagai macam ekstensi, dan kita hanya akan menampilkan ekstensi *.txt saja. Perintahnya adalah :
ls -lah | grep *.txt
Output dari perintah diatas adalah menampilkan list file yang berekstensi *.txt saja. Tidak lebih. Grep juga bisa digunakan dengan pola lain, misalnya berdasarkan nama file yang mengandung "xxx". Contoh :
ls -lah | grep UPDATE
Outputnya adalah semua file atau direktori yang mengandung kata "UPDATE" akan dimunculkan.


[ awk ]
Berikutnya adalah AWK. Saya pernah memposting mengenai AWK ini lebih spesifik, Tutorial awk di linux. Saya menganggap awk sebagai adik sepupu-nya grep. kenapa? karena secara fungsional keduanya bisa dikatakan mirip. Jika grep memfilter list file atau direktori berdasarkan pola, maka awk dapat memfilter content didalam sebuah file berdasarkan pola yang kita buat, dan membaca content file tersebut sebagai variable. Keren bukan? Untuk penjelasan dan praktek-nya silahkan mampir ke link yang saya cantumkan diatas.


[ rm ]
Selanjutnya ada rm. Dari inisialnya, mungkin sudah tau lah ya apa singkatannya? :D Jika tidak bisa menebak baiklah, singkatannya adalah remove. Fungsinya? Tidak perlu saya jelaskan kan? haha. Tapi ada bedanya antara menghapus file, atau menghapus direktori. Sedikit kok! Tapi baiklah, jika anda tidak mau susah, saya berikan contoh :D
Untuk menghapus file cukup dengan :
rm namafile 
Untuk menghapus direktori :
rm -rf namafolder

[ iptables ]
Selanjutnya ada teman kita yang bernama IPTABLES. Jangan mau memakai linux jika anda tidak mau berteman dengan iptables, karena resikonya cukup krusial menurut saya. Kenapa? Server anda perlu diberikan firewall untuk pengamanan, dan iptables bisa sangat membantu anda  secara cuma-cuma untuk melindungi data-data berharga anda dari para hacker cecunguk! hahaha. Penggunaannya sudah saya jelaskan disini konfigurasi iptables di linux


[ nano ]
Saya punya teman bernama Ano. Tapi bukan teman saya yang saya maksud disini.hahaha ini mau ngasih tutorial atau promosi teman! Tapi kata ibunya dia ganteng loh! hahaha bukan menurut saya loh! :P Oke kembali ke topik, nano digunakan untuk editor file. Jika anda mau membuat file maka nano inilah yang kita gunakan sebagai editor. Bukan ano ya :p
nano biodata_ano
Begitulah kurang lebih contohnya :D


[ rsync ]
Tidak tau ya,  tapi sepertinya rsync teman kita yang satu ini cukup dekat dengan mirroring. Tapi sebenarnya dia sangat efektif untuk transfer / copy file berukuran besar yang tujuannya bukan untuk mirroring. Sebelumnya juga saya sudah menuliskan kisah mengenai rsync ini. Saya compare kisahnya dengan kisah scp. :D rsync membuat transfer / copy file berukuran besar jadi lebih cepat dan mudah, untuk mengetahui kisahnya, silahkan klik bukan disini, tapi di cara cepat mencopy dan mentransfer file di linux.

@#$!@#)#($&(*@#$&(*&(@*#)@#*#*)(@&%(*#&$*(*$&(*#)@*#)!*#&(*&%)@*$)@*$_(_)!(#_&)#%*)@#*$

Saya mulai banyak melantur di artikel ini, disebabkan karena tidak bisa tidur sejak semalam dan memutuskan untuk blogging semalam suntuk. Dan sekarang saya ngantuk bukan main @___@
Saya rasa cukup untuk pagi ini, semoga perintah-perintah dasar di linux ini bisa menjadi akrab dengan keseharian anda. Percaya saya, mereka semua menyenangkan meskipun pada awalnya sangat menjengkelkan! #makin parah ngelanturnya -__-
Artikel ini akan saya sambung, karena cukup banyak yang akan saya sampaikan mengenai perintah-perintah dasar di linux yang harus anda ketahui.

Oke, saya cukupkan sekian.

Selamat pagi,
Salam Penguin! X_x

Friday, August 9, 2013

Cara Mount NTFS di Linux

Hiyaa.....Ketemu lagi di blog Tutorial Linux Ubuntu Berbahasa Indonesia. Sudah beberapa hari saya absen posting karena kesibukan sehari-hari saya. Sekarang di artikel ini saya akan membagikan pengalaman saya tentang bagaimana cara mount file system ntfs di linux atau bagaimana cara mount harddisk external / flashdisk di linux. Kasus ini biasanya sering ditemui oleh newbie yang baru pertama kali memakai linux seperti saya. Hal ini juga cukup rumit loh untuk para newbie ketika awal-awal memakai linux. Tapi setelah membaca artikel ini anda tidak perlu pusing lagi :D

Sebelum anda melakukan mounting, pastikan anda tau indentitas device storage anda. Caranya ketikan perintah dibawah ini :
fdisk -l
Outpunya akan seperti ini :
root@apocalypsix:/home/apocalypsix# fdisk -l

WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x90909090

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          63   976768064   488384001   a5  FreeBSD

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e8382

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      499711      248832   83  Linux
/dev/sda2          501758   976771071   488134657    5  Extended
/dev/sda5          501760   976771071   488134656   8e  Linux LVM

Disk /dev/mapper/gamelan-root: 497.7 GB, 497662558208 bytes
255 heads, 63 sectors/track, 60504 cylinders, total 971997184 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/gamelan-root doesn't contain a valid partition table

Disk /dev/mapper/gamelan-swap_1: 2134 MB, 2134900736 bytes
255 heads, 63 sectors/track, 259 cylinders, total 4169728 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/mapper/gamelan-swap_1 doesn't contain a valid partition table

Disk /dev/mapper/cryptswap1: 2134 MB, 2134900736 bytes
255 heads, 63 sectors/track, 259 cylinders, total 4169728 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5c311fea

Disk /dev/mapper/cryptswap1 doesn't contain a valid partition table
root@apocalypsix:/home/apocalypsix#
Lihat pada bagian yang saya beri warna hijau. Itu adalah harddisk kedua yang ada di server saya. Sedangkan yang warnanya biru, itu adalah harddisk primary tempat tersimpannya system.

Sebenarnya tidak begitu sulit melakukan mount ntfs di linux atau mount harddisk external / flashdisk di linux. Pertama kita siapkan dan buat dulu sebuah folder di /media/ atau bisa juga /mnt/. Misalnya, hasil mount akan disimpan di folder /mnt/hdd2, maka buatlah folder di /mnt/
mkdir /mnt/hdd2
Selanjutnya, untuk melakukan mount /dev/sdb1 ke /mnt/hdd2, lakukan perintah ini :
mount /dev/sdb1 /mnt/hdd2
Dan selesai. kita sudah berhasil melakukan mounting NTFS di linux atau mounting harddisk external di linux / flashdisk.

Tapi terkadang ada beberapa distro linux yang tidak bisa membaca file system ntfs dengan ukuran yang besar. Saya pernah mengalami kegagalan ketika mau melakukan mount harddisk external di linux / flashdisk yang berukuran 2TB. Saya tidak tau pasti apa masalahnya, tapi akhirnya saya berhasil mengatasi kasus tersebut dengan menginstall sebuah tool linux. yaitu ntfs-3g. Cara installasi ntfs-3g tidak sulit, cukup lakukan perintah ini di linux anda.
sudo apt-get install ntfs-3g
Setelah menginstall ntfs-3g lakukan perintah mount diatas, dan andapun tidak akan bermasalah lagi dengan ini. Berapa besarpun ukurannya, anda akan bisa melakukan mount harddisk external di linux / flashdisk. Cara melihat daftar partisi di linux, termasuk partisi dengan file system NTFS yang di mounti anda bisa melihatnya dengan perintah ini :
df -h
Pada server saya, outputnya seperti ini :
imtmanager@gamelan:~$ df -h
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/gamelan-root  463G   14G  427G   4% /
udev                      993M  4.0K  993M   1% /dev
tmpfs                     401M  308K  401M   1% /run
none                      5.0M     0  5.0M   0% /run/lock
none                     1002M  4.0K 1002M   1% /run/shm
/dev/sda1                 228M   27M  190M  13% /boot
/dev/sdb1                 459G  482M  435G   1% /mnt/hdd2
Yang berwarna hijau adalah partisi harddisk kedua yang ada di server saya. Dengan perintah tersebut kita juga bisa melihat status storage kita dengan ukuran yang lebih readable.

Baiklah, saya rasa cukup untuk artikel tentang cara mount NTFS di linux, cara mount harddisk external di linux, cara mount flashdisk di linux. Seperti biasa, jika anda mengalami kesulitan jangan sungkan untuk menanyakannya pada saya dengan menuliskannya di komentar, dengan senang hati saya akan membantu memecahkan kesulitan anda. Sampai ketemu lain waktu di blog Tutorial Linux Berbahasa Indonesia.

Semoga bermanfaat,
Salam penguin! :)

Sunday, August 4, 2013

Multiple Binding Address MySQL Server di Linux Ubuntu Server

Saat ini saya memiliki sebuah server berbasis Ubuntu Server 12.04 yang terhubung dengan beberapa server lainnya untuk berintegrasi database, sebagian server adalah FreeBSD. Secara default mysql hanya akan meng-allow koneksi database dari localhost atau ip 127.0.0.1. Tentu hal ini akan menghalangi integrasi database dengan server lain, meskipun sudah di grant access tapi jika binding nya hanya ditujukan kepada localhost ya percuma.

Sebenarnya sangat riskan sekali jika binding ini dibuka untuk umum, tapi tidak mungkin juga jika saya egois untuk tidak membiarkan server-server lain berintegrasi database dengan yang lainnya. Lalu bagaimana solusinya? Metode yang saya terapkan adalah :
  • Multiple Binding Address Mysql
  • Grant Access for some IP
  • Pasang firewall
Perlu ditekankan jika kita membuka port MySQL untuk umum, maka harus ada firewall untuk membatasinya. Jangan pernah sekali-sekali membukanya tanpa memasang firewall karena sangat berbahaya.
Langkah pertama, buka file /etc/mysql/my.cnf
[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address          = 127.0.0.1
#
Yang saya beri warna merah adalah yang harus dirubah. Set menjadi 
bind-address          = 0.0.0.0
Pastikan tidak ada tanda # diawal baris. Jika sudah maka simpan dan close. Restart service mysql
service mysql restart

Langkah kedua adalah  adalah lakukan GRANT ACCESS kepada beberapa IP Address tertentu.
mysql> GRANT ALL ON nama_database.* TO 'user'@'host' IDENTIFIED BY 'password'
Lakukan GRANT ACCESS tersebut berulang-ulang dengan IP yang berbeda sesuai kebutuhan anda.

Langkah ketiga adalah memasang firewall. Pastikan hanya IP-IP atau host-host tertentu yang berhak berintegrasi dengan server mysql tersebut. Saya menggunakan iptables sebagai firewall. Blok semua trafik mysql kecuali yang datang dari IP 10.1.1.127,  10.1.1.128, 10.1.1.129.
## Blok semua koneksi ke port 3306 ##
/sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP
### Sekarang, allow 10.1.1.127, 10.1.1.128, and 10.1.1.129 ###
/sbin/iptables -A INPUT -p tcp -d 10.1.1.127 --dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -d 10.1.1.128 --dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -d 10.1.1.129 --dport 3306 -j ACCEPT
Atau
## Blok semua koneksi ke 3306 kecuali untuk tiga ip ini##
/sbin/iptables -A INPUT -p tcp --dport 3306 ! -d 10.1.1.127 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 3306 ! -d 10.1.1.128 -j DROP
/sbin/iptables -A INPUT -p tcp --dport 3306 ! -d 10.1.1.129 -j DROP

Sebagai pengamanan tambahan supaya port mysql tidak terlihat kalau difilter, anda bisa merubah default port MySQL (3306) menjadi berapapun yang anda mau. Konfigurasi ini ada didalam file /etc/mysql/my.cnf
[mysqld]
#
# * Basic Settings
#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306 <--------------- Rubah disini
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address          = 127.0.0.1
#
 Setelah selesai maka simpan file dan close. Restart service mysql
/etc/init.d/mysql restart

Saya rasa cukup untuk artikel tentang Multiple Binding Address MySQL Server di Linux Ubuntu Server, jika ada pertanyaan silahkan di tuliskan dikomentar. Dengan senang hati saya akan membantu permasalahan yang anda hadapi.

Semoga bermanfaat,
Salam Penguin :)

Saturday, August 3, 2013

Cara Mengganti Port SSH di Linux Ubuntu Server 12.04

Berapa banyak yang menganggap hal ini penting? Bagi saya, ini sangat penting sekali. Bagaimana tidak, semua orang yang mengerti linux juga sudah tau kalau port 22 adalah port SSH. Memang sih kita bisa mengkonfigurasi iptables untuk memfilter siapa saja yang berhak masuk via ssh, tapi tidak tahu ya..saya ini tipe orang yang paranoid :D

Semakin banyak lapisan keamanan bukankah akan lebih baik? Mindset itu yang selalu tertanam dalam diri saya. Bahkan saya sedang belajar bagaimana caranya memfilter SSH berdasarkan Mac Address, bukan IP Address. Tapi pada postingan kali ini saya akan memberi tahu bagaimana caranya mengganti default port SSH, ketentuan portnya port berapa itu terserah anda. Saya pribadi sih tidak pernah tanggung-tanggung, bisa 54030, bisa juga 4359, atau 2469 atau berapapun juga. setiap server saya buat supaya mempunyai port ssh yang berbeda-beda, kalau lupa ya saya lihat lagi catatan saya :D

Saya menggunakan Ubuntu Server 12.04 untuk server saya, mengapa ubuntu? alasannya karena saya sudah familiar dengan distro linux yang satu ini. pengoprasiannya tidak sesulit FreeBSD yang masih berbau UNIX yang kental. Okay, kita langsung saja mengubah port ssh di ubuntu server 12.04. Jika di server anda belum terinstall ssh server, berikut ini adalah cara menginstall ssh server di linux :
apt-get install openssh-server
Setelah selesai bukalah file ini :
/etc/ssh/sshd_config
Didalam file tersebut, tepat dibaris ke 5 adalah pendeskripsian port yang digunakan oleh service ssh.
# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22 <---------- Mengganti Port SSH di Linux Ubuntu Server 12.04
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
Supaya lebih jelas saya warnai bagian tersebut dan saya berika keterangan dengan warna mencolok. Pada umumnya jumlah port pada komputer itu terdiri dari 65536 port, banyak dari port-port tersebut tidak terbuka secara default. Port-port tersebut bisa diibaratkan seperti jendela atau pintu pada sebuah rumah. Dan setiap port memiliki fungsinya sendiri-sendiri. Dalam penggantian port ssh anda bisa mengubahnya menjadi port berapapun asal tidak lebih dari 65536. Setelah melakukan perubahan simpan file tersebut dan lakukan restart service ssh anda.
service ssh restart atau dengan perintah /etc/init.d/ssh restart
Setelah anda merubah default port ssh di ubuntu server 12.04, anda bisa coba scanning port dengan nmap atau dengan port scanning online di website ini untuk melihat apakah port 22 terbuka atau tidak. Untuk melihat history login di dalam ubuntu server anda bisa melihatnya di file /var/log/auth.log. Anda bisa mengikuti history ini dengan cara real time dengan perintah ini :
tail -f /var/log/auth.log
Sample outputnya tampak seperti ini :
Aug  2 08:32:01 laborate CRON[2002]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug  2 08:32:01 laborate CRON[2002]: pam_unix(cron:session): session closed for user root
Aug  2 08:33:01 laborate CRON[2009]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug  2 08:33:01 laborate CRON[2009]: pam_unix(cron:session): session closed for user root
Aug  2 08:34:01 laborate CRON[2019]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug  2 08:34:01 laborate CRON[2019]: pam_unix(cron:session): session closed for user root
Aug  2 08:35:01 laborate CRON[2030]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug  2 08:35:01 laborate CRON[2030]: pam_unix(cron:session): session closed for user root
Aug  2 08:36:01 laborate CRON[2038]: pam_unix(cron:session): session opened for user root by (uid=0)
Aug  2 08:36:01 laborate CRON[2038]: pam_unix(cron:session): session closed for user root
Sampai disini saya rasa cukup pada artikel Cara Mengganti Port SSh di Linux Ubuntu Server 12.04, server anda sekarang sudah lebih aman lagi. Jika anda memiliki permasalahan dan ingin bertanya, silahkan tuliskan di komentar. Dengan senang hati saya akan membantu :)

Untuk melihat video tutorial cara mengganti port ssh di linux ubuntu server silahkan klik disini

Semoga bermanfaat,
Salam penguin :)

Friday, August 2, 2013

Manajemen User Pada Linux Ubuntu Server 12.04

Seorang System Administrator tentunya harus mengetahui segala kegiatan atau kejadian apa saja yang terjadi pada server nya. Hal ini sangat penting karena kita mendapatkan amanat besar dari perusahaan dalam manajemen data center. Tentunya kita sebagai admin tidak bisa membiarkan orang-orang yang tidak mempunyai kepentingan masuk kedalam server kita begitu saja, oleh karena itu kita harus me-manage user yang ada pada server kita, kita harus memantau apa saja yang dilakukannya.

Perlu diketahui bahwa secara default user baru yang dibuat pada server linux kita, itu memiliki privileges 755. Artinya;
  • User = rwx (read, write, execute)
  • Group = rx (read, execute)
  • Other = rx (read,execute)
Bisa anda bayangkan jika kita adalah seorang sysad yang bekerja di perusahaan hosting yang memiliki client sekian banyak dengan user-nya masing-masing pada server kita? Apakah anda sadar, bahwa memberikan privileges 755 pada setiap user itu cukup riskan untuk server kita? Menurut saya ini cukup mengganggu ketenangan, dimana setiap user dapat saling melihat isi folder home satu sama lain? Untuk kasus ini, akan saya jelaskan langkah-langkah untuk mengatasinya.

Pada percobaan ini saya menggunakan Linux Ubuntu Server 12.04, saya akan menuliskan bagaimana cara me-manage user yang benar dalam server linux.
Berikut ini adalah perintah untuk membuat user baru pada linux
root@laborate:/home/apocalypsix# useradd panda
syntax diatas benar untuk membuat user baru bernama panda. Tapi tidak memberikan home directory kepada panda. Pembuatan user dengan cara diatas benar-benar tanpa atribut apapun seperti password, nama, dan atribut lainnya. Maka pada Linux Ubuntu Server 12.04 kita bisa membuat sebuah user lengkap dengan home directory, dan atribut lainnya. Perintahnya seperti ini :
root@laborate:/home/apocalypsix# adduser panda
Setelah menekan enter maka akan muncul seperti ini :
Adding user `panda' ...
Adding new group `panda' (1001) ...
Adding new user `panda' (1001) with group `panda' ...
Creating home directory `/home/panda' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for panda
Enter the new value, or press ENTER for the default
        Full Name []: John Paul
        Room Number []: 10
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y
Pada metode kedua ini, user panda diberikan home directory-nya sendiri, diberikan group juga, selain itu password juga harus di set saat itu juga. Singkat kata, privasi untuk panda secara default sudah cukup baik.

Cara menghapus user di linux ubuntu server 12.04 bisa dengan perintah ini :
root@laborate:/home# deluser panda
Removing user `panda' ...
Warning: group `panda' has no more members.
Done.
Atau bisa juga dengan perintah ini :
root@laborate:/home# userdel panda
Removing user `panda' ...
Warning: group `panda' has no more members.
Done.
Home directory tidak akan terhapus otomatis, jika mau kita bisa menghapusnya dengan cara manual. Karena user panda tidak memiliki member di group nya maka tampil seperti itu, jika user panda tersebut mempunyai member bagian "Warning: group `panda` has no more members" tidak akan muncul. User panda akan langsung dihapus begitu saja. namun dengan demikian bisa kita lihat yang terjadi setelah user panda dihapus, adalah seperti ini :
root@laborate:/home# ls -l
total 12
drwxr-xr-x 5 apocalypsix apocalypsix 4096 Jul 28 06:16 apocalypsix
drwxr-xr-x 2 kancil             1001 4096 Aug  2 05:30 kancil
drwxr-xr-x 2        1001        1001 4096 Aug  2 05:29 panda
Yang terjadi adalah User kancil tidak termasuk kepada group panda karena group panda sudah hilang bersama user panda yang saya hapus. 1001 adalah user id nya panda, user id akan tetap ada meskipun user nya sudah dihapus. 
Sekarang untuk pengaturan privileges. Ada baiknya kita tidak memberikan akses kepada kedua user tadi untuk dapat saling melihat isi home directory nya. Secara default keduanya berada pada group yang berbeda. Karena adanya "RX" pada privileges "OTHER" maka keduanya bisa saling melihat isi home directory. Saya pribadi tidak membiarkan hal itu terjadi, saya tidak memberikan privileges apapun kepada OTHER, karena saya tipe orang yang paranoid :P
Maka saya memberikan atribut pada home directory keduanya dengan 750. Artinya :
  • User = rwx (read, write, execute)
  • Group = (read, execute)
  • Other = NOTHING :D

Tapi bagaimana isi folder tersebut bisa ditampilkan dalam web page?

Pada awalnya saya juga berpikir seperti itu, tapi kemudian saya menemukan cara untuk dapat menampilkan isi home directory tersebut pada halaman web. Atribut RX kita hilangkan pada Other bukan berarti kita tidak bisa menampilkan web yang tersimpan dalam user tersebut. Untuk mengatasinya adalah mengubah group user tersebut menjadi www-data.

www-data adalah group milik apache. Jika home directory kedua user tadi dimasukkan kedalam group ini, maka otomatis website yang tersimpan didalamnya akan dapat ditampilkan pada browser karena file-file didalamnya selain milik user panda ataupun kancil, juga dimiliki oleh www-data. Perintah untuk mengubah group user di linux ubuntu adalah seperti ini :
root@laborate:/home# chgrp -R www-data panda
root@laborate:/home# ls -l
total 12
drwxr-xr-x 5 apocalypsix apocalypsix 4096 Jul 28 06:16 apocalypsix
drwxr-x--- 2 kancil      www-data    4096 Aug  2 05:39 kancil
drwxr-x--- 2 panda       www-data    4096 Aug  2 05:38 panda
Metode diatas menurut saya lebih aman ketimbang memberikan privileges apapun kepada OTHER. Selain itu, Jika user panda melakukan remote ssh, dia tidak akan bisa melakukan apapun pada home directory kancil. Begitu juga sebaliknya.

Saya masuk sebagai user panda dan akan masuk kedalam home directory kancil, tapi yang terjadi adalah seperti ini :
panda@laborate:/home$ cd kancil
-bash: cd: kancil: Permission denied
panda@laborate:/hom
e
User panda tersebut tidak diijinkan masuk kedalam folder kancil. Bahkan untuk melihat apa isinya pun akan tetap ditolak.
panda@laborate:/home$ ls kancil
ls: cannot open directory kancil: Permission denied
panda@laborate:/home$
Saya rasa cukup sampai disini untuk artikel kali ini. Untuk manajemen user pada linux ubuntu server 12.04 yang lebih dalam akan saya lanjutkan dilain waktu. Jika anda memiliki pertanyaan atau permasalahan silahkan tuliskan di komentar. Saya akan dengan senang hati membantu memecahkan masalah anda :)

Semoga bermanfaat,
Salam penguin! :)

Thursday, August 1, 2013

Perintah-perintah dasar Mysql di Linux

Sebenarnya perintah-perintah dasar mysql di linux ini akan berguna di sistem operasi apapun termasuk windows, mungkin hanya sedikit berbeda pada pen-deskripsian perintah saja. Jika anda adalah seorang System Administrator, maka jangan pernah berpikir anda bukanlah DB Admin ketika disuruh melakukan pekerjaan-pekerjaan yang sedikit berhubungan dengan database. Kemampuan inipun harus dipahami dan dimengerti oleh seorang System Administrator. Sebenarnya ada Phpmyadmin untuk melakukan pekerjaan-pekerjaan ini, tapi saya pribadi agak risih ketika bekerja dengan phpmyadmin. Karena tentu ruang database ini yang seharusnya berada di backend, berubah menjadi frontend. Seberapa kemungkinan akan bisa diretas? Sepertinya itu bergantung kepada nasib baik anda :)

Masuk Kedalam mysql

mysql -u <username> -p
Setelah kita menekan enter akan diminta password. Sebenarnya bisa memasukkan password langsung, caranya seperti ini
mysql -u <username> -p<password>


Cara Meng-export database


mysqldump -u <username> -p nama_database > /path/anda/menyimpan/hasil/export.sql
Sekali lagi, untuk password itu optional. Anda bisa langsung memasukkan seperti contoh pertama.


Cara Meng-import database


mysql -u <username> -p nama_database < /path/anda/menyimpan/file/yang/mau/diimport.sql

Cara Membuat user baru untuk mysql (Privileges)


Untuk langkah ini anda harus masuk terlebih dahulu kedalam mysql. Lalu selanjutnya ketik perintah ini

GRANT ALL ON nama_database.* TO ‘user’@’host’ IDENTIFIED BY ‘password’;

Contoh diatas adalah memberikan hak akses penuh kepada user baru yang anda buat dengan password yang anda berikan. Statement ALL untuk hak akses penuh, seperti READ, INSERT, DELETE, UPDATE. Anda bisa juga membatasi hak aksesnya dengan mengganti statement ALL menjadi SELECT. Dengan statement SELECT user baru yang anda buat hanya bisa melihat isi database. Tidak bisa melakukan INSERT, DELETE, UPDATE.

Statement .* diujung nama_database adalah menyatakan user tersebut berhak sepenuhnya atas semua tabel yang berada didalam database. Jika anda ingin membatasi sampai seberapa jauh hak akses user tersebut, anda bisa mengganti statement .* dengan .nama_tabel Contohnya :

GRANT ALL ON nama_database.nama_tabel TO ‘user’@’host’ IDENTIFIED BY ‘password’;

Jika anda ingin memberikan privileges sampai 3 atau 4 tabel, lakukan cara diatas berulang-ulang dengan nama tabel yang berbeda. Sesuaikan dengan kebutuhannya. Atau jika seandainya user tersebut hanya berhak melihat table-tabel tertentu, maka ganti statement ALL menjadi SELECT.

Selanjutnya statement host, ini mengindikasikan user tersebut berada dimana. Bisa di localhost, bisa diluar network (internet) atau didalam network (intranet). Cukup ganti host tersebut sesuai dengan kebutuhan anda.  Bisa diisi dengan domain, atau IP Address.  Host diluar localhost berarti anda harus merubah setting-an bind_address yang ada di file my.cnf. Kalau di Ubuntu file tersebut berada di /etc/mysql/my.cnf. Secara default bind_address hanya merujuk pada 127.0.0.1 atau localhost. Nah, rubah rule tersebut menjadi 0.0.0.0.

Cara Menghapus user mysql (drop privileges)


Jika sekiranya user yang anda buat sudah tidak pernah mengakses lagi, ada baiknya anda menghapus privileges dan usernya. Perintahnya seperti ini

DROP USER ‘user’@’host’;

Cara Mengubah password root mysql


mysqladmin -u root -p‘passwordlama’ password password_baru

Cara Melihat daftar user, host di msyql



Pertama, anda harus masuk kedalam mysql. Ikuti perintah-perintah ini
mysql -u root -p
mysql> use mysql;
mysql> select user,host from user;
Nanti akan muncul seperti ini :

+------------------+----------------+
| user             | host           |
+------------------+----------------+
| pentaho          | 10.1.1.16      |
| radius           | 10.1.1.17      |
| filelocker       | 10.1.1.18      |
| agus             | 10.64.0.251    |
| root             | 127.0.0.1      |
| root             | ::1            |
|                  | serverfarm     |
| root             | serverfarm     |
|                  | localhost      |
| debian-sys-maint | localhost      |
| delis            | localhost      |
| edam             | localhost      |
| root             | localhost      |
| sync             | localhost      |
+------------------+----------------+


Saya rasa cukup untuk sekarang, jika anda mempunyai pertanyaan bisa tuliskan di komentar. Dengan senang hati saya akan membantu :)

Semoga bermanfaat,
Salam penguin! :)