Monday, 7 March 2016

Penjelasan Tentang IPTables

Assalamu'alaikum

Dalam postingan kali ini saya akan sharing tentang penjelasan iptables. Berikut penjelasannya :

A. Iptables 

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.
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 SSHke 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 terdapat pesan “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.

Berikut ini contoh penggunaan firewall iptables untuk mengolah akses internet :

Policy INPUT 

IP Firewall = 172.16.40.1
IP Administrator = 172.16.40.3
IP Umum = 172.16.40.10

1. Membatasi port number 

#iptables -A INPUT -i eth1 -s 172.16.40.10 -d 172.16.40.1 -p tcp -d port 22-j REJECT

Contoh perintah di atas melarang komputer client dengan IP 172.16.40.10 mengakses port 22 (ssh) firewall yang memiliki ip 172.16.40.1

2. Membatasi orang mengakses port aplikasi P2P (Limewire, GnuTella & Bearshare)

#iptables -A FORWARD -p tcp -dport 6340:6350 -j REJECT

#iptables -A FORWARD -p -dport 6340:6350 -j REJECT

-p tcp (koneksi menggunakan protokol TCP)
-p udp (koneksi
menggunakan protokol UDP)
-dport 6340:6350 (melarang akses port 6340
sampai dengan 6350) 

3. Membatasi koneksi satu alamat IP

#iptables -A FORWARD -s 192.168.1.99 -d 0/0 -j REJECT
 

-d 0/0 berarti ke semua tujuan

4. Membatasi koneksi berdasarkan range IP

#iptables -A FORWARD -m iprange -src -range 192.168.1.100 - 192.168.1.150 -d 0/0 -j REJECT 

5. Membatasi koneksi internet berdasarkan MAC Address

#iptables -A FORWARD -m mac -mac-source 00:30:18:AC:14:41 -d 0/0 -j REJECT

Beberapa target yang lain biasanya memerlukan parameter tambahan:

a. LOG Target

Ada beberapa option yang bisa digunakan bersamaan dengan target ini. Yang pertama adalah yang digunakan untuk menentukan tingkat log. Tingkatan log yang bisa digunakan adalah debug, info, notice, warning, err, crit, alert dan emerg. Yang kedua adalah -j LOG --log-prefix yang digunakan untuk memberikan string yang tertulis pada awalan log, sehingga memudahkan pembacaan log tersebut.

#iptables –A FORWARD –p tcp –j LOG --log-level debug
#iptables –A INPUT –p tcp –j LOG --log-prefix “INPUT Packets”

b. REJECT Target

Secara umum, REJECT bekerja seperti DROP, yaitu memblok paket dan menolak untuk memproses lebih lanjut paket tersebut. Tetapi, REJECT akan mengirimkan error message ke host pengirim paket tersebut. REJECT bekerja pada chain INPUT, OUTPUT dan FORWARD atau pada chain tambahan yang dipanggil dari ketiga chain tersebut.

#iptables –A FORWARD –p tcp –dport 22 –j REJECT --reject-with icmp-host-unreachable
 
Ada beberapa 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

Target ini berguna untuk melakukan perubahan alamat asal dari paket (Source Network Address Translation). Target ini berlaku untuk tabel nat pada chain POSTROUTING, dan hanya di sinilah SNAT bisa dilakukan. Jika paket pertama dari sebuah koneksi mengalami SNAT, maka paket-paket berikutnya dalam koneksi tersebut juga akan mengalami hal yang sama.

#iptables –t nat –A POSTROUTING –o eth0 –j SNAT --to-source 194.236.50.155-194.236.50.160:1024-32000
. DNAT Target

Digunakan untuk melakukan translasi field alamat tujuan (Destination Network Address Translation) pada header dari paket-paket yang memenuhi kriteria match. DNAT hanya bekerja untuk tabel nat pada chain PREROUTING dan OUTPUT atau chain buatan yang dipanggil oleh kedua chain tersebut.

#iptables –t nat –A PREROUTING –p tcp –d 15.45.23.67 --dport 80 –j DNAT --to-destination 192.168.0.2
e. MASQUERADE Target

Secara umum, target MASQUERADE bekerja dengan cara yang hampir sama seperti target SNAT, tetapi target ini tidak memerlukan option --to-source. MASQUERADE memang didesain untuk bekerja pada komputer dengan koneksi yang tidak tetap seperti dial-up atau DHCP yang akan memberi pada kita nomor IP yang berubah-ubah.
Seperti halnya pada SNAT, target ini hanya bekerja untuk tabel nat pada chain POSTROUTING.
#iptables –t nat –A POSTROUTING –o ppp0 –j MASQUERADE
f. REDIRECT Target

Target REDIRECT digunakan untuk mengalihkan jurusan (redirect) paket ke mesin itu sendiri. Target ini umumnya digunakan untuk mengarahkan paket yang menuju suatu port tertentu untuk memasuki suatu aplikasi proxy, lebih jauh lagi hal ini sangat berguna untuk membangun sebuah sistem jaringan yang menggunakan transparent proxy. Contohnya kita ingin mengalihkan semua koneksi yang menuju port http untuk memasuki aplikasi http proxy misalnya squid. Target ini hanya bekerja untuk tabel nat pada chain PREROUTING dan OUTPUT atau pada chain buatan yang dipanggil dari kedua chain tersebut.

#iptables –t nat –A PREROUTING –i eth1 –p tcp --dport 80 –j REDIRECT --to-port 3128

Sekian postingan saya kali ini, semoga bermanfaat.

Wassalamu'alaikum

0 comments:

Post a Comment