Sunday, April 7, 2019

IP TABLES


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

APAKAH MQTT ITU? DAN BAGAIMANA CARA INTALLASINYA?

What is MQTT? MQTT atau Message Queuing Telemetry Transport adalah protokol transport dengan sifat clientserverpublish/subscribe. MQTT a...