UBUNTU 12.04
Disusun Oleh :
Nama : Abdiansyah Rizki Amanda
NIM : 1204V001
Kelas : TKJ A
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).
- Rantai Post-Routing adalah merubah paket-paket NAT dimana alamat sumber dari
paket tersebut terjadi perubahan. Biasanya dikenal dengan Source NAT atau
(SNAT).
Keterangan
Perintah ini menambahkan aturan pada akhir chain. Aturan akan
ditambahkan di akhir baris pada chain yang bersangkutan, sehingga akan
dieksekusi terakhir
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.
Penggunaannya sama seperti delete, tetapi command ini menggantinya
dengan entry yang baru.
-replace
-I
-insert
-L
-list
-F
Perintah ini mengosongkan aturan pada sebuah chain. Apabila chain tidak
disebutkan, maka semua chain akan di-flush.
-flush
-N
-new-chain
-X
-delete-chain
-P
-policy
-E
-rename-chain
b. Pilihan (Options)
Options
Perintah Dasar
-list
-append
-insert
-delete
-replace
Keterangan
Memberikan output yang lebih detail, utamanya digunakan
dengan list.
-list
-list
-line-number
-list
-modprobe
All
-v
-verbose
-x
-exact
-n
-numeric
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
-s
-src
-source
-d
-dst
-destination
-i
-in-interface
-o
-out-interface
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
-dport
-destination-port
-syn
- 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
Keterangan match seperti tabel TCP Matches
- ICMP Matches
Paket ICMP digunakan untuk mengirimkan pesan-pesan kesalahan dan kondisikondisi 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.
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
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.
-jump ACCEPT
-j 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.
-jump DROP
-j RETURN
-jump RETURN
-j MIRROR
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
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.
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.
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.
2. Dasar-Dasar Perintah Program IPTABLES, http://blog.siger.tv/?p=351