Bodhon: Sampai Saya Yang Terbodoh itu Tahu.. Silakan Copy Paste (by bimosaurus)


Traffic Shaping dengan IPTABLES (postingan lama di MP)
April 20, 2007, 12:55 am
Diarsipkan di bawah: Linux, Networking

Para pelaku bisnis jaringan, atau pengelola jaringan instansi dan institusi banyak sekali mencari program-program yang digunakan untuk melakukan traffic shapping atau bandwidth manager. Pada linux yang paling familiar adalah dengan menggunakan htb atau cbq. Sedangkan di BSD biasanya menggunakan ip dummynet dengan perintah-perintah ipfw

Nah bagi yang nggak mau berpusing-pusing dengan htb atau cbq maka ada suatu solusi yang lumayan ringkas dan cukup akurat.. Asal tahu aja kalau htb dan cbq yang selama ini saya pake ternyata memiliki kekurangan. Mereka tidak tahan dengan beban tinggi. Nah, ternyata linux juga memiliki solusi dengan menggunakan tools jaringan bawaannya yang bernama iptables. Iptables ini sudah biasa digunakan mengelola jaringan, mengarahkan route, memblokir, meneruskan, memberrikan aturan antrian dll. Lho terus gimana dong memberikan aturan traffic shapping dalam Linux?

Begini:

Komponen rule utama dalam iptables yang perlu dipakai adalah:

iptables blablablabla –source/–destination -m limit –limit xx/s –limit-burst xx -J ACCEPT

tapi dengan catatan bahwa secara policy, targetnya adalah DROP

Contoh:

Misalnya saya punya jaringan dengan kondisi seperti ini

Saluran masuk dari internet melalui
eth0
, kemudian traffic internet tersebut dibagi ke
eth1, dengan net address 192.168.10.0/24
eth2, dengan net address 192.168.100.0/24
Kemudian pada net address yang pertama tersebut ada beberapa sub blok yaitu
- marketing
- hosting
- administrator
- technical support
- management

maka
contohnya:

iptables -P FORWARD -j DROP
iptables -A FORWARD -d 192.168.10.0/24 -m limit –limit 100/s –limit-burst 20 -j ACCEPT
iptables -A FORWARD -s 192.168.10.0/24 -m limit –limit 100/s –limit-burst 20 -j ACCEPT
;semua traffic masuk dan keluar dari 192.168.10.0/24 dibatasi maksimal sejumlah 100kbps



Masquerading vs Internet Connection Sharing (gateway)
April 19, 2007, 1:11 am
Diarsipkan di bawah: Linux, Networking

Banyak diantara teman-teman admin yang memiliki masalah dengan membagi jaringan internet ke jaringan lokal dari komputer Gateway/Router. Nah berikut tipsnya:

Untuk linux, sangat gampang..

1. Lihat dulu interface jaringan yang ada pada komputer gateway. Biasanya lebih dari satu.
2. Tentukan interface mana yang menghadap ke internet/sisi publik..
3. Tambahkan command iptables ini pada firewall

iptables -t nat -I POSTROUTING -o namadevice -j MASQUREADE

contoh

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

Dengan perintah ini juga kita juga bisa melakukan IP Forwarding terhadap IP – IP tertentu , mana yang boleh masuk ke internet, mana yang tidak boleh. Misalnya:

iptables -t nat -I POSTROUTING -s 192.168.2.0/24 -j MASQUERADE. Dengan catatan perintah yang diatas tadi tidak dijalankan

PRoses forward ip bisa juga dilakukan dengan cara
selalu

tambahkan dalam file /etc/rc.local anda seperti ini

echo “1″ > /proc/sys/net/ipv4/ip_forward

nilai ini selalu akan berganti menjadi 0 jika komputer di reboot/dimatikan.

Untuk Windows, buka dulu Network Connectionnya dari Start Setting ..
Carilah interface yang berhubungan dengan internet. Misalnya adalah Network Connection1, Klik kanan, Propoerties dan carilah Advanced

The image “http://geocities.com/bimosaurus/ics.JPG” cannot be displayed, because it contains errors.

Check, centanglah tanda Allow network User bla bla bla. Maka interface yang satunya akan segera membuat IP address baru 192.168.0.1 yang kita nanti juga bisa menggantinya.
Nah.. gampang khan?



Memahami Kerja DNS dan setting DNS
April 12, 2007, 6:06 am
Diarsipkan di bawah: Networking

Apa itu DNS:
DNS singkatan dari Domain Name System, DNS secara bodhon merupakan suatu tools dalam jaringan yang digunakan untuk menterjemahkan dari nama domain ke ip address.

Mengapa ada DNS?
Komputer pada dasarnya tidak bisa membaca domain (nama komputer) dalam bahasa manusia seperti yahoo.com, google.com dll. Sedangkan yang di baca oleh komputer adalah bahasa mesin, yang berupa digital atau angka (202.162.135.135, 222.124.24.91). Untuk itu perlu pemetaan antara bahasa yang digunakan manusia ke bahasa mesin.

Bagaimana mekanismenya?
Mekanismenya adalah, ketika komputer kita (selaku DNS Client) memanggil sebuah host lain (misal http://yahoo.com) maka komputer kita akan segera menanyakan ke Server DNS yang telah kita pasang di konfigurasi jaringan kita. Jika server DNS kita tahu (ada catatan tentang domain tertentu) maka kita akan segera dipanggilkan dengan nomer IP yang bersangkutan. Jika server DNS kita tidak tahu, maka server DNS kita akan menanyakan pada server DNS yang lebih atas lagi dan seterusnya. Jika tidak diketemukan, maka dinyatakan bahwa host tidak diketemukan.

Bagaimana setting DNS Client?
Di Windows tinggal klik
Start
Setting
Network Connection

The image “http://geocities.com/bimosaurus/dns1.jpg” cannot be displayed, because it contains errors.

Gambar 1. Langkah 1

 

. Akan muncul gambar seperti berikut

The image “http://geocities.com/bimosaurus/dns2.jpg” cannot be displayed, because it contains errors.

Gambar 2. Langkah 2

 

Kemudian pada Icon Network Connectionnya di klik kanan Pilih Properties Seperti di dalam gambar yang di tampilkan dibawah

The image “http://geocities.com/bimosaurus/dns3.jpg” cannot be displayed, because it contains errors.

Gambar 3. Langkah 3

The image “http://geocities.com/bimosaurus/dns4.jpg” cannot be displayed, because it contains errors.

Gambar 4. Network Properties

 

The image “http://geocities.com/bimosaurus/dns5.jpg” cannot be displayed, because it contains errors.

Gambar 5. Network Configuration

Set lah DNS pada server DNS yang ada dalam jaringan anda, jika tak tahu, tanya ke administrator

Di Linux, sangat gampang
Cari tahu dulu nomer IP Address DNS Server, kemudian bukalah file /etc/resolv.conf dengan mcedit atau vi ataupun editor teks lainnya

mcedit /etc/resolv.conf

The image “http://www.geocities.com/bimosaurus/dns6.jpg” cannot be displayed, because it contains errors.

Gambar 6. Konfigurasi DNS Client di Linux

Masukkanlah teks : nameserver no_IP_server_dns
seperti pada gambar

nah artinya, Semua kebutuhan nama suatu situs, akan direkuestkan ke ip tersebut. Jika komputer dengan no IP tersebut gak tahu, akan dilanjutkan ke atasnya dan seterusnya.

Nah sekarang bagaimana kalau Setting DNS SERVER?
Wehehe ini yang lumayan rumit

Namun yang paling penting kita harus memahami KOMPONEN DNS. Apa aja sih komponen DNS itu?

1. Resolver
2. Resolution
3. Caching

Resolver adalah ialah bagian aplikasi client yang mengakses name server. Resolver ada di CLIENT seperti yang kita set tadi. Semua aplikasi yang mengakses DNS memerlukan ini

Resolution. Sebuah server DNS, dalam menjawab permintaan nameserver, akan mencarikan nameserver yang terletak di server atasnya. Proses ini dinamakan dengan name resolution.

Caching. Selain resolution, dalam menjawab sebuah permintaan nameserver, maka Server akan mengakses databasenya didalam cache nya untuk mencari domain yang dimaksud. Namun karena kapasitas cache terbatas, maka perlu di batasi dengan menentukan Time To Live (TTL).

BIND

Bind merupakan software implemetasi DNS paling banyak digunakan dalam sebagai server DNS. BIND merupakan singkatan dari Berkeley Internet Name Domain. BIND versi terbaru dapat diambil di http://isc.org. Ketika dilakukan installasi BIND, maka BIND akan melakukan installasi menjadi tiga bagian

1. /etc/resolv.conf
2. /etc/named.conf
3. DNS resource record yang terdiri dari :
/var/named/root.cache
/var/named/named.local
/var/named/ut.zone
/var/named/ut.rev
DNS resource record adalah file database yang dibutuhkan oleh nameserver sebagai sumber data dalam prosesnya. File-file inilah yang kemudian akan dimodifikasi.

Dalam file tersebut, urutan penataannya adalah sebagai berikut:

SOA RECORD

NS RECORD

Other REcord seperti :
- A : Pemetaan dari Nama ke IP
- PTR :P emetaan dari IP ke Nama
- CNAME : Canonical Name (Alias)
To be Continued



Bagaimana membuat Komputer ber IP Local bisa publish di Internet? (Linux)
April 12, 2007, 4:02 am
Diarsipkan di bawah: Linux, Networking

Kadang-kadang kita memiliki sebuah webserver yang berada di IP Local seperti gambar di bawah ini. Sedangkan hanya gateway memiliki IP Public yang bisa dilihat dari sisi internet. So? Permasalahannya, bagaimana kita bisa mempublishkan web yang ada di webserver dan bisa di akses dari sisi internet??

The image “http://geocities.com/bimosaurus/redirecting.jpg” cannot be displayed, because it contains errors.

Gambar 1. Contoh denah jaringan

 

Ya, ternyata kita bisa membuat keadaan dimana komputer yang tidak memiliki IP Publik tersebut, bisa di akses dari sisi internet dengan memanfaatkan hak yang diberikan oleh komputer yang memiliki IP Publik.

Bagaimana caranya?

Solusinya adalah dengan NAT (Network Address Translation) yaitu mentranslasikan suatu IP Address ke sisi jaringan yang lain. Pada sistem Operasi Linux kita dapat melakukannya secara standard dengan menggunakan tools iptables. iptables sebagai tools pengatur trafik jaringan memiliki kemampuan untuk melakukan hal tersebut. iptables dijalankan dari sisi server akan meneruskan traffik yang merekues dari sisi publik/internet diteruskan ke sisi lokal.

Sehingga sintaksnya akan menjadi seperti demikian

iptables -t nat -I PREROUTING -p tcp -s IP_Publik_Yang_Merekuest –dport Port_Tujuan -j DNAT –to-destination IP_Lokal_tujuan:Port_aplikasinya

Penjelasan

-t nat = table nat pada iptables
-I PREROUTING = Insert pada chain Prerouting
-p tcp = protokol tcp
-s = Source/sumber Ip address yang merekues. Kalau semua diijinkan = 0/0
–dport = port tujuan yang diminta dari sisi publik
-j DNAT = Target Destination NAT
–to-destination = ke tujuan ip lokal yang diinginkan

Misal kita memiliki ip publik202.130.202.111 dan webserver ada pada sisi lokal 192.168.0.250 maka kita bisa melakukan seperti ini

 

iptables – t nat -I PREROUTING -p tcp -s 0/0 –dport 80 -j DNAT –to-destination 192.168.0.250:80

 

Atau jika port 80 telah digunakan oleh server itu sendiri, kitabisa memanfaatkan port yang kosong dari sisi server tersebut misal

iptables – t nat -I PREROUTING -p tcp -s 0/0 –dport 88 -j DNAT –to-destination 192.168.0.250:80

Namun, proses pemanggilan dalam browser harus lengkap menggunakan port

http://202.130.202.111:88

Ya, langkah ini juga bisa di balik apabila seorang administrator jaringan ingin merouting jaringan, agar rekuest ke port tertentu, dapat dialihkan ke route lain, namun logika dibalik dan port destination di belakang di hilangkan. Contoh:

iptables -t nat -I PREROUTING -p tcp -s 192.168.0.0/24 –dport 80 -j DNAT –to-destination 202.130.202.111

Langkah ini juga bisa di gunakan untuk protokol lain juga selain web seperti ssh, remote server dal protokol lainnya.

Semoga membantu.. Ada masalah? Silakan post reply …



IPTABLES
April 10, 2007, 11:04 am
Diarsipkan di bawah: Networking

IPTABLES

- Apa itu iptables?

iptables adalah suatu tools dalam sistem operasi linux yang berfungsi sebagai alat untuk melakukan filter (penyaringan) terhadap (trafic) lalulintas data. Secara sederhana digambarkan sebagai pengatur lalulintas data. Dengan iptables inilah kita akan mengatur semua lalulintas dalam komputer kita, baik yang masuk ke komputer, keluar dari komputer, ataupun traffic yang sekedar melewati komputer kita.

- Gimana perintahnya?

iptables [–t tables] [option] [rule] [target]

Contohnya:

iptables –P FORWARD ACCEPT

- Apa saja yang bisa dilakukan dengan iptables?

Dengan kemampuan tools iptables ini, kita bisa melakukan banyak hal dengan iptables. Yang paling penting adalah bahwa dengan iptables ini kita bisa membuat aturan (rule), untuk arus lalulintas data. Aturan aturan itu dapat mencakup banyak hal, seperti besar data yang boleh lewat, jenis paket/datagram yang dapat diterima, mengatur trafic berdasar asal dan tujuan data, forwarding, nat, redirecting, pengelolaan port, dan firewall.

- Bagaimana gambaran lalulintas dalam sistem jaringan.

Lalu lintas dalam sistem jaringan digambarkan sebagai berikut

http://geocities.com/bimosaurus/bim.jpg

Gambar 1. Lalu lintas data dalam sistem

Keterangan:
1. Data masuk ke dalam sistem komputer bisa melalui banyak jalan, biasanya melalui network interface. Bisa berupa card dan dapat pula berupa wifi lan atau yang lain. Setelah masuk sistem, maka data tersebut akan segera masuk ke dalam decission maker, yang menentukan bahwa data itu akan di proses ke dalam komputer (input) atau akan di lewatkan (forward).
2. Setelah data masuk jika data tersebut mendapatkan rantai FORWARD maka akan segera masuk dalam aturan dalam rule FORWARD tersebut.
3. Jika data masuk ke dalam rantai input, maka data akan mengalami rule

Perlakuan apa saja yang dialami data oleh iptables?

Perlakuan yang dialami oleh data/paket data oleh iptables digambarkan melalui tabel. Macam tabelnya adalah:
1. Filter : tabel default yang ada dalam penggunaan iptables
2. NAT : tabel ini digunakan untuk fungsi NAT, redirect, redirect port
3. Mangle : tabel ini berfungsi sebagai penghalus proses pengaturan paket

Bagaimana kita bisa peroleh informasi tentang iptables tersebut di dalam sistem operasi linux?

Kita bisa peroleh info tentang iptables, dengan cara mengetikkan:

man iptables
atau
iptables –help

Perintah man adalah untuk mendapatkan manual penggunaaan dari iptables ini. Sedangkan help adalah untuk mendapatkan informasi help dari iptables tersebut.

- OPTION
Option terdiri dari command, dan parameter serta opsi tambahan

COMMAND
Command dan rule yang dipasang pada iptables (firewall) memiliki ketentuan. Pada dasarnya iptables pada komputer dianggap sebagai TABEL IP sesuai dengan namanya. System hanya akan menjalan rule yang ada pada tabel. Sedangkan rule yang sudah ada pada iptables juga dapat di hapus atau di replace dengan rule lain. Berikut beberapa command untuk penambahan, penghapusan dan operasi sejenisnya yang akan diperlakukan terhadap rule.

Daftar  Perintah berikut keterangan

-A atau –append Melakukan penambahan rule
-D atau –delete Melakukan penghapusan rule
-R atau –replace Melakukan replacing rule
-L atau –list Menampilkan ke display, daftar iptables
-F atau –flush Menghapus daftar iptables/pengosongan
-I atau –insert Melakukan penyisipan rule
-N atau –new-chain Melakukan penambahan chain baru
-X atau –delete-chain Melakukan penghapusan chain
-P atau –policy Memberikan rule standard
-E atau –rename Memberikan penggantian nama
-h atau –help Menampilkan fasilitas help

Table 1. Table Command iptables

 

 

Parameter
Parameter iptables digunakan sebagai pelengkap yang diperlukan untuk tujuan spesifikasi rule tersebut

Parameter berikut Keterangan
-p, –protocol (proto) Parameter ini untuk menentukan perlakuan terhadap protokol
-s, –source (address) –-src Parameter untuk menentukan asal paket
-d, –destination (address) –-dst Parameter untuk menentukan tujuan paket
-j, –jump (target)
-g, –goto (chain)
-i, –in-interface Masuk melalui interface (eth0, eth1 dst)
-o, –out-interface
[!] -f, –fragment
-c, –set-counters

Table 2. Tabel Parameter iptables

 

 

 

Parameter berikut Keterangan
–sport
–source-port Menentukan port asal
–dport
–destination-port Menentukan port tujuan
–tcp-flags Menentukan perlakuan datagram
–syn
Table 3. Tabel Parameter detail

Selanjutnya apa itu yang disebut dengan chain?
Chain/rantai digambarkan sebagai jalur aliran data. Chains yang diperlukan untuk iptables ini antara lain:

Chain berikut Keterangan
FORWARD Route packet akan di FORWARD tanpa di proses lanjut di local
INPUT Route packet masuk ke dalam proses lokal sistem
OUTPUT Route packet keluar dari local sistem
PREROUTING Chain yang digunakan untuk keperluan perlakuan sebelum packet masuk route. Biasanya dipakai untuk proses NAT
POSTROUTING Chain yang digunakan untuk keperluan perlakuan sesudah packet masuk route. Biasanya dipakai untuk proses NAT

Tabel 4. Tabel Chain

 

 

 

 

Chain PREROUTING dan POSTROUTING dimaksudkan sebagai jalur data sebelum dan sesudah data tersebut masuk ke dalam route.
PREROUTING: data sebelum masuk jalur route, akan di kenakan rule
POSTROUTING: data sebelum masuk akan dikenakan route

Apakah target itu?
Target adalah tujuan perlakuan terhadap rule. Pada target ini terletak keputusan, paket data mau diapakan, apakah mau di tolak, atau diteruskan atau diolah terlebih dahulu. Berikut daftar table target iptables

Target berikut Keterangan
ACCEPT Rantai paket tersebut diterima dalam rule
DROP Rantai paket tersebut “dijatuhkan”
REJECT Rantai paket tersebut ditolak seperti DROP
DNAT Rantai paket di “destination nat” kan ke address lain
SNAT Rantai paket di arahkan ke source nat tertentu
REDIRECT Rantai paket di redirect ke suatu addres dan port tertentu
MASQUERADE Bekerja seperti SNAT tapi tidak memerlukan source
REJECT Bekerja seperti DROP

Contoh beberapa kasus untuk iptables

Misalkan terdapat sebuah jaringan komputer menggunakan koneksi internet dengan IP ADDRESS publik
222.124.132.91 (eth0)
Server gateway memiliki 3 anak jaringan (jaringan lokal) dengan dibedakan subnet

192.168.0.0/24 (eth1)
192.168.1.0/24 (eth2)
192.168.10.0/24 (eth3)

Kondisi dalam jaringan, eth3 tidak diperbolehkan melakukan akses ke internet tetapi diperbolehkan masuk ke jaringan lokal lainnya melalui protokol http. Sedangkan eth1 dan eth2 diperbolehkan melakukan akses ke internet. Pada IP ADDRESS 192.168.1.10 terdapat webserver, dan pada IP Address 192.168.1.12 terdapat koleksi intranet yang akan dipublish ke internet. Disamping itu, koneksi internet 1 mega tersebut akan di share, untuk semua komputer di eth2 akan dibatasi pemakaiannya maksimal 10kbps. Berikut contoh sederhana routin firewallnya

#/bin/bash

#blok semua address (default), pada dasarnya semua akses di blok
iptables –P INPUT –j DROP
#bersihkan table
iptables –F
iptables –t nat –F
iptables –t mangle -F
#perkecualian dengan syarat tertentu
iptables -A INPUT -d 192.168.1.0/24 -m limit –limit 10/s –limit-burst 20 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m limit –limit 10/s –limit-burst 20 -j ACCEPT
iptables –t nat –A POSTROUTING –s 192.168.0.0/24 –j MASQUERADE
iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –j MASQUERADE
#forward webserver dan intranet
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to 192.168.0.10:80
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 88 -j DNAT –to 192.168.0.12:80
#redirect ke squid
iptables –t nat –A PREROUTING –s 192.168.10.0/24 -p tcp –dport 80 -j REDIRECT –to-port 3128
iptables –t nat –A PREROUTING –s 192.168.10.1/24 -p tcp –dport 80 -j REDIRECT –to-port 3128
=========================================================================================

Semoga bermanfaat