What.I.Get.is.What.I.Write
Akhirnya saya menyelesaikan versi lengkapnya
hasil gabungan dari postingan :
Download PDF: “IPTABLES_Agung Nursilo”
ALHAMDULILLAH…
Setelah belajar teori dan implementasi… yuk kita tarik kesimpulan… ![]()

Sistem Firewall menggunakan IPTables yang saya lakukan pada sistem Operasi Ubuntu Linux ini sangat lah baik kinerjanya, dengan tugas pokok sebagai filter pakek data ynag masuk, IPTables mempunyai keunggulan tersendiri, yaitu :
Masih banyak aplikasi selain IPTables yang fungsinya untuk memfilter paket yang masuk dalam komputer kita, anda bisa mencoba UVW atau FIRESTARTER yang terdapat juga pada sistem operasi UBUNTU. Masing-masing aplikasi mempunyai kelebihan dan kekurangannya masing-masing, sehingga anda nantinya dapat menentukan aplikasi firewall apa yang cocok dengan anda. Terima kasih, Selamat mencoba.
hari ini begitu aja dulu.. besok saya upload file dokumen lengkapnya… Thanks.
Setelah mencoba memblok kaskus.us via IPTables, maka kita ingin mencoba blok Facebook lewat IP Adressnya menggunakan IPTables. Monggo di sambut ..
![]()

BLOK Facebook di alamat IP : 69.63.180.15, 69.63.181.11, 69.63.189.11
#iptables -A INPUT -s 69.63.181.11 -j DROP
#iptables -A INPUT -s 69.63.189.11 -j DROP
#iptables -A INPUT -s 69.63.180.15 -j DROP

Dengan menge-ping facebook.com , maka paket yang seharusnya saling transfer, tidak melakukan transfer paket ke facebook.com
Unblock Facebook.com, dengan menghapus rule yang ada diatas , maka dapat mengakses Facebook.com kembali.
#iptables -D INPUT [baris yang mau dihapus]
Menggunakan IPTables dalam memfilter web sangat mudah..
![]()
Dari artikel sebelumnya kita sudah belajar teori dan sedikit mencoba sintak-sintak dari teori IPTables, Nah yuk kita Praktek beneran…
Pada praktek yang saya lakukan, IPTables memang di gunakan untuk memfilter situs yang kita inginkan, pada praktek kali ini saya akan mencoba menampilkan percobaan yang telah saya lakukan yang salah satunya adalah mematikan akses/blok sehingga jika kita mencoba mengakses suatu situs maka kita tidak mendapatkan hak akses. Dalam ha ini saya mencoba memblokir situs kaskus.us. Mari kita coba….
Memblokir akses traffic dari situs “kaskus.us”
Dengan menggunakan syntax :
# iptables –A –m string –algo kmp –string kaskus –j REJECT
Masukan string “kaskus” pada traffic akan memblokir semua keyword tersebut, sehingga pada saat kita mencoba ping situs kaskus.us, data tidak dapat terkirim dan tidak saling menerima, terbukti bahwa situs kaskus.us,kaskus.com,kaskus.co.id telah diblokir.
Membuka kembali akses traffic situs “kaskus.us” yang baru saja diblokir
Untuk kegiatan ini, saya mencoba untuk membuka akses dari situs yang sudah saya blok menggunakan IPTables,
Dengan menggunakan syntax
# iptables –D INPUT 2
Berarti kita menghapus rule pada urutan 2 yang berisi rule pemblokiran situs kaskus, sehingga saat kita hapus rule tersebut maka situs kaskus sudah dapat diakses kembali, hal ini terbukti pada saat kita ping situs kaskus, maka terjadi pengiriman dan penerimaan data.
Alhamdulillah…. Sesuatu yang kita pelajari pasti berguna…
![]()
Artikel selanjutnya adalah Kesimpulan
![]()
Pada bagian cara kerja ini saya akan membagi 2 tahap, yaitu langkah-langkah instalasi dan selanjutnya langkah-langkah implementasi IPtables.
INSTALASI
Langkah awal yang dilakukan untuk menginstal aplikasi firewall ini (IPTables) untuk pengguna Sistem operasi Ubuntu, maka kita cukup mengistal paket iptable yang bernama “iptables”, kita akan memerlukan kernel versi 2.4.x atau diatasnya. Distribusi Linux belakangan ini sudah menggunakan kernel 2.4.x (bahkan 2.8.x) sudah mendukung paket filter untuk firewall. Maka dari itu kita tidak perlu repot melakukan kompilasi kernel agar IPTables bekerja dengan baik di komputer linux .
Kernel itu sendiri terdiri dari dua macam, modularized kernel dan monolithic kernel. Saat linux pertama kali diinstal, model kernel yang dimilikinya adalah modularized, jadi kita bisa mengelurakan modu-modul yang kita butuhkan tanpa harus melakukan kompilasi kernel.Bila kita tetap ingin melakukan kompilasi kernel untuk mengoptimasi server linux kita maka IPTABLES membutuhkan beberapa opsi dalam kernel yang harus dipilih dan ini dapat anda dapatkan di buku tutorial IPtabales dan internet karena pada jurnal ini tidak saya lampirkan.
Pada Ubuntu 9.10 Iptables dapat di instal melalui terminal dengan cara mengetik :
# sudo apt-gets install iptables![]()
Setelah paket iptables pada ubuntu telah terinstal, maka Iptables sudah dapat sigunakan untuk menfilter konten yang diinginkan
IMPLEMENTASI
Secara umum syntax iptables dapat ditulis dengan format :
# Iptables –option [Chain][Rule] -j [Target]
Berikut beberapa tahap-tahap implementasi Iptables pada sistem operasi Ubuntu 9.10 yang telah saya pergunakan.
§ # iptables –L
Menampilkan daftar aturan “rules” yang sudah ada pada iptables. Hasil dari sintak ini adalah menampilkan semua rule dan statusnya, sehingga kita bisa tahu rule apa saja yang sudah dimasukkan pada iptables
§ # sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Mengijinkaan sesi sambungan yang terbentuk untuk menerima traffic.
§ # sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT
Mengijinkan traffic masuk ke default port SSH
§ # sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Mengijinkan semua traffic telnet untuk masuk
§ # sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Mengijinkan semua traffic http untuk masuk
§ sudo iptables -A INPUT -j DROP
Memblok semua trafik yang masuk
Jika syntax ini dimasukkan sebagai rule maka semua alamat web tidak dapat anda akses/ di-blok
§ sudo iptables -I INPUT 1 -i lo -j ACCEPT
Mengganti atau menyelipkan perintah
Pada rule ini, kita dapat mengedit rule serta dapat menyelipkan rule pada posisi urutan yang kita inginkan.
untuk Artikel berikutnya kita mencoba memblokir suatu situs web… SERU neehh,….
Pada artikel ke-4 ini saya akan mencoba mentransfer ilmu yang sudah saya baca tentang syntax yang terdapat pada IPTables.
Pada Iptables kita memerlukan pengetahuan untuk mengetahui syntax yang dipergunakan pada saat menjalankan perintah menggunkana Iptables. Ada beberapa jenis syntax pada Iptables yang akan saya jelaskan dibawah ini.
1. Table
IPTables memiliki 3 buah tabel, yaitu NAT, MANGLE dan FILTER. Fungsi dari masing-masing tabel tersebut sebagai berikut :
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.
3. Option
Option digunakan dikombinasikan dengan command tertentu yang akan menghasilkan suatu variasi perintah.
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.
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.
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:
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
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.
Untuk artikel selanjutnya adalah implementasi aplikasi dari IPTables
Pada kesempatan ini, setelah membahas sedikit tentang FIREWALL dan IPTABLES, saya akan membahas tentang tahapan jalannya paket-paket yang terdapat pada IPTBALES.
Sesuai dengan diagram ini, yang telah dijelaskan pada artikel sebelumnya, maka dapat di lihat tahap jalannya paket-paket Iptables.
Jalannya sebuah paket melalui diagram tersebut bisa dicontohkan sebagai berikut:
Perjalanan paket yang diforward ke host yang lain
Perjalanan paket yang ditujukan bagi host lokal
Perjalanan paket yang berasal dari host lokal
Untuk Pembahasan berikutnya adalah tentang manual Syntax pada IPTABLES
Diartikel sebelumnya saya sudah membahas sedikit tentang FIREWALL, dan pada kesmpatan yang bertahap ini saya akan membahas sedikit tentang IPTABLES itu sendiri.

Pada sistem operasi Linux dimana saya menggunakan Ubuntu 9.10, ada satu aplikasi firewall yang dapat digunakan, yaitu IPTables. IPTables merupakan sebuah fasilitas tambahan yang tersedia pada setiap perangkat komputer yang diinstali dengan sistem operasi Linux. IPTables merupakan fasilitas tambahan yang memiliki tugas untuk menjaga keamanan perangkat komputer anda dalam jaringan. Atau dengan kata lain, IPTables merupakan sebuah firewall atau program IP filter build-in yang disediakan oleh kernel Linux untuk tetap menjaga agar perangkat anda aman dalam berkomunikasi.
Fitur yang dimiliki IPTables:
IPtables mengizinkan user untuk mengontrol sepenuhnya jaringan melalui paket IP dengan sistem LINUX yang diimplementasikan pada kernel Linux. Sebuah kebijakan atau Policy dapat dibuat dengan iptables sebagai polisi lalulintas jaringan. Sebuah policy pada iptables dibuat berdasarkan sekumpulan peraturan yang diberikan pada kernel untuk mengatur setiap paket yang datang. Pada iptable ada istilah yang disebut dengan Ipchain yang merupakan daftar aturan bawaan dalam Iptables. Ketiga chain tersebut adalah INPUT, OUTPUT dan FORWARD
Pada diagram tersebut, persegi panjang yaitu filter INPUT, filter OUTPUT, dan filter FORWARD menggambarkan ketiga rantai atau chain. Pada saat sebuah paket sampai pada salah satu persegi panjang diantara IPchains, maka disitulah terjadi proses penyaringan. Rantai akan memutuskan status 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.
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.
Pada artikel berikutnya kita akan membahas tentang jalannya paket pada IPtables.
Alhamdulillah, sudah bisa pake Karmic Koala aka UBUNTU 9.10,
Berikut saya list daftar repositorinya :
mirror.cbn.net.id (OpenIXP)
kambing.ui.edu (UI, Telkom, Indosat, OpenIXP, INHERENT
www.foss-id.web.id (Telkom)
ftp.itb.ac.id (ITB, INHERENT)
indika.net.id (OpenIXP)
komo.vlsm.org
Ada 2 cara untk mendaftarkan repositori tersebut, yaitu melalui “Synaptic Package Manager” dan melalui terminal:
Synaptic Package Manager:
1. Buka menu: System | Administration | Synaptic Package Manager
2. Pilih menu: Settings | Repositories
3. Pilih tab “Third-Party Software”
4. Pilih “Add”
5. Masukkan baris pertama pada salah satu server repositori pada daftar di atas. Misalnya:
deb http://kambing.ui.edu/ubuntu karmic main restricted universe multiverse
Melalui terminal:
1. Masukkan perintah berikut:
sudo gedit /etc/apt/sources.list
2. Hapus seluruh baris pada file ini dan ganti dengan baris-baris pada salah satu server dari daftar di atas. Contoh:
deb http://komo.vlsm.org/ubuntu karmic main restricted universe multiverse
deb http://komo.vlsm.org/ubuntu karmic-updates main restricted universe multiverse
deb http://komo.vlsm.org/ubuntu karmic-security main restricted universe multiverse
deb http://komo.vlsm.org/ubuntu karmic-backports main restricted universe multiverse
deb http://komo.vlsm.org/ubuntu karmic-proposed main restricted universe multiverse
3. Melalui terminal, masukkan perintah berikut:
sudo apt-get update
Thanks… ^.^
Waduuh.. , mengenang saat berkenalan dengan linux, hmmm… emang mengasikkan sekaligus bikin pusing kepala. Pertama kenal dengan linux saat OS komputer di labkom diganti semua dengan OS linux yang pada saat itu menggunakan distro ubuntu 6.10 (pada saat itu gw ga tau apa itu distro linux dan ga tau juga klo ubuntu itu adalah Operating System/Distro juga). Kesan pertama menggunakan ubuntu? jiaahhh… ga nyaman banget, karena sudah terbiasa menggunakan Windows OS mengakibatkan ketidakbiasaan menggunakan ubuntu [w.a.j.a.r], pada saat itu saya belum tertarik dengan linux.
Seiring dengan berjalannya waktu yang pada akhirnya sampailah pada kondisi 1 unit laptop sudah ditangan [baru beli nih ceritanya, acer 4520], otomatis setelah memiliki laptop dan kebetulan kegiatan perkuliahan sedang lengang maka sebagian besar waktu digunakan untuk oprek laptop, salah satu kegiatan oprek laptop adalah mencoba OS-OS yang sudah ada. Nah, pada saat itulah ketertarikan terhadap linux mulai muncul, penasaran mau menginstal linux, akhirnya dapet CD installer opensuse 10 dan segera dipraktikkan.
Opensuse pada saat itu menggunakan tampilan KDE (K Desktop Environment) yaitu tampilan mirip dengan Windows, mulai tertarik tetapi belum sampai suka, apalagi jatuh cinta. Kesan pertama menggunakan Opensuse adalah OS ini ringan, cepat, tampilan oke, warna lebih cerah dibandingkan windows . Nah mulai saat itu bisa dibilang gw dah menjadi pengguna Linux, karena Windows digunakan apabila terdapat ketidaknyamanan atau aplikasi yang kurang memadai di Opensuse yang pada saat itu saya belum tahu banyak tentang linux, jadi metodenya adalah instal lalu pakai.

Selang beberapa minggu, mulai mencoba distro linux yang lain, dari mandriva, fedora, slackware [yang ini mangstab gan], blankOn, linuxmint, dll sampai ketemu dengan ubuntu lagi, maka setelah dicoba-coba, ubuntu bisa diandalkan untuk newbie kayak gw buat belajar linux. dan sampai saat ini ubuntu sudah nemenin gw buat terus menggali lebih dalam tentang opensource, dan sampai saat ini status gw masih BELAJAR [maklum otak gw lemot].
Thanks