membuat firewall dengan IPTABLES

sebelumnya, ini sebenarnya merupakan tugas keamanan data dan jaringan di kuliah saya, semoga bermanfaat dan apabila ada kesalahan mohon koreksinya πŸ™‚ ,Β Firewall adalah sebuah aturan yang ditetapkan baik terhadap hardware, software maupun sistem itu sendiri dengan tujuan untuk melindungi baik dengan melakukan filtrasi, membatasi ataupun menolak suatu koneksi pada jaringan yang dilindunginya dengan jaringan luar seperti internet. Firewall juga berfungsi sebagai pintu keluar jaringan yang dilindunginya dengan jaringan lainya atau disebut gateway.

Ada bermacam-macam jenis firewall baik hardware maupun software. Di linux kernel 2.4 dan 2.6 keatas sudah dilengkapi dengan software firewall yang bernama IPTABLES. Pada percobaan kami kali ini akan mencoba melakukan pemblokiran paket ICMP dan Memblokir PORT

Dasar Teori

Untuk membangun sebuah firewall yang harus kita ketahui pertama-tama adalah bagaimana paket tersebut nanti akan diproses firewall, apakah paket tersebut akan di buang (DROP) atau diterima(ACCEPT), atau paket tersebut akan diteruskan (FORWARD) ke jaringan lain.

Sebuah paket yang diterima dari jaringan pertama-tama akan memasuki routing decission dimana di bagian ini paket akan ditentukan berdasarkan tujuan dari paket tersebut. Bila paket tersebut bertujuan ke komputer linux kita paket tersebut akan diteruskan ke tabel INPUT untuk diproses firewall. Bila paket tersebut bertujuan ke komputer lain yang berbeda jaringan maka paket tersebut akan diteruskan ke kolom FORWARD.

Setelah paket tersebut memasuki kolomnya (INPUT atau FORWARD) maka paket tersebut akan dicocokkan dengan aturan yang ada pada kolom tersebut.

No INPUT OUTPUT FORWARD
1 Aturan no 1 Aturan no 1 Aturan no 1
2 Aturan no 2 Aturan no 2 Aturan no 2
3 Aturan no 3 Aturan no 3 Aturan no 3
N Aturan no n Aturan no n Aturan no n
POLICY ACCEPT/DROP ACCEPT/DROP ACCEPT/DROP

Sebagai contoh ada paket datang ke komputer alamat ip linux kita, paket tersebut akan masuk ke tabel INPUT, kemudian paket akan dicocokkan dengan aturan pertama hingga terakhir. Jika tidak ada kecocokan maka POLICY pada tabel yang akan berlaku, apakah diterima (ACCEPT) atau buang (DROP).

Perintah-perintah IPTABLES

berikut perintah-perintah IPTABLES:

-A , –append chain-rule-specification

menambahkan suatu aturan baru yang ditempatkan di aturan paling bawah dari aturan-aturan IPTABLES

-D , –delete chain-rule-number/rule specification

Menghapus satu baris aturan

-I , –insert chain-rule-number/rule specification

menuliskan aturan baru tapi penempatanya sesuai dengan perintah yang kita masukkan

R , –replace chain-rule-number/rule specification

mengganti rule yang sudah ada, posisinya menempati urutan dari yang digantikan

-L , –list chain

berfungsi untuk melakukan output dari aturan yang kita buat

-F , –flush chain

untuk menghapus semua aturan yang sudah kita buat

-Z , –zero

berfungsi menghapus semua penghitung menjadi nol

-N , –new-chain chain

menambahkan satu kolom tabel baru

-P , –policy chain-target

akan menentukan nasib paket akan di drop atau diterima

E , –rename-chain old-chain new-chain

mengubah nama dari suatu kolom

-h

help

Parameter IPTABLES

parameter disini bertujuan untuk membuat satu baris aturan menjadi lebih spesifik

-p, –protocol [!] protocol

mengecek protokol dari setiap paket yang datang, TCP, ICMP,UDP atau ALL. Tanda seru merupakan negasi / not! Atau pengecualian

-s, –source [!] address/mask

akan memeriksa kecocokan berdasarkan sumber paket itu, apabila cocok dengan aturan iptables makan aturan tersebut akan berlaku

-d, –destination [!] address/mask

tujuan paket tersebut, apabila cocok pada iptables maka akan berlaku aturan iptables

-j, –jump target

berfungsi untuk menentukan nasib paket apakah akan diterima (ACCEPT) ditolak (DROP) atau dikempalikan ke kolom sebelumnya (RETURN)

-i, –in-interface [!] name

disini setiap paket akan diidentifikasikan berdasarkan kartu jaringan, seperti eth0, eth1, dst

-o, –out-interface [!] name

sama seperti -i namun paket yang keluar

Target/jump

target/jump pada iptables adalah penentu nasib paket, berikut:

ACCEPT

dengan opsi ini paket akan langsung diterima oleh firewall dan diteruskan kepada tujuan dari target.

REJECT

opsi ini paket akan ditolak namun dengan pesan kesalahan ICMP, kita dapat menentukan paket icmp yang akan dikirimkan

DROP

kebalikan dari ACCEPT, paket akan langsung dibuang tanpa mengirim pesan error

SNAT

bertujuan untuk mengubah sumber pengirim paket dan berguna jika kita ingin berbagi koneksi, SNAT terdapat di tabel NAT kolom POSTROUTING sehingga kita menggunakan perintah -A POSTROUTING pada perintah iptables.

DNAT

berfungsi untuk mengubah tujuan dari paket, contohnya apabila kita ingin server kita menggunakan alamat IP local dan kita ingin server tersebut bisa diakses dari internet

MASQUERADE

sama dengan SNAT tapi biasanya digunakan bila kita ingin berbagi koneksi tapi kita memiliki alamat ip yang selalu berubah, seperti menggunakan dial-up

REDIRECT

bertugas untuk mengubah tujuan dari paket ke mesin firewall itu sendiri, misal jika ingin HTTP PROXY bersifat transparent.

Study Kasus

dalam study kasus kami kali ini kami akan menggunakan 2 buah laptop, satu laptop berfungsi sebagai gateway dan firewall, interface in yaitu wireless(wlan0) atau modem(ppp0) sedangakan interface ke client menggunakan ethernet (eth0).

iptables routing
iptables routing

Ip public/out : berubah-ubah

ip eth0 gateway : 192.168.100.1/24

ip eth0 client : 192.168.100.2/24

kasus yang akan kami kerjakan:

  • agar client tidak bisa melakukan ping ke google.com
  • agar client tidak bisa membuka google.com namun bisa melakukan ping
  • memblokir yahoo messengger

langkah pertama adalah memfungsikan laptop kita sebagai gateway/firewall:

  • menambahkan tabel routing
    • route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
  • mengaktifkan ip forward dengan memberi nilai 1 pada /proc/sys/net/ipv4/ip_forward
    • echo β€œ1” /proc/sys/net/ipv4/ip_forward
  • melakukan NAT
    • iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -d 0/0 -j SNAT –to 172.16.0.145

selanjutnya adalah mengatur komputer client yaitu dengan memberikan ip address satu kelas dengan kita lalu mengatur gateway dan dns.

1. Client tidak bisa melakukan ping ke google.com

iptables -A FORWARD -s google.com -p icmp -d 192.168.100.2 -j DROP

maksud dari perintah diatas adalah:

-A : memasukkan aturan baru

FORWARD : meneruskan paket ke client

-s google.com : source paket dari google.com

-p icmp : protokol yang akan digunakan adalah icmp

-d 192.168.100.2 : destination paket adalah 192.168.100.2

-j DROP : jump DROP, paket akan di drop

2. Client bisa melakukan ping namun tidak bisa mengakses google.com

iptables -A FORWARD -s google.com -p tcp –sport 80 -d 192.168.100.2 -j DROP

maksud dari perintah diatas adalah:

-A : memasukkan aturan baru

FORWARD : meneruskan paket ke client

-s google.com : source paket dari google.com

-p tcp : protokol yang digunakan tcp

–sport 80 : source port 80 / http

-d 192.168.100.2 : destination paket adalah 192.168.100.2

-j DROP : jump DROP, paket akan di drop

3. Memblokir yahoo messengger

yahoo messengger messages mempunyai port 5050, kita akan mencoba memblokir port 5050

iptables -A FORWARD -p tcp –sport 5050 -d 192.168.100.2 -j DROP



itu saja yang dapat saya berikan, semoga bermanfaat πŸ™‚ CMIIW

refrensi : membangun firewall dengan iptables di linux, rahmat farunuddin

7 thoughts to “membuat firewall dengan IPTABLES”

  1. maaf kang, punya bukunya membangun firewall dengan iptables di linux, rahmat farunuddin ya, dimana ya sekarang bisa dapetnya, saya ingin belajar

    trims

    1. beberapa bulan lalu masih ada di gramedia tapi dalam masa bazaar / diskonan, jadi buku2 sisa stok dijual. coba aja ke gramed mas terus bilang ma cs e. πŸ˜€

Leave a Reply

Your email address will not be published.

CommentLuv badge