Thursday, October 31, 2013

How to make Torrent or any file to work with Firefox (Ubuntu 12.04)

   
 Whenever we click a file to download using Torrent client,  Torrent will use   ".magnet"  protocol to communicate with it's peers in the network. The idea of this  protocol is using the content cryptographic hash value of the file rather than of it's location. This protocol  use metadata content to be located by our machine.

  In this post I'll share how we can solve the problem of Torrent file magnet that can't work  with Firefox. This problem happen because Firefox doesn't recognize the ".magnet" file .Below are the steps taken to resolve this problem:

1. Open  Firefox browser and type "about:config "

2. Search for file "network.protocol-handler.expose.magnet"   this file determine whether our browser know which application need to be open with ".magnet" file type .

3. Right click and choose
"New>boolean> (key in network.protocol-handler.expose.magnet) > false"

4.Make sure the file is configure in our browser.

5. Go to torrent file and click it to open

6. Choose the type of application that you want  to run with ".magnet" file .
 (search for your bittorent client) .

/usr/bin/transmission


    There you go.Your browser should  able to work with torrent file.To know more about what type of application associate with your browser, Go to your browser

Edit>Preference>Application

You should have something like this
 
Application associate with Firefox Browser
                                     
                                     

Wednesday, October 30, 2013

GPON for dummies :Basic Passive Optical Network Concept (Series 2)


Why need to Migrate the network?

     In my previous post, I've described the problem that we have in our traditional DSLAM network which is the contradiction between  Bandwidth vs Distance . It must be highlighted here that our traditional Access Network need to  migrate to IP Base architecture.  This migration is necessary to accommodate the changing of our technology  and to ease the maintenance of the network . A clear Idea can be understand from  below diagram.

Figure 2.1 The Changing of technology and network

                         


    When we connect to  internet  , This is some of the technologies that were use in  the backbone. The migration from traditional network is necessary for us to meet the challenge of future technology expansion and requirement. The world that we  live today is becoming smaller and smaller, although I don't like the idea of absolute globalization, but this technologies might help those in need of learning in area that not even possible for us to travel . Just imagine next time we can have realtime meeting with anyone from around the world from the comfort of our own house.I believe this is essence of technology which should make our life easier .


Active and Passive Optical Network

   Passive Optical Network  (PON) and Active Optical Network (AON)  is a communication type used to transmit data from one point to many connection. In Telecommunication,this is known as point to multiple points  or known as abbreviation  P2MP .

    Fiber optics uses light signal to transmit data to  its destination.In order for data to successfully transmit  to its destination,   There are two main concept for this to happen which is Active Optical Network (AON) and Passive Optical Network (PON) .  AON uses power switching like switch aggregator to manage the signal distribution. PON on the other hand does not include this power switching but uses passive splitter to transmit data to its destination. Power equipment only needed at the starting and end point within the network.We will have a look on PON later in this post.

  Since AON is using switch aggregator, the switch open and closes depending on the signal and direct the incoming and outgoing data to it's destination . The  data transmission using AON is properly deliver.The disadvantage of running AON is it require active power equipment and need at least one aggregator for every 48 subscriber.With this understanding ,the building cost of installing AON in network is extremely expensive and is not a cost effective especially in delivering in large network.

    PON on the other hand does not require electrical power switch .The data transmission uses optical splitter to collect and separate as it moves through the network. PON is more reliable to be install in large scale network because of the low building cost and less maintenance cost as compared to AON.The main disadvantage of PON network is that troubleshooting and isolating the problem might be difficult if there is failure in the network.Diagram below show  a component in PON network

Figure 2.2  Passive Optical Network (PON)
                                                   
                                 

     A PON network consists of Optical Line Terminal (OLT),  Optical Network Unit (ONU), and Passive Optical Splitter (POS) .Optic Line Terminal (OLT) is the equipment at the central office or service provider location while Optic Network Terminal (ONT) is the power equipment in the customer end . The transmission between the splitter is running using Wave Division Multiplexing (WDM) technologies. Figure 2.3 below show a detail information of  a PON Model . 



Figure 2.3   GPON Model


    OLT  is located in service node interface (SNI) while ONT on the other hand is located in User network interface (UNI) in the big picture of PON network . This is so because of the equipment  location in the network. OLT is connected to the upper layer of the network and ONT is at the user end premises  in the network .More on this later in the next chapter. .
                                            
Thats it for now . I'll be discussing more about PON standard  next time. Happy blogging!!

Friday, October 25, 2013

GPON for dummies :Optical Access Network (Series 1)

  Currently I'm living in Australia and there  are a lot of news about the high speed broadband in the newspaper. I believe the company that does it now is NBN Co. For those who don't know what is FTTH,I'll share a little bit of information on this .I'll separate it to different part  to make things easy. In this part, I'll be explaining in general the idea of the term that widely being use and will go into more detail in chapters to come.

Optical Access Network Architecture

  First and foremost,.What is FTTH, FTTN,FTTB, FTTC or what the heck is all this term?All this term belong to Optical Access  Network architecture .This branch of technology is controlled by major Telecommunication company like Huawei ,ZTE, Alcatel-Lucent ,Ericsson-Marconi . 


                                Figure 1.1 Example of Optical Access Architecture

   Previously, our traditional internet connection using Digital Subscriber Line Access Multiplexer (DSLAM)  type of network architecture. DSLAM make use the existing telephone copper to deliver xDSL service. The preferable distance  from the Central Office (CO) to business premise need to be less than  <5km .I will share the details of xDSL technology limitation on different article.For time being  just understand that copper have limitation in term of Bandwidth vs Distance. In other words , DSLAM can't efficiently deliver it's services to those in rural area that is  more than >5 km from the CO .

  To resolve the issue of Bandwidth vs Distance, we have the not so new technology called Passive Optical Network (PON) and Active Optical Network (AON).I will focus on PON in this article and will write more on the differences on future post. As you can see in above photo ,PON technology used fibre optic to extend the long reach of its service to business premises. Thus this help to resolve the  problem that we have in our traditional DSLAM network.

  From the above architecture diagram,  the fiber is split to external plant from Central Office (CO) using Optical Distribution Network (ODN) .ODN  consist of a passive element that split the fiber to the respective architecture scenario. In real world ODN network is what we see  being installed by the contractor physically by digging/trenching or boring at the footpath . Some of the splitter is left inside the pit and from one pit to the next pit is connected by a pipe.The fiber is lay inside this pipe to reach its destination .In layman term the ODN network architecture is also known as pit and pipe architecture .

 The different application between each architecture is describe  as below:

Fiber to the home (FTTH) consist scenario of
1.single family unit  which able to provide a comparatively small number of ports, including  VOIP, 10/100/1000BASE-T, and RF.

Fiber to the building (FTTB)  :consist scenario of
1.Single business unit which able to provide a comparatively small number of ports such as  10/100/1000BASE-T, RF, and DS1/T1/E1 ports


2.Multi-tenant business unit which able to  provide  a comparatively larger number of ports, including  10/100/1000BASE-T, RF and DS1/T1/E1 ports. xDSL technologies


Fiber to the curb/node (FTTC/FTTN) consist scenario of
1.DSLAM/MSAN (Multiple Service Access Node) which able to provide a comparatively larger number of ports, including  10/100/1000BASE-T, RF, xDSL technologies


  The advantage of deploying FTTN network is  it can save considerable amount of money by not installing fibre optic cable to each premise . Rather, the fiber optics cable can just be install from CO to side of neighbourhood road/curb. FTTN can utilize the existing copper telephone network to deliver it's services .The disadvantage of this is, it will limit the network expansion for future growth and there is possibility of copper deteriorate throughout time .Before deploying FTTN a considerable amount of consideration is needed and understanding on the direction that will be taken by the company for future business growth .

  Beside this few example,there are a different number of design that we can do using FTTN network namely point to point, ring and star type of connection. I will update more about this in later post.

Please subscribe to this blog and like my Youtube  channel for more tips and tricks!!


How to add URL in Blekko Search Engine

In this post,I'm going to share How to add URL in Blekko Search Engine.

Steps:

1.You need to register an account with Blekko

2. Click your profile



3.Click create a new tag

4. Add your slashtag (any name)

5.key in your URL/website.

6.click search to add it to your slashtag

7. For adding your own website,type your website’s URL into the section entitled “List websites and slashtags:” and add it under the slashtag




Friday, October 18, 2013

Tutorial Installasi Ubuntu Server Di Virtual Box / VM Ware

Bonjour! Kita ketemu lagi di blog Tutorial Linux Ubuntu Berbahasa Indonesia. Kalau diingat-ingat di blog ini saya sudah cukup banyak memberikan tutorial-tutorial seputar linux khususnya ubuntu. Tapi, rasanya ada yang kurang :D

Rasanya saya melewatkan hal paling mendasar dalam menguasai linux ubuntu, jika tanpa memberikan tutorial installasi ubuntu server. Pada artikel ini saya menyajikan tutorial yang berbeda, proses installasi linux ubuntu server  ini akan saya lakukan di virtual box. Jika anda kebetulan sedang mencari panduan installasi linux ubuntu anda tidak salah tempat berkunjung. Saya sengaja tidak memasukkan video kedalam blog ini dikarenakan beberapa alasan. Untuk lebih jelasnya silahkan kunjungi video ini di youtube.

Tutorial Installasi Linux Ubuntu Server Di VirtualBox



Semoga bermanfaat,
Salam penguin! :)

How to configure USER permanent PATH link in Linux (Ubuntu 12.04)

  When we do our scripting or any other job in Linux, we always have problem in running the script or command directly from our shell terminal. As shown in my previous video, we always need to go  from one folder to one folder to execute file. The reason why we need to do this because our shell doesn't recognize our working folder as a valid location to check the command as determine by our kernel. A command might consist of several line of bash configuration and it can go up to hundred line in which we call it a script .We use script to make our machine do what we want to do with our machine. 
 
   In Linux, this function is control under the 'Environment Variables'.Environment variables consist of names that have values assigned to them.Environment variables provide a way to influence the behavior how our script/command/software function in our machine.

   Our machine stored the 'Environment Variables' under variable called "PATH".Our system will scan and check the "PATH" variable  folder for the command that we type in the terminal.It will then execute it as a valid command or not.For example if we run "ls -a" in our terminal, our system will scan the system folder to find which file to execute .Thus if we want to make our life easier, we need to include the folder that we want the system to scan to .By default,we can see what folder is included in our machine environment by typing "echo $PATH" as below example.

shark_attack@Positive-Space:~$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

In Bash, we can manipulate  the variable using "export"command , we can use below format for this purpose .

 export VARIABLE=value
or more specifically

export PATH=$PATH:/home/shark_attach/Programming/bash  #/home/shark_attack... is my folder


Need to be highlighted here the "export" command will only run as a temporary  on our machine.when we restart our machine, the link will be deleted. To make it permanent, we need to write it on our system variable. There are two ways in doing so which is on :

1. User level
2. System level 

Differences between both level for Ubuntu are simplified in below table


FILE CAN BE CHANGE ENV SETTINGS DETAILS LEVEL TYPE
~/.pam_environment(Recomended)
~/.profile
~/.bash_profile
~/.bash_login
~/.bashrc
Only effect a particular user USER
/etc/environment (Recomended)
/etc/profile
/etc/bash.bashrc
It effect whole user that use the system SYSTEM
                                    Environment Variable in Ubuntu

Each of this file have their own specific function on our machine. For more detail information,please visit Ubuntu Variable Guide

Once you've decided which file you should be manipulating, use the echo and single quote (') as below. Single quote means that we  echo the file  literally as how we want it to be written.
echo 'export PATH=$PATH:/home/shark_attack/Programming/bash' >>~/.bashrc

restart the Terminal and try run the file/script. This should work. Please see my videos for more detail.



Read Previous : How to configure Sudoer

Thursday, October 10, 2013

Cara Me-Repair Database MySQL Error

Bonjour! Pernahkah anda mengalami pengalaman yang mirip dengan saya? Kejadian ini terjadi pada server social site dikantor saya. Social blog site dikantor saya menggunakan wordpress, suatu ketika database di server tersebut mengalami error sehingga ketika dikunjungi terdapat error page "Error established database". Sebenarnya kejadian seperti ini mungkin saja terjadi pada server apapun, ketika traffic ke database terlalu tinggi dan resource server tersebut kurang mendukung maka service mysql di server tesebut hang.

Jika anda mengalami hal tersebut, anda bisa cek setinggi apa traffic ke database server anda dengan mengetikkan perintah dibawah ini :

mysql> show processlist;
+-------+------------+-----------+------------+---------+------+-------+------------------+
| Id    | User       | Host      | db         | Command | Time | State | Info             |
+-------+------------+-----------+------------+---------+------+-------+------------------+
| 87222 | masterdata | localhost | masterdata | Sleep   |    6 |       | NULL             |
| 87229 | masterdata | localhost | masterdata | Sleep   |   18 |       | NULL             |
| 87242 | masterdata | localhost | masterdata | Sleep   |   26 |       | NULL             |
| 87244 | masterdata | localhost | masterdata | Sleep   |   94 |       | NULL             |
| 87262 | masterdata | localhost | masterdata | Sleep   |   29 |       | NULL             |
| 87264 | masterdata | localhost | masterdata | Sleep   |   60 |       | NULL             |
| 87269 | masterdata | localhost | masterdata | Sleep   |    2 |       | NULL             |
| 87272 | masterdata | localhost | masterdata | Sleep   |    2 |       | NULL             |
| 87277 | masterdata | localhost | masterdata | Sleep   |  107 |       | NULL             |
| 87281 | masterdata | localhost | masterdata | Sleep   |   27 |       | NULL             |
| 87291 | root       | localhost | NULL       | Query   |    0 | NULL  | show processlist |
+-------+------------+-----------+------------+---------+------+-------+------------------+
11 rows in set (0.00 sec)

Contoh diatas tidak menunjukkan kondisi service mysql error, tapi jika service pada server anda mengalami hang karena traffic database yang sangat tinggi, saya yakin akan sangat banyak sekali yang keluar ketika anda melakukan query show processlist;

bahkan ketika anda melihat system monitor di server linux anda dengan htop atau top misalnya, service mysql akan tampak memakan resource paling banyak, kondisi di depan website tentu hanya ada warning error established database.

Maka dari itu cara me-repair database mysql error. Untuk melakukannya silahkan lakukan perintah ini :
mysqlcheck -c blog -u root -p
Jika anda ingin menampilkan hasil tersebut kedalam sebuah file tambahkan perintahnya jadi seperti ini :
mysqlcheck -c blog -u root -p > output
Perintah diatas hanya akan memeriksa error database mysql terjadi pada tabel yang mana. Cara me-repair database mysql error secara otomatis silahkan lakukan perintah ini :
mysqlcheck -c blog --auto-repair -u root -p > output
Perintah diatas akan melakukan pemeriksaan pada setiap tabel database di server anda, lalu akan me-repair error table database secara otomatis, dan terakhir melakukan print dari kegiatan tersebut kedalam sebuah file. Dengan begitu anda bisa melihat table mana yang sering mengalami error, dan dapat mengantisipasinya secepat mungkin.

Baiklah, sekian cerita pengalaman saya, cara me-repair database mysql error ternyata tidak terlalu sulit bukan? :)

Semoga bermanfaat,
Salam Penguin! :)



Wednesday, October 9, 2013

Cara Mengganti Text Di Dalam File Via Terminal Linux

Bonjour! Saya punya pengalaman baru beberapa hari kebelakang ini, sepertinya pengalaman saya akan berguna bagi anda. Meskipun mungkin dengan kasus yang berbeda namun metode ini sepertinya akan dapat diterapkan ketika anda menghadapi kasus lain dan membutuhkan penyelesaian ini. Saya akan sedikit bercerita tentang kasus saya, dan bagaimana menyelesaikannya. Selamat membaca :)

Kantor saya adalah sebuah perguruan tinggi di Bandung, dinaungi oleh sebuah yayasan pendidikan yang juga memiliki lembaga-lembaga pendidikan lain. Nah, kemaren itu yayasan ini menyatukan semua lembaga menjadi kesatuan universitas. Dampaknya pada IT cukup banyak, karena setiap lembaga berubah nama. Dengan perubahan nama seperti itu otomatis domain internet pun berubah. Singkat cerita, sayapun mulai menyingkilkan lengan baju dan melakukan migrasi domain, semuanya berjalan lancar sampai dengan selesai!

Tapi ada salah satu website blogging yang merupakan multisite blogging. Didalamnya ada ribuan user dan ribuan artikel. Migrasi domain DNS saja tidak cukup, karena URL SETIAP BLOGURL SETIAP ARTIKEL, URL SETIAP GAMBAR semuanya tertanam didalam database. Cukup menantang, dimana saya harus segera merubah semua url sialan tersebut ke url dengan domain baru. Saya yakin andapun tidak akan mau jika harus merubah semua itu secara manual, satu per satu, kapan selesainya? :|

Bagaimana cara mengganti text di dalam file tersebut via terminal linux? Setelah mencari cara dan melakukan beberapa percobaan akhirnya semua itu dapat diatasi bahkan jika saya melakukannya dari awal secara benar, itu hanya memakan hitungan menit.

Multisite ini adalah wordpress social blogging yang dibuat untuk menampung semua tulisan seluruh civitas, untuk site setting dan konfigurasi script tidak terlalu sulit. Anda bisa mencarinya dengan mudah di mbah google. Saya hanya akan fokus menyampaikan bagaimana mengganti semua url tadi menjadi url dengan domain baru. Berikut ini langkah-langkahnya :
  • DUMP database anda. Ya, backup terlebih dahulu database anda. File backup yang saya miliki cukup besar untuk sebuah database, ratusan MB lah.
  • Selanjutnya, anda tidak perlu membuka file dump tersebut karena sangat menjengkelkan dan bikin mumet. Cukup ketikkan perintah dibawah ini pada server linux anda :
    root@apocalypsix: sed -e 's/[text_yang_mau_diganti]/[text_yang_baru]/g' [nama_file] > [output_file]
  • Langkah terakhir adalah meng-import kembali file output.
  • Selesai!

PENJELASAN :

Perintah diatas akan mencari sebuah text dan menggantinya dengan yang baru, pengerjaannya sangat cepat. Berbeda dengan jika saya melakukannya dengan nano editor, memakai notepad++ pun tidak membantu banyak, masih terdapat missing line yang tidak di eksekusi. Saya berikan contoh lain, misalnya kita memiliki sebuah file bernama daftar_gaji yang didalamnya ada banyak text. Misalnya isinya seperti ini :
Daftar gaji berdasarkan pendidikan :
SD  = 500.000
SMP = 700.000
SMA = 1.300.000
D3  = 1.500.000
S1  = 2.000.000
Misalnya kita harus merubah gaji bagi yang berlulusan SD, dari 500.000 menjadi 600.000. Untuk mengganti text di dalam file via terminal linux, lakukan perintah seperti tadi :
root@apocalypsix : sed -e 's/500.000/600.000/g' daftar_gaji > daftar_gaji_baru
Kira-kira seperti itulah, kasus saya pun terselesaikan hanya dengan sepenggal sajak berbahasa linux :D
Jika anda juga mengalami kasus serupa dan bingung bagaimana cara mengganti text di dalam file via terminal linux, mungkin cara ini bisa anda pakai, sepertinya format linux dan unix pun tidak akan terlalu jauh berbeda.


Semoga bermanfaat,
Salam Penguin! :)



Monday, October 7, 2013

How to do progress indicator using bash



  Sometimes when our machine is doing job for longer time period, we need some methods to make sure the end user being keep updated. One such example I can think off is when  we are  running our system backup script.The reason why we need such application is to make sure the end user feel content and not thinking that the script they are running are  hung or inactive.It is important for the script to do their job until finish without being interrupted .

Few example that I can think of for the progress indicator are as below

Dots
Rotating Line
Progress Counter counting to 100%

It must be highlighted that all this application are running in a loop(for,while,until)  and it should be use as a function in your script.Below are example of progress indicator script that you can try to play around

Dot

#!/bin/bash

 INT=1                                #declaring the variable


while true
do
     echo -n "." 
     sleep $INT 
done





 Rotating Line

#!/bin/bash

CHA=( "-" "\\" "|" "/" )
INT=1             
CNT=0              

while true                             #While function as controlling loop
do

    loc=$(($CNT % 4))            #using the modulo expression for arithmetic fn 

    echo -en "\b${CHA[$loc]}"  #check this link for bash arrays info.
    CNT=$(($CNT + 1))            #Increasing the CouNTer
    sleep $INT

done



 Increasing Progress indicator

#!/bin/bash

LIST="1 2 3 4 5 6 7 8 9 10"             #Note that there is a different when we
INT=1                                          #use (),"",'' .Maybe Ill explain in diff. post 
CNT=0               

for NIM in ${LIST}                         #For function  as controlling loop
do
   
    len=$(echo ${LIST} | wc -w)             #"wc"command is used print new line
    echo -en "\b\b\b$(($NIM*100/$len))%"
    sleep $INT
   

done



That's it for now. click here to download the script.

Installasi Dan Konfigurasi DNS Di Linux (BIND) - Part 3

Bonjour! Kita bertemu lagi di blog Tutorial Linux Berbahasa Indonesia, mungkin ini adalah postingan terakhir untuk topik kita mengenai DNS. Jika anda belum membaca artikel bersambung ini sebelumnya, saya sarankan untuk membacanya terlebih dahulu sebelum mempelajari lebih dalam lagi. Artikel sebelumnya ada di link dibawah ini :



Zona
Direktif zone untuk mendefinisikan domain yang akan dilayani oleh BIND. Dalam contoh kasus kita, zona yang akan ditangani oleh bind adalah domain apocalypsix.web.id. Direktif zone dapat berisikan direktif lain dan dideklarasikan diantara tanda kurung kurawal awal { dan ditutup dengan kurung kurawal } didalam direktif zone.

Penulisan opsi lain didalam opsi zone diakhiri dengan tanda titik koma ( ; ), termasuk opsi zone sendiri yang diakhiri dengan tanda titik koma ( ; ). Berikut adalah deklarasi untuk domain apocalypsix.web.id yang terdapat di berkas named.conf.local.

zone "apocalypsix.web.id" {
   type master;
   file "/etc/bind/apocalypsix.web.id";
};

Contoh diatas merupakan contoh konfigurasi minimal untuk sebuah domain yang hanya berisikan direktif type dan file. Direktif type akan menentukan sifat dari zona apakah bertindak sebagai master atau slave. Opsi ini akan dibahas lebih jauh di bagian server redundan sedangkan direktif file memberitahukan BIND lokasi dari berkas konfigurasi zona apocalypsix.web.id yang dapat ditemukan di /etc/bind/apocalypsix.web.id. Selain kedua direktif tersebut ada beberapa direktif lain yang akan berada didalam direktif zone. Daftar berikut adalah direktif yang dapat berada didalam direktif zone.

also notify { daftar-alamat; }; Digunakan untuk memberitahukan server DNS lain (Server DNS Slave) ketika terjadi perubahan catatan zona.

allow notify { daftar-alamat; }; Digunakan di Server DNS Slave untuk mengijinkan pemberitahuan perubahan catatan DNS yang berasal dari server master.

master { daftar-alamat; }; Digunakan oleh Server DNS Slave untuk mendefinisikan Server DNS Master.

allow query { daftar-alamat; }; Digunakan untuk mendefinisikan siapa yang diijinkan untuk melakukan permintaan ke Server DNS. Direktif ini digunakan untuk membatasi akses terhadap DNS, sehingga hanya klien yang telah ditentukan saja yang dapat melakukan permintaan ke server DNS.

allow-transfer { daftar-alamat; }; Digunakan oleh server DNS master untuk mengijinkan transfer berkas zona ke server DNS slave.

notify-source alamat-IP port alamat-port; Digunakan untuk secara eksplisit menentukan alamat IP dan port yang digunakan untuk memberitahukan server lain perubahan catatan zona.


View
Direktif view dan zone merupakan dua direktif yang saling berhubungan. Direktif ini baru diperkenalkan di BIND versi 9. Direktif view bertindak sebagai kontainer untuk direktif zone yang menyebabkan BIND akan memberikan jawaban yang berbeda untuk permintaan yang masuk tergantung darimana permintaan tersebut berasal.

Sebagai contoh, jika ada permintaan DNS terhadap host www.apocalypsix.web.id maka BIND dapat dikonfigurasi untuk membverikan jawaban yang berbeda. Jika permintaan berasal dari internet, maka BIND akan memberikan jawaban alamat IP publik sedangkan permintaan dari dalam jaringan lokal akan diberikan jawaban IP lokal. Metode ini lebih dikenal dengan nama split DNS.

Manfaat lain view adalah memisahkan fungsi otoritatif dan cache DNS. Sebaiknya fungsi cache hanya diperuntukan untuk jaringan lokal dan menutupnya dari internet demi alasan keamanan.


Berkas Zona
Setelah suatu domain telah di deklarasikan di dalam berkas named.conf.local maka langkah selanjutnya yang perlu dilakukan adalah membuat berkas zona itu sendiri. Nama dan lokasi berkas harus sesuai dengan direktif file yang dideklarasikan didalam direktif zone. Dalam kasus zona apocalypsix.web.id, nama berkas zona tersebut adalah apocalypsix.web.id yang terletak di direktori /etc/bind.

Berkas zona sebenarnya merupakan berkas yang berisikan daftar nama host yang ada didalam suatu domain. Berkas ini mempunyai fungsi utama untuk memetakan nama host dengan alamat IP selain berisikan beberapa direktif atau opsi lain yang berkaitan dengan suatu zona.

Untuk membuat berkas zona, ada baiknya jika kita melakukan pendataan terlebih dahulu atau semua host yang berada di dalam domain kita. Hal ini tentu saja untuk memudahkan kita dalam mengelola dan membagikan alamat IP ke server, dan juga mengelola penamaan host di domain.

Berkas zona memiliki format penulisan tertentu yang harus diikuti. Sebagai contoh berikut adalah berkas zona untuk domain apoclaypsix.web.id.

; BIND reverse data file for broadcast zone

$ORIGIN apocalypsix.web.id.
$TTL 1d

@   IN SOAns.apocalypsix.web.id. hostmaster.apocalypsix.web.id {
    906030942    : Serial number
    86400        ; Refresh
    1800         ; Retry
    50400        ; Expire
    3600         ; Negative cache TTL
};
    IN      NX        ns.apocalypsix.web.id.
    IN      MX   10   mail.apocalypsix.web.id.

ns       IN    A   10.10.1.1
proxy    IN    A   10.10.1.1
www      IN    A   10.10.1.1
mail     IN    A   10.10.1.5
ntp      IN    A   10.10.1.7

Semua berkas zona memiliki format dasar seperti diatas. Diawali dengan parameter yang ditujukan untuk zona tersebut, direktif khusus yang disebut sebagai rekaman (record) dimana setiap berkas zona diawali dengan rekaman SOA dan dilanjutkan dengan rekaman lainnya. Berbeda dengan berkas konfigurasi untuk aplikasi lainnya, komentar di berkas zona ditandai dengna tanda ; (titik koma) atau //.

Parameter digunakan di BIND biasanya digunakan untuk memberitahukan BIND mengenai informasi tertentu. Nilai yang diisikan kedalam parameter tersebut akan digunakan oleh BIND, namun bila tidak dideklarasikan maka adalah beberapa parameter yang sering digunakan.

$INCLUDE Parameter ini akan memasukkan berkas yang lain kedalam berkas zona tepat pada tempat dimana opsi ini digunakan. Hal ini berguna jika kita ingin menggunakan berkas lain untuk memisahkan konfigurasi zona terspisah dari berkas zona utama.

$ORIGIN Parameter ini akan menambahkan nama domain ke nama host relatif. Setiap nama host yang tidak diakhiri dengan tanda titik (.) merupakan nama host relatif dan akan ditambahkan nama domain sesuai dengan nama domain yang ditentukan oleh parameter ini.

Saturday, October 5, 2013

Installasi Dan Konfigurasi DNS Di Linux (BIND) - Part 2

Bonjour! Kita bertemu lagi di blog Tutorial Linux Ubuntu Berbahasa Indonesia. Sebelumnya saya sudah sedikit mengulas mengenai beberapa konfigurasi bind di linux. Jika anda belum membacanya, silahkan klik link dibawah ini.
Sekarang mari kita lanjutkan pembahasan sebelumnya. Kali ini saya akan membahas mengenai logging bind.

Logging
Bind memiliki fasilitas log yang cukup fleksibel menurut saya karena dapat dikonfigurasi sesuai dengan kebutuhan yang dikontrol oleh direktif logging. Bind versi 9 memiliki kemampuan kontrol yang sama dengan bind versi sebelumnya, namun memiliki fasilitas tambahan yang tidak dimiliki oleh bind versi 4, terutama dalam hal kemampuan mengontrol fasilitas log.

Ada dua konsep yang harus dipahami untuk sistem log bind sebelum kita dapat mengkonfigurasi bind secara efektif, yaitu saluran (channel) dan kategori. Channel merupakan istilah yang digunakan oleh bind untuk mengatur kemana data log tersebut pergi, ke sistem syslog, ke berkas,ke stderr, atau dibuang. Kategori digunakan untuk mendefinisikan data apa yang masuk ke log, dan bind memiliki sejumlah kategori yang dibangun ke dalam kode sumber bind.

Sama seperti sistem log di linux, bind juga memiliki tingkat ataupun level log yang dapat digunakan untuk mem-filter pesan log sehingga secara selektif hanya pesan log dengan level tertentu saja dapat masuk ke dalam log. Level tersebut mulai dari ringan sampai terberat berturut-turut dynamic, debug, info, notice, warning, error, dan critical.

Setiap kategori data yang dideklarasikan, dapat disalurkan ke satu ataupun beberapa saluran secara bersamaan. Sebagai contoh kita akan membuat sistem log sebagai berikut :

     kategori keamanan   ----> channel log
                         ----> channel berkas
     kategori permintaan ----> channel berkas

Kita akan membuat tiga buah channel, yaitu satu channel untuk ke syslog dan 2 channel ke berkas yang akan diberi nama my_syslog, my_query dan my_sec. Channel my_syslog akan menampung log dengan level minimal info, sedangkan my_query dan my_sec dengan level minimal dynamic. Kategori yang akan digunakan adalah tiga, yaitu kategori default, security dan queries.

Data log untuk kategori default akan dibuang, sedangkan data log untuk kategori security akan dilewatkan ke syslog dan juga disimpan ke berkas sec_log. Sedangkan data kategori queries akan disimpan ke berkas query.log. Berikut ini adalah konfigurasi tersebut.

logging {
    channel my_syslog {
       syslog daemon;
       severity info;
  };

     channel my_query {
       file "/var/log/bind/query.log";
       severity dynamic;
  };

     channel my_sec {
       file "/var/log/bind/sec.log";
       severity dynamic;
  };
   category default { null; };
   category security { my_syslog; my_sec };
   category queries { my_query; };
};

Setelah memasukkan konfigurasi diatas restart service bind, lalu kita dapat melihat log untuk kategori query di query.log dan kategori security di sec.log sebagai berikut:

apocalypsix@ns: # tail -f /var/log/bind/query.log
client 10.10.1.1#36887: view internal: query: clients4.google.com IN A +
client 10.10.1.1#45961: view internal: query: ttt.wowowo.com IN A +


Options
Direktif option mengontrol berbagai macam perilaku bind seperti port yang digunakan, forwarder, dan lokasi berbagai berkas konfigurasi. Debian dan Ubuntu menyediakan berkas khusus yang diperuntukan bagi direktif options yaitu named.conf.options. Direktif ini berisikan daftar direktif lain. Secara default, berkas ini berisikan direktif lain sebagai berikut :

options {
  directory "/var/cache/bind";
  auth-nxdomain no;
  listen-on-v6 { any; };
};

Direktif directory merupakan alamat direktori yang digunakan oleh bind untuk menyimpan cache bind. Direktif auth-nxdomain digunakan untuk oleh bind untuk menentukan apakah menjawab NXDOMAIN, atau alamat yang tidak ada. secara otoritatif. Direktif listen-on-v6 digunakan untuk menentukan apakah bind akan menjawab permintaan ipv6.

Selain direktif tersebut, ada berbagai macam direktif yang dapat digunakan di direktif options. Berikut ini adalah daftar direktif yang sering digunakan di direktif options.

  • query-source address * port 53, digunakan untuk menentukan port yang digunakan oleh bind untuk mengajukan permintaan ke server lain.
  • forwards { alamat-ip; }; digunakan oleh bind untuk meneruskan permintaan hanya ke server yang ditentukan di alamat.ip.
  • recursion yes|no digunakan untuk menentukan apakah bind akan menjawab permintaan secara rekursif atau tidak.
Baiklah, saya mengantuk sekali sekarang. Saya cukupkan dulu sekian artikel ini, besok atau lusa kalau sempat akan saya teruskan, sekaligus menutup pembahasan mengenai installasi dan konfigurasi dns di linux menggunakan bind. Semoga artikel ini memberikan manfaat kepada anda.

Salam penguin! :)