Selasa, 22 Februari 2011

Tutorial IPTables

Tutorial IPTables

Poetra_Hakim (ary_putra46@yahoo.com)



Tulisan ini ditujukan untuk memberikan pengetahuan dasar mengenai pemfilteran paket menggunakan IPTables pada Linux. Tulisan ini bersifat general yang menjelaskan secara umum bagaimana sintaks IPTables dibuat. Beberapa (banyak?) bagian dari tulisan diambil dari official site IPTables. Tidak ada copyright apapun dalam dokumen ini, anda bebas menyalin, mencetak, maupun memodifikasi (dengan menyertakan nama penulis asli). Kritik, koreksi, saran dan lain-lain silahkan dialamatkan ke email tersebut di atas. Semoga bermanfaat.


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.

3. 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 :)

4. Referensi

  1. www.netfilter.org
  2. Manual page iptables


 

Postfix sebagai SMTP

Postfix sebagai SMTP

Dalam hal ini Postfix hanya diharapkan agar meneruskan email dari suatu network ke tujuan atau domain yang lain. Biasanya skema satu arah seperti ini digunakan dalam lingkungan yang hanya memerlukan sebuah SMTP server dalam network lokal mereka. Tidak ada email yang akan disimpan oleh Postfix dalam skema ini, semuanya akan diteruskan ke domain alamat penerima (remote MTA) ataupun diteruskan ke SMTP server yang lain (misalnya SMTP ISP).
Kalau digambarkan alirannya kira-kira seperti ini:
MUA ——> Postfix (SMTP only) ——–> MTA tujuan/ SMTP lain (ISP)
Untuk mengkonfigurasi Postfix agar memenuhi kebutuhan yang sesuai dengan skema ini tidak terlalu sulit. Yang perlu diperhatikan adalah, Anda harus mengetahui daftar IP yang diperbolehkan untuk menggunakan Postfix sebagai relay. Jika Anda menginginkan Postfix meneruskan emailnya ke SMTP yang lain, misalnya ISP Anda, maka Anda juga memerlukan alamat SMTP server ISP yang akan Anda gunakan.
Misalkan network ditempat Anda adalah 192.168.0.0/255.255.255.0, domainname: palestine.net, dan hostname: jericho.palestine.net maka parameter yang perlu Anda ubah pada file /etc/postfix/main.cf adalah :
myhostname = jericho.palestine.net
mydomain = palestine.net
mynetworks = 127.0.0.0/8 192.168.0.0/24
Jika Anda menggunakan smarthost untuk merelay email dari Postfix Anda, instead of diteruskan langsung ke remote MTA, maka tambahkan juga parameter berikut ini:
relayhost = smtp.isp.net
Atau jika SMTP relay tidak mempunyai hostname dan hanya berupa IP address saja, tanda [ ] mencegah Postfix untuk tidak melookup IP tersebut :
relayhost = [123.123.123.123]
Catatan: Pada package Postfix yang disertakan oleh beberapa distro Linux (misalnya SuSE dan Fedora) parameter inet_interfaces hanya mengijinkan transaksi dari localhost saja. Agar seluruh client di network Anda bisa menggunakan Postfix sebagai smtp, silakan diubah menjadi
inet_interfaces = all
Jika pertama kali menggunakan Postfix, periksalah pada file aliases yang didefisikan pada paramater alias_maps dan pastikan bahwa account root diteruskan ke alamat yang benar, misalnya adalah:
root:   asfik@freepalestine.org
Kemudian buatlah database alias tersebut terlebih dahulu dengan perintah :
asfik@jericho:~> newaliases
Anda bisa memulai menjalankan Postfix seperti biasa dengan perintah :
asfik@jericho:~> postfix start
Jika tidak ada complain di console atau file syslog(-ng) (lihat pada file syslog-ng.conf untuk destination mailwarn, mailerr, dan mailinfo jika Anda menggunakan syslog-ng atau file syslog.conf untuk event mail.* jika menggunakan syslog biasa) maka Anda bisa mencoba telnet ke port 25 dan melihat greeting banner yang bersahabat dari Postfix.
Contoh dari file /var/log/mail.info di SuSE sesaat setelah Postfix dijalankan:
Dec 14 17:08:30 jericho postfix/postfix-script: starting the Postfix mail system
Dec 14 17:08:30 jericho postfix/master[7153]: daemon started -- version 2.2.1, configuration
/etc/postfix

Test telnet ke port 25 dan mencoba untuk mengirim email. Kemudian Anda bisa melihat transaksi di file log, dan jika sukses, Anda bisa mencoba untuk mengirim email dari client network Anda dengan MUA favorit Anda.

DHCP-DNS


Pengertian DHCP
Tanggal : 09/04/2010, dibaca 297 kali.

A. Dasar Teori

Sejarah DNS

Sebelum dipergunakannya DNS, jaringan komputer menggunakan HOSTS files

yang berisi informasi dari nama komputer dan IP address-nya. Di Internet, file ini

dikelola secara terpusat dan di setiap lokasi harus di copy versi terbaru dari HOSTS

files, dari sini bisa dibayangkan betapa repotnya jika ada penambahan 1 komputer di

jaringan, maka kita harus copy versi terbaru file ini ke setiap lokasi. Dengan makin

meluasnya jaringan internet, hal ini makin merepotkan, akhirnya dibuatkan sebuah

solusi dimana DNS di desain menggantikan fungsi HOSTS files, dengan kelebihan

unlimited database size, dan performace yang baik. DNS adalah sebuah aplikasi

services di Internet yang menerjemahkan sebuah domain name ke IP address. Sebagai

contoh, www untuk penggunaan di Internet, lalu diketikan nama domain, misalnya:

yahoo.com maka akan di petakan ke sebuah IP mis 202.68.0.134. Jadi DNS dapat di

analogikan pada pemakaian buku telepon, dimana orang yang kita kenal berdasarkan

nama untuk menghubunginya kita harus memutar nomor telepon di pesawat telepon.

Sama persis, host computer mengirimkan queries berupa nama komputer dan domain

name server ke DNS, lalu oleh DNS dipetakan ke IP address.

Domain Name System (DNS)

Domain Name System (DNS) adalah distribute database system yang digunakan untuk

pencarian nama komputer (name resolution) di jaringan yang mengunakan TCP/IP

(Transmission Control Protocol/Internet Protocol). DNS biasa digunakan pada aplikasi

yang terhubung ke Internet seperti web browser atau e-mail, dimana DNS membantu

memetakan host name sebuah komputer ke IP address. Selain digunakan di Internet,

DNS juga dapat di implementasikan ke private network atau intranet dimana DNS

memiliki keunggulan seperti:

1. Mudah, DNS sangat mudah karena user tidak lagi direpotkan untuk mengingat

IP address sebuah komputer cukup host name (nama Komputer).

2.Konsisten, IP address sebuah komputer bisa berubah tapi host name tidak

berubah.

3.Simple, user hanya menggunakan satu nama domain untuk mencari baik di

Internet maupun di Intranet.

DNS (Domain Name System) adalah suatu system yang mengubah nama host

(sepertilinux.or.id) menjadi alamat IP (seperti 64.29.24.175) atas semua komputer yang

terhubung langsung ke Internet. DNS juga dapat mengubah alamat IP menjadi nama

host. DNS bekerja secara hirarki dan berbentuk seperti pohon (tree). Bagian atas adalah

Top Level Domain (TLD) seperti COM, ORG, EDU, MIL dsb. Seperti pohon DNS

mempunyai cabang-cabang yang dicari dari pangkal sampai ke ujung. Pada waktu kita

mencari alamat misalnya linux.or.id pertama-tama DNS bertanya pada TLDserver

tentang DNS Server yang melayani domain .id misalnya dijawab ns1.id, setelah itu dia

bertanya pada ns1.id tentang DNS Server yang bertanggung jawab atas .or.id misalnya

ns.or.id kemudian dia bertanya pada ns.or.id tentang linux.or.id dan dijawab

64.29.24.175

Sedangkan untuk mengubah IP menjadi nama host melibatkan domain in-addr.arpa.

Seperti domain lainnya domain in-addr.arpa pun bercabang-cabang. Yang penting

diingat adalah alamat IP-nya ditulis dalam urutan terbalik di bawah in-addr.arpa.

Misalnya untuk alamat IP 64.29.24.275 prosesnya seperti contoh linux.or.id: cari server

untuk arpa, cari server untuk in-addr.arpa, cari server untuk 64.in-addr.arpa, cari server

29.64.in-addr.arpa, cari server untuk 24.29.64.in-addr.arpa. Dan cari informasi untuk

275.24.29.64.in-addr.arpa. Pembalikan urutan angkanya memang bisa membingungkan.

DNS Server di Linux

DNS Server di linux biasanya dijalankan oleh program yang berna ma named. Program

ini merupakan bagian dari paket bind yang dikoordinasikan oleh Paul Vixie dari The

Internet Software Consortium. Biasanya program ini terletak di /usr/sbin/named dan

dijalankan pada waktu booting dari /etc/rc.d/init.d/named start. Agar named dijalankan

pada setiap booting masukkan named ke daftar server yang harus distart dengan

menggunakan ntsysv.

DNS dapat disamakan fungsinya dengan buku telepon. Dimana setiap komputer di

jaringan Internet memiliki host name (nama komputer) dan Internet Protocol (IP)

address. Secara umum, setiap client yang akan mengkoneksikan komputer yang satu ke

komputer yang lain, akan menggunakan host name. Lalu komputer anda akan

menghubungi DNS server untuk mencek host name yang anda minta tersebut berapa IP

address-nya. IP address ini yang digunakan untuk mengkoneksikan komputer anda

dengan komputer lainnya.

Struktur DNS

Domain Name Space merupakan sebuah hirarki pengelompokan domain berdasarkan

nama, yang terbagi menjadi beberapa bagian diantaranya:

1. Root-Level Domains

Domain ditentukan berdasarkan tingkatan kemampuan yang ada di struktur

hirarki yang disebut dengan

level. Level paling atas di hirarki disebut dengan root domain. Root domain di

ekspresikan berdasarkan periode dimana lambang untuk root domain adalah (“.”).

2. Top-Level Domains

Pada bagian dibawah ini adalah contoh dari top-level domains:

a) com Organisasi Komersial

b) edu Institusi pendidikan atau universitas

c) org Organisasi non-profit

d) net Networks (backbone Internet)

e) gov Organisasi pemerintah non militer

f) mil Organisasi pemerintah militer

g) num No telpon

h) arpa Reverse DNS

i) xx dua-huruf untuk kode Negara (id:indonesia.my:malaysia,au:australia)

Top-level domains dapat berisi second-level domains dan hosts.

3. Second-Level Domains

Second-level domains dapat berisi host dan domain lain, yang disebut dengan

subdomain. Untuk contoh:

Domain Bujangan, bujangan.com terdapat komputer (host) seperti

server1.bujangan.com dan subdomain training.bujangan.com. Subdomain

training.bujangan.com juga terdapat komputer (host) seperti

client1.training.bujangan.com.

4. Host Names

Domain name yang digunakan dengan host name akan menciptakan fully

qualified domain name (FQDN) untuk setiap komputer. Sebagai contoh, jika terdapat

fileserver1.detik.com, dimana fileserver1 adalah host name dan detik.com adalah

domain name.

Bagaimana DNS Bekerja

Fungsi dari DNS adalah menerjemahkan nama komputer ke IP address (memetakan).

Client DNS disebut dengan resolvers dan DNS server disebut dengan name servers.

Resolvers atau client mengirimkan permintaan ke name server berupa queries. Name

server akan memproses dengan cara mencek ke local database DNS, menghubungi

name server lainnya atau akan mengirimkan message failure jika ternyata permintaan

dari client tidak ditemukan. Proses tersebut disebut dengan Forward Lookup Query,

yaitu permintaan dari client dengan cara memetakan nama komputer (host) ke IP

address.

a) Resolvers mengirimkan queries ke name server

b) Name server mencek ke local database, atau menghubungi name server

lainnya, jika ditemukan akan diberitahukan ke resolvers jika tidak akan

mengirimkan failure message

Resolvers menghubungi host yang dituju dengan menggunakan IP address yang

diberikan name server

B. Tugas Pendahuluan

1. Jelaskan arti DNS

2. Jelaskan arti Primary Master dan Secondary Master

3. Sebutkan paket yang dibutuhkan untuk melakukan installasi DNS

Penyelesaian.

1. Pengertian DNS.

DNS atau domain name system 1 adalah sebuah mekanisme penamaan di

jaringan komputer yang menerjemahkan hostname 2 ke alamat IP, sehingga untuk

penamaan setiap mesin dalam jaringan, manusia tidak perlu mengetahui

penamaan asli berbasis angka (alamat IP) tetapi cukup dengan nama atau istilah

yang dipahami oleh manusia, misalnya lab6.tmp.akprind.ac.id yang dalam nama

berbasis IP-nya 192.168.17.254. Anda bisa bayangkan betapa rumitnya jika kita

harus menghapal nama-nama mesin dalam jaringan dalam bentuk angka, oleh

karena itu DNS menjadi sangat penting untuk digunakan dalam jaringan, terutama

jaringan yang bersekala besar.

Secara sederhana DNS hanyalah sebuah komputer yang mencatat data hostname

dan alamat ip, setiap mesin yang membutuhkan informasi dari server DNS harus

mendefenisikan server DNS mana yang dia ikuti, walaupun sebenarnya Anda bisa

menjadi server DNS untuk diri Anda sendiri tetapi ini akan menimbulkan kerancuan

nama, oleh karena itu dalam kenyataannya di dalam jaringan ada kesepakatan

siapa-siapa saja yang menjadi server DNS, sehingga pencatatan hostname

menjadi konsisten untuk semua anggota jaringan yang ada. Saya tidak mau terlalu

banyak bicara teori dalam artikel ini 5, karena saya telah putuskan judulnya adalah

instalasi dan kon_gurasi

2. Pengertian Primary Master dan Secondary Master.

Primary (master)

Komputer menjalankan fungsi name server berdasarkan database yang dimilikinya.

Database ini dibangun oleh administrator DNS. Server ini menjadi authoritative

source bagi domain tertentu.

Secondary (slave)

Komputer menjalankan fungsi name server berdasarkan database yang diambil

dari primary server. Proses pengambilan file database ini sering disebut zone file

transfer. Ia juga menjadi authoritative source bagi domain tersebut.

3. Paket yang dibutuhkan untuk melakukan installasi DNS

Paket yang diperlukan untuk melalukan instalasi dns ada 3 yaitu :

Nama Paket Deskripsi

caching-nameserver-9.0-2

File-_le kon_gurasi bind

bind-9.2.2-1 3

bind server (daemon)

bind-utils-9.2.2 tools pemeliharaan bind

3. Praktek DNS

’Langkah – langkah untuk membuat DNS sebagai berikut:

1. Login sebagi root pada mesin anda, seperti pada gambar dibawah ini :

2. Lakukan pengecekan terhadap IP pada kartu jaringan dengan

menggunaka perintah command :

• ifconfig

Dan akan memperoleh hasil sebagai berikut beserta informasi

mengenai map address

3. Lakukan pencarian peket bind9 dengan menggunakan command :

• apt-cache search bind9|grep bind9|more

perintah diatas digunakan untuk mencari paket bind9 dengan

menggunakan filter.

4. Instalsi paket bind9 jika belum terinstall paket, dan membutuhkan cd1

dengan ditandai dengan i386 Binary – 1 tersebut sebagai berikut :

• apt-get install bind9

5. Lakukan pengecekan paket bind9 apakah sudah terinstall ataupun

belum

• dpkg –l | grep bind9

6. Sesudah paket tersebut terinstall lakukan restart pada paket bind9

tesebut

• /etc/init.d/bnd9 restart

7. copy file db127 dan file db.local yang terdapat pada direktori /etc/bind

ke direktori /var/cache/bind9, file ini yang nanti untuk diedit menjadi

DNS.

• cp db.127 /var/cache/bind/

• cp db.local /var/cache/bind

8. Masuklah kedirektori /var/cache/bind dan ubahlah nama file db.127

menjadi db.12 dan file db,local menjadi db.h2owangi

• mv db.127 db.12

• mv db.lokal db.h2owangi

9. Edit file named.conf.local yang terdapat pada direktori /etc/bind

sehingga menjadi seperti sebagai berikut :

10. Edit file db.12 yang terdapat pada direktori /var/cache/bind sehingga

menjadi sebagai berikut :

11. Edit pula file db.h2owangi sehingga menjadi sebagai berikut :

12. Restart paket bind9

• /etc/init.d/bind9 restart

13. Cek apakah DNS yang dibut sudah jadi atau belum

• tail –f /var/log/syslog

14. Sebelum mengecek DNS lakukan edit ulang pada file /etc/resolv.conf

dtambahkan sintak dibahawah ini dan taruh pada bagian atas dan

sesuai dengan konfigurasi komputer

nameserver 192.168.10.12

15. Lakukan percobaan untuk mengecek apakah dns sudah bisa berjalan

atau belum.

• nslookup 192.168.10.12

• nslookup mail.h2owangi.com

 
Design by Free Wordpress Themes | Bloggerized by Lasantha - Premium Blogger Templates