IP TABLES
Hai hai hai......
Kali ini, saya akan melampiaskan kegabutan saya lagi dengan membagi tugas praktikum kedua saya...
yuks langsung aja simak yawwww... jangan lupa siapin es batunya yak.. buat dinginin otak kali aja nguap.. eheheehe just kidding gengs
A.
DASAR TEORI
Iptables
adalah suatu tools dalam sistem operasi linux yang berfungsi sebagai alat untuk
melakukan filter (penyaringan) terhadap (trafic) lalulintas data. Secara
sederhana digambarkan sebagai pengatur lalulintas data. Dengan iptables inilah
kita akan mengatur semua lalulintas dalam komputer kita, baik yang masuk ke
komputer, keluar dari komputer, ataupun traffic yang sekedar melewati komputer
kita.
Prinsip
dasar firewall iptables adalah mengelola akses internet berdasarkan alamat
IP,port aplikasi dan MAC address. Firewall IPTables packet filtering memiliki tiga
aturan (policy), yaitu:
-
INPUT
Mengatur
paket data yang memasuki firewall dari arah intranet maupun internet. kita bisa
mengelolakomputer mana saja yang bisa mengakses firewall. misal: hanya komputer
IP 192.168.1.100 yang bisa SSH ke firewall dan yang lain tidak boleh.
-
OUTPUT
Mengatur
paket data yang keluar dari firewall ke arah intranet maupun internet. Biasanya
output tidak diset,karena bisa membatasi kemampuan firewall itu sendiri.
-
FORWARD
Mengatur
paket data yang melintasi firewall dari arah internet ke intranet maupun
sebaliknya. Policy forward paling banyak dipakai saat ini untuk mengatur
koneksi internet berdasarkan port, mac address dan alamat IP Selain aturan
(policy) firewall iptables juga mempunyai parameter yang disebut dengan TARGET,
yaitu status yang menentukkan koneksi di iptables diizinkan lewat atau tidak.
TARGET
ada tiga macam yaitu:
a.
ACCEPT
Akses
diterima dan diizinkan melewati firewall
b.
REJECT
Akses
ditolak, koneksi dari komputer klien yang melewati firewall langsung terputus,
biasanya terdapatpesan “Connection Refused”. Target Reject tidak menghabiskan
bandwidth internet karena akses langsung ditolak, hal ini berbeda dengan DROP.
c.
DROP
Akses
diterima tetapi paket data langsung dibuang oleh kernel, sehingga pengguna tidak
mengetahui kalau koneksinya dibatasi oleh firewall, pengguna melihat seakan –
akan server yang dihubungi mengalami permasalahan teknis. Pada koneksi internet
yang sibuk dengan trafik tinggi Target Drop sebaiknya jangan digunakan.
Perintah umum iptables [–t tables] [option] [rule] [target]
Contoh:
iptables –P FORWARD ACCEPT
B.
LANGKAH - LANGKAH
Command
Command
|
Keterangan
|
-A
–append
|
Perintah ini menambahkan aturan di akhir chain. Aturan
ditambahkan di akhir baris chain yang bersangkutan, sehingga dieksekusi
terakhir kali
|
-D
–delete
|
Menghapus satu aturan chain. Caranya dengan menyebutkan
perintah mana yang ingin dihapus secara lengkap atau
menyebutkan nomor baris perintah yang akan dihapus.
|
-R
–replace
|
Menggantikan aturan chain dengan aturan (entry) baru.
|
-I
–insert
|
Memasukkan aturan pada suatu baris di chain. Aturan
akan dimasukkan ke baris yang ditulis, dan aturan yang tadinya ada di baris
tersebut akan bergeser ke bawah bersama dengan baris-baris selanjutnya
|
-L
–list
|
Menampilkan semua aturan pada tabel. Jika tabel tidak
disebutkan, seluruh aturan di semua tabel akan ditampilkan, walaupun tidak
ada aturan sama sekali pada 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 hilang.
|
-N
–new-chain
|
Membuat chain baru.
|
-X
–delete-chain
|
Menghapus chain yang dituliskan. Notabene, tidak boleh
ada aturan lain yang bersangkutan dengan chain tersebut.
|
-P
–policy
|
Membuat kebijakan default pada chain. Jika ada paket
yang tidak memenuhi aturan pada baris yang diinginkan, paket akan diperlakukan
sesuai dengan kebijakan default ini.
|
-E
–rename-chain
|
Mengubah nama chain.
|
Option
Option
terdiri dari command, dan parameter serta opsi tambahan
Option
|
Command
|
Keterangan
|
-v
–verbose
|
–list
–append
–insert
–delete
–replace
|
Memberi output secara detail. Jika digunakan dengan –
list, akan menampilkan K
(x1.000), M (1.000.000) dan G (1.000.000.000).
|
-x
–exact
|
–list
|
Memberikan output secara tepat.
|
-n
–numeric
|
–list
|
Memberikan output berbentuk angka. IP Address dan port ditampilkan
dalam bentuk angka, bukan hostname ataupun nama servis /repositori.
|
–line
-number
|
–list
|
Menampilkan nomor dari daftar aturan.
|
–modprobe
|
All
|
Memerintahkan IPTables memanggil modul tertentu. Dapat
digunakan bersama semua command.
|
Generic Matches
Generic
Matches adalah pendefinisian kriteria secara umum. Jadi sintaks generic matches
akan sama untuk semua protokol. Setelah protokol didefinisikan, maka aturan
yang lebih spesifik protokol baru didefinisikan. Tiap-tiap protokol berbeda
karakter, sehingga perlu perlakuan yang berbeda.
Match
|
Keterangan
|
-p
–protocol
|
Mengecek tipe protokol tertentu, seperti TCP, UDP, ICMP
dan ALL. Tanda inverse juga berlaku di sini, misal kita menghendaki semua
protokol kecuali icmp, maka kita cukup tuliskan –protokol ! icmp yang berarti
semua kecuali icmp.
|
-s
–src
–source
|
Menyocokkan paket berdasar alamat IP asal tunggal
seperti 192.168.2.69, atau alamat network seperti
192.168.2.0/255.255.255.128 dan
192.168.2.0/25. Inversi juga berlaku.
|
-d
–dst
–destination
|
Menyocokkan paket berdasar alamat tujuan. Sama seperti
match –src
|
-i
–in-interface
|
Menyocokkan paket berdasar interface source paket dan
hanya berlaku pada chain INPUT, FORWARD dan PREROUTING
|
-o
–out-interface
|
Menyocokkan paket berdasar interface destination paket
seperti –in-interface dan hanya berlaku untuk chain OUTPUT, FORWARD dan
POSTROUTING.
|
Implicit
Matches
Implicit
Match merupakan sekumpulan rule yang diload setelah tipe protokol disebutkan,
yaitu TCP matches, UDP matches dan ICMP matches.
a. TCP
matches
Match
|
Keterangan
|
–sport
–source-port
|
Menyocokkan paket berdasar port asal. Kita memutuskan
port atau service yang di definisikan, atau bahkan range port tertentu. Untuk
mendefinisikan range antara port 22 sampai dengan 80, tuliskan –sport 22:80.
Jika bagian kiri kita hilangkan, paket diartikan dari
port 0. Jika bagian kanan kita hilangkan, paket diartikan dari port 65535.
Inverse juga berlaku.
|
–dport
–destination-po rt
|
Sama dengan match –source-port.
|
–tcp-flags
|
Menyocokkan paket berdasar TCP flags yang ada pada
paket. Match ini bisa menggunakan inversi.
|
–syn
|
Memeriksa apakah flag SYN di-set dan ACK dan FIN tidak
di-set. Seperti –tcp-flags, SYN, ACK, FIN SYN, dapat digunakan untuk request
koneksi TCP baru ke server
|
b. UDP matches
Karena
protokol UDP bersifat connectionless, tidak ada flags yang mendeskripsikan
status paket 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 mengirimkan pesan kesalahan dan kondisi jaringan lain. Hanya ada satu
implicit match untuk tipe protokol ICMP, yaitu :
–icmp-type
Explicit
Matches
a. MAC
Address
Melakukan
penyocokan paket berdasar MAC source address dan hanya berfungsi untuk jaringan
yang menggunakan teknologi ethernet.
iptables
–A INPUT –m mac –mac-source 00:00:00:00:00:05
b.
Multiport Matches
Mendefinisikan
port atau port range lebih dari satu, tspi definisi aturan sama untuk beberapa
port. Kita tidak bisa menggunakan port matching standard dan multiport matching
dalam waktu yang sama.
iptables
–A INPUT –p tcp –m multiport –source-port 22,80, 110,1028
c.
Owner Matches
Mencocokkan
paket berdasar pemilik paket. Match ini bekerja di chain OUTPUT, tetapi
terdapat kekurangan yaitu beberapa proses tidak memiliki owner (??).
iptables
–A OUTPUT –m owner –uid-owner 500
Selain
itu bisa juga dengan group ID dengan sintaks –gid-owner.
d.
State Matches
Mendefinisikan
state apa yang cocok. Ke empat state yang ada yaitu NEW, ESTABLISHED, RELATED
dan INVALID.
NEW
untuk paket yang memulai koneksi baru.
ESTABLISHED
untuk koneksi yang sudah tersambung dan paket sudah bagian dari koneksi.
RELATED
untuk paket yang berhubungan dengan koneksi, tapi bukan bagian dari koneksi.
Seperti FTP data transfer yang menyertai koneksi TCP atau UDP.
INVALID
adalah paket yang tidak teridentifikasi, bukan bagian dari koneksi.
iptables
–A INPUT –m state –state RELATED,ESTABLISHED
Chain
Chain/rantai
digambarkan sebagai jalur aliran data. Chains yang diperlukan untuk iptables
ini antara lain:
Chain
berikut Keterangan
FORWARD Route packet akan di FORWARD
tanpa di proses lanjut di local INPUT Route packet masuk ke dalam proses lokal
sistem OUTPUT Route packet keluar dari local sistem PREROUTING Chain yang
digunakan untuk keperluan perlakuan sebelum packet masuk route. Biasanya
dipakai untuk proses NAT POSTROUTING Chain yang digunakan untuk keperluan
perlakuan sesudah packet masuk route. Biasanya dipakai untuk proses NAT.
Chain PREROUTING dan POSTROUTING
dimaksudkan sebagai jalur data sebelum dan sesudah data tersebut masuk ke dalam
route. PREROUTING: data sebelum masuk jalur route, akan di kenakan rule
POSTROUTING: data sebelum masuk akan dikenakan route.
TARGET/JUMP
Perlakuan terhadap paket yang memenuhi aturan atau match.
Chain yang ada akan dimasuki paket dengan kriteria. Contohnya ada chain bernama
paket_tcp. Tambahkan aturan, dan direferensi dari chain input.
iptables –A INPUT –p tcp –j paket_tcp
Target
|
Keterangan
|
-j ACCEPT
–jump ACCEPT
|
Memberlakukan paket yang cocok dengan daftar match dan
target.
|
-j DROP
–jump DROP
|
Membuang paket dan menolak memproses lebih jauh.
|
-j RETUR
–jump RETURN
|
Mengembalikan paket ke superset chain di atasnya dan
masuk ke baris aturan berikutnya, jika pada subchain. Tapi
jika pada chain utama seperti INPUT, maka paket dikembalikan kepada kebijakan
default.
|
-j MIRROR
|
Membalik source address dan destination address. Target
ini bekerja pada chain INPUT, FORWARD dan PREROUTING atau chain buatan yang
melalui chain tersebut.
|
Beberapa target yang lain biasanya memerlukan parameter
tambahan:
a. LOG Target
Tingkatan log yang bisa digunakan dalam option pertama
adalah debug, info, notice, warning, err, crit, alert dan emerg. Option kedua
adalah -j LOG –log-prefix untuk memberikan string yang tertulis pada awal log,
sehingga memudahkan pembacaan log.
iptables –A FORWARD –p tcp –j LOG –log-level debug
iptables –A INPUT –p tcp –j LOG –log-prefix “INPUT
Packets”
b. REJECT Target
Memblok paket dan menolak untuk memproses lebih lanjut
paket tersebut. REJECT akan mengirimkan pesan error ke pengirim paket, tidak
seperti DROP. REJECT bekerja pada chain INPUT, OUTPUT dan FORWARD atau pada
chain tambahan dari chain tersebut.
iptables –A FORWARD –p tcp –dport 80 –j REJECT
–reject-with icmp-host-unreachable
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
Berguna untuk melakukan perubahan alamat asal paket
(Source Network Address Translation). Target ini hanya berlaku untuk tabel nat
pada chain POSTROUTING. Jika paket pertama dari satu koneksi mengalami SNAT,
paket-paket berikutnya dalam koneksi juga akan mengalaminya.
iptables –t nat –A POSTROUTING –o eth0 –j SNAT –to-source
192.168.2.69-192.168.2.96:1024-32000
d. DNAT Target
Digunakan untuk melakukan translasi
alamat tujuan (Destination Network Address Translation) pada header dari paket
yang memenuhi aturan match. DNAT hanya bekerja untuk tabel nat pada chain
PREROUTING dan OUTPUT atau chain buatan yang dipanggil oleh chain tersebut.
iptables –t nat –A PREROUTING –p tcp –d 35.35.33.37
–dport 80 –j DNAT –to-destination 192.168.22.22
e. MASQUERADE Target
Hampir sama dengan SNAT, tetapi tidak perlu option
–to-source. Target ini hanya bekerja untuk tabel nat pada chain POSTROUTING.
iptables –t nat –A POSTROUTING –o ppp0 –j MASQUERADE
f. REDIRECT Target
Mengalihkan paket ke komputer itu sendiri. Mengarahkan
paket yang menuju suatu port tertentu untuk memasuki proxy, berguna untuk
membangun transparent proxy. Misal untuk mengalihkan semua koneksi yang menuju
port http untuk memasuki aplikasi http proxy seperti squid. Hanya bekerja untuk
tabel nat pada chain PREROUTING dan OUTPUT atau pada chain buatan dari chain
tersebut.
iptables –t nat –A PREROUTING –i eth1 –p tcp –dport 80 –j
REDIRECT –to-port 8080
C.
PEMBAHASAN
a.
Amati paket data
firewall menggunakan wireshark.
ü Melakukan reject pada FTP
#IPTables -A INPUT
-p tcp --dport 21 -j REJECT
ü Melakukan reject pada SSH
#IPTables -A INPUT
-p tcp --dport 22 -j REJECT
ü Melakukan accept pada FTP
#IPTables -A INPUT
-p tcp --dport 21 -j ACCEPT
ü Melakukan accept pada SSH
#IPTables -A INPUT -p
tcp --dport 22 -j ACCEPT
b.
Tugas
1.
Jelaskan fungsi dari firewall IP Tables di
Linux.
Firewall IP
Tables di linux berfungsi memfilter semua paket yang lewat pada dirinya, baik
dari jaringan lokal maupun internet. Aplikasi server ini, sangat penting untuk
melindungi jaringan lokal dari serangan luar.
D.
KESIMPULAN
ACCEPT merupakan suatu tindakan untuk membolehkan suatu
koneksi terhubung kedalam suatu sistem. Sebagai contoh jika terdapat layanan
HTTP atau SSH pada suatu sistem dan layanan tersebut diperbolehkan diakses dari
luar sistem maka biasanya ACCEPT akan diterapkan pada rule netfilter yang sesuai dengan layanan
tersebut. Sedangkan
REJECT merupakan tindakan
dari netfiler yang sama dengan DROP dimana berfungsi
untuk mengabaikan suatu koneksi kedalam sistem. Akan tetapi REJECT
merupakan cara yang lebih “halus” dimana penolakan tersebut disertai balasan
oleh sistem bahwa port/protokol/layanan
yang dituju tidak tersedia.
E.
DAFTAR PUSTAKA
BKPM Manajemen Jarkom
Momo
TheCat.2016. Analisa Packet
ACCEPT, DROP, dan REJECT pada IPTables. di http://www.blogconfig.my.id(diakses
17 Maret 2019)
kira-kira begitu yak.... semoga bermanfaat...
jangan lupa berdoa
tetap semangat
sukses tidak pernah terjadi dalam semalam...
jadi kalo ada error nikmatilah dan hayatilah,
karena dalam setiap error ada pembelajaran luar biasa yang kita dapatkan
sekali lagi semangat
No comments:
Post a Comment