Selasa, 27 November 2012

Instalasi dan Konfigurasi DHCP

Tahap Instalasi
Tahap pertama untuk instalasi DHCP server ini adalah men-download paket instalasi (source code) DHCP server pada situs
http://ftp.isc.org/isc/dhcp/dhcp-3.0.7.tar.gz atau instalasi langsung melalui ports FreeBSD.
Download source code DHCP server ke mesin FreeBSD.
mybsd# wget http://ftp.isc.org/isc/dhcp/dhcp-3.0.7.tar.gz
Kemudian unpack file dhcp-3.0.7.tar.gz
mybsd# tar –xzvf dhcp-3.0.7.tar.gz
Setelah unpacking selesai kemudian masuk ke dalam direktori yang berisi full source code, hasil unpacking.
mybsd# cd dhcp-3.0.7
Langkah berikutnya melakukan konfigurasi dan kompilasi source code, hal yang menjadi pegangan cukup mudah bacalah file README yang ada dalam distribusinya.
mybsd# ./configure
mybsd# make
Langkah terakhir proses ini adalah instalasi file yang sudah terkompilasi tersebut, ke sistem FreeBSD.
mybsd# make install
Setelah sistem dhcp terpasang langkah selanjutnya adalah mengkonfigurasi sistem dhcp pada file dhcpd.conf
Konfigurasi DHCP server
File konfigurasi dhcpd default terletak pada /etc, dengan nama file konfigurasi dhcpd.conf. Jadi jika sudah ada ada tinggal melakukan edit file tersebut, atau membuat file dhcpd.conf jika belum ada. Sebagai acuan bisa melihat sampel dhcpd.conf di /usr/share/doc/dhcp-3.0.7/examples dan kemudian meng-copy ke /etc.
mybsd# cp /usr/share/doc/dhcp-3.x.x/examples/dhcpd.conf /etc/dhcpd.conf
Pada prinsipnya file dhcpd.conf berisi informasi berikut :
Lease time, adalah waktu yang dialokasikan ketika sebuah IP dipinjamkan kepada komputer client, setelah waktu pinjam ini selesai, maka IP tersebut dapat dipinjam lagi oleh komputer yang sama, atau komputer tersebut mendapatkan nomer IP lain jika komputer yang sebelumnya dipinjam dipergunakan oleh komputer lain.
default-lease-time 600;
max-lease-time 7200;
default-lease-time, maksudnya adalah lama waktu server meminjamkan alamat IP kepada client, dalam satuan detik, 600 detik. sedangankan max-lease-time adalah waktu maksimum yang di alokasikan untuk peminjaman ip oleh dhcp server ke client dalam satuan detik, 7200 detik.
Pool Subnet IP yang Dipinjamkan, berisi keterangan IP Broadcast, dan subnet-masknya.
option subnet-mask 255.255.255.0;
option broadcast-address 10.20.30.255;
No IP Router Lokal, sebagai informasi routing client ke router.
option router 10.20.30.1;
Informasi DNS, diperlukan oleh client untuk meresolve informasi domain name, jika akan melakukan sambungan ke internet.
option domain-name-servers 10.10.1.5;
Domain Name dari Server DHCP, jika ada. atau bisa diisi sebagai penamaan host lokal, tanpa harus menggunakan domain yang terdaftar.
option domain-name bengkel-oprek.net;
Range IP, dalam subnet yang di informasikan pada nomer dua, untuk mengalokasikan ip yang akan di pinjamkan/ diberikan kepada client.
subnet 10.20.30.0 netmask 255.255.255.0 {
range 10.20.30.2 10.20.30.254; }
berarti IP address dari 10.20.30.2 sampai dengan 10.20.30.254 akan dipinjamkan ke client yang dilayani oleh server dhcp tersebut.
Jika diperhatikan dari konfigurasi di atas ada konfigurasi yang di dahului dengan kata option, ada yang tidak. Konfigurasi yang didahului oleh kata option di sebut parameter, menunjukkan konfigurasi pilihan yang disesuaikan dengan kondisi jaringan lokal, sedangkan konfigurasi yang tanpa di dahului oleh kata option, disebut deklarasi, menunjukkan konfigurasi kontrol dari kerja dhcp server tersebut.
Ddns-update-style,pilihan ddns-update-style diletakkan pada konfigurasi awal dhcpd.conf, parameter ini diperlukan jika server menggunakan dynamic dns lokal, yang akan memetakan client lokal dengan sebuah nama, untuk setiap IP yang di pinjamkan ke client, sehingga dhcp server akan melakukan update dns jika server menggunakan dns untuk meresolve nama server dan client. ISC (Internet Software Consortium) yang membuat aplikasi isc-dhcp ini mengisyaratkan untuk secara default menggunakan parameter ddns-update-style ini. Ada 3 pilihan ddns-update-style ini yakni interim, adhoc, dan none. Karena saya tidak menggunakan dynamic dns maka saya menggunakan pilihan ddns-update-style none.
ddns-update-style none;
Authoritative,parameter ini dipergunakan untuk mengembalikan ke status awal, jika ada client yang baru bergabung dengan LAN dhcp, yang berasal dari subnet lain, server dhcp akan memberikan DHCPNACK ke client yang baru terhubung dengan jaringan, untuk kembali ke status awal, dan menghapus status jaringan yang lama. Jika ingin dhcp server lebih reliable dalam menangani lease ip client, maka jangan lupakan parameter berikut ini.
authoritative;
IP Adress Permanen,mengalokasikan IP yang bersifat tetap kepada client berdasarkan nomer MAC address dari ethernet/Lan Card yang di pergunakan oleh komputer client.
host frontoffice {
hardware ethernet 08:30:84:9E:2F:45;
fixed-address 10.20.30.5;
}
Berikut ini adalah contoh file konfigurasi :
#sampel dhcpd.conf
authoritative;
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 10.20.30.255;
option router 10.20.30.1;
option domain-name-servers 10.10.1.5;
option domain-name bengkel-oprek.net;
subnet 10.20.30.0 netmask 255.255.255.0 {
range 10.20.30.2 10.20.30.254; }
host frontoffice {
hardware ethernet 08:30:84:9E:2F:45;
fixed-address 10.20.30.5;
}
#akhir konfigurasi
Menjalankan Service DHCP Server
Ada beberapa hal yang perlu diperhatikan, sebelum melakukan start DHCP server untuk pertama kalinya.
Pertama, file dhcpd.leases, yang berisi log leasing nomer ip ke client, secara default file ini terletak di bawah direktori /var/db/dhcp.lease, jika belum ada maka perlu membuat file kosong bernama dhcpd.leases.
mybsd#touch /var/db/dhcpd.leases
Kedua, LAN Card yang terhubung ke jaringan lokal, untuk direktif ketika mulai melakukan start dhcp server, bahwa akan melakukan service dhcp melalui LAN Card tersebut, misalnya fxp0. Selanjutnya jalankan dhcp server.
mybsd#/usr/sbin/dhcpd eth2
Jika tidak ada pesan error ketika mengeksekusi perintah di atas, DHCP server sudah bisa melayani leasing IP address ke beberapa client.
mybsd# tail /var/db/dhcpd.leases
}
lease 10.20.30.45 {
starts 1 2008/02/04 02:46:11;
ends 1 2008/02/04 03:46:11;
binding state active;
next binding state free;
hardware ethernet 00:01:03:04:e7:d1;
uid “0100010304\347\321″;
client-hostname “hostku″; }

pengertian 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

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

Update Repository Linux Ubuntu Dari Server Lokal

Bagi para pengguna Linux Ubuntu berikut saya akan jelaskan bagaimana cara merubah sources.list dengan menggunakan terminal untuk update repository Linux Ubuntu. Ketika melakukan update repository Ubuntu, kita melakukan download repository dari alamat server yang ada pada /etc/apt/sources.list, dan defaultnya alamat server yang ada pada sources.list tersebut adalah alamat server luar, seperti archive.ubuntu.com, security.ubuntu.com
Server repository di sini berfungsi sebagai server yang menyediakan kumpulan paket software ataupun kumpulan aplikasi dari distro-distro Linux yang bisa diakses lewat internet.
Di Indonesia sendiri sudah banyak server-server yang menyediakan server repository berbagai distro Linux, termasuk Ubuntu yang akan saya bahas di sini. . Jadi kenapa kita tidak memanfaatkannya, terlebih lagi kecepatan server lokal jauh lebih cepat dibandingkan dengan server luar negeri.
Langkah-langkahnya yaitu:
1. Buka terminal, Applications – Accessories – Terminal
2. Backup repository default terlebih dahulu dengan cara,
sudo cp /etc/apt/sources.list /etc/apt/sources.list.default
3. Kemudian edit repository,
sudo nano /etc/apt/sources.list
4. Hapus semua alamat server repository tersebut, kemudian copy alamat repository yang ada di sini, misal saya menggunakan alamat server repository milik Telkom.
deb http://dl2.foss-id.web.id/ubuntu lucid main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-updates main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-security main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-backports main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-proposed main restricted universe multiverse
5. Kemudian tekan tombol kombinasi Ctrl X, dan ketik Y
6. Setelah selesai ketikkan perintah:
sudo apt-get update
tunggu sampai proses selesai
7. Setelah selesai, jika anda ingin mencoba update repository, buka System – Administration – Update Manager, coba anda jalankan Update, dan lihat perbedaanya.
Di sini penulis menggunakan Linux Ubuntu 10.04 (Luid Lynx), apabila anda menggunakan Ubuntu versi ke atas atau ke bawah, sebaiknya anda mengunjugi situs repositorynya langsung (misal: http://dl2.foss-id.web.id/ubuntu/dists/), dan melihat daftar dari repository yang ada di sana, kemudian ubah nama distro yang ada pada masing-masing alamat pada sources.list Ubuntu anda.
Misal:
deb http://dl2.foss-id.web.id/ubuntu lucid main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-updates main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-security main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-backports main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-proposed main restricted universe multiverse
Tulisan lucid anda ubah dengan nama versi ubuntu yang anda pakai, ex: hardy, jaunty, karmic, maverick, dll.
Berikut adalah daftar server repository Ubuntu yang ada di Indonesia:
• mirror.cbn.net.id (OpenIXP)
deb http://ubuntu.cbn.net.id/Ubuntu lucid main restricted universe multiverse
deb http://ubuntu.cbn.net.id/Ubuntu lucid-updates main restricted universe multiverse
deb http://ubuntu.cbn.net.id/Ubuntu lucid-security main restricted universe multiverse
deb http://ubuntu.cbn.net.id/Ubuntu lucid-backports main restricted universe multiverse
deb http://ubuntu.cbn.net.id/Ubuntu lucid-proposed main restricted universe multiverse
• kambing.ui.ac.id (UI, Telkom, Indosat, OpenIXP, Inherent)
deb http://kambing.ui.ac.id/ubuntu lucid main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu lucid-updates main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu lucid-security main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu lucid-backports main restricted universe multiverse
deb http://kambing.ui.ac.id/ubuntu lucid-proposed main restricted universe multiverse
• www.foss-id.web.id (Telkom)
deb http://dl2.foss-id.web.id/ubuntu lucid main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-updates main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-security main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-backports main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu lucid-proposed main restricted universe multiverse
• ftp.itb.ac.id (ITB, Inherent)
deb ftp://ftp.itb.ac.id/pub/ubuntu lucid main restricted universe multiverse
deb ftp://ftp.itb.ac.id/pub/ubuntu lucid-updates main restricted universe multiverse
deb ftp://ftp.itb.ac.id/pub/ubuntu lucid-security main restricted universe multiverse
deb ftp://ftp.itb.ac.id/pub/ubuntu lucid-backports main restricted universe multiverse
deb ftp://ftp.itb.ac.id/pub/ubuntu lucid-proposed main restricted universe multiverse
• indika.net.id (OpenIXP)
deb http://ubuntu.indika.net.id/ lucid main restricted universe multiverse
deb http://ubuntu.indika.net.id/ lucid-updates main restricted universe multiverse
deb http://ubuntu.indika.net.id/ lucid-security main restricted universe multiverse
deb http://ubuntu.indika.net.id/ lucid-backports main restricted universe multiverse
deb http://ubuntu.indika.net.id/ lucid-proposed main restricted universe multiverse
• kebo.vlsm.org
deb http://kebo.vlsm.org/ubuntu lucid main restricted universe multiverse
deb http://kebo.vlsm.org/ubuntu lucid-updates main restricted universe multiverse
deb http://kebo.vlsm.org/ubuntu lucid-security main restricted universe multiverse
deb http://kebo.vlsm.org/ubuntu lucid-backports main restricted universe multiverse
deb http://kebo.vlsm.org/ubuntu lucid-proposed main restricted universe multiverse
• buaya.klas.or.id
deb http://buaya.klas.or.id/ubuntu/ lucid main restricted universe multiverse
deb http://buaya.klas.or.id/ubuntu/ lucid-updates main restricted universe multiverse
deb http://buaya.klas.or.id/ubuntu/ lucid-security main restricted universe multiverse
• kavalinux.com (OpenIXP)
deb http://mirror.kavalinux.com/ubuntu/ lucid main restricted universe multiverse
deb http://mirror.kavalinux.com/ubuntu/ lucid-updates main restricted universe multiverse
deb http://mirror.kavalinux.com/ubuntu/ lucid-security main restricted universe multiverse
deb http://mirror.kavalinux.com/ubuntu/ lucid-backports main restricted universe multiverse
deb http://mirror.kavalinux.com/ubuntu/ lucid-proposed main restricted universe multiverse
Semoga bermanfaat.
Note:
Cara di atas sebenarnya adalah cara manual, jadi menggunakan perintah CLI dengan terminal, tanpa GUI, untuk cara lain dengan menggunakan GUI mungkin akan saya bahas pada artikel berikutnya.