• Tidak ada hasil yang ditemukan

KONFIGURASI FIREWALL MENGGUNAKAN METODE IPTABLES PADA LINUX UBUNTU 12.04

N/A
N/A
Protected

Academic year: 2021

Membagikan "KONFIGURASI FIREWALL MENGGUNAKAN METODE IPTABLES PADA LINUX UBUNTU 12.04"

Copied!
13
0
0

Teks penuh

(1)

KONFIGURASI FIREWALL MENGGUNAKAN METODE IPTABLES PADA LINUX UBUNTU 12.04

Disusun Oleh :

Nama : Abdiansyah Rizki Amanda NIM : 1204V001

Kelas : TKJ A

POLITEKNIK HARAPAN BERSAMA TEGAL 2014

(2)

1. PENGERTIAN IPTABLES

Menurut Wikipedia : IPTables adalah program aplikasi (berbasis linux) yang memungkinkan administrator sistem untuk mengkonfigurasi tabel yang disediakan oleh firewall kernel linux (diimplementasikan sebagai modul Netfilter yang berbeda) dan rantai dan aturan di tempat itu. Modul kernel yang berbeda dan program yang saat ini digunakan untuk protokol yang berbeda, iptables berlaku untuk IPV4, ip6tables ke IPV6, arptables ARP, dan ebtables ke frame Ethernet.

IPTables membutuhkan hak akses yang tinggi untuk beroperasi atau melakukan konfigurasi yang dijalankan oleh “ root ” pengguna, selain itu gagal.

2. TABLE

IPTables memiliki beberapa buah tabel yaitu NAT, MANGEL, dan FILTER. Penjelasannya sebagai berikut :

a. Table Mangle adalah tabel yang bertanggung jawab untuk melakukan penghalusan (mangle) paket seperti merubah quality of service (QOS), TTL, dan MARK di header TCP. Biasanya tabel ini jarang digunakan di lingkungan SOHO (Small Office Home Ofiice).

b. Table Filter adalah tabel yang bertanggung jawab untuk pemfilteran paket. Tabel ini mempunyai 3 rantai (chain) yaitu :

- Rantai Forward yaitu rantai yang memfilter paket-paket yang akan ke server yang dilindungi oleh firewall. Rantai ini digunakan ketika paket-paket dating dari IP Publik dan bukan dari IP local.

c. Tabel NAT adalah tabel yang bertanggung jawab untuk melakukan Network Address Translation (NAT). NAT yaitu mengganti field asal atau alamat tujuan dari sebuah paket, pada tabel NAT terdapat 2 rantai yaitu :

- Rantai Pre-Routing adalah merubah paket-paket NAT dimana alamat tujuan dari paket-paket tersebut terjadi perubahan. Biasannya dikenal dengan Destination NAT atau (DNAT).

(3)

- Rantai Post-Routing adalah merubah paket-paket NAT dimana alamat sumber dari paket tersebut terjadi perubahan. Biasanya dikenal dengan Source NAT atau (SNAT).

3. KONSEP UMUM PADA IPTABLES

a. Perjalanan Paket yang diforward ke host yang lain

- Paket berada pada jaringan fisik (Network) dan masuk ke interface jaringan - Paket masuk ke rantai PREROUTING pada tabel MANGLE dan tabel NAT - Paket mengalami Routing apakah akan diproses oleh host lokal atau diteruskan ke

host lain

- Paket masuk ke rantai FORWARD pada tabel MANGLE dan tabel FILTER - Paket masuk ke rantai POSTROUTING pada tabel MANGLE dan tabel NAT - Paket kembali pada jaringan fisik (Network)

b. Perjalanan paket yang ditujukan bagi host local

- Paket berada pada jaringan fisik (Network) dan masuk ke interface jaringan - Paket masuk ke rantai PREROUTING pada tabel MANGLE dan tabel NAT - Paket mengalami Routing

- Paket masuk ke rantai INPUT pada tabel MANGLE dan tabel FILTER untuk mengalami proses penyaringan

- Paket akan masuk ke proses lokal (Local Process) c. Perjalanan paket yang berasal dari host local

- Aplikasi lokal menghasilkan paket data yang akan dikirimkan melalui jaringan - Paket masuk ke rantai OUTPUT pada tabel MANGLE, lalu ke tabel NAT, kemudian

ke tabel FILTER

- Paket mengalami Routing

- Paket masuk ke rantai POSTROUTING pada tabel MANGLE dan tabel NAT - Paket keluar menuju ke interface jaringan

(4)

4. PERINTAH DAN KETERANGAN DARI SINTAKS PADA IPTABLES a. Perintah Dasar

Perintah 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.

-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

(5)

b. Pilihan (Options)

Options Perintah Dasar Keterangan -v -verbose -list -append -insert -delete -replace

Memberikan output yang lebih detail, utamanya digunakan dengan –list.

-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.

(6)

c. Generic Matches

Generic Matches artinya mendefinisikan perintah yang berupa karakter dan berlaku secara umum, karena pendefinisian yang dimiliki setiap protocol memiliki karakteristik yang berbeda, sehingga diperlukan suatu perintah yang umum digunakan semua protocol.

Match Keterangan

-p

-prorocol

Digunakan untuk mengecek tipe protokol tertentu. Contoh protokol yang umum adalah TCP, UDP, ICMP dan ALL. Daftar protokol bisa dilihat pada /etc/protocols.

-s -src -source

Kriteria ini digunakan untuk mencocokkan paket berdasarkan alamat IP asal.

-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

(7)

d. Implicit Matches

Implicit Matches adalah karakter atau perintah untuk tipe protokol tertentu yang bersifat khusus. Ada 3 implicit matches yang berlaku pada tiga jenis protokol, yaitu : - 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.

-dport

-destination-port

Digunakan untuk mencocokkan paket berdasarkan TCP flags yang ada pada paket tersebut.

-syn Match ini akan memeriksa apakah flag

SYN di-set dan ACK dan FIN tidak di-set.

- 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

(8)

- 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

e. Ecplicit Matches - 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.

Contoh : iptables -A INPUT -m mac -mac-source 00:00:00:00:00:01 - 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.

Contoh : iptables -A INPUT -p tcp -m multiport -source-port 22,53,80,110 - Owner Matches

Penggunaan match ini untuk mencocokkan paket berdasarkan pembuat atau pemilik/owner paket tersebut.

Contoh : iptables -A OUTPUT –m owner -uid-owner 500 - 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.

(9)

f. 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.

Contoh : 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.

-j RETURN

-jump RETURN

Target ini akan membuat paket berhenti melintasi aturan-aturan pada chain dimana paket tersebut menemui target RETURN.

-j MIRROR Target ini berfungsi membalik source address dan destination address.

Beberapa target yang lain biasanya memerlukan parameter tambahan : - LOG Target

- REJECT Target - SNAT Target

- MASQUERADE Target - REDIRECT Target

(10)

5. PEMBAHASAN MATERI

CONNECTION TRACKING pada IPTables adalah modul yang mengijinkan para administrator untuk memeriksa dan membatasi service-service yang tersedia pada sebuah jaringan internal. Fitur ini merupakan fitur baru di dalam firewall yang ditambahkan sejak kernel 2.4.x. Kemampuan dari connection tracking adalah untuk menyimpan dan menjaga informasi koneksi seperti koneksi baru atau koneksi yang sudah ada yang disertai dengan jenis protokol, alamat IP asal dan alamat IP tujuan. Dengan menggunakan fitur ini, para administrator dapat menolak atau mengijinkan berbagai macam koneksi.

Connection tracking mempunyai beberapa keadaan:- NEW –> Sebuah klien mereques koneksi melalui firewall, yaitu :

- RELATED –> Sebuah koneksi yang mereques sebuah reques baru tetapi masih merupakan bagian dari koneksi yang sudah ada. Maksudnya server2 menerima paket SYN dari server 1 dan kemudian merespon dengan sebuah paket SYN-ACK (Synchronize-Acknowledgment).

- ESTABLISHED –> Sebuah koneksi yang merupakan bagian dari koneksi yang sudah ada. Maksudnya server 1 menerima paket SYN-ACK dan kemudian merespon dengan paket ACK (Acknowledgment)

- INVALID –> Sebuah keadaan dimana tidak ada keadaan seperti 3 keadaan di atas untuk lebih jelasnya perhatikan contoh dibawah ini:

Misalnya kita ingin menggunakan service ftp pada IP=132.456.78.9, maka pada saat kita mengetikkan.

5.1. Langkah-langkah

a. Koneksi ftp bukan pasif

- Masuk sebagai “root” dengan perintah ($sudo su), tanpa “karakter dollar” jika membutuhkan password silahkan ketik dan enter.

- Membuka koneksi baru dengan perintah (#ftp 192.168.10.12), karakter “cresh atau pagar menandakan akses sudah sebagai root”.

- Koneksi terhubung dan mengambil file untuk percobaan koneksi, dengan perintah (get file.tar.gz).

(11)

b. Koneksi ftp pasif

- Aktifkan mode passive, dengan menggunakan perintah (ftp > pass), “keterangan ftp >” hanya memberitahu sedang menjalankan akses ftp.

- Dengan menggunakan Connection Tracking dapat mendefinisikan rule di chain tertentu, maka trafik network yang terkait dengan rule tersebut tidak perlu disebutkan lagi. Seandainya ingin menolak akses ssh dari sebuah ip, caranya adalah :

# iptables -I INPUT -m state -state RELATED,ESTABLISHED -j ACCEPT # iptables -I OUTPUT -m state -state RELATED,ESTABLISHED -j ACCEPT # iptables -I FORWARD -m state -state RELATED,ESTABLISHED -j ACCEPT

Dan dibawah ini kebalikannya, yaitu cara memberi izin akses ssh dengan ip tertentu, caranya adalah :

# iptables -A INPUT -p tcp -s 0/0 sport 513:65535 -d 64.67.33.76 dport 22 -m state --state NEW, ESTABLISHED - j ACCEPT

# iptables -A OUTPUT -p tcp -s 192.168.10.122 --sport 22 -d 0/0 --dport 513:65535 -m state --state ESTABLISHED -j ACCEPT

Dan sekarang akses ssh pada ip 192.168.10.122 saja.

- Cara memblok paket yang dating dari sebuah IP, dengan perintah : # iptables -I INPUT -s 192.168.1.12 -j REJECT

Dari perintah diatas terdapat 2 opsi yang bisa digunakan yaitu REJECT dan DROP, perbedaan dari keduannya adalah untuk REJECT perintah ini akan memblik paket namun akan memberitahukan bahwa paket tersebut ditolak, sedangkan DROP perintah ini akan memblok paket namun tidak diberitahu apakah paket tersebut ditolak atau tidak, hampir seperti hilang.

(12)

- Cara menutup port menggunakan iptables

# iptables -A INPUT -s 192.168.10.112 -p tcp -dport 23 -j REJECT

Keterangan : perintah diatas untuk memblok port 23 yang biasa digunakan untuk telnet dari IP 192.168.10.112

# iptables -A INPUT -p tcp -I eth0 -dport 23 -j REJECT

Keterangan : perintah diatas memblok port 23 yang biasa digunakan untuk telnet ke server

- Cara memblok komputer menggunakan mac address perangkatnya # iptables -A INPUT -m mac -mac-source 00-12-53-77-56-3F

- Cara memblok port-port yang diinginkan

# iptables -A INPUT -p tcp –m multiport -source-port 22,23,80

5.2. Sebuah kasus dalam penanganan server linux di vmware dengan menggunakan 2 virtual Ethernet. Eth0 dengan IP 192.168.0.211 dan Eth1 dengan IP 192.168.2.12, Lalu di iptables kita buat aturan sebagai berikut :

# iptables -P INPUT DROP

# iptables -P INPUT -s 192.168.0.1 -d 192.168.0.211 -j ACCEPT

# iptables -A INPUT -p ALL -m state -state NEW -j LOG -log-prefix “IPTABLES: (INPUT-REJECT)”

# iptables -A INPUT -I eth1 -j REJECT Keterangan :

1. Perintah pertama menjelaskan bahwa policy default untuk rantai INPUT adalah DROP, yang berarti memblok seluruh inputan.

2. Perintah kedua menjelaskan kedua akan menerima inputan dari IP 192.168.0.1 dengan tujuan IP 192.168.0.211

3. Perintah ketiga menjelaskan mencatat seluruh inputan yang mencoba masuk ke server selain yang sudah ditentukan oleh aturan.

4. Perintah keempat akan memblok seluruh inputan yang menuju eth1 atau ber-IP 192.168.2.12 seperti yang ada di virtual eth1.

(13)

Langkah terakhir menyimpan aturan atau sintak yang telah dibuat pada iptables dengan perintah :

# service iptables save

Jika ingin merestore lakukan perintah dibawah ini : # service iptables restart

6. KESIMPULAN

Sebuah server memang harus memiliki pertahanan yang cukup baik bahkan lebih baik, penggunaan iptables tidak terlalu memfokuskan pada urutan apa yang harus diberikan pada peraturan perintah, yang terpenting administrator mengerti alur sebuah paket dari atau untuk server yang dimiliki. Dengan begitu perintah iptables dapat diaplikasikan sesuai kebutuhan keamanan pada jaringan di server khususnya berbasis linux ini.

Daftar Pustaka

1. iptables , http://en.wikipedia.org/wiki/Iptables.

Referensi

Dokumen terkait

Dalam hal Menteri memiliki data dan informasi ilmiah yang cukup bahwa suatu jenis tumbuhan atau satwa telah memenuhi karena untuk dilindungi, atau Menteri menerima usulan dan

Pada sarana edukasi seperti museum biasanya terdapat berbagai sumber informasi yang disuguhkan secara inovatif mengenai benda pamernya, maka dari itu agar

Ekstrakurikuler adalah kegiatan kulikuler yang dilakukan oleh peserta didik diluar jam belajar di bawah bimbingan dan pengawasan satuan pendidikan. Kegiatan

Dengan demikian penggunaan pendekatan whole language dapat meningkatkan kemampuan membaca pemahaman siswa kelas V Sekolah Dasar Negeri Bendungan Hilir 01 Pagi Jakarta Pusat..

Luaran yang dapat dicapai dari rancangan arsitektur enterprise tersebut adalah menghasilkan model dan kerangka dasar (blueprint) dalam mengembangkan sistem

a) Penerjemahan kalimat dalam bahasa Indonesia ke bentuk ekspresi matematika. b) Penerjemahan kalimat dalam bahasa Mandarin ke bentuk ekspresi matematika. c) Penerjemahan

1. Aplikasi Sistem Pendukung Keputusan Seleksi Penerimaan Raskin menggunakan metode SAW ini telah diuji dan dapat berguna bagi Desa Gogorante yang ingin menyeleksi

PERKEMBANGAN 1 - 4 Tahun Layanan Kependudukan Layanan Kesehatan Layanan Pendidikan Layanan Ketenagakerjaan Layanan eOffice Layanan eArsip Layanan Perijinan. Layanan