This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by Lasantha Bandara - Premiumbloggertemplates.com.

Selasa, 30 Oktober 2012

Tutorial IPTables

1. Persiapan

Sebelum mulai, diharapkan pembaca sudah memiliki pengetahuan dasar mengenai TCP/IP karena hal ini merupakan dasar dari penggunaan IPTables. Ada (sangat) banyak resource yang mendokumentasikan konsep dasar tentang TCP/IP, baik itu secara online maupun cetak. Silahkan googling untuk mendapatkannya.
Hal berikutnya yang harus anda persiapkan adalah sebuah komputer yang terinstall Linux. Akan lebih baik jika komputer anda memiliki 2 buah network interface card, sebab bisa menjalankan fungsi packet forwarding. Disarankan anda menggunakan linux dengan kernel 2.4 ke atas, karena (setahu saya) linux dengan kernel 2.4 ke atas sudah memiliki dukungan IPTables secara default, sehingga anda tidak perlu mengkompilasi ulang kernel anda. Bagi anda yang menggunakan kernel 2.2 atau sebelumnya, anda harus melakukan kompilasi kernel untuk memasukkan dukungan IPTables. Silahkan lihat tutorial Kompilasi kernel 2.4.x di Linux oleh mas Asfik.

2. Pendahuluan

IPTables memiliki tiga macam daftar aturan bawaan dalam tabel penyaringan, daftar tersebut dinamakan rantai firewall (firewall chain) atau sering disebut chain saja. Ketiga chain tersebut adalah INPUT, OUTPUT dan FORWARD.
Pada diagram tersebut, lingkaran menggambarkan ketiga rantai atau chain. Pada saat sebuah paket sampai pada sebuah lingkaran, maka disitulah terjadi proses penyaringan. Rantai akan memutuskan nasib paket tersebut. Apabila keputusannnya adalah DROP, maka paket tersebut akan di-drop. Tetapi jika rantai memutuskan untuk ACCEPT, maka paket akan dilewatkan melalui diagram tersebut.
Sebuah rantai adalah aturan-aturan yang telah ditentukan. Setiap aturan menyatakan “jika paket memiliki informasi awal (header) seperti ini, maka inilah yang harus dilakukan terhadap paket”. Jika aturan tersebut tidak sesuai dengan paket, maka aturan berikutnya akan memproses paket tersebut. Apabila sampai aturan terakhir yang ada, paket tersebut belum memenuhi salah satu aturan, maka kernel akan melihat kebijakan bawaan (default) untuk memutuskan apa yang harus dilakukan kepada paket tersebut. Ada dua kebijakan bawaan yaitu default DROP dan default ACCEPT.
Jalannya sebuah paket melalui diagram tersebut bisa dicontohkan sebagai berikut:
Perjalanan paket yang diforward ke host yang lain
1. Paket berada pada jaringan fisik, contoh internet.
2. Paket masuk ke interface jaringan, contoh eth0.
3. Paket masuk ke chain PREROUTING pada table Mangle. Chain ini berfungsi untuk me-mangle (menghaluskan) paket, seperti merubah TOS, TTL dan lain-lain.
4. Paket masuk ke chain PREROUTING pada tabel nat. Chain ini berfungsi utamanya untuk melakukan DNAT (Destination Network Address Translation).
5. Paket mengalami keputusan routing, apakah akan diproses oleh host lokal atau diteruskan ke host lain.
6. Paket masuk ke chain FORWARD pada tabel filter. Disinlah proses pemfilteran yang utama terjadi.
7. Paket masuk ke chain POSTROUTING pada tabel nat. Chain ini berfungsi utamanya untuk melakukan SNAT (Source Network Address Translation).
8. Paket keluar menuju interface jaringan, contoh eth1.
9. Paket kembali berada pada jaringan fisik, contoh LAN.
Perjalanan paket yang ditujukan bagi host lokal
1. Paket berada dalam jaringan fisik, contoh internet.
2. Paket masuk ke interface jaringan, contoh eth0.
3. Paket masuk ke chain PREROUTING pada tabel mangle.
4. Paket masuk ke chain PREROUTING pada tabel nat.
5. Paket mengalami keputusan routing.
6. Paket masuk ke chain INPUT pada tabel filter untuk mengalami proses penyaringan.
7. Paket akan diterima oleh aplikasi lokal.
Perjalanan paket yang berasal dari host lokal
1. Aplikasi lokal menghasilkan paket data yang akan dikirimkan melalui jaringan.
2. Paket memasuki chain OUTPUT pada tabel mangle.
3. Paket memasuki chain OUTPUT pada tabel nat.
4. Paket memasuki chain OUTPUT pada tabel filter.
5. Paket mengalami keputusan routing, seperti ke mana paket harus pergi dan melalui interface mana.
6. Paket masuk ke chain POSTROUTING pada tabel NAT.
7. Paket masuk ke interface jaringan, contoh eth0.
8. Paket berada pada jaringan fisik, contoh internet.

3. Sintaks IPTables

iptables [-t table] command [match] [target/jump]

1. Table
IPTables memiliki 3 buah tabel, yaitu NAT, MANGLE dan FILTER. Penggunannya disesuaikan dengan sifat dan karakteristik masing-masing. Fungsi dari masing-masing tabel tersebut sebagai berikut :
  1. NAT : Secara umum digunakan untuk melakukan Network Address Translation. NAT adalah penggantian field alamat asal atau alamat tujuan dari sebuah paket.
  2. MANGLE : Digunakan untuk melakukan penghalusan (mangle) paket, seperti TTL, TOS dan MARK.
  3. FILTER : Secara umum, inilah pemfilteran paket yang sesungguhnya.. Di sini bisa dintukan apakah paket akan di-DROP, LOG, ACCEPT atau REJECT
2. Command
Command pada baris perintah IPTables akan memberitahu apa yang harus dilakukan terhadap lanjutan sintaks perintah. Umumnya dilakukan penambahan atau penghapusan sesuatu dari tabel atau yang lain.
Command
Keterangan
-A 
--append
Perintah ini menambahkan aturan pada akhir chain. Aturan akan ditambahkan di akhir baris pada chain yang bersangkutan, sehingga akan dieksekusi terakhir
-D          
--delete
Perintah ini menghapus suatu aturan pada chain. Dilakukan dengan cara menyebutkan secara lengkap perintah yang ingin dihapus atau dengan menyebutkan nomor baris dimana perintah akan dihapus.
-R          
--replace
Penggunaannya sama seperti --delete, tetapi command ini menggantinya dengan entry yang baru.
-I          
--insert
Memasukkan aturan pada suatu baris di chain. Aturan akan dimasukkan pada baris yang disebutkan, dan aturan awal yang menempati baris tersebut akan digeser ke bawah. Demikian pula baris-baris selanjutnya.
-L          
--list
Perintah ini menampilkan semua aturan pada sebuah tabel. Apabila tabel tidak disebutkan, maka seluruh aturan pada semua tabel akan ditampilkan, walaupun tidak ada aturan sama sekali pada sebuah tabel. Command ini bisa dikombinasikan dengan option –v (verbose), -n (numeric) dan –x (exact).
-F          
--flush
Perintah ini mengosongkan aturan pada sebuah chain. Apabila chain tidak disebutkan, maka semua chain akan di-flush.
-N          
--new-chain
Perintah tersebut akan membuat chain baru.
-X          
--delete-chain
Perintah ini akan menghapus chain yang disebutkan. Agar perintah di atas berhasil, tidak boleh ada aturan lain yang mengacu kepada chain tersebut.
-P          
--policy
Perintah ini membuat kebijakan default pada sebuah chain. Sehingga jika ada sebuah paket yang tidak memenuhi aturan pada baris-baris yang telah didefinisikan, maka paket akan diperlakukan sesuai dengan kebijakan default ini.
-E          
--rename-chain
Perintah ini akan merubah nama suatu chain.
3. Option
Option digunakan dikombinasikan dengan command tertentu yang akan menghasilkan suatu variasi perintah.
Option
Command          Pemakai
Keterangan
-v          
--verbose
--list          
--append 
--insert 
--delete
--replace
Memberikan output yang lebih detail, utamanya digunakan dengan --list. Jika digunakan dengan
--list, akan menampilkam K (x1.000),
M (1.000.000) dan G (1.000.000.000).
-x          
--exact
--list
Memberikan output yang lebih tepat.
-n          
--numeric
--list
Memberikan output yang berbentuk angka. Alamat IP dan nomor port akan ditampilkan dalam bentuk angka dan bukan hostname ataupun nama aplikasi/servis.
--line-number
--list
Akan menampilkan nomor dari daftar aturan. Hal ni akan mempermudah bagi kita untuk melakukan modifikasi aturan, jika kita mau meyisipkan atau menghapus aturan dengan nomor tertentu.
--modprobe
All
Memerintahkan IPTables untuk memanggil modul tertentu. Bisa digunakan bersamaan dengan semua command.
4. Generic Matches
Generic Matches artinya pendefinisian kriteria yang berlaku secara umum. Dengan kata lain, sintaks generic matches akan sama untuk semua protokol. Setelah protokol didefinisikan, maka baru didefinisikan aturan yang lebih spesifik yang dimiliki oleh protokol tersebut. Hal ini dilakukan karena tiap-tiap protokol memiliki karakteristik yang berbeda, sehingga memerlukan perlakuan khusus.
Match
Keterangan
-p          
--protocol

Digunakan untuk mengecek tipe protokol tertentu. Contoh protokol yang umum adalah TCP, UDP, ICMP dan ALL. Daftar protokol bisa dilihat pada /etc/protocols.

Tanda inversi juga bisa diberlakukan di sini, misal kita menghendaki semua protokol kecuali icmp, maka kita bisa menuliskan --protokol ! icmp yang berarti semua kecuali icmp.
-s          
--src 
--source

Kriteria ini digunakan untuk mencocokkan paket berdasarkan alamat IP asal. Alamat di sini bisa berberntuk alamat tunggal seperti 192.168.1.1, atau suatu alamat network menggunakan netmask misal 192.168.1.0/255.255.255.0, atau bisa juga ditulis 192.168.1.0/24 yang artinya semua alamat 192.168.1.x. Kita juga bisa menggunakan inversi.

-d          
--dst
--destination

Digunakan untuk mecocokkan paket berdasarkan alamat tujuan. Penggunaannya sama dengan match –src

-i          
--in-interface

Match ini berguna untuk mencocokkan paket berdasarkan interface di mana paket datang. Match ini hanya berlaku pada chain INPUT, FORWARD dan PREROUTING

-o          
--out-interface

Berfungsi untuk mencocokkan paket berdasarkan interface di mana paket keluar. Penggunannya sama dengan
--in-interface. Berlaku untuk chain OUTPUT, FORWARD dan POSTROUTING

5. Implicit Matches
Implicit Matches adalah match yang spesifik untuk tipe protokol tertentu. Implicit Match merupakan sekumpulan rule yang akan diload setelah tipe protokol disebutkan. Ada 3 Implicit Match berlaku untuk tiga jenis protokol, yaitu TCP matches, UDP matches dan ICMP matches.
a. TCP matches
Match
Keterangan
--sport          
--source-port
Match ini berguna untuk mecocokkan paket berdasarkan port asal. Dalam hal ini kia bisa mendefinisikan nomor port atau nama service-nya. Daftar nama service dan nomor port yang bersesuaian dapat dilihat di /etc/services.
--sport juga bisa dituliskan untuk range port tertentu. Misalkan kita ingin mendefinisikan range antara port 22 sampai dengan 80, maka kita bisa menuliskan --sport 22:80.
Jika bagian salah satu bagian pada range tersebut kita hilangkan maka hal itu bisa kita artikan dari port 0, jika bagian kiri yang kita hilangkan, atau 65535 jika bagian kanan yang kita hilangkan. Contohnya --sport :80 artinya paket dengan port asal nol sampai dengan 80, atau --sport 1024: artinya paket dengan port asal 1024 sampai dengan 65535.Match ini juga mengenal inversi.
--dport          
--destination-port
Penggunaan match ini sama dengan match --source-port.
--tcp-flags
Digunakan untuk mencocokkan paket berdasarkan TCP flags yang ada pada paket tersebut. Pertama, pengecekan akan mengambil daftar flag yang akan diperbandingkan, dan kedua, akan memeriksa paket yang di-set 1, atau on.
Pada kedua list, masing-masing entry-nya harus dipisahkan oleh koma dan tidak boleh ada spasi antar entry, kecuali spasi antar kedua list. Match ini  mengenali SYN,ACK,FIN,RST,URG, PSH. Selain itu kita juga menuliskan ALL dan NONE. Match ini juga bisa menggunakan inversi.
--syn
Match ini akan memeriksa apakah flag SYN di-set dan ACK dan FIN tidak di-set. Perintah ini sama artinya jika kita menggunakan match --tcp-flags SYN,ACK,FIN SYN
Paket dengan match di atas digunakan untuk melakukan request koneksi TCP yang baru terhadap server
b. UDP Matches
Karena bahwa protokol UDP bersifat connectionless, maka tidak ada flags yang mendeskripsikan status paket untuk untuk membuka atau menutup koneksi. Paket UDP juga tidak memerlukan acknowledgement. Sehingga Implicit Match untuk protokol UDP lebih sedikit daripada TCP.
Ada dua macam match untuk UDP:
--sport atau --source-port
--dport atau --destination-port
c. ICMP Matches
Paket ICMP digunakan untuk mengirimkan pesan-pesan kesalahan dan kondisi-kondisi jaringan yang lain. Hanya ada satu implicit match untuk tipe protokol ICMP, yaitu :
--icmp-type
6. Explicit Matches
a. MAC Address
Match jenis ini berguna untuk melakukan pencocokan paket berdasarkan MAC source address. Perlu diingat bahwa MAC hanya berfungsi untuk jaringan yang menggunakan teknologi ethernet.
iptables –A INPUT –m mac –mac-source 00:00:00:00:00:01
 
b. Multiport Matches
Ekstensi Multiport Matches digunakan untuk mendefinisikan port atau port range lebih dari satu, yang berfungsi jika ingin didefinisikan aturan yang sama untuk beberapa port. Tapi hal yang perlu diingat bahwa kita tidak bisa menggunakan port matching standard dan multiport matching dalam waktu yang bersamaan.
iptables –A INPUT –p tcp –m multiport --source-port 22,53,80,110
c. Owner Matches
Penggunaan match ini untuk mencocokkan paket berdasarkan pembuat atau pemilik/owner paket tersebut. Match ini bekerja dalam chain OUTPUT, akan tetapi penggunaan match ini tidak terlalu luas, sebab ada beberapa proses tidak memiliki owner (??).
iptables –A OUTPUT –m owner --uid-owner 500
Kita juga bisa memfilter berdasarkan group ID dengan sintaks --gid-owner. Salah satu penggunannya adalah bisa mencegah user selain yang dikehendaki untuk mengakses internet misalnya.
d. State Matches
Match ini mendefinisikan state apa saja yang cocok. Ada 4 state yang berlaku, yaitu NEW, ESTABLISHED, RELATED dan INVALID. NEW digunakan untuk paket yang akan memulai koneksi baru. ESTABLISHED digunakan jika koneksi telah tersambung dan paket-paketnya merupakan bagian dari koneki tersebut. RELATED digunakan untuk paket-paket yang bukan bagian dari koneksi tetapi masih berhubungan dengan koneksi tersebut, contohnya adalah FTP data transfer yang menyertai sebuah koneksi TCP atau UDP. INVALID adalah paket yang tidak bisa diidentifikasi, bukan merupakan bagian dari koneksi yang ada.
iptables –A INPUT –m state --state RELATED,ESTABLISHED
7. Target/Jump
Target atau jump adalah perlakuan yang diberikan terhadap paket-paket yang memenuhi kriteria atau match. Jump memerlukan sebuah chain yang lain dalam tabel yang sama. Chain tersebut nantinya akan dimasuki oleh paket yang memenuhi kriteria. Analoginya ialah chain baru nanti berlaku sebagai prosedur/fungsi dari program utama. Sebagai contoh dibuat sebuah chain yang bernama tcp_packets. Setelah ditambahkan aturan-aturan ke dalam chain tersebut, kemudian chain tersebut akan direferensi dari chain input.
iptables –A INPUT –p tcp –j tcp_packets
Target
Keterangan
-j ACCEPT 
--jump ACCEPT
Ketika paket cocok dengan daftar match dan target ini diberlakukan, maka paket tidak akan melalui baris-baris aturan yang lain dalam chain tersebut atau chain yang lain yang mereferensi chain tersebut. Akan tetapi paket masih akan memasuki chain-chain pada tabel yang lain seperti biasa.
-j DROP 
--jump DROP
Target ini men-drop paket dan menolak untuk memproses lebih jauh. Dalam beberapa kasus mungkin hal ini kurang baik, karena akan meninggalkan dead socket antara client dan server.
Paket yang menerima target DROP benar-benar mati dan target tidak akan mengirim informasi tambahan dalam bentuk apapun kepada client atau server.
-j RETURN 
--jump RETURN
Target ini akan membuat paket berhenti melintasi aturan-aturan pada chain dimana paket tersebut menemui target RETURN. Jika chain merupakan subchain dari chain yang lain, maka paket akan kembali ke superset chain di atasnya dan masuk ke baris aturan berikutnya. Apabila chain adalah chain utama misalnya INPUT, maka paket akan dikembalikan kepada kebijakan default dari chain tersebut.
-j MIRROR
Apabila kompuuter A menjalankan target seperti contoh di atas, kemudian komputer B melakukan koneksi http ke komputer A, maka yang akan muncul pada browser adalah website komputer B itu sendiri. Karena fungsi utama target ini adalah membalik source address dan destination address.
Target ini bekerja pada chain INPUT, FORWARD dan PREROUTING atau chain buatan yang dipanggil melalui chain tersebut.
Beberapa target yang lain biasanya memerlukan parameter tambahan:
a. LOG Target
Ada beberapa option yang bisa digunakan bersamaan dengan target ini. Yang pertama adalah yang digunakan untuk menentukan tingkat log. Tingkatan log yang bisa digunakan adalah debug, info, notice, warning, err, crit, alert dan emerg.Yang kedua adalah -j LOG --log-prefix yang digunakan untuk memberikan string yang tertulis pada awalan log, sehingga memudahkan pembacaan log tersebut.
iptables –A FORWARD –p tcp –j LOG --log-level debug
iptables –A INPUT –p tcp –j LOG --log-prefix “INPUT Packets”
b. REJECT Target
Secara umum, REJECT bekerja seperti DROP, yaitu memblok paket dan menolak untuk memproses lebih lanjut paket tersebut. Tetapi, REJECT akan mengirimkan error message ke host pengirim paket tersebut. REJECT bekerja pada chain INPUT, OUTPUT dan FORWARD atau pada chain tambahan yang dipanggil dari ketiga chain tersebut.
iptables –A FORWARD –p tcp –dport 22 –j REJECT --reject-with icmp-host-unreachable
Ada beberapa tipe pesan yang bisa dikirimkan yaitu icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable, icmp-proto-unrachable, icmp-net-prohibited dan icmp-host-prohibited.

c. SNAT Target
Target ini berguna untuk melakukan perubahan alamat asal dari paket (Source Network Address Translation). Target ini berlaku untuk tabel nat pada chain POSTROUTING, dan hanya di sinilah SNAT bisa dilakukan. Jika paket pertama dari sebuah koneksi mengalami SNAT, maka paket-paket berikutnya dalam koneksi tersebut juga akan mengalami hal yang sama.
iptables –t nat –A POSTROUTING –o eth0 –j SNAT --to-source 194.236.50.155-194.236.50.160:1024-32000
d. DNAT Target
Berkebalikan dengan SNAT, DNAT digunakan untuk melakukan translasi field alamat tujuan (Destination Network Address Translation) pada header dari paket-paket yang memenuhi kriteria match. DNAT hanya bekerja untuk tabel nat pada chain PREROUTING dan OUTPUT atau chain buatan yang dipanggil oleh kedua chain tersebut.
iptables –t nat –A PREROUTING –p tcp –d 15.45.23.67 --dport 80 –j DNAT --to-destination 192.168.0.2
e. MASQUERADE Target
Secara umum, target MASQUERADE bekerja dengan cara yang hampir sama seperti target SNAT, tetapi target ini tidak memerlukan option --to-source. MASQUERADE memang didesain untuk bekerja pada komputer dengan koneksi yang tidak tetap seperti dial-up atau DHCP yang akan memberi pada kita nomor IP yang berubah-ubah.
Seperti halnya pada SNAT, target ini hanya bekerja untuk tabel nat pada chain POSTROUTING.
iptables –t nat –A POSTROUTING –o ppp0 –j MASQUERADE
f. REDIRECT Target
Target REDIRECT digunakan untuk mengalihkan jurusan (redirect) paket ke mesin itu sendiri. Target ini umumnya digunakan untuk mengarahkan paket yang menuju suatu port tertentu untuk memasuki suatu aplikasi proxy, lebih jauh lagi hal ini sangat berguna untuk membangun sebuah sistem jaringan yang menggunakan transparent proxy. Contohnya kita ingin mengalihkan semua koneksi yang menuju port http untuk memasuki aplikasi http proxy misalnya squid. Target ini hanya bekerja untuk tabel nat pada chain PREROUTING dan OUTPUT atau pada chain buatan yang dipanggil dari kedua chain tersebut.
iptables –t nat –A PREROUTING –i eth1 –p tcp --dport 80 –j REDIRECT --to-port 3128
Tutuorial Squid bisa dilihat di Instalasi Squid, Banner Filter, Porn Filter, Limit Bandwith, Transparan Proxy bikinan mas Hanny.

4. Penutup

Demikian dasar-dasar dari IPTables beserta komponen-komponennya. Mungkin anda masih agak bingung tentang implementasi dari apa yang telah dijelaskan di atas. Insya Allah dalam tulisan yang akan datang, saya akan memberikan beberapa contoh kasus jaringan yang menggunakan IPTables. Yea.. may I have enough power to do it :)

NAT (Network Address Translation)

NAT adalah pengalihan suatu alamat IP ke alamat yang lain. Dan apabila suatu paket dialihkan dengan NAT pada suatu link, maka pada saat ada paket kembali dari tujuan maka link ini akan mengingat darimana asal dari paket itu, sehingga komunikasi akan berjalan seperti biasa.

Kenapa orang-orang menggunakan NAT ?

  1. Koneksi Modem ke Internet.
    Kebanyakan ISP akan memberikan satu alamat IP pada saat anda melakukan dial up ke internet. Anda dapat mengirim paket ke alamat mana saja yang anda inginkan tetapi balasannya hanya akan diterima oleh satu alamat IP yang anda miliki.Apabila anda ingin menggunakan banyak komputer seperti jaringan dalam rumah anda untuk terhubung dengan internet dengan hanya satu kink ini, maka anda membutuhkan NAT.
    Cara ini adalah NAT yang paling umum digunakan sekarang ini, sering disebut sebagai masqurading.
  2. Banyak Server
    Terkadang anda ingin mengubah arah paket yang datang ke jaringan anda. Hal ini disebabkan anda hanya memiliki satu alamat IP, tapi anda ingin semua orang dapat mengakses komputer yang berada di belakang komputer yang memiliki alamat IP yang asli. Apabila anda dapat mengubah tujuan dari paket yang masuk, anda dapat melakukan ini.
    Tipe NAT seperti ini disebut port-forwarding.
  3. Transparent Proxy
    Terkadang anda ingin seakan-akan setiap paket yang melewati komputer anda hanya ditujukan untuk komputer anda sendiri. Hal ini digunakan untuk membuat transparent proxy : Proxy adalah program yang berada di antara jaringan anda dan dunia luar, dan membuat keduanya dapat saling berkomunikasi. Bagian transparannya dikarenakan jaringan anda tidak akan mengetahui bahwa dia menggunakan proxy kecuali proxynya tidak bekerja.
    Program squid dapat dikonfiguraasi untuk bekerja seperti ini, dan hal ini disebut redirection atau transparent proxy.

Dua Tipe NAT

NAT terdiri atas dua macam tipe: Source NAT (SNAT) dan Destination NAT (DNAT) Source NAT adalah ketika anda mengubah alamat asal dari paket pertama dengan kata lain anda merubah dari mana koneksi terjadi. Source NAT selalu dilakukan setelah routing, sebelum paket keluar ke jaringan. Masquerading adalah contoh dari SNAT.
Destination NAT adalah ketika anda mengubah alamat tujuan dari paket pertama dengan kata lain anda merubah ke mana komunikasi terjadi. Destination NAT selalu dilakukan sebelum routing, ketika paket masuk dari jaringan. Port forwarding, load sharing dan transparent proxy semuanya adalah bentuk dari DNAT.

Menggunakan NAT di Linux

Untuk membuat NAt anda harus membuat aturan NAT yang akan memberitahu kernel koneksi apa yang harus diubah. Untuk ini kita menggunakan tool iptables dan membuatnya untuk mengubah tabel NAT dengan memberikan option "-t nat".
Tabel aturan NAT berisi 3 bagian yang disebut "chain", setiap aturan akan diperiksa secara berurutan sampai ada satu yang tepat. Kedua chain disebut PREROUTING (untuk Destination NAT, ketika paket pertama kali masuk), dan POSTROUTING (untuk Source NAT, ketika paket pergi). Yang ketiga, OUTPUT akan diabaikan. Tabel di bawah akan menggambarkannya :
      _____                                     _____
     /     \                                   /     \
   PREROUTING -->[Routing ]----------------->POSTROUTING----->
     \D-NAT/     [Decision]                    \S-NAT/
                     |                            ^
                     |                            |  
                     |                            |
                     |                            |
                     |                            |
                     |                            |
                     |                            |
                     --------> Local Process ------
 
Pada setiap node di atas, ketika paket melewati kita melihat koneksi apa yang diasosiasikan dengannya. Apabila hal itu adalah koneksi yang baru, kita melihat chain pada tabel nat yang berperan untuk mengetahui apa yang akan kita lakukan dengan paket tersebut.

Source NAT

Untuk melakukan Source NAT anda harus merubah asal dari koneksi. Hal ini dilakukan di chain POSTROUTING, pas sebelum keluar. Hal ini sangat penting, dikarenakan berarti tools lain yang di dalam router itu (routing, packet filtering) akan melihat paket itu tidak berubah. Hal ini juga berarti opsi '-o' (outgoing interface) juga bisa digunakan.
Source dispesifikasikan dengan menggunakan '-j SNAT', dan juga opsi '--to-source' untuk menspesifikasikan sebuah alamat IP, range alamat IP dan port atau range port (hanya untuk protokol UDP dan TCP) yang sifatnya optional.
Mengubah alamat asal ke 1.2.3.4
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
Mengubah alamat asal ke 1.2.3.4, 1.2.3.5, or 1.2.3.6
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6
Mengubah alamat asal ke 1.2.3.4, port 1-1023
# iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023

Masquerading

Terdapat kasus yang khusus untuk Source NAT yang disebut masquerading, sebaiknya hanya digunakan untuk alamat IP yang dinamik, seperti menggunakan dialup secara standar (untuk alamat IP yang statis, gunakan SNAT si atas). Anda tidak perlu menempatkan alamat asal apabila anda menggunakan masquerading, dikarenakan alamat asal akan memakai alamat dari interface tempat paket itu keluar. Hal ini akan memudahkan apabila ada penggantian alamat IP dari interface tersebut, sehingga keslaahan da[at dihindari.
Masquerade semua paket yang keluar dari ppp0
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Destination NAT

Destination NAT dilakukan pada chain PREROUTING, pas ketika paket masuk, hal ini berarti semua tools di dalam router akan melihat paket akn pergi ke tujuan yang sebenarnya . Hal ini juga berarti bahwa opsi '-i' (incoming interface) bisa digunakan.
Destination NAT dispesifikasikan dengan menggunakan '-j DNAT' dan opsi '--to-destination' menspesifikasikan sebuah alamat IP, range alamat IP dan range dari port (hanya untuk protokol UDP dan TCP) yang sifatnya optional.
Merubah alamat tujuan ke 5.6.7.8
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8
Merubah alamat tujuan ke 5.6.7.8, 5.6.7.9, or 5.6.7.10
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10
Merubah alamat tujuan dari lalu lintas web ke 5.6.7.8 port 8080
# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 5.6.7.8:8080

Redirection

Terdapat kasus khusus dari Destination NAT yang disebut redirection. Redirection adalah pengarahan dari paket yang masuk dari posrt tertentu diarahkan ke port lain, dimana setiap port menandakan aplikasi jaringan yang berbeda.
Mengirim dari port 80 lalu lintas web ke squid (transparent) proxy
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
Dalam hal ini squid harus dikonfigurasi sehingga dia tahu paket yang masuk adalah transparent proxy.



Senin, 29 Oktober 2012

Membangun Jaringan Komputer Sederhana Dengan 2 Buah Komputer

Membangun Jaringan Komputer Sederhana Dengan 2 Buah Komputer: Tidak banyak alat dan bahan yang kita butuhkan untuk membangun jaringan  komputer sederhana dengan 2 buah komputer. Kita hanya membutuhkan 2 buah komputer yang  sudah memiliki kartu jaringan dan kabel  UTP  dengan model cross yang kedua ujungnya sudah memiliki konektor RJ45,  kabel ini juga banyak di jual di toko – toko komputer,   konektor RJ45  nya juga bisa langsung dipasangkan di tokonya.
Setelah semua perlengkapan ada, mari kita mulai membangun jaringan komputer sederhana, namun sebelumnya kita anggap 2 buah komputer yang sudah ada tadi adalah komputer A dan B. Berikut ini langkah membangun jaringan komputer sederhana dengan 2 buah komputer:
  • Hubungkan komputer A dan B dengan kabel UTP yang sudah kita miliki. Lihat indikator pada komputer, biasanya ada lampu yang menyala.
  • Pada komputer A, klik [Start], klik [Control Panel], pilih [Network Connections].
  • Klik kanan pada [Local Area Network], lalu pilih [Properties].
  • Pilih [Internet Protocol (TCP/IP)], lalu klik [Properties].
  • Pilih radio button [Use the following IP address:].
  • Pada [IP address], masukkan 192.168.0.1, pada [Subnet mask], masukkan 255.255.255.0, dan untuk [Default Gateway] kosongkan saja.
  • Setelah selesai klik [OK]. Settingan pada komputer A sudah selesai.
  • Yang kita lakukan selanjutnya adalah mensetting pada komputer B. Semua prosesnya sama dengan settingan pada komputer A, yang berbeda hanya pada IP addressnya. IP address pada komputer B adalah 192.168.0.2 atau 192.168.0.3 atau 192.168.0.4, dan seterusnya. Kita ambil contoh 192.168.0.2.
  • Setelah semua selesai, yang kita lakukan adalah melakukan ping dari komputer A ke komputer B atau dari komputer B ke komputer A.
  • Jaringan komputer paling sederhana sudah selesai dibuat.
Itulah langkah-langkah untuk membangun jaringan komputer sederhana dengan 2 buah komputer, semoga bermanfaat.

Perintah Jaringan Dasar Pada Windows

Perintah Jaringan Dasar Pada Windows: Saya yakin Anda semua pasti sudah tahu yang namanya Command Promt pada Windows, tampilannya hitam polos, sangat membosankan untuk dilihat. Tapi jangan anggap remeh dengan Command Promt hanya karena tampilannya yang simpel, banyak hal yang bisa dilakukan dari sini, salah satunya adalah memantau jaringan komputer Anda. Berikut ini beberapa perintah jaringan dasar pada windows yang bisa digunakan dalam Command Prompt atau CMD.
POSTING BESERTA GAMBAR SUDAH SAYA PINDAHKAN KE
PERINTAH JARINGAN DASAR PADA WINDOWS

1. ipconfig
Memperlihatkan informasi konfigurasi koneksi, contohnya Host Name, Primary DNS Type, Ethernet Adapter LAN.
Contoh tampilan setelah mengetikkan ipconfig:
2. ping
Digunakan untuk mencoba jaringan yang sudah ada, apakah sudah terkoneksi dengan baik atau belum. Cara penulisannya adalah ping ip_address atau ping nama_domain.
Contoh:
Pada contoh ini saya mencoba melakukan ping ke situs google.com, bila gambarnya seperti di bawah ini, berarti ada balasan dari google.com dan itu tandanya koneksi sudah berjalan dengan baik.
3. netstat
Akan menampilkan koneksi jaringan, tabel routing, statistic interface, koneksi masquerade, pesan netlink dan anggota multicat.
Contoh:
4. tracert
Untuk memeriksa berapa lama satu paket melewati masing-masing hop ke host yang dituju. Penulisannya adalah netstat ip_address atau tracert nama_domain.
Contoh:
Pada contoh ini, saya melakukan perintah tracert pada ip address 64.233.181.104. hasilnya adalah:
5. ftp
Perintah ftp digunakan untuk memulai koneksi File Transfer Protocol. Penulisannya adalah ftp ip_address atau ftp nama_domain.
Contoh:
Pada contoh ini saya akan melakukan ftp pada domain tombolenter.com.
Itulah beberapa perintah jaringan dasar pada windows, semoga bermanfaat.<!–

Menghubungkan 2 Laptop Via Wireless (ad hoc) di Windows 7

Selama ini mungkin jika Anda ingin menghubungkan 2 atau lebih notebook Anda menggunakan kabel UTP baik itu untuk melakukan sharing data, untuk bermain game, atau hanya untuk belajar menghubungkan laptop satu dengan laptop lainnya. Sebenarnya untuk menghubungkan 2 laptop atau lebih tidak harus menggunakan kabel, menghubungkan 2 laptop atau lebih via wireless juga bisa dilakukan asalkan kartu wireless pada masing-masing laptop bisa berfungsi dengan baik.
Pada tutorial kali ini saya akan memperlihatkan bagaimana cara menghubungkan 2 laptop atau lebih via wireless (add hoc) pada windows 7. Jadi konsepnya adalah ada salah satu laptop akan menjadi pemancar sinyal kepada laptop-laptop yang lain, sehingga apabila laptop lain mendapatkan sinyal itu, maka akan terjadi koneksi. Oke langsung saja, begini caranya:

Artikel yang dilengkapi dengan gambar, saya pindahkan ke:

http://www.adamkurniawan.com/menghubungkan-2-laptop-via-wireless-ad-hoc-di-windows-7/

Langkah pertama adalah melakukan setting pada komputer yang akan menjadi pemancar sinyal, namun sebelumnya nyalakan dahulu wireless adapternya. Setelah itu lakukan langkah dibawah ini:
  • Klik tombol Windows yang terletak disebelah kiri bawah.
  • Pada kolom Search Programs and Files ketikkan adhoc.
  • Maka akan muncul setup an ad hoc (computer-to-computer) network langsung saja tekan Enter.
  • Maka akan jendela Setup an Ad Hoc Network, langsung saja klik Next.
  • Selanjutnya akan muncul jendela seperti ini:
  • Pada Network name isikanlah nama network yang Anda inginkan, saya contohkan dengan nama tes-koneksi.
  • Pada Security type terdapat 3 pilihan yaitu: No autenthication (Open), dimana semua laptop yang mendapatkan sinyal akan bisa terhubung kejaringan tanpa autentikasi apapun dan siapapun itu.WEP, dimana semua laptop yang mendapatkan sinyal dan ingin terhubung ke jaringan terlebih dahulu harus memasukkan sandi yang sudah diset sebelumnya.WPA2-Personal, hampir sama dengan WEP, namun proteksi pada WPA lebih ditingkatkan, dan tingkat kerumitannya juga semakin besar. Untuk lebih lengkapnya silahkan Anda tanya sama Om Google :)
  • Pada contoh ini saya memilih WPA2-Personal.
  • Pada Security key, masukkanlah sandi yang akan digunakan untuk bergabung kejaringan.
  • Terdapat 2 check box pada jendela ini, yaitu: Hide characters, apabila centang pada pilihan ini dihilangkan, maka sandi yang Anda ketikkan akan terlihat. Ini digunakan apabila Anda ragu dengan sandi yang Anda masukkan, karena tidak ada pengulangan sandi. Save this network, apabila Anda memberikan centang pada pilihan ini, maka pada saat laptop Anda dimatikan dan dihidupkan kembali atau restart, settingan koneksi yang Anda buat ini tidak akan hilang.
  • Jika sudah, klik Next.
  • Jika koneksi berhasil dikonfigurasi, maka akan muncul jendela seperti ini:
  • Klik saja Close.
  • Sampai disini Anda sudah berhasil membuat induk dari Ad Hoc yang akan dibangun, namun belum bisa melakukan koneksi dengan laptop lain. Jika Anda melakukan klik pada icon jaringan di sudut kanan bawah, seperti pada gambar dibawah ini:
  • Maka Anda akan melihat terdapat sebuah koneksi Wireless Network Connection dengan nama tes-koneksi dan memiliki status Waiting for users, seperti ini:
  • Langkah selanjutnya adalah memberikan IP Address pada wireless adapternya.
  • Klik tombol Windows > Control Panel > Network and Internet > Network and Sharing Center.
  • Pada bar kiri atas klik Change adapter settings.
  • Klik kanan Wireless Netowrk Connection, pilih Properties.
  • Double klik pada Internet Protocol Version 4 (TCP/Ipv4).
  • Pilih radio button use the following IP Address, lalu masukkan IP Address beserta Subnet mask-nya. pada contoh ini saya menggunakan IP Address: 10.10.10.1 dan Subnet mask: 255.255.255.0, seperti pada gambar dibawah ini:
  • Setelah itu klik Ok dan Ok lagi.
Setting di laptop yang memberikan sinyal sudah selesai. Selanjutnya kita beralih pada komputer yang akan meminta koneksi. Disini saya juga menggunakan laptop yang juga sudah memiliki wireless adapter yang berfungsi dengan baik. Langkah yang harus dilakukan adalah:
  • Aktifkan wireless adapternya.
  • Aturlah IP Address dan Subnet mask sehingga sehingga bisa terkoneksi dengan laptop yang memberikan sinyal tadi. Contoh IP Addressnya adalah 10.10.10.2 atau 10.10.10.3 atau 10.10.10.X dengan subnet mask yang sama, yaitu 255.255.255.0, contohnya seperti pada gambar di bawah ini:
  • Jika sudah, klik Ok dan Ok lagi.
Setelah itu, langkah selanjutnya adalah tinggal mengkoneksikan ke komputer yang memberikan sinyal. Cara mengkoneksikannya juga sama dengan cara mengkoneksikan ke jaringan hotspot, saya yakin pasti Anda tahu bagaimana caranya. Jika muncul kotak dialog yang meminta password, masukkanlah password yang sebelumnya sudah diatur pada komputer yang memberikan sinyal.
Jika Anda melakukan semua langkah diatas tadi dengan benar, maka kedua laptop pasti sudah terkoneksi. Berikut ini tampilan pada saat laptop penerima sinyal melakukan ping kepada laptop pemberi sinyal:
Jika ada laptop atau PC lain yang ingin bergabung dengan jaringan Ad Hoc ini, bisa melakukan hal yang sama dengan langkah diatas pada laptop penerima. Cara ini bisa juga digunakan pada PC, namun dengan syarat PC tersebut sudah harus memiliki wireless adapter yang bisa berfungsi dengan baik. Itulah langkah-langkah dalam Menghubungkan 2 Laptop Via Wireless (ad hoc) di Windows 7, semoga bermanfaat…

Instalasi Ubuntu Server 10.10

Ubuntu Server adalah varian dari Distri Linux Ubuntu yang dispesialisasikan untuk kebutuhan penggunaan dalam hal server. pada kesempatan ini saya akan mencoba memaparkan langkah-demi langkah dalam melakukan instalsai Ubuntu Server 10.10. Namun sebelum melakukan instalasi ada baiknya kita mengetahui spesifikasi minimun yang dibutuhkan oleh Ubuntu Server 10.10. Spesifikasi minimal perangkat keras yang dapat digunakan untuk Ubuntu Server 10.10 adalah sebagai berikut:
  1. Processor : x86 / AMD64
  2. Memori : 128MB
  3. Hard Disk
    • Sistem Dasar : 500MB
    • Semua Tugas : 1GB
Pada kesempatan ini saya menggunakan komputer yang memiliki spesifikasi sebagai berikut:
  1. Processor : Pentium 4
  2. RAM : 512 MB
  3. Hard Disk : 50GB
Berikut ini akan dijelaskan langkah demi langkah dalam melakukan instalasi Ubuntu Server 10.10:
  • Nyalakan komputer yang akan diinstalkan Ubuntu Server 10.10 dan pastikan CD instalasi Ubuntu Server 10.10 sudah ada dalam CD-ROM dari komputer tersebut.
  • Masuk ke pengaturan BIOS dari komputer untuk mengatur firt boot agar langsung membaca CD-ROM dengan menekan tombol F2 atau Del atau F12 (masing-masing komputer berbeda). Maka akan muncul jendela pengaturan. Masuk ke tab Boot dan geser CD-ROM ke urutan paling atas. Lalu tekan F10untuk keluar dan menyimpan pengaturan.
  • Komputer akan restart dan kembali melakukan booting. Untuk kali ini pengguna tidak menekan apapun, biarkan saja sampai muncul jendela yang mengharuskan pengguna untuk memilih salah satu bahasa yang akan digunakan untuk interface Ubuntu Server 10.10 dan bukan bahasa dalam instalasi. Pada kesempatan ini saya menggunakan English.
  • Setelah memilih bahasa, pengguna akan diteruskan ke tampilan jendela utama. Pengguna diharuskan memilih salah satu dari enam pilihan yang ada. Karena disini saya akan melakukan instalasi, maka saya memilih pilihan yang pertama, yaitu Install Ubuntu Server.
  • Jendela selanjutnya pengguna akan dihadapkan lagi pada pemilihan bahasa. Namun untuk bahasa yang akan dipilih pada tahap ini adalah bahasa yang digunakan untuk proses instalasi. Disini saya masih tetap menggunakan English.
  • Langkah berikutnya adalah menentukan negara. Pada tampilan awal dari jendela pemilihan negara, tidak terdapat pilihan Indonesia, jadi saya memilih Other kemudian memilih Asia lalu memilih Indonesia.
  • Selanjutnya pengguna akan ditanyakan apakah ingin melakukan tes pada papan ketik (keyboard) yang digunakan, saya menjawab No, karena saya merasa tidak perlu melakukannya.
  • Masih berhubungan dengan papan ketik yang digunakan, tahap selanjutnya pengguna harus menentukan jenis papan ketik yang digunakan. Rata-rata papan ketik yang beredar di Indonesia adalah papan ketik dengan standar USA. Untuk itu saya memilih USA sebagai Origin of the Keyboard dan Keyboard Layout.
  • Langkah selanjutnya adalah menentukan primary network interface. Karena pada tutorial ini saya menggunakan dua buah ethernet card yang saya pasangkan di komputer, maka Ubuntu Server akan menanyakan manakah ethernet card yang menjadi primary. Saya memilih eth0 yang menjadi primary ethernet card.
  • Setelah menentukan primary network interface, Ubuntu Server akan langsung mencari DHCP (Dynamic Host Configuration Protocol) yang terkoneksi ke network interface Ubuntu Server. Karena Ubuntu Server belum terkoneksi dengan jaringan apapun, saya menekan Cancel.
  • Selanjutnya pengguna dihadapkan pada tahap penentuan konfigurasi jaringan. Saya akan melakukan konfigurasi jaringan pada saat setelah Ubuntu Server 10.10 ini selesai diinstal, jadi untuk tahap ini saya memilih Do not configure the network at this time.
  • Proses selanjutnya adalah memasukkan nama host dari server yang akan dibangun ini. Disini saya memberikan nama server01. Pemberian nama hostini tidak membenarkan adanya spasi.
  • Selanjutnya pengguna diharuskan memilih zona waktu (time zone) sesuai dengan kota pengguna. Karena pada langkah sebelumnya saya sudah memilih Indonesia sebagai negara saya, maka disini terdapat empat pilihan yaitu: Jakarta, Pontianak, Makasar, Jayapura, dan terdapat satu pilihan Select from worldwide listjika zona waktu yang diinginkan tidak ada yang sesuai. Pada tutorial ini saya memilih Jakarta, karena sesuai dengan zona waktu saya berada.
  • Langkah selanjutnya adalah menetukan metode dalam memberikan partisi hard disk. Pada tutorial ini saya menggunakan metode Manual, karena saya ingin menentukan partisi sendiri.
  • Proses berikutnya adalah melakukan partisi hard disk, karena sebelumya saya memilih melakukan partisi secara manual. Pilih hard disk yang akan dipartisi atau dibagi. Pada tutorial ini hard disk yang saya gunakan dikenal dengan nama SCSI3 (0,0,0) (sda).
  • Setelah dipilih maka akan muncul dialog yang menanyakan apakah pengguna akan membuat partition table yang baru atau akan menggunakan yang lama. Pada tutorial ini saya memilih Yes karena saya akan membuat partition table yang baru dan menghapus yang lama.
  • Selanjutnya masih dalam tahap melakukan partisi hard disk. Pada langkah ini pengguna diharuskan membuat sebuah partisi baru dengan memilih hard disk kosong yang telah dibuat partition table-nya dan berstatus FREE SPACE dan belum memiliki format. Pada tutorial, ini pertama kali saya akan membuat partisi swap, dimana partisi ini digunakan untuk membantu kerja RAM pada komputer apabila sewaktu-waktu RAM tidak sanggup menangani kerja yang berlangsung.
  • Tampilan berikutnya yang muncul adalah pertanyaan apa yang akan dilakukan oleh pengguna untuk free space ini. Karena tujuannya adalah untuk membuat partisi yang baru, saya memilih Creat a new partition.
  • Setelah itu pengguna diwajibkan untuk memasukkan kapasitas dari partisi yang akan dibuat, yaitu partisi swap. Dalam membuat partisi swap terdapat formulasi yang bisa dijadikan acuan, yaitu apabila RAM berkapasitas lebih kecil 1GB maka jumlah swap yang disarankan adalah 2 x jumlah RAM, sedangkan jika RAM lebih besar atau sama dengan 1GB maka jumlah partisi swap yang disarankan adalah 1 x jumlah RAM. Namun aturan ini hanya berlaku untuk RAM yang tergolong berukuran kecil, apabila RAM yang digunakan sudah tergolong berkapasitas besar, maka partisi swap tidak perlu terlalu besar. Pada kesempatan ini saya menggunakan RAM sebesar 512MB, jadi kapasitas swapyang saya berikan adalah sebesar 1 GB.
  • Pengguna akan ditanya lagi terkait tipe dan lokasi dari partisi. Untuk tipe saya menggunakan Primary dan untuk lokasi, saya meletakkannya pada posisi Beginning.
  • Langkah berikutnya adalah melakukan pengaturan dari partisi swap. Pada Use as, saya memilih swap area karena memang partisi ditujukan untuk swap. Pilih Done setting up the partition yang menandakan pengaturan swaptelah selesai.
  • Berikutnya adalah membuat partisi untuk sistem. Langkah-langkah yang dilalui hampir sama dengan membuat partisi swap yang diawali dari nomor 17, yaitu dengan memilih partisi yang berstatus FREE SPACE dan belum memiliki format file system, setelah itu pilih Create a new partition.
  • Kemudian memberikan kapasitas yang akan digunakan oleh partisi tersebut, karena saya ingin menggunakan semua partisi sisa dari swap tadi (41,9 GB), maka saya langsung saja menekan tombol Enter. Sedangkan untuk tipe dan lokasi masih sama dengan swap, yaitu bertipe Primary dan lokasi Beginning.
  • Untuk pengaturan partisi (Partition settings) hal yang dilakukan yaitu: pada Use as saya menggunakan JFS journaling file system. Pada Label saya memasukkan SYSTEM. Label digunakan untuk penamaan, jadi bisa apa saja yang diinginkan pengguna. Kemudian pilih Done setting up the partitionyang artinya pengaturan partisi sistem sudah selesai.
  • Pembagian partisi hampir selesai dilakukan. Selanjutnya saya memilih Finish partitioning and write changes to disk untuk menyelesaikan pembagian partisi hard disk. Ubuntu Server akan memperlihatkan summary dari pembagian partisi yang sudah dilakukan, dalam tampilan ini pengguna juga akan ditanya apakah ingin menerapkannya kedalam hard disk, agar hard disk segera dapat digunakan saya menjawab Yesdan instalasi sistem dasar pun dilakukan.
  • Selanjutnya pengguna akan dihadapkah pada proses pemberian user dan password. Untuk yang pertama dilakukan adalah pemberian nama lengkap dari pengguna yang akan menggunakan sistem. Pada tutorial ini saya memasukkan nama saya yaitu Adam Kurniawan Mrg. Selanjutnya memasukkan user yang akan digunakan sebagai user login. Untuk ini saya memasukkan adamkurniawan. Proses berikutnya memasukkan password yang akan digunakan untuk masuk ke sistem sebanyak dua kali. Kemudian Ubuntu Server menanyakan apakah pengguna ingin melakukan enskripsi terhadap home direcorty pengguna. Pada praktek ini saya menjawab No.
  • Proses berikutnya Ubuntu Server akan menanyakan apakah pengguna ingin melakukan pembaharuan otomatis menggunakan internet atau tidak. Pada tutorial ini saya memilih No automatic update karena saya merasa tidak perlu melakukannya.
  • Tahap berikutnya adalah memilih peragkat lunak apa saja yang ingin dipasangkan di Ubuntu Server. Secara default Ubuntu Server 10.10 menyediakan perangkat lunak yang biasanya berjalan di server. Perangkat lunak yang disediakan oleh Ubuntu Server adalah sebagai berikut: DNS server, LAMP server, Mail server, OpenSSH server, PostgreSQL database, Print server, Samba file server, Tomcat Java server, dan Virtual Machine host. Untuk tutorial ini agar tidak terjadi loss dependecy, maka saya memilih semuanya, karena apabila sewaktu-waktu ada dari perangkat lunak diatas yang dibutuhkan untuk keperluan yang tidak diduga, administratortidak repot melakukan instalasi kembali.
  • Setelah menekan tombol Enter, maka instalasi pun dimulai. Ditengah-tengah proses instalasi pengguna akan diminta memasukkan password untuk MySQL sebanyak dua kali. Masukkan password yang dinginkan dan dianggap aman. Masih pada proses instalasi perangkat lunak, kembali pengguna akan ditanya apakah ingin melakukan konfgurasi Postfix atau tidak. Postfix sendiri adalah perangkat lunak yang digunakan untuk Mail server. Pada kesempatan ini saya memilih No configuration. Proses instalasi dilanjutkan.
  • Setelah proses instalasi perangkat lunak selesai, pengguna akan kembali dihadapkan pada pilihan apakah pengguna ingin melakukan instalasi GRUB boot loader. Pada tutorial ini saya memilih Yes.
  • Setelah Grub Loader selesai diinstal, maka itu menandakan bahwa instalasi Ubuntu Server sudah selesai dilakukan. Selain itu ditandakan juga dengan munculnya tampilan baru Finish the installation. Pilih Continue, maka komputer akan melakukan restart, dan jangan lupa mengubah kembali fisrboot-nya ke hard drive.
  • Setelah first boot diubah ke hard drive dan maka setelah selesai booting akan langsung muncul tampilan awal dari Ubuntu Server 10.10 yang langsung meminta pengguna untuk login dengan tampilan CLI (Command Line Interface).
Semoga tutorial ini bisa membantu bagi Anda yang ingin melakukan instalasi Ubuntu Server 10.10. Selamar mencoba dan tetap semangat dalam belajar.
Buat Anda sahabat blogger yang ingin mempublikasikan ulang artikel ini, sangat dipersilahkan dan saya sangat senang jika sobat blogger mau mempublikasikan ulang tulisan saya. Namun saya sangat  berharap agar sobat mencantumkan link artikel yang sobat publish ulang. Demi terciptanya iklim blogging yang sehat saya harap sobat blogger bisa mengindahkannya.

Instalasi WebHTB Sebagai Manajemen Bandwidth di Ubuntu Server 10.10

WebHTB (Web Hierarchy Token Bucket) adalah sebuah aplikasi berbasis web bersifat open source yang digunakan untuk melakukan manajemen bandwidth guna mendukung QoS (Quality of Service) yang baik. Aplikasi ini dapat memberikan batasan bandwidth pada masing-masing klien. Penggunaan WebHTB berdasarkan rules pada kartu jaringan server, jadi semua lalu lintas data yang melewati kartu jaringan akan segera disaring oleh aplikasi WebHTB.
Topologi yang saya gunakan dalam tutorial ini adalah sebagai berikut: Internet –> Modem –> Router (Ubuntu Server + WebHTB) –> Switch –> Klien. Jika digambarkan akan terlihat seperti ini:
Jadi, bisa dilihat dengan jelas pada gambar topologi diatas, bahwa semua paket dari client yang ingin dilewatkan menuju internet harus melewati PC yang sudah diinstalkan Ubuntu Server 10.10, dimana PC tersebut bertindak sebagai gateway dari client, sebagai router, dan juga sebagai tempat diinstalkannya aplikasi manajemen bandwidth WebHTB, jadi semua paket yang lewat akan tersaring di PC tersebut.
Sebuah aplikasi ada yang membutuhkan dependensi dan ada yang tidak, begitu juga dengan WebHTB. Aplikasi ini membutuhkan dependensi yang akan mendukung kinerjanya dalam membatasi bandwidth client dalam mengakses jaringan yang berada diluar jaringan lokal. Berikut ini adalah paket-paket dependensi yang digunakan untuk mendukung WebHTB:
  1. Apache2, berfungsi sebagai webserver.
  2. Mysql, berfungsi sebagai penyimpan data klien HTB.
  3. PHP, berfungsi sebagai penghubung antara HTB dengan MySQL.
  4. Openssl, berfungsi sebagai keamanan pada Apache2.
  5. SSL-Cert, berfungsi untuk membuat kunci SSL pada Apache2.
Semua dependensi diatas akan dibutuhkan oleh WebHTB dalam menjalankan tugasnya. Jika satu saja tidak terpasang, maka WebHTB tidak akan berjalan dengan sempurna dan dapat dikatakan gagal.
.
Instalasi WebHTB
Instalasi WebHTB bisa dikatakan susah-susah gampang, mungkin bagi sudah familiar dengan sistem di Linux akan terasa mudah, namun bagi yang belum familiar dengan sistem di Linux akan terasa sulit dan kadang sering terjadi kesalahan dan kegagalan.
Berikut ini saya paparkan bagaimana melakukan instalasi WebHTB pada Ubuntu Server 10.10.:
  • Langkah awal yang saya lakukan adalah memperbaharui index dari Ubuntu Server 10.10, agar Ubuntu Server 10.10 yang saya gunakan bisa membaca semua repository Ubuntu pusat. Untuk melakuakannya, pastikan bahwa Ubuntu Server sudah terkoneksi ke internet dan pengguna sudah masuk kedalam mode root, kemudian ketikkan perintah berikut ini # apt-get update. Maka sesaat kemudian Ubuntu akan melakukan indexing ke repository pusat Ubuntu.
  • Setelah selesai, seperti yang sudah saya jelaskan sebelumnya, bahwa aplikasi WebHTB membutuhkan dependensi dalam menunjang kinerja kerjanya, maka langkah selanjutnya yang saya lakukan adalah melakukan instalasi dependensinya. Ketikkan perintah berikut: # apt-get install apache2 mysql-server-5.0 php5 libphp-adodb php5-cli php5-gd php5-snmp php5-mysql php5-xmlrpc kemudian tekan tombol Enter, setelah itu pengguna akan ditanya apakah ingin melanjutkan, tekan saja tombol “Y” kemudian tombol Enter. Proses ini cukup memakan waktu yang lama, dikarenakan cukup banyaknya dependensi yang diinstal. Tunggu proses ini hingga selesai
  • Tahap berikutnya saya mengunduh aplikasi WebHTB dengan mengetikkan perintah: # wget http://nchc.dl.sourceforge.net/project/webhtb/WebHTB%20V2.xx/WebHTB_V2.9/WebHTB_V2.9.bz2. Ukuran aplikasi ini bisa dikatakan kecil, yaitu 214,55 KB.
  • Setelah selesai diunduh dengan waktu yang relatif singkat, maka akan terdapat sebuah berkas yang bernama WebHTB_V2.9.bz2. Lakukan ekstrak pada berkas tersebut, karena berkas WebHTB yang diunduh tersebut masih dalam bentuk terkompres. Untuk melakukan ekstrak, ketik perintah # tar –xvf WebHTB_V2.9.bz2. Ekstraksi tersebut akan menghasilkan sebuah folder yang bernama webhtb. Cut file webhtb ini ke direktori /var/www dengan perintah # mv webhtb/ /var/www.
  • Langkah berikutnya adalah melakukan instalasi paket OpenSSL dan SSL-Cert untuk membuat kunci keamanan Apache, dimana pengguna akan mengakses WebHTB melalui web browser dari https bukan http yang tentunya akan lebih aman. Untuk melakukannya ketikkan perintah # apt-get install openssl ssl-cert. Jika ditanyakan “Do you want to continue?” jawab ya dengan megetikkan “Y” dan diikuti dengan menekan tombol Enter.
  • Proses berikutnya adalah membuat berkas SSL. Namun sebelumnya pengguna harus membuat terlebih dahulu direktori tempat berkas SSL akan ditempatkan. Pada tutorial ini saya membuatnya di /etc/apache2/ dengan nama ssl, jadi yang harus diketikkan adalah # mkdir /etc/apache2/ssl.
  • Setelah itu barulah dilanjutkan dengan membuat berkas SSL-nya dengan mengetikkan perintah # make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem.
  • Setelah mengetikkan perintah tersebut dan menekan Enter, akan langsung muncul tampilan berwarna biru yang meminta pengguna untuk memasukkan nama host (hostname). Karena disini saya menggunakan localhost, jadi saya memasukkan localhost.
  • Setelah itu, aktifkan modul SSL agar sertifikat SSL dikenali oleh Apache2 dengan mengetikkan perintah # a2enmod ssl.
  • Setelah itu lakukan restart terhadap Apache2 dengan perintah /etc/init.d/apache2 force-reload.
  • Selanjutnya adalah menempatkan sertifikat SSL yang sebelumnya sudah dibuat di virtualhost Apache2. Untuk melakukannya jalankan perintah berikut ini: # cp /etc/apache2/site-availabe/default /etc/apache2/site-available/ssl.
  • Langkah berikutnya adalah melakukan pengubahan pada berkas SSL yang berada di /etc/apache2/site-available/ssl. Untuk bisa mengubah berkas tersebut ketikkan perintah berikut: # nano /etc/apache2/site-available/ssl.
  • Pada baris paling atas tambahkan NameVirtualHost *:443 dan untuk satu baris dibawahnya, ubah <VirtualHost *:80> menjadi <VirtualHost *:443>. Lalu tambahkan skrip berikut ini pada baris paling bawah sebelum baris </VirtualHost>:
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/9f129ada
  • Nilai 9f129ada didapatkan dari direktori /etc/apache/ssl, bisa dilihat dengan mengetikkan # ls /etc/apache/ssl. Biasanya nilai ini tidak sama pada satu komputer dengan yang lainnya. Silahkan cek sendiri.
  •  Lakukan juga pengubahan pada berkas /etc/apache2/site-available/default dengan mengetikkan perintah # nano /etc/apache2/site-available/default.
  • Pada baris paling bawah sebelum </VirtualHost> tambahkan skrip berikut : SSLCertificateFile /etc/apache2/ssl/apache.pem
  • Selanjutnya lakukan restart pada Apache2 dengan perintah # /etc/init.d/apache2 force-reload. Kemudian lanjutkan dengan mengaktifkan modul HTTPS untuk mengakses WebHTB dari browser dengan perintah # a2ensite ssl. Kemudian restart kembali Apache dengan perintah # /etc/init.d/apache2 restart.
  • Tahap berikutnya adalah melakukan setup WebHTB. Pada tahap ini dibutuhkan 1 buah PC yang akan digunakan untuk melakukan setup WebHTB melalui web browser. Saya membutuhkan komputer lain yang memiliki web browser karena Ubuntu Server yang saya gunakan memiliki antar muka CLI yang tidak menyediakan web browser. Untuk tahap ini, saya menggunakan PC yang memiliki sistem operasi Windows XP SP2 yang nantinya komputer ini akan menjadi komputer administrator untuk melakukan konfigurasi, monitoring jaringan, dan lain-lain. Komputer administrator ini terlebih dahulu harus diatur alamat IP-nya, caranya adalah klik Start –> Control Panel –> Network Connections –> Local Area Connection –> Properties –> Internet Protocol (TCP/IP) –> Use the following IP address. Berikan parameter sebagai berikut:
IP address : 10.10.1.100
Subnet mask : 255.255.255.0
Default gateway : 10.10.1.254
Preferred DNS server : 192.168.6.254

Altenative DNS server : 8.8.8.8
  • Masih dalam komputer administrator (bukan Ubuntu Server 10.10), buka web browser dan akses alamat https://10.10.1.254/webhtb/setup. Maka akan muncul halaman setup dari WebHTB. Isi dengan parameter sebagai berikut:
MySQL admin user :root
MySQL admin password : adamkurniawan
MySQL WebHTB user : <kosong saja>
MySQL WebHTB password : <kosong saja>
MySQL WebHTB password again : <kosong saja>
MySQL WebHTB database name : webhtb
Default interface : eth1
Penjelasan dari parameter diatas adalah sebagai berikut:
  1. MySQL admin user: Berisi username dari admin MySQL .
  2. MySQL admin password: Password yang digunakan untuk masuk ke MySQL yang sebelumnya sudah diset pada saat awal instalasi.
  3. MySQL WebHTB database name: Nama database yang akan digunakan untuk menyimpan data-data dari WebHTB.
  4. Default interface: Kartu jaringan yang terhubung langsung ke jaringan lokal.
  • Setelah semua data yang diperlukan selesai diisi, klik tombol Submit. Maka akan muncul jendela kecil yang mengatakan bahwa pengguna (dalam hal ini administrator) harus menghapus berkas setup yang berada di direktori /var/www/webhtb/setup pada Ubuntu Server, klik saja Ok.
  • Beralih ke Ubuntu Server 10.10, jalankan perintah untuk menghapus folder setup WebHTB, yaitu # rm –rf /var/www/webhtb/setup.
  • Langkah terakhir dalam instalasi WebHTB adalah mengganti password root sistem dari Ubuntu Server. Jika tidak diganti, maka administrator tidak akan bisa login ke dalam WebHTB. Untuk mengganti password sistem Ubuntu Server ketikkan perintah # passwd root, kemudian ketikkan password baru yang diinginkan sebanyak dua kali. Misalnya saya menggantinya dengan adam2011.
  • Beralih ke komputer yang bersistem operasi Windows XP SP2 yang dijadikan sebagai komputer administrator. Buka web browser dan akses alamat https://10.10.1.254/webhtb. Akan muncul halaman “This Connection is Untrusted”, klik I Understand the Risks, kemudian klik tombol Add Exception.., lalu klik Confirm Security Execption. Maka pengguna akan disodorkan halaman login dari WebHTB, masukkanlah password sistem yang baru saja diganti yaitu adam2011. Maka halaman WebHTB yang digunakan untuk memanajemen bandwidth pun terbuka. Sampai disini Instalasi WebHTB sudah selesai.
Untuk cara penggunaannya akan dilanjutkan pada tutorial selanjutnya, atau jika Anda sudah penasaran, silahkan dicoba sendiri. Selamat belajar… :)

Membuat Drive Khusus Untuk File Sharing di Windows Server 2008

Sharing file pada jaringan komputer dengan model Client-Server adalah hal yang sangat sering ditemui, bahkan hampir disetiap jaringan dengan model Client-Server melakukan hal ini guna mempermudah pendistribusian file dari server kepada semua client. Hal yang umum dilakukan untuk melihat/mengakses/mengambil file yang ada diserver adalah memasukkan IP Address atau nama komputer server ke Address Bar, misalnya: \\10.10.1.1 atau \\server1,  maka file-file yang disharing oleh server akan terlihat dan dapat diakses (sesuai batasan izin).
ARTIKEL LENGKAP YANG DISERTAI DENGAN GAMBAR SUDAH SAYA PINDAHKAN KE:
Mungkin kalau satu atau dua kali tidak apa hal ini dilakukan, namun bagaimana apabila user ingin mengakses file yang disharing itu berulang-ulang? tentu saja ini akan menjadi sebuah hal yang membosankan bagi user, harus mengetik alamat server pada Address Bar berulang-ulang apabila ingin mengakses file yang disharing tersebut.
Ada sebuah cara praktis yang sangat berguna bagi user, dimana file yang disharing oleh server tadi akan ditempatkan pada sebuah drive. Dengan mengakses driver tersebut, layakanya mengakses drive lokal, user bisa langsung mengakses file-file yang disharing oleh server. Pada trik ini, saya menggunakan Windows Server 2008 sebagai servernya, dan Windows XP Professional sebagai clientnya, namum sebelumnya, Active Direktori pada server sudah harus aktif. Saya anggap Active Directory Anda sudah aktif. Untuk caranya adalah sebagai berikut:
  • Pada komputer server bukalah program notepad.
  • Ketikkan: net use x: \\10.10.1.1\dokumen.
Dimana:
> x adalah huruf dari driver, bisa menggunakan huruf lain, misalnya f:
> \\10.10.1.1 adalah alamat server, sesuaikan dengan server Anda. Bisa juga menggunakan nama servernya, misalnya: server1
> \dokumen adalah nama folder yang disahring untuk client, sesuaikan dengan nama file sharing yang ada diserver
  • Setelah selesai simpan dengan ekstensi *.bat, contoh: LOGON.bat
  • Copykanlah file LOGON.bat itu kedalam direktori: \\10.10.1.1\sysvol\adam.com\scripts, dimana adam.com adalah nama domain yang sudah ada pada server saya.
Agar pada setiap user melakukan login di komputernya, drive yang dibuat tadi sudah ada (otomatis), maka perlu dilakukan beberapa langkah lagi di komputer server, sbb:
  • Bukalah Active Directoty di server Anda melalui Start > AdministrativeTools > ActiveDirecotyUsersandComputers
  • Klik kanan pengguna yang ingin diberikan drive yang berfungsi sebagai tempat menyimpan data yang diharing tadi.
  • Selanjutnya klik Properties, maka akan terbuka jendela baru.
  • Masukklah ke tab Profile.
  • Pada logon script masukkan nama file bat yang sudah kita buat tadi, yaitu LOGON.bat.
  • Jika sudah klik OK.
Sekarang yang harus Anda lakukan adalah mengecek apakah langkah-langkah diatas sudah berhasil dengan melakukan login sebagai user yang dimana pada local scriptnya tadi sudah dimasukkkan LOGON.bat. jika berhasil maka Anda akan melihat drive baru di My Computer pada komputer client.
Semoga berguna…
:)

Multifox, Login Lebih Dari Satu Akun Dalam Waktu Bersamaan


Jika anda mempunyai lebih dari satu akun dari sebuah layanan misalnya Gmail, Facebook, atau Twitter dan Anda memakai browser Mozilla Firefox, maka Anda cuma bisa melakukan login dengan satu akun saja pada waktu yang bersamaan, betul? Multifox adalah ekstensi dari Mozilla Firefox yang berguna agar browser Mozilla Firefox bisa tersambung dengan sebuah website memakai lebih dari satu akun yang berbeda. Jadi kalau Anda mempunyai beberapa akun pada sebuah website, misalnya saja Gmail, maka Anda bisa membuka semua akun Gmail Anda pada waktu yang sama. Setiap window dari Firefox bisa mengakses semua akun Anda tanpa saling mengganggu.
ARTIKEL INI TIDAK MEMILIKI SCREENSHOT, ARTIKEL YANG SUDAH MEMILIKI SCREENSHOT SUDAH SAYA PINDAHKAN KE:
Berikut cara menggunakannya:
  • Kunjungilah situ resmi Multifox menggunakan browser Mozilla Firefox Anda untuk mendownloadnya di http://br.mozdev.org/multifox/.
  • Apabila websitenya sudah muncul, lihatlah bagian kanan atas situs. Anda akan menemukan tulisan [Install Extension] seperti ini:
  • Kliklah tulisan itu.
  • Maka di kanan atas akan muncul tulisan [Allow], seperti ini:
  • Kliklah tombol itu.
  • Tunggu beberapa detik sampai muncul kotak dialog seperti ini:
  • Setelah itu, kliklah [Install Now].
  • Maka proses instalasi pun berjalan. Setelah selesai, maka Fireforx akan meminta untuk direstart.
  • Restartlah Firefox Anda.
Untuk cara menggunakannya, ikuti langkah-langkah berikut ini:
  • Buka akun Anda yang pertama pada browser Firefox seperti biasa, misalnya Gmail.
  • Setelah itu buka akun Gmail Anda yang kedua dengan cara:
  • Pilih [File] > [New Indentity Profile]
  • Maka akan muncul sebuah window Firefox baru, disinilah Anda bisa membuka akun Gmail Anda yang lain, tanpa mengganggu yang pertama.
  • Namun sedikit berbeda. Jika Anda lihat pada sisi kanan Address bar, maka Anda akan melihat seperti ini:
  • Saya yakin Anda sudah tahu apa maksudnya :)
Berikut adalah beberapa fitur dari Multifox:
  • Username dan password akan disimpan dengan cara yang sama seperti window biasa tanpa menggunakan Multifox, malah pada saat Anda tutup window tersebut ataupun keluar dari Firefox.
  • Profil serta identitas dari setiap window akan disimpan dan bisa kembali dipakai saat Firefox kembali dibuka.
  • Window baru yang dibuka akan mempunyai profil identitas sama seperti window asal mereka dibuka.
  • Multifox dimulai dari 2, karena 1 dianggap sebagai Firefox identity profile yang normal.
Pada saat saya mencoba extensi ini, saya menggunakan Mozilla Firefox versi 3.6.3. Jika Anda tertarik untuk menggunakannya dan Anda merasa kalau extensi ini Anda perlukan, silahkan untuk segera mencobanya. Selamat mencoba.