Sekilas Pengertian, Komponen, dan Engine SMS Gateway

Bismillahirrahmanirrahim. Assalamu'alaikum Wr. Wb.
Kali ini saya akan coba membahas secara sekilas mengenai Pengertian dan Komponen SMS Gateway, serta sedikit penjelasan mengenai Engine Gammu yang sering digunakan untuk membuat SMS Gateway.

Teknologi SMS

Short Message Service (SMS), merupakan layanan pengiriman pesan pendek berupa text melalui teknologi telekomunikasi. Dinamakan pesan pendek, karena berkisar 100 sampai 500 karakter, untuk tipe ponsel tertentu bisa mendukung hingga 1000 karakter.
SMS muncul pada tahun 1991 di Eropa seiring dengan dikembangkannya teknologi GSM. Dan seperti yang kita tahu, teknologi GSM digunakan pada Mobile Station (ponsel/HP, Modem). Teknologi seluler membutuhkan provider (penyedia layanan) agar pengirim dan penerima pesan bisa saling berkomunikasi, begitu juga dengan SMS yang membutuhkan operator (provider) sehingga pesan yang dikirim bisa sampai kepada penerima. Pada provider ini, terdapat SMS Center.
Short Message Service Center (SMSC), merupakan perangkat hardware dan software disisi operator seluler yang berfungsi untuk menampung pesan dan meneruskan pesan sesuai tujuan dan juga melakukan penentuan rute tujuan akhir dari pesan.
Keterangan :
  • BTS : Base Transceiver Station 
  • BSC : Base Station Controller
  • MSC : Mobile Switching Center
  • HLR : Home Location Register
  • SMSC : SMS Center

Short Message Service Center (SMSC) didesain untuk dapat berkomunikasi dengan media luar, seperti voice mail, email, controlling, serta SMS Gateway.

Cara Kerja Notifikasi SMS

Terdapat 2 jenis notifikasi SMS, diantaranya :
- Mobile Terminated
Saat pengiriman pesan berasal dari SMS Center dan diteruskan ke Mobile Station (MS) atau handphone. Adanya informasi pengiriman seperti delivery report, baik sms terkirim atau tidak karena penyebab tertentu, memungkinkan SMS Center mengirim ulang.
- Mobile Originated
Saat pengiriman pesan berasal Mobile Station (MS) atau handphone diteruskan ke SMS Center, saat pesan terkirim ada notifikasi “message sent” , jika gagal terlihat notifikasi “sending failed”.

SMS Gateway

Short Message Service Gateway (SMS Gateway), merupakan perangkat hardware dan software serta database , menawarkan layanan transit SMS untuk diproses sesuai keinginan sebelum diteruskan ke SMS Center. SMS Gateway berada diluar network operator dan dibuat oleh penyedia layanan konten, seperti quiz, game, wallpaper, musik, hingga web based SMS.
Layanan SMS Gateway antara lain :
  • SMS berupa text biasa
  • SMS Unicode; ringtone, musik, gambar
  • Charging (tarif SMS)
  • SMS Masking
  • Intergrasi database, dan lain-lain
3 elemen dasar SMS Gateway yaitu :
  • Perangkat Server yang menghubungkan dengan SMS Center
  • Database, yang menyimpan data (teks sms, no telepon, dll) dan dapat diakses oleh user.
  • Modem/Mobile Station yang dilengkapi dengan SIM Card

Aplikasi SMS Gateway

SMS Gateway dapat digunakan untuk berbagai macam hal, misalnya untuk mengiklankan suatu produk melalui broadcast SMS, menyediakan informasi/berita masal melalui SMS, atau menawarkan dan menampung suatu layanan SMS. 
Sebagai contoh, aplikasi SMS Iklan yang bisa berupa aplikasi SMS Gateway yang dapat digunakan untuk layanan beriklan, berkirim sms secara massal, menggunakan group iklan, fitur inbox dan outbox, dengan menggunakan interface web based sms.
Untuk membangun sebuah aplikasi SMS Gateway, dibutuhkan beberapa komponen, diantaranya :
  • Komputer sebagai SMS Gateway Server
  • Modem / Mobile Station (Bisa juga berupa HP yang difungsikan sebagai modem)
  • Web Service (Apache+PHP, IIS, dll)
  • Database (MySQL, SQL Server, dll)
  • SIM Card
  • SMS Gateway Engine (Gammu, kannel, dll)

Gammu Engine

Salah satu engine SMS Gateway yang sering digunakan yaitu Gammu. Gammu merupakan salah satu SMS Gateway Engine yang mendukung database MySQL. Interface Gammu sendiri berupa command line yang dapat mengatur banyak hal terkait dengan layanan pada ponsel umumnya. Gammu sendiri dibuat menggunakan bahasa pemrogramman C.
Beberapa fitur yang dimiliki Gammu diantaranya :
  • Membuat daftar, inisiasi, dan handle panggilan telepon
  • Penerimaan, backup, dan pengiriman SMS
  • Penerimaan MMS
  • Membuat daftar buku telepon
  • Membuat daftar task dan kalender
  • Penerimaan informasi jaringan telepon dan informasi ponsel
  • Akses terhadap file system ponsel, dll
Salah satu cara kerja Gammu yaitu mengambil SMS yang masuk kemudian menyimpanya dalam database dan diolah berdasarkan konfigurasi program yang diterapkan pada Gammu. Kemudian saat Gammu mengirim SMS keluar, mengambil data juga dari database sesuai konfigurasi dan dikirimkan kepada terminal penerima melewati SMS Center.

Teknik Troubleshooting & Problem Solving Komputer

Bismillahirrahmanirrahim.... Assalamu'alaikum Wr. Wb.
Seringkali ketika kita menggunakan komputer/software pada komputer, atau bahkan saat kita membuat aplikasi atau dalam melakukan konfigurasi/maintenance jaringan, kita dihadapkan dengan berbagai macam trouble/error/masalah yang terjadi. Dengan demikian, perlu adanya suatu cara untuk menyelesaikan permasalahan tersebut, hal ini disebut dengan troubleshoot.
Kadang jika kita sudah terbiasa dalam menghadapi suatu masalah, kita dapat dengan mudah menerka apa penyebab masalahnya dan langsung melakukan pemecahan masalah. Tapi ketika kita menghadapi suatu masalah yang belum pernah dijumpai, kita kadang mengalami kebingungan hingga akhirnya mencari cara melalui internet, menanyakan ke teman, atau bahkan langsung melemparkan masalah tersebut kepada ahlinya, alias 'tukang servis', dan terpaksa mengeluarkan biaya kembali meskipun sebenarnya masalah yang dihadapi hanya sepele.
Pada dasarnya setiap masalah pasti ada penyebabnya, dan penyebab masalah itu menentukan solusi yang mesti dilakukan. Dalam menemukan penyebab masalah hingga menemukan solusi yang tepat pasti melewati tahapan-tahapan yang dilakukan. Tantangannya adalah tinggal kita mau berusaha dengan berbagai kesulitan untuk menyelesaikan masalah tersebut atau malah membiarkannya dan melemparkan kepada orang lain. Karena setelah kesulitan pasti ada kemudahan :)
Nah...pada artikel kali ini, saya akan coba membahas mengenai teknik troubleshooting dan problem solving untuk mempermudah cara penyelesaian masalah yang terjadi di dunia IT, khususnya seputar komputer.

Pengertian Troubleshooting

Troubleshooting merupakan suatu tindakan untuk mencari sumber masalah secara sistematis sehingga masalah dapat diselesaikan dengan benar dan mencegah datang kembali masalah tersebut. Sedangkan Troubleshooting Sistem Komputer merupakan pencarian masalah yang terjadi pada perangkat komputer (hardware & software) dimulai dari pencarian identifikasi sumber masalah, mencari masalah yang ditimbulkan, dan kemudian menyelesaikan masalah tersebut dengan tindakan menghilangkan sumber masalah dan penyebab potensial terjadinya masalah, untuk kemudian mengantisipasi datangnya kembali masalah tersebut, dengan melalui mekanisme prosedural.

Teknik Troubleshooting

Teknik Troublehsooting merupakan suatu tindakan prosedural yang dapat dipilih sebagai acuan dalam proses pelaksanaan troubleshooting.
Ada dua Teknik Troubleshooting, antara lain :
  • Teknik Forward 
  • Teknik Backward

Teknik Forward

Teknik Forward merupakan suatu tindakan pengecekan permasalahan dimulai dari awal, contoh saat peraktian komputer, dilakukan secara sederhana, dan dilakukan sebelum komputer dinyalakan (dialiri listrik).
Contoh :
  • Melakukan cek kondisi kabel power ke perangkat keras 
  • Melakukan cek pemasangan hardware ke soket Motherboard 
  • Melakukan cek pemasangan kabel input dan output

Teknik Backward

Teknik Backward merupakan suatu tindakan pengecekan permasalahan komputer, teknik ini seringkali digunakan, karena pada umumnya masalah muncul pada komputer yang aktivitas pemakaianya tinggi.
Contoh :
  • Komputer tidak bisa masuk Sistem Operasi atau Booting 
  • Hard Disk tidak terdeteksi 
  • VGA tidak mau beroperasi / tidak menyala 
  • Gangguan Virus, dan lainya

Metode Pendekatan

Metode Pendekatan merupakan suatu tindakan yang digunakan dalam proses pencarian masalah melalui pendekatan-pendekatan terhadap fungsi kerja (work layer), ditujukan agar menghasilkan analisa yang tepat.
Berikut Metode Pendekatan, antara lain :
  • Pendekatan TOP-DOWN 
  • Pendekatan DEVIDE and CONQUER 
  • Pendekatan BOTTOM-UP

Pendekatan TOP-DOWN

Pendekatan TOP-DOWN merupakan metode pendekatan dalam indentifikasi masalah, dimana dilakukan dengan mencari permasalahan dari Layer Aplikasi hingga Layer Fisik, metode ini tidak cocok untuk permasalahan komputer yang berkaitan dengan hardware.
Contoh :
  • Program aplikasi error karena harus update 
  • Program aplikasi error karena, kehilangan runtime-program 
  • Sistem operasi tidak berjalan normal, karena kehilangan file Registri

Pendekatan DIVIDE and CONQUER

Pendekatan DEVIDE and CONQUER merupakan metode pendekatan dalam indentifikasi masalah, dimana identifikasi masalah langsung pada Layer yang bermasalah, seringkali metode ini digunakan oleh mereka yang telah Ahli, berdasarkan pengalaman dalam penanganan sebelumnya.
Contoh :
  • Sistem Operasi berjalan lambat, solusi dengan menambah memori 
  • Aplikasi berjalan lambat, solusi dengan mengurangi Starup aplikasi yang tidak digunakan dan penambahan memori

Pendekatan BOTTOM-UP

Pendekatan BOTTOM-UP merupakan metode pendekatan dalam indentifikasi masalah, dimana dilakukan dengan mencari permasalahan dari Layer Fisik hingga Layer Aplikasi, metode ini cocok untuk permasalahan komputer yang berkaitan dengan hardware.
Contoh :
  • Komputer tidak menyala saat tombol power ditekan 
  • Printer tidak menyala saat tombol power ditekan 
  • Hard Disk tidak menampilkan Booting saat Komputer dinyalakan

Problem Solving (Penyelesaian Masalah)

Penyelesaian Masalah (Problem Solving) merupakan langkah dalam menangani masalah yang telah ditemukan.
Berikut langkah yang ditempuh, antara lain :
  • Langkah TRIAL and ERROR 
  • Langkah SUBSTITUSI

Trial and Error

Trial and Error merupakan metode penyelesaian masalah setelah masalah ditemukan, dengan mencoba-coba dengan berdasarkan pengalaman, sangat bergantung pada pengalaman. Langkah ini kurang cocok untuk perangkat-perangkat vital yang belum dikuasai betul penyelesaianya.
Contoh :
  • VGA onboard tidak berfungsi, solusinya dengan mencoba mengganti power supply 
  • Kabel power ke Hard Disk tidak berfungsi, solusi dengan mencoba dengan memasang kabel power lainya.

Substitusi

Substitusi merupakan metode penyelesaian masalah setelah masalah ditemukan, dengan mengganti dengan perangkat baru, atau mengambil dari komponen perangkat yang sama untuk digunakan pada perangkat yang rusak.
Contoh :
  • Baterai CMOS pada Motherboard tipe A rusak, maka dapat diambil dari Motherboard tipe A lain yang rusak namun bukan pada Baterai CMOS 
  • Pada perusahaan besar selalu menyediakan Server Pengganti / Back-Up saat Server utama terjadi downtime / trouble maka Server Pengganti akan mengambil alih.

Dokumentasi

Dokumentasi merupakan penulisan tulisan atau gambar yang menerangkan langkah proses penanganan terhadap suatu kegiatan. Dapat berisi penjelasan-penjelasan, gamabr, bagan alir, dan contoh-contoh objek.
Adapun tujuan Dokumentasi, antara lain :
  • Mempelajari cara pengoperasian sistem 
  • Sebagai bahan alih pengetahuan dan training 
  • Pengembangan sistem lebih lanjut 
  • Materi acuan dan Back-Up 
  • Menghilangkan ketergantungan yang kritis 
-------------------




Demikian penjelasan kali ini. Di dalam hidup kita senantiasa dihadapkan dengan masalah/ujian. Jika dicermati, setiap masalah/ujian yang kita tempuh dan lewati membuat kita semakin baik. Sebagai contoh, jika kita menghadapi error pada komputer yang belum pernah kita temui sebelumnya, ketika kita berhasil menyelesaikan error tersebut, kita menambah ilmu karena tau cara penyelesaian masalahnya jika suatu saat menghadapi permasalahan serupa. Untuk itu, bersyukurlah jika kita mendapatkan masalah/ujian dalam hidup kita, karena kita memiliki peluang untuk menjadikan diri kita lebih baik lagi.
Terima kasih telah membaca, semoga bermanfaat. Wassalam....

Pengertian, Syntax, dan Implementasi CSS (Cascading Style Sheet)


Seperti janji saya dari lama untuk melanjutkan Tutorial mengenai HTML, saya coba mulai dari Pengenalan CSS.

Apa itu CSS?

CSS singkatan dari Cascading Style Sheet, atau jika diterjemahkan yaitu Bahasa Lembar Gaya. CSS merupakan bahasa yang digunakan untuk mengatur tampilan/desain suatu halaman web. CSS sama halnya dengan styles pada aplikasi pengolahan kata seperti Microsoft Word yang dapat mengatur beberapa style misalnya heading, subbab, bodytext, footer, images, dan style lainnya untuk dapat digunakan bersama-sama dalam beberapa berkas (file).
Dengan kata lain, Cascading Style Sheet adalah suatu teknologi yang digunakan untuk memperindah tampilan halaman website. Singkatnya dengan menggunakan metode CSS ini mudah mengubah secara keseluruhan warna dan tampilan yang ada pada website. Dengan CSS, temen-temen dapat lebih mempercantik tampilan web. baik dari style text, button, textfield, table, dan lain-lain.
Pada umumnya CSS dipakai untuk memformat tampilan halaman web yang dibuat dengan bahasa HTML dan XHTML. Sebagai contoh, perancangan desain text dapat dilakukan dengan mendefinisikan fonts (huruf), colors (warna), margins (ukuran), background (latar belakang), font size (ukuran font) dan lain-lain. Elemen-elemen tersebut disebut juga dengan styles.

Perkembangan CSS

CSS 1

CSS pertama yang menjadi Rekomendasi W3C resmi CSS level 1, diterbitkan pada Desember 1996.dikembangkan berpusat pada pemformatan dokumen HTML.

CSS 2

CSS2 mendukung penentuan posisi konten, huruf (font), tampilan pada tabel (table layout) dan media tipe untuk printer. Kehadiran versi CSS yang kedua diharapkan lebih baik dari versi pertama.

CSS 3

Dapat melakukan animasi pada halaman website, diantaranya animasi warna hingga animasi 3D.
Dengan CSS3 desainer lebih dimudahkan dalam hal kompatibilitas websitenya pada smartphone dengan dukungan fitur baru yakni @media query.
Selain itu, banyak fitur baru pada CSS3 seperti: multiple background, border-radius, drop-shadow, border-image.

Tools CSS

Editor

Sama halnya seperti HTML dan bahasa pemrograman lainnya, CSS berisi kode teks yang dapat dibuat menggunakan text edtor seperti Notepad, Notepad++, Dreamweaver, dll.

Designer

Konsep untuk membuat tampilan web dengan menambahkan CSS berbeda-beda. Mungkin sebagian orang bisa langsung membuat CSS dari nol hingga menghasilkan tampilan yang bagus. Tetapi pada umumnya seorang web designer terlebih dahulu menggunakan tools image editor seperti Photoshop, Adobe Ilustrator, dll untuk membuat design mockup. Mockup tersebut kemudian dijadikan acuan untuk membuat kerangka tampilan web menggunakan HTML dan CSS. Setelah itu, mockup tersebut di-"slice" (dipotong-potong) menjadi bagian-bagian kecil untuk dimasukkan ke dalam kerangka tampilan web tadi. Metode ini sering disebut dengan slicing.

Result & Troubleshoot

Untuk melihat hasil dari CSS yang telah dibuat, tentunya dengan membuka file HTML pada browser, misalnya menggunakan Mozilla Firefox, Google Chrome, Internet Explorer, dll.
Jika setelah dibuka ternyata terdapat ketidaksesuaian pada hasil tampilan, dapat dilakukan troubleshoot dengan menggunakan fitur melihat source code pada browser. Untuk Firefox, bisa menggunakan plugin Firebug. Pada Google Chrome, bisa digunakan Developer Tools yang terdapat pada opsi menunya.

Manfaat CSS

Manfaat yang bisa diperoleh jika kita membuat tampilan web dengan sentuhan CSS diantaranya :
  • Kode menjadi sederhana dan lebih mudah diatur
  • Ukuran file menjadi lebih kecil, sehingga load file lebih cepat
  • Mudah untuk mengubah tampilan, hanya dengan mengubah CSS saja
  • Dapat berkolaborasi dengan Javascript
  • Dapat digunakan dalam hampir semua web browser

Syntax CSS

CSS memiliki syntax yang sederhana dan menggunakan sejumlah kata kunci berbahasa Inggris untuk menentukan nama-nama berbagai properti. CSS memiliki dua aturan utama, yaitu Selector dan Declaration. Untuk lebih jelasnya, lihat cara penulisan serta komponen yang terdapat pada CSS berikut :
  • Dalam kode CSS, ada 2 bagian yang terpisah, yaitu Selector dan Declaration.
  • Selector biasanya merupakan elemen HTML atau tag dimana berbagai properti diberi suatu nilai.
  • Setiap Declaration terdiri dari Property dan Value.
  • Untuk penulisan Declaration harus menggunakan tanda kurung kurawal {...}
  • Property adalah atribut style yang ingin dirubah, misalnya color, background, margin, dll.
  • Setiap Property memiliki Value (nilai) sesuai dengan jenis property-nya.

Pengelompokan Selector

Seperti yang dilihat pada contoh di atas, salu selector dapat memiliki beberapa property. Jika terdapat beberapa selector yang memiliki property yang sama, dapat dilakukan pengelompokan selector. Lihat contoh berikut :
- Syntax CSS
h1, body, p, ul { color: blue; }
- Syntax HTML
<body>
<h1>Warna Biru</h1>
Contoh teks
</body>
Pada contoh di atas, elemen header, body, paragraph, dan unordered list berada pada group yang sama. Semua elemen tersebut nantinya akan memiliki teks berwarna biru.

ID dan Class

Untuk memahami tentang ID dan Class, dapat melihat contoh kode CSS berikut :
#identitas {
   font-size: 20px;
   color: #FF0000;
   background-color: #000;
}

.kelas {
   font-size: 30px;
   color: #12FF34;
   background-color: #FFFFFF;
}
  • Selector ID menggunakan tanda pagar (#) sebagai penandanya, sedangkan Selector Class menggunakan tanda titik (.).
  • Penamaan pada selector ID dan Class dapat dibuat secara bebas, tetapi sebaiknya disesuaikan dengan nama kelompok yang terkait untuk mempermudah pengeditan.
  • Perbedaan antara ID dan Class pada CSS adalah pada tingkat penggunaannya. ID sebaiknya digunakan sebagai identitas yang unik seperti Logo, Header, Footer, Sidebar.
  • Sedangkan Class digunakan untuk menandai atribut yang lebih spesifik seperti ketebalan border (garis pinggir), kode warna, paragraph, jenis font, ukuran font, dll.
  • Class dapat digunakan untuk mengatur tampilan atau atribut dari suatu kelompok data HTML, baik yang memiliki ID tertentu atau tidak.
  • ID digunakan untuk memberikan identifikasi atau atribut pada kelompok data atau elemen HTML yang lebih besar.

Implementasi CSS

Ada 2 cara yang bisa diterapkan untuk menggunakan CSS pada tampilan web. Cara pertama yaitu dengan membuat CSS langsung di dalam satu file HTML. Cara ini disebut dengan internal/inline style sheet.
Cara yang kedua yaitu dengan cara membuat file CSS tersendiri,lalu file tersebut dipanggil melalui HTML yang dibuat. Cara ini disebut dengan external style sheet.

Internal Style CSS

Metode Internal Style maksudnya ialah style CSS digabung atau ditulis bersamaan dengan tag-tag HTML. Agar dapat lebih dipahami, lihat contoh kode HTML berikut :
File index.html

<html>
  <head>
    <title>Contoh Internal Style</title>
    <style type="text/css">
      body {
        font-family: Arial, Helvetica, sans-serif;
      }
      .kelas {
        font-size: 50px;
        color: #FF0000;
        background-color: #000;
      }
      #identitas {
        font-size: 30px;
        color: #000;
        background-color: #FF0000;
      }
    </style>
  </head>
  <body>
    <div class="kelas">Contoh Penulisan Class</div> 
    <br \>
    <div id="identitas">Contoh Penulisan ID</div>
  </body>
</html>
Dilihat dari kode di atas, syntax CSS ditulis langsung di dalam HTML yang dibuat, yaitu pada bagian <head> dengan tag <style>. Selector body langsung digunakan oleh HTML tanpa perlu dipanggil kembali, sedangkan ID dan Class pada contoh di atas dipanggil pada tag <div>.

External Style CSS

Merupakan metode penulisan CSS dimana Syntax CSS dibuat file tersendiri yang terpisah dengan file HTML. File CSS ini nantinya dapat digunakan oleh semua file HTML yang ada. Untuk memanggil file CSS yang telah dibuat, tambahkan baris berikut pada bagian <head> HTML :
<link rel="stylesheet" type="text/css" href="lokasi_file_css.css" />
Untuk lebih memahami penggunaannya, perhatikan contoh berikut :
- File gaya.css
body {
      font-family: Arial, Helvetica, sans-serif;
}
.kelas {
      font-size: 50px;
      color: #FF0000;
      background-color: #000;
}
#identitas {
      font-size: 30px;
      color: #000;
      background-color: #FF0000;
}
- File index.html
<html>
  <head>
    <title>Contoh External Style</title>
    <link rel="stylesheet" type="text/css" href="gaya.css" />
  </head>
  <body>
    <div class="kelas">Contoh Penulisan Class</div> 
    <br \>
    <div id="identitas">Contoh Penulisan ID</div>
  </body>
</html>

CSS Framework

Framework secara sederhana dapat diartikan kumpulan dari fungsi-fungsi/prosedur-prosedur dan class-class untuk tujuan tertentu yang sudah siap digunakan sehingga bisa lebih mempermudah dan mempercepat pekerjaan seorang programmer, tanpa harus membuat fungsi atau class dari awal.
CSS Framework adalah paket kode CSS/XHTML sebagai acuan dasar membuat web, sehingga kita tidak perlu lagi menulis kode web (CSS/XHTML) dari nol.
Beberapa contoh CSS Framework yang sering digunakan diantaranya :

Keuntungan Menggunakan CSS Framework

Penggunaan CSS Framework pada web memiliki beberapa keuntungan, diantaranya :
Lebih Cepat
Membuat sebuah website membutuhkan waktu yang tidak sebentar. Tapi dengan menggunakan framework kita tidak harus memulai semuanya dari awal untuk setiap projek
Tableless
Sebuah teknik dimana struktur website tidak menggunakan table pada layoutnya, melainkan dengan cara memisahkan data antara HTML dan CSS. Hal ini dilakukan agar lebih mudah dilakukan maintenance dan diakses oleh berbagai media aplikasi, berkurangnya kebutuhan bandwidth, dan yang lebih utama yaitu lebih SEO friendly.
Cross-browser Compatibility
Cross-browser compatibility ini memiliki pengertian bahwa website dapat diakses oleh berbagai browser.

Kekurangan Menggunakan CSS Framework

Selain kelebihan yang telah disebutkan di atas, terdapat juga kekurangan yang perlu diperhatikan jika menggunakan CSS Framework, diantaranya :
  • Membutuhkan waktu untuk mempelajari framework, karena CSS yang tersedia tidak dibuat sendiri.
  • Mengabaikan keunikan desain layout.
  • Kode menjadi mubazir karena tidak semua kode yang ada pada framework kita gunakan pada tampilan web yang dibuat.
  • Sulit untuk melakukan troubleshoot jika terdapat bug pada framework.
  • HTTP request yang berlebihan karena biasanya framework CSS memiliki data yang terpisah-pisah.





Sekian pengenalan mengenai CSS. InsyaAllah pada lain kesempatan akan dibuat tutorial khusus mengenai CSS dan berlanjut ke bahasa pemrograman lainnya. Terima kasih telah membaca. Semoga bermanfaat.

Pengertian dan Jenis-jenis Virtual Private Network (VPN)


Assalamu'alaikum...
Lebih dari sebulan ga posting nih. Postingan terakhir pun cuma buat tugas kuliah. Hehehe...sorry :p
Oke langsung saja, kali ini saya posting materi yg cukup ringan dulu aja mengenai Pengertian dan Jenis VPN. Selamat membaca....

Pengertian VPN

Apa itu VPN?
VPN (Virtual Private Network) adalah koneksi jaringan komputer pribadi (jaringan lokal/LAN) yang menggunakan jaringan nonpribadi (internet) untuk menghubungkan antara 2 titik (sebuah client dengan suatu jaringan lokal atau antar 2 jaringan lokal) dengan menekankan pada keamanan data dan akses global melalui internet. Konsep VPN disebut juga dengan tunneling, yang artinya VPN diibaratkan sebagai sebuah terowongan khusus yang hanya diketahui orang-orang tertentu untuk mengakses suatu lokasi ke lokasi lainnya.

Keuntungan VPN

Kalo kita lihat penjelasan mengenai pengertian VPN di atas, jadi pada intinya dengan VPN, 2 jaringan lokal dengan lokasi yang berbeda dapat saling terkoneksi secara privat. Di samping itu, kalo kita punya komputer/laptop/smartphone kita bisa juga mengakses jaringan lokal yang pake VPN. Misalnya kita lagi tugas di luar kantor, trus mau presentasi ke pelanggan tapi datanya tertinggal di server kantor. Kita tinggal buka laptop, akses menggunakan VPN, data presentasi pun bisa kita ambil.

Itu salah satu keuntungan besarnya kalo kita pake VPN. Jika dijabarkan, keuntungan-keuntungan yang bisa kita rasakan jika menggunakan VPN diantaranya :
1. Akses "dimana saja" ke suatu jaringan lokal melalui internet, misalnya ke jaringan kantor.
2. Kemudahan mengakses resource pada suatu jaringan lokal yang tidak dapat diakses dari luar secara langsung.
3. Keamanan dalam transfer data karena VPN menggunakan enkripsi pada lalulintas datanya.
4. Tidak sembarangan orang dapat mengakses VPN karena hanya user yang telah melewati proses autentikasi saja yang dapat menggunakan layanan VPN.
5. Bagi Network Administrator, VPN yang dipadukan dengan software remote lainnya (contoh : putty, Remote Desktop) dapat menjadi solusi remote access yang lebih aman untuk mengendalikan network resource perusahaannya.

Nah jadi untuk para pelaku IT, disarankan menggunakan VPN kalo mau remote ke tempat kerjanya, kalo pake software semacam TeamView*r kan berbayar, dan harus melewati luar negeri dulu untuk terkoneksi dengan komputer remote. Kalopun ada versi gratisnya, cuma beberapa menit harus mengulang koneksi kembali.
Dengan VPN selain lebih aman, gratis juga. Cuma agak ribet aja proses remote dan konfigurasinya :p
But this is just an option in my opinion, semua kembali kepada kebutuhan masing-masing mau pake konsep seperti apa. Oke next...

Komponen VPN

Agar terjalinnya sebuah ikatan koneksi antara kedua titik jaringan menggunakan VPN, maka diperlukan beberapa komponen yang diperlukan diantaranya :

1. Koneksi Internet

Sudah jelas, kata "virtual" dalam VPN berarti koneksi jaringan privat secara "tidak langsung", yang artinya VPN membutuhkan media internet agar dapat diaplikasikan. Jika ada sebuah private network antar dua lokasi tanpa melalui internet, hal itu disebut dengan leased line network.

2. IP Publik

IP Publik ini wajib diterapkan pada VPN Server agar dapat dikenali oleh client-nya melalui internet.

3. VPN Server

Sebuah VPN tidak dapat dilakukan tanpa adanya penyedia layanan VPN. VPN Server ini yang menerima koneksi privat dari suatu jaringan lain atau suatu client secara personal. VPN Server dapat diimplementasikan pada sebuah kantor.

4. VPN Account

Agar koneksi VPN dapat terjalin pasti membutuhkan autentikasi user dan password dari client-nya agar koneksi menjadi aman. VPN account ini dibuat pada VPN Server. Pada beberapa metode VPN juga diterapkan sistem keamanan yang lebih ketat seperti penggunaan certificate dan otorisasi user.

5. VPN Client

Seperti yang sudah disinggung di atas, ada 2 macam client yang dapat terkoneksi dengan VPN yaitu perangkat personal secara langsung (komputer/laptop/smartphone), dan sebuah jaringan lokal lainnya. Untuk perangkat personal, dibutuhkan software VPN Client seperti OpenVPN Client, PPTP Client Windows, dll. Tetapi jika client-nya adalah sebuah jaringan lokal lain seperti kantor, harus dipasang sebuah dedicated VPN Client yang biasanya diimplementasikan pada router/server firewall kantor tersebut.

Jenis-jenis VPN berdasarkan Protocol

Layanan VPN didukung oleh beberapa protokol komunikasi data, yang mana tiap protokol tersebut memiliki konsep keamanan yang berbeda-beda.
- Point-to-Point Transfer Protocol (PPTP)
-.Layer 2 Transfer Protocol (L2TP)
- Secure Socket Layer/Transport Layer Security (SSL/TLS)
- Secure Socket Tunneling Protocol (SSTP)
- Internet Key Exchange (IKEv2)
- Routing Protocols (MPLS/BGP)

Semua protokol memiliki kelebihan dan kekurangan masing-masing. Yang lebih aman biasanya memiliki cara konfigurasi yang lebih sulit, dan sebaliknya. Sebagai contoh, PPTP merupakan VPN yang paling mudah dibuat tetapi memiliki tingkat keamanan yang paling rendah dibandingkan dengan protokol lain.

Jenis-jenis VPN berdasarkan Koneksi/Topologi

1. Jaringan Privat melalui ISP

VPN dengan konsep ini merupakan sebuah layanan yang disediakan oleh Internet Service Provider bagi perusahaan-perusahaan besar yang ingin menghubungkan kantor pusat dengan cabang-cabangnya melalui koneksi privat yang aman. VPN jenis ini biasanya menggunakan konsep MPLS dengan BGP Routing. Meskipun tidak secara langsung melalui internet (hanya melalui jaringan ISP), VPN ini tidak termasuk leased line karena ada peran ISP yang membuat saluran "tidak langsung" antar jaringan perusahaan tersebut, tetapi juga dapat melakukan routing menuju internet. VPN dengan konsep ini memakan biaya yang lebih besar namun dengan keamanan yang sangat tangguh.

2. VPN Site to Site

VPN jenis ini menghubungkan kedua jaringan lokal, misalnya kantor pusat dengan kantor cabang. Bedanya, VPN SIte to Site tidak memerlukan peran ISP dalam implementasinya. Semua konfigurasi dapat dilakukan oleh pelaku/vendor IT pada jaringan tersebut. Pada satu site dibuatkan sebuah dedicated VPN Server dan di site lain dibuatkan sebuah dedicated VPN Client sehingga kedua jaringan lokal ini dapat saling terhubung melalui jaringan private. Koneksi "tunneling" VPN ini melalui internet, tidak hanya melalui ISP saja. VPN ini memakan biaya yang murah dengan keamanan yang disesuaikan dengan protokol VPN yang digunakan (PPTP/L2TP/lainnya).

3. Road Warrior

Istilah yang terdengar lebih keren dari sebelumnya :D
Road Warrior di sini berarti koneksi VPN yang menghubungkan perangkat personal (PC/Laptop/Smartphone) dengan suatu jaringan lokal melalui internet dengan menggunakan VPN. Ibaratnya Si "Ksatria Jalanan" yang menyendiri ini menempuh sebuah "terowongan" untuk mencapai "suatu lokasi". Misalnya kita memiliki smartphone dengan koneksi internet dari provider telekomunikasi dan memiliki software VPN Client, dapat mengakses resource jaringan kantor kita dari mana saja. Keren kan? That is The Road Warrior.
Layanan VPN jenis ini bisa juga dikombinasikan dengan VPN Site to Site sehingga tidak hanya antar jaringan lokal saja, tetapi juga dapat menghubungkan dengan perangkat personal.



Segitu dulu penjelasan mengenai Pengertian dan Jenis-Jenis VPN. Seperti biasa, jika ada yang mau ditanyakan silakan isi di kolom komentar atau bisa juga melalui FB (twitter dan G+ jarang dibuka :p). Share blog ini jika perlu, tapi akan lebih baik jika temen-temen bisa share ilmu dan pengetahuan masing-masing kepada yang membutuhkan :)
Wassalam...

Tugas Mata Kuliah Manajemen Proyek : Proyek Instalasi Jaringan LAN PT CBL


Sesuai dengan tugas mata kuliah Manajemen Proyek di UNAS Pasim Bandung, kali ini saya akan membahas mengenai salah satu proyek yang pernah saya tangani yaitu Proyek Instalasi Jaringan LAN di PT CBL pada tahun 2012 lalu ketika saya masih bekerja di PT BSS. Meski pada proyek ini saya hanya bertindak sebagai engineer, tapi saya cukup paham dengan latar belakang terjadinya proyek ini dan bagaimana perencanaan yang dilakukan. 
Demi menjaga informasi yang sensitif pada perusahaan-perusahaan yang bersangkutan, saya tidak akan membahas secara detail mengenai gambar topologi yang diterapkan, merek/tipe perangkat yang digunakan, dan konfigurasi lainnya.

Analisa

Inisiasi

Tahap inisiasi menjadi landasan utama terjadinya projek ini. PT CBL merupakan sebuah perusahaan di bidang Package Printing di kota Bandung. Di samping itu, PT BSS merupakan sebuah perusahaan yang bergerak di bidang IT Solution. Dikarenakan PT CBL memiliki kedekatan dengan PT BSS, maka PT BSS diberi kepercayaan untuk menangani projek ini.
Singkat cerita, PT CBL meminta untuk berkonsultasi kepada PT BSS untuk menyampaikan permasalahan perihal kondisi jaringan lokal (LAN) di lingkungan mereka.
Dari hasil konsultasi yang telah dilakukan, PT BSS mendapatkan informasi kondisi di lingkungan mereka yaitu :

- Terdapat kurang lebih 50 user dari berbagai departemen yang menggunakan komputer untuk mengakses internet dan server.
- Terdapat beberapa server yang secara intensif diakses untuk keperluan user, seperti server aplikasi, file sharing, dll.
- Terdapat beberapa server printer di beberapa departemen yang juga terhubung dengan jaringan.
- User sering mengeluh terhadap performa jaringan yang lambat, baik itu untuk keperluan lokal seperti file sharing, maupun untuk koneksi internet. Bahkan terkadang user tiba-tiba tidak dapat terkoneksi dengan jaringan sama sekali.
- PT CBL membutuhkan segmentasi jaringan tiap departemen untuk menghindari kebocoran data antar departemen.
- PT CBL ingin menutup akses internet terhadap sebagian user, sehingga hanya orang-orang yang berkepentingan yang dapat menggunakan internet.
- PT CBL tidak ingin pengerjaan proyek ini mengganggu aktivitas pekerjaan mereka sehingga projek ini hanya dapat dikerjakan setiap hari Sabtu dan Minggu setiap minggunya.
- PT CBL bersedia menyediakan sendiri perangkat-perangkat yang dibutuhkan.
Dari informasi tersebut, PT BSS mendapatkan sedikit gambaran untuk memberikan solusi yang tepat. Untuk lebih memastikan permasalahan terjadi dan agar dapat dilakukan perencanaan yang baik, PT BSS meminta untuk melakukan survei lokasi pada tahap selanjutnya.

Survei Lokasi

Tahap survei ini bertujuan untuk mengetahui kondisi di lapangan secara langsung sehingga informasi yang didapat dapat digabungkan dengan hasil inisiasi. Dari penggabungan informasi ini PT BSS dapat mengambil kesimpulan mengenai solusi yang tepat sehingga dapat dilakukan perencanaan dan desain yang baik guna mengatasi permasalahan yang terjadi.
Hal-hal yang diperhatikan pada survei lokasi ini diantaranya :

- Luas wilayah pekerjaan dan jarak antar ruangan.
- Keseluruhan existing infrastuktur jaringan yang diterapkan di wilayah PT CBL (topologi, server, komputer, printer, dll).
- Pengetesan konetivitas jaringan lokal dan internet.

Dari hasil survei lokasi yang telah dilakukan, PT BSS mendapatkan informasi sebagai berikut :

- Luas wilayah diperkirakan mencapai ribuan meter persegi, dengan jarak terjauh suatu ruangan dengan ruangan NOC mencapai lebih dari 100 meter.
- Topologi yang digunakan masih sederhana, semua komputer dan server berada pada jaringan yang sama. Dari jaringan tersebut langsung menuju ke internet melalui modem dari ISP
- Terdapat switch utama di ruangan NOC. Di samping itu, pembagian dstribution switch antar departemen masih belum merata, sehingga terdapat PC yang langsung dengan switch utama, dan ada juga yang melalui distribution switch terlebih dahulu. Semua switch masih unmanageable dan menggunakan teknologi Fast Ethernet (maks. 100mbps).
- Sebagain kabel jaringan sudah tidak layak pakai.
- Tidak adanya DHCP server untuk mengatur pembagian alamat IP.
- Pengetesan koneksi internet langsung dari modem ISP menunjukkan bahwa koneksi internet lancar.
- Pengetesan koneksi internet dan server dari client menunjukkan koneksi sangat lambat, dan terindikasi adanya IP conflict.

Hasil Analisa

Dari informasi yang didapat dari hasil inisiasi dan survey lokasi, PT BSS dapat mengambil kesimpulan bahwa :

- Perlu perombakan besar untuk sistem pengkabelan jaringan dalam lingkungan PT CBL, yaitu dengan membuat ulang jalur kabel jaringan. Hal ini dikarenakan sebagian kabel sudah tidak layak dan banyak jalur kabel yang tidak optimal. Di samping itu, dengan melakukan penarikan kabel ulang, tidak akan mengganggu aktivitas kerja di PT CBL.
- Perlu diterapkan teknologi Gigabit Ethernet (kecepatan maks. 1Gbps) untuk lingkungan jaringan PT CBL karena teknologi Fast Ethernet tidak akan optimal untuk suatu jaringan dengan intensitas lalu lintas data yang tinggi. Selain itu, koneksi lambat juga dapat disebabkan karena terjadinya bottleneck pada switch, karena teknologi Fast Ethernet tidak mampu menampung semua transaksi data.
- Perlu diterapkan konsep VLAN untuk segmentasi jaringan tiap departemen sehingga antar departemen tidak bisa saling terkoneksi, dan hanya bisa melakukan file sharing atau interaksi lainnya melalui server.
- Perlu diterapkannya DHCP Server sehingga pembagian alamat IP lebih terorganisisr dan tidak akan terjadi IP conflict.
- Perlu diterapkan Firewall untuk membatasi hak akses user terhadap internet.
- Perlu adanya segmentasi antara client dan server untuk lebih menjaga keamanan server dengan konsep 3-Leg perimeter topologi (Client-DMZ-Internet).
- Proyek ini dapat dikerjakan oleh setidaknya 2 tenaga engineer dengan jangka waktu pengerjaan paling lambat selama 2 bulan dengan pertimbangan waktu pengerjaan yang hanya dapat dilakukan pada hari Sabtu dan Minggu dan luas wilayah proyek yang cukup besar.

Perencanaan

Setelah dilakukan kesepakatan antara pihak PT CBL dengan PT BSS mengenai jangka waktu pengerjaan, PT BSS mulai menyusun perencanaan untuk mengerjakan proyek ini. Pada tahap ini, PT BSS membuat sebuah tim yang terdiri dari 3 orang diantaranya 1 orang sebagai Project Manager (PM) sekaligus supervisor di lapangan, serta 2 orang sebagai engineer yang melakukan pemasangan jaringan dan konfigurasi.
Setelah dibuat sebuah tim, PT BSS membuat sebuah blueprint sebagai acuan hasil akhir projek berupa topologi jaringan yang sesuai dengan solusi yang diberikan.
Untuk mencapai hasil yang sesuai dengan blueprint yang dibuat, PT BSS merancang timeplan untuk pengerjaan proyek ini sebagai acuan kerja para pelaku projek selama jangka waktu 2 bulan. Pada timeplan ini, beberapa point pekerjaan dibuat lebih lama dari waktu yang ditargetkan untuk mengantisipasi hal-hal yang tak terduga. Berikut gambar timeplan yang sudah dibuat :
Dari sisi anggaran PT BSS hanya menganggarkan untuk biaya tenaga kerja selama proyek berlangsung, terutama karena proyek ini dikerjakan pada hari libur kerja.
Dikarenakan PT CBL akan menanggung dan menyediakan segala keperluan perangkat yang dibutuhkan, PT BSS hanya membuat daftar perangkat yang perlu disediakan.

Hasil Akhir

Singkat cerita, proyek ini dikerjakan sesuai dengan acuan pada timeplan. Hasil akhir yang didapat oleh PT CBL yaitu :

- Kecepatan akses dari client menuju ke server meningkat cukup signifikan.
- User yang dapat mengakses internet hanya orang-orang yang berkepentingan.
- Antar departemen tidak dapat saling terkoneksi secara langsung sesuai permintaan PT CBL.
- Manajemen alamat IP lebih tersusun rapi dan lebih mudah untuk dilakukan monitoring.

Pada intinya, proyek ini cukup sukses diselesaikan karena point-point penting yang dikeluhkan oleh PT CBL sebagai client dapat ditangani.

Mengenal Jenis-jenis Hacker

Temen2 tau kan hacker? Itu loh yg kerjaannya membajak. Bukan tukang bajak status, bajak sawah, apalagi seorang bajak laut. Hacker membajak sistem, program, jaringan, atau komputer. Mungkin sebagian temen2 menganggap hacker itu jahat dan tukang ngerusak. Kenyataannya ada juga loh hacker yang ga ngerusak. Nah kali ini saya mau share tentang jenis2 hacker.

1. Black Hat

Black Hat adalah sebutan bagi hacker yang dengan sengaja melakukan peretasan (membajak) keamanan sistem komputer orang lain untuk kepentingan pribadi/kelompok. Tidak, mereka tidak memakai topi hitam. Tapi mereka bisa disebut jahat dan melakukan kejahatan melalui dunia maya (Cybercrime).

Black Hat membobol keamanan sistem untuk menghapus, memodifikasi, atau mencuri data dan kemudian menyimpan rahasia celah keamanan sistem tersebut untuk diri sendiri. Sebagian kejahatan mereka diantaranya mencuri akses kartu kredit orang lain, membobol password Server melalui Internet, membobol program berbayar sehingga dapat digunakan secara gratis, dan lain-lain. Maka dari itu, mereka juga kadang disebut dengan "Cracker".

Di samping itu, ada juga Black Hat yang secara ilegal membobol sistem orang lain untuk memperingatkan administrator sistem tersebut bahwa terdapat celah keamanan pada sistemnya sekaligus juga menawarkan jasa perbaikan keamanan sistem dengan harga tertentu. Hacker jenis ini biasa disebut juga dengan "Grey Hat" karena mereka tidak murni memiliki niat untuk merusak.

2. White Hat

Ada hitam, pasti ada juga putih. Kebalikan dari Black Hat, si White Hat ini melakukan kegiatan hacking secara legal untuk memperbaiki celah pada keamanan sistemnya sendiri, atau memperbaiki keamanan sistem milik orang lain setelah ada kontrak kerja sama.

Biasanya seorang White Hat memiliki profesi sebagai System/Network Administrator di suatu perusahaan atau juga sebagai IT Security Assessment Professionals, bahkan bisa juga bekerja sebagai intelijen negara untuk mempertahankan data negara dan menyelidiki kasus Cybercrime, menjadi polisi di dunia maya. White Hat juga biasanya telah mendapatkan pendidikan sertifikasi hacking internasional seperti CEH (Certified Ethical Hacker).


Selain Black & White tadi, ada juga beberapa sebutan lain bagi hacker, diantaranya :
- Elite Hackers : sebutan untuk Hacker tingkat dewa, atau hacker yg udah sangat-sangat ahli.
- Script Kiddies : sebutan untuk Hacker yg pake tools Hacking otomatis milik orang lain untuk melakukan hacking
- Neophyte : sebutan untuk orang yg baru masuk dunia Hacking dan kadang belum tau apa2 soal hacking.
- Blue Hat : seperti White Hat, tapi hanya melakukan pencarian celah kesalahan suatu program (bug) untuk diperbaiki.
- Hacktivist : Hacking Activist, kelompok Hacker yang menggunakan Hacking sebagai ideologi atau alat politik. Berhubungan juga dengan Cyberterrorism.

Mungkin segitu saja pengetahuan tentang jenis-jenis Hacker. Kita tidak bisa menuduh seseorang sebagai Black/White Hat Hacker, karena seorang Black Hat bisa juga menjadi White Hat dan sebaliknya. Semua tergantung niat pelakunya. Maka dari itu, gunakanlah ilmu apapun secara bijak. Ilmu yg digunakan dengan baik, akan menghasilkan yg baik pula.

Instalasi Mail Server Zimbra 8.6 Open Source pada CentOS 6.5

Assalamu'alaikum Wr. Wb.
Halo lagi semuanya.... Kali ini saya akan membagikan sebuah tutorial spesial untuk temen-temen, yaitu mengenai Instalasi Zimbra 8.6 Open Source pada CentOS 6.5. Zimbra Open Source Edition merupakan sebuah software untuk membuat email server secara gratis dan praktis. Dan di samping fungsi utamanya sebagai mail server, Zimbra juga memiliki banyak fitur lainnya seperti Calendar, Task Management, dll.
Zimbra sudah menjadi favorit saya mulai dari Zimbra versi 6 (saat hak paten Zimbra masih dimiliki Yahoo), hingga sekarang. Kalo dihitung, kurang lebih sudah 6 tahun saya "bermain" dengan Zimbra. Dan alhamdulillah sudah jutaan rupiah bisa saya dapatkan hanya dengan jasa instalasi dan konfigurasi Zimbra yang saya terapkan di beberapa perusahaan. Sekarang sudah saatnya saya bagikan salah satu ilmu andalan saya ini kepada temen-temen.

Kita langsung mulai saja. Bismillahirrohmanirrohim...

Requirements

Sebuah software pasti memiliki persyaratan teknis agar software tersebut dapat berjalan dengan optimal, termasuk spesifikasi hardware. Berikut merupakan hardware requirement yang dibutuhkan agar Zimbra dapat berjalan optimal :
- Processor Dual Core (minimal)
- RAM 2 GB (minimal). Lebih optimal jika menggunakan RAM 4 GB atau lebih.
- LAN Gigabit Ethernet (recomended). Tidak disarankan menggunakan FastEthernet untuk diimplementasikan pada LAN.
- Hard Disk > 100 GB (tergantung banyaknya user email)

Persiapan

Jika komputer dengan spesifikasi di atas sudah kita persiapkan. Selanjutnya kita install dengan CentOS 6.5 64bit. Disarankan untuk tidak menambahkan GUI pada instalasi CentOS karena dapat memberatkan kinerja sistem sehingga Zimbra tidak dapat berjalan optimal. Setelah itu, setting IP Address pada CentOS, misalnya kita set IP 10.10.10.2. Tidak lupa pastikan koneksi internet berjalan. Untuk melakukan instalasi Zimbra juga kita mesti menggunakan user root (superuser) pada CentOS.
Hal yang harus dipertimbangkan lagi yaitu penggunaan text editor. Di sini saya akan menggunakan text editor nano dibandingkan vi. Karena penggunaanya lebih mudah dibandingkan vi. Tapi jika temen-temen sudah terbiasa dengan vi pun tidak masalah, yang penting bisa edit file, hehe.. :D
Jika CentOS belum memiliki text editor nano, bisa kita install dengan perintah :
# yum install -y nano

Prainstalasi

Waduh masih belum ke tahap instalasi juga nih? Ya memang untuk membangun sebuah server terkadang membutuhkan banyak tahap persiapan meskipun tahap instalasinya sangat mudah. Tapi dengan persiapan yang matang, sebuah rencana dapat dijalankan dengan mulus :)

Konfigurasi Hostname & DNS

Seperti anak yang baru lahir, server yang baru diinstall juga harus diberi nama. Maka dari itu, kita harus menentukan hostname sehingga Zimbra dapat mengenali nama server kita. Edit file /etc/hosts dengan perintah :
# nano /etc/hosts
Tambahkan baris berikut pada bagian bawah dalam file tersebut :
10.10.10.2 mail.domain.com mail
*ubah mail.domain.com dan mail sesuai dengan host/domain yang akan digunakan
Save hasil perubahan dengan cara Ctrl+O > [Enter], dan exit dengan Ctrl+X (jika menggunakan nano). Setelah itu restart CentOS dengan perintah :
# reboot
Kita sudah memberi nama pada server, tapi nama tersebut masih belum bisa dikenali oleh komputer lain. Agar komputer lain dapat mengenali server kita, maka kita harus mendaftarkannya pada DNS Server. Kalo temen-temen belum memiliki DNS Server, bisa di-install dan dikonfigurasi langsung  pada server ini sebelum menginstall Zimbra. 
Gimana caranya bikin DNS Server? Gampang, cukup baca aja tutorial Konfigurasi Bind9 (DNS Server) pada CentOS 6.5 dengan Chroot.
Agar calon server zimbra kita dapat dikenali, wajib ditambahkan baris berikut pada record DNS-nya :
IN MX 10 mail.domain.com. 
mail IN A 10.10.10.2
Record DNS untuk server Zimbra sudah kita daftarkan, tapi juga harus kita gunakan. Artinya server Zimbra ini harus menjadi DNS Client juga yang mengacu kepada DNS Server tersebut. Saatnya edit file /etc/resolv.conf dengan perintah :
# nano /etc/resolv.conf
Tambahkan baris berikut : (contoh IP nameserver di bawah jika DNS Server berada pada Zimbra Server)
nameserver 10.10.10.2
Agar konfigurasi DNS Client dapat langsung bekerja, restart network dengan perintah :
# /etc/init.d/network restart

Disable Service

Tahapan ini diperlukan karena beberapa aplikasi dan sistem keamanan pada CentOS dapat menghambat proses instalasi Zimbra. Keamanan pada CentOS seperti Firewall dan SELinux untuk sementara kita harus disable dahulu dan bisa kita konfigurasi ulang setelah proses instalasi Zimbra. Cara mengamankan CentOS dan Zimbra mungkin akan saya bahas lain kali di luar tutorial ini.
Ikuti langkah-langkah berikut :
Disable Postfix dan iptables.
# service iptables stop
# service ip6tables stop
# service postfix stop
# chkconfig postfix off
# chkconfig iptables off
# chkconfig ip6tables off
Edit file /etc/selinux/config untuk disable SELinux.
# nano /etc/selinux/config
Cari dan ubah bagian berikut :
SELINUX=disabled
Edit file /etc/sudoers
# nano /etc/sudoers
Cari bagian berikut dan tambahkan tanda pagar (#) seperti contoh di bawah :
#Defaults    requiretty
Restart CentOS dengan perintah :
# reboot

Install Package yang dibutuhkan

Sebelum melakukan instalasi Zimbra, kita perlu melakukan instalasi package-package pada CentOS yang dibutuhkan oleh Zimbra. Jalankan perintah berikut :
# yum -y install perl perl-core wget screen w3m elinks unzip nmap sed nc sysstat libaio rsync telnet aspell libtool-ltdl compat-libstdc++*

Instalasi Zimbra 8.6 Open Source Edition

(Akhirnya...sampai juga pada tahap instalasi Zimbra :D)
Untuk melakukan instalasi Zimbra, kita harus download terlebih dahulu package Zimbra 8.6 Open Source Edition. Download package bisa dilakukan langsung dari CentOS atau download manual dari komputer lain.
Untuk download langsung melalui CentOS, bisa dicoba perintah berikut :
# wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.RHEL6_64.20141215151155.tgz
Atau jika ingin download secara manual, bisa klik link berikut : Download Zimbra Open Source Edition

Setelah kita download package Zimbra, extract file tersebut dengan perintah :
# tar -xzvf zcs-8.6.0_GA_1153.RHEL6_64.20141215151155.tgz
Jika proses extract sudah selesai, masuki direktori yang hasil extract package kemudian eksekusi file instalasi. Ikuti langkah berikut :
cd zcs-8.6.0_GA_1153.RHEL6_64.20141215151155/
# ./install.sh --platform-override
Tunggu sesaat, kemudian akan muncul pesan Terms & Agreement. ketik Y seperti contoh di bawah :
PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE.
ZIMBRA, INC. ("ZIMBRA") WILL ONLY LICENSE THIS SOFTWARE TO YOU IF YOU
FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY DOWNLOADING OR INSTALLING
THE SOFTWARE, OR USING THE PRODUCT, YOU ARE CONSENTING TO BE BOUND BY
THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS
AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL OR USE THE PRODUCT.
License Terms for the Zimbra Collaboration Suite:
http://www.zimbra.com/license/zimbra-public-eula-2-5.html
Do you agree with the terms of the software license agreement? [N] Y
Setelah itu, akan muncul pilihan package Zimbra yang akan di-install. Jika belum yakin dengan package yang akan dipilih, sesuaikan dengan pilihan seperti contoh di bawah (Y jika ingin di-install, N jika tidak ingin di-install) :
Select the packages to install
Install zimbra-ldap [Y]
Install zimbra-logger [Y]
Install zimbra-mta [Y]
Install zimbra-dnscache [Y] N
Install zimbra-snmp [Y]
Install zimbra-store [Y]
Install zimbra-apache [Y]
Install zimbra-spell [Y]
Install zimbra-memcached [Y] N
Install zimbra-proxy [Y] N
Ketik Y kembali untuk menyetujui pilihan package.
Checking required space for zimbra-core
Checking space for zimbra-store
Checking required packages for zimbra-store
zimbra-store package check complete.
Installing:
zimbra-core
zimbra-ldap
zimbra-logger
zimbra-mta
zimbra-snmp
zimbra-store
zimbra-apache
zimbra-spell
The system will be modified. Continue? [N] Y
Tunggu beberapa saat, hingga akan muncul error seperti contoh di bawah. Error ini terjadi karena secara default zimbra akan membuat domain email menggunakan hostname server kita (contoh : user@mail.domain.com) sedangkan kita membutuhkan alamat email dengan domain utama (contoh : user@domain.com). Berarti, pada tahap ini kita cukup pilih Yes untuk mengubah domain dan mengisinya dengan nama domain utama yang akan digunakan, seperti contoh di bawah :
DNS ERROR resolving MX for mail.domain.com
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes]
Create domain: [mail.domain.com] domain.com
Setelah proses perubahan domain tadi, akan muncul Configuration Menu seperti contoh di bawah. Di sini kita hanya perlu menentukan password untuk user admin Zimbra. Ketik angka 6 dan [Enter] untuk masuk ke menu zimbra-store.
Main menu
1) Common Configuration:
2) zimbra-ldap: Enabled
3) zimbra-logger: Enabled
4) zimbra-mta: Enabled
5) zimbra-snmp: Enabled
6) zimbra-store: Enabled
+Create Admin User: yes
+Admin user to create: admin@domain.com
******* +Admin Password UNSET
+Anti-virus quarantine user: virus-quarantine.zcystwcsm@domain.com
+Enable automated spam training: yes
+Spam training user: spam.z7piyptt@domain.com
+Non-spam(Ham) training user: ham.zxtj5fxh8@domain.com
+SMTP host: mail.domain.com
+Web server HTTP port: 80
+Web server HTTPS port: 443
+Web server mode: https
+IMAP server port: 143
+IMAP server SSL port: 993
+POP server port: 110
+POP server SSL port: 995
+Use spell check server: yes
+Spell server URL: http://mail.domain.com:7780/aspell.php
+Configure for use with mail proxy: FALSE
+Configure for use with web proxy: FALSE
+Enable version update checks: TRUE
+Enable version update notifications: TRUE
+Version update notification email: admin@domain.com
+Version update source email: admin@domain.com
+Install mailstore (service webapp): yes
+Install UI (zimbra,zimbraAdmin webapps): yes
7) zimbra-spell: Enabled
8) Default Class of Service Configuration:
s) Save config to file
x) Expand menu
q) Quit
Address unconfigured (**) items (? - help) 6
Pada menu zimbra-store, ketik 4 dan [Enter], lalu masukkan password untuk admin Zimbra (misalnya: 4dm!nZ1mbr@). Setelah selesai memasukkan password admin, kembali ke menu sebelumnya dengan mengetik 'r' dan [Enter] seperti contoh berikut:
Store configuration
1) Status: Enabled
2) Create Admin User: yes
3) Admin user to create: admin@domain.com
** 4) Admin Password UNSET
5) Anti-virus quarantine user: virus-quarantine.zcystwcsm@domain.com
6) Enable automated spam training: yes
7) Spam training user: spam.z7piyptt@domain.com
8) Non-spam(Ham) training user: ham.zxtj5fxh8@domain.com
9) SMTP host: mail.domain.com
10) Web server HTTP port: 80
11) Web server HTTPS port: 443
12) Web server mode: https
13) IMAP server port: 143
14) IMAP server SSL port: 993
15) POP server port: 110
16) POP server SSL port: 995
17) Use spell check server: yes
18) Spell server URL: http://mail.domain.com:7780/aspell.php
19) Configure for use with mail proxy: FALSE
20) Configure for use with web proxy: FALSE
21) Enable version update checks: TRUE
22) Enable version update notifications: TRUE
23) Version update notification email: admin@domain.com
24) Version update source email: admin@domain.com
25) Install mailstore (service webapp): yes
26) Install UI (zimbra,zimbraAdmin webapps): yes
Select, or 'r' for previous menu [r] 4
Password for admin@domain.com (min 6 characters): [iPZvUtXAno] 4dm!nZ1mbr@
Select, or 'r' for previous menu [r] r
Dari menu konfigurasi di atas, dapat kita sadari bahwa Zimbra membuat sebuah akun email admin@domain.com pada saat instalasi, yang berfungsi baik sebagai user email biasa, maupun sebagai user untuk urusan administrasi dan konfigurasi Zimbra.
Kembali ke Configuration Menu, ketik 'a' [Enter] untuk apply hasil konfigurasi password, kemudian ketik "Yes" dan [Enter] untuk save konfigurasi. Tekan [Enter] kembali untuk menyimpan file konfigurasi, lalu ketik 'Yes' dan [Enter] lagi untuk konfirmasi perubahan pada sistem. Lihat contoh di bawah :
*** CONFIGURATION COMPLETE - press 'a' to apply
Select from menu, or press 'a' to apply config (? - help) a
Save configuration data to a file? [Yes]
Save config in file: [/opt/zimbra/config.9907]
Saving config in /opt/zimbra/config.9907...done.
The system will be modified - continue? [No] Yes
Tunggu prosesnya hingga muncul permintaan notifikasi instalasi Zimbra. Ketik 'No' dan [Enter] seperti contoh berikut :
Notify Zimbra of your installation? [Yes] No
Tunggu kembali proses instalasinya hingga selesai, hingga muncul pesan berikut. Tekan [Enter].
Configuration complete - press return to exit
Alhamdulillah proses instalasi Zimbra akhirnya beres juga :D

Web Interface Zimbra

Admin Web Console

Setelah proses instalasi selesai, kita dapat langsung mengakses Zimbra Admin Console melalui browser dengan alamat https://10.10.10.2:7071 atau https://mail.domain.com:7071 jika menggunakan alamat domain (DNS). 
Jika ada security warning dari browser, abaikan saja. Hal ini terjadi karena Zimbra yang kita install tidak memiliki certificate HTTPS berbayar.
Login menuju Admin Console menggunakan user admin dengan password 4dm!nZ1mbr@ seperti yang sudah kita set pada saat instalasi. Berikut tampilan login dan halaman utama Admin Console :
Pada Admin Console ini kita bisa melakukan penambahan user dan group email (distribution list), melakukan konfigurasi server dan domain, serta dapat melakukan monitoring seperti service yang berjalan, antrian email, statistik penggunaan email, dll.

Web Mail Client

Web mail client dapat diakses oleh setiap pengguna melalui alamat http://10.10.10.2 atau http://mail.domain.com jika menggunakan alamat pada DNS. Berikut tampilan web mail client Zimbra :

Service Management Zimbra

Terkadang kita perlu melakukan restart, stop, atau start service secara manual setelah kita melakukan rekonfigurasi terhadap suatu aplikasi, begitu juga dengan Zimbra. Selain itu juga terkadang harus mengecek status suatu service apakah service tersebut berjalan atau tidak. Di sini saya akan memberitahukan cara untuk melakukan restart, start, stop, sekaligus melihat status service Zimbra.
Untuk mengatur service Zimbra dan melakukan konfigurasi lainnya melalui terminal pada sistem operasi (dalam bahasan ini berarti CentOS), Server Zimbra telah membuat sebuah akun khusus bernama 'zimbra'.
Kembali ke Server Zimbra, dan login sebagai root terlebih dahulu. Setelah login, gunakan user zimbra dengan cara :
# su zimbra
Setelah masuk ke mode user zimbra, lakukan perintah berikut untuk restart/start/stop seluruh service zimbra :
$ zmcontrol restart
$ zmcontrol start
$ zmcontrol stop
Untuk mengecek status service-service pada Zimbra, dapat dilakukan dengan cara :
$ zmcontrol status
Service Zimbra juga dapat diatur per-package, misalnya saya ingin melakukan restart terhadap service MTA Zimbra saja. Caranya seperti berikut :
$ zmmtactl restart
Berikut beberapa service yang dapat diatur dan dicek dengan cara serupa seperti contoh di atas yaitu :
- zmamavisdctl (Service Antivirus dan Antispam Zimbra)
- zmloggerctl (Zimbra Log File)
- zmmailboxdctl (Mailbox Service)
- zmmtactl (MTA Service)
- zmopendkimctl (OpenDKIM Service)
- zmsaslauthdctl (Zimbra Authentication Service)
- zmspellctl (Zimbra Spelling Service)
- zmstatctl (Zimbra Statistics Service)
- zmstorectl (Zimbra Store Service)
- zmswatchctl ( Zimbra Monitoring Service)

Log Monitoring Zimbra

Realtime Monitoring

Log Monitoring berfungsi untuk mengecek kelancaran sistem atau melakukan troubleshoot terhadap suatu kesalahan / error yang terjadi pada sistem. Untuk melakukan log monitoring terhadap zimbra secara realtime, cukup jalankan perintah berikut sebagai user root :
# tail -f /var/log/zimbra.log
Log lainnya selain berada pada /var/log/zimbra.log, juga banyak disimpan pada direktori /opt/zimbra/log/. Misalnya saya ingin melakukan monitoring terhadap konektivitas mailbox user zimbra :
# tail -f /opt/zimbra/log/mailbox.log

Filter Log

Melakukan filtering log sangat berguna juga untuk mencari log berdasarkan keyword tertentu. misalnya saya ingin melihat log email admin@domain.com seperti contoh di bawah :
# cat /var/log/zimbra.log |grep admin@domain.com
Cara filtering log ini juga berlaku untuk log yang lain.



Nampaknya segitu dulu tutorial mengenai Zimbra 8.6 Open Source Edition pada CentOS 6.5. Soalnya lumayan cape juga ngetik segitu banyak. Hehehe....(tutorial ini bukan hasil copas loh :D)
Kalo temen-temen mau tau lebih banyak tentang Zimbra atau ilmu yg lain, bisa tanya saya langsung lewat halaman kontak atau kolom komentar, atau boleh juga belajar secara privat asalkan domisilinya di Bandung. Hehehe...

Wassalamua'alaikum Wr. Wb.