-->

Mengenal Firewall

advertise here
DASAR TEORI

A. IPTABLES
IPTables memiliki tiga macam daftar aturan bawaan dalam tabel penyaringan, daftar tersebut dinamakan rantai firewall (firewall chain) atau sering disebut chain saja. Ketiga chain tersebut adalah INPUT, OUTPUT dan FORWARD.









Pada diagram tersebut, lingkaran menggambarkan ketiga rantai atau chain. Pada saat sebuah paket sampai pada sebuah lingkaran, maka disitulah terjadi proses penyaringan. Rantai akan memutuskan nasib paket tersebut. Apabila keputusannnya adalah DROP, maka paket tersebut akan di-drop. Tetapi jika rantai memutuskan untuk ACCEPT, maka paket akan dilewatkan melalui diagram tersebut.

Sebuah rantai adalah aturan-aturan yang telah ditentukan. Setiap aturan menyatakan “jika paket memiliki informasi awal (header) seperti ini, maka inilah yang harus dilakukan terhadap paket”. Jika aturan tersebut tidak sesuai dengan paket, maka aturan berikutnya akan memproses paket tersebut. Apabila sampai aturan terakhir yang ada, paket tersebut belum memenuhi salah satu aturan, maka kernel akan melihat kebijakan bawaan (default) untuk memutuskan apa yang harus dilakukan kepada paket tersebut. Ada dua kebijakan bawaan yaitu default DROP dan default ACCEPT.

Jalannya sebuah paket melalui diagram tersebut bisa dicontohkan sebagai berikut:

Perjalanan paket yang diforward ke host yang lain

1.Paket berada pada jaringan fisik, contoh internet.
2.Paket masuk ke interface jaringan, contoh eth0.
3.Paket masuk ke chain PREROUTING pada table Mangle. Chain ini berfungsi untuk me-mangle (menghaluskan) paket, seperti merubah TOS, TTL dan lain-lain.
4.Paket masuk ke chain PREROUTING pada tabel nat. Chain ini berfungsi utamanya untuk melakukan DNAT (Destination Network Address Translation).
5.Paket mengalami keputusan routing, apakah akan diproses oleh host lokal atau diteruskan ke host lain.
6.Paket masuk ke chain FORWARD pada tabel filter. Disinlah proses pemfilteran yang utama terjadi.
7.Paket masuk ke chain POSTROUTING pada tabel nat. Chain ini berfungsi utamanya untuk melakukan SNAT (Source Network Address Translation).
8.Paket keluar menuju interface jaringan, contoh eth1.
9.Paket kembali berada pada jaringan fisik, contoh LAN.

Perjalanan paket yang ditujukan bagi host lokal

1.Paket berada dalam jaringan fisik, contoh internet.
2.Paket masuk ke interface jaringan, contoh eth0.
3.Paket masuk ke chain PREROUTING pada tabel mangle.
4.Paket masuk ke chain PREROUTING pada tabel nat.
5.Paket mengalami keputusan routing.
6.Paket masuk ke chain INPUT pada tabel filter untuk mengalami proses penyaringan.
7.Paket akan diterima oleh aplikasi lokal.

Perjalanan paket yang berasal dari host lokal

1.Aplikasi lokal menghasilkan paket data yang akan dikirimkan melalui jaringan.
2.Paket memasuki chain OUTPUT pada tabel mangle.
3.Paket memasuki chain OUTPUT pada tabel nat.
4.Paket memasuki chain OUTPUT pada tabel filter.
5.Paket mengalami keputusan routing, seperti ke mana paket harus pergi dan melalui interface mana.
6.Paket masuk ke chain POSTROUTING pada tabel NAT.
7.Paket masuk ke interface jaringan, contoh eth0.
8.Paket berada pada jaringan fisik, contoh internet.
9.Sintaks IPTables

iptables [-t table] command [match] [target/jump]

Table

IPTables memiliki 3 buah tabel, yaitu NAT, MANGLE dan FILTER. Penggunannya disesuaikan dengan sifat dan karakteristik masing-masing. Fungsi dari masing-masing tabel tersebut sebagai berikut :

NAT : Secara umum digunakan untuk melakukan Network Address Translation. NAT adalah penggantian field alamat asal atau alamat tujuan dari sebuah paket.

MANGLE : Digunakan untuk melakukan penghalusan (mangle) paket, seperti TTL, TOS dan
MARK.

FILTER : Secara umum, inilah pemfilteran paket yang sesungguhnya.. Di sini bisa dintukan apakah paket akan di-DROP, LOG, ACCEPT atau REJECT

B. NAT ( =Network Address Translation ( IP Masquarade )

NAT (Network Address Translation) adalah teknik pemecahan suatu IP number, sehingga satu nomer IP dapat dipecah menjadi banyak.Berguna sekali bila memiliki persediaan IP Publik yang terbatas. Selain itu berfungsi untuk melindungi Network yang berada di bawah Router agar tidak bisa diketahui secara langsung IP address yang ada di network tersebut dari luar network yang bersangkutan.

Setting jaringan untuk IP menggunakan NAT:

1.# apt-get install iptables
2.# iptables –t nat –A POSTROUTING –j MASQUERADE

C. Mengeblok _PC2 dan PC3 tidak bias mengakses Web dan FTP
Setting Jaringan pada PC1 untuk PC2 tidak bisa mengakses Web dan untuk PC3 tidak bisa mengakses FTP.

Topology










LANGKAH-LANGKAH PERCOBAAN

I. Setting Ip_forward

1. #cat /proc/sys/net/ipv4/ip_forward “0 or 1”
2. #echo 1> /proc/sys/net/ipv4/ip_forward

II. Setting menggunakan NAT

1. # apt-get install iptables
2. # iptables –t nat –A POSTROUTING –j MASQUERADE

3. Setting mengeblok PC2 dan PC3 supaya tidak bisa mengakses web dan FTP

HASIL PERCOBAAN

A. Percobaan ( Tanpa NAT ).
1.Komputer PC 1
[bugsfirewall@root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:00:E2:9A:C1:BE
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3180 errors:0 dropped:0 overruns:0 frame:0
TX packets:1513 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:240536 (234.8 Kb) TX bytes:144341 (140.9 Kb)
Interrupt:11 Base address:0xc000 Memory:ec000000-ec000038

eth0:1Link encap:Ethernet HWaddr 00:00:E2:9A:C1:BE
inet addr:10.252.108.219 Bcast:10.252.108.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3180 errors:0 dropped:0 overruns:0 frame:0
TX packets:1513 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:240536 (234.8 Kb) TX bytes:144341 (140.9 Kb)
Interrupt:11 Base address:0xc000 Memory:ec000000-ec000038

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:37136 errors:0 dropped:0 overruns:0 frame:0
TX packets:37136 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2534273 (2.4 Mb) TX bytes:2534273 (2.4 Mb)

[bugsfirewall@root]# route add default gw 10.252.108.1
[bugsfirewall@root]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.252.108.0 * 255.255.255.0 U 0 0 0 eth1
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 10.252.108.1 0.0.0.0 UG 0 0 0 eth1

[bugsfirewall@root]# cat /proc/sys/net/ipv4/ip_forward
0
[bugsfirewall@root]# echo 1 > /proc/sys/net/ipv4/ip_forward
[bugsfirewall@root]# cat /proc/sys/net/ipv4/ip_forward
1

- Untuk mengetahui siapa saja yang mengakses PC yang kita gunakan, lakukan perintah finger.
[bugsfirewall@root]# finger
Login Name Tty Idle Login Time Office Office Phone
depan pts/2 Feb 14 18:54 (192.168.1.2)
root pts/3 Feb 14 18:54 (192.168.1.3)
root root *:0 Feb 14 17:12 Programmin 031-5947280
root root pts/1 Feb 14 18:03 (:0.0)

--------------------------------------------------------------------------------------------------------
2.Komputer PC2


[depan@root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:00:E2:9A:C1:BE
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3180 errors:0 dropped:0 overruns:0 frame:0
TX packets:1513 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:240536 (234.8 Kb) TX bytes:144341 (140.9 Kb)
Interrupt:11 Base address:0xc000 Memory:ec000000-ec000038

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:37136 errors:0 dropped:0 overruns:0 frame:0
TX packets:37136 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2534273 (2.4 Mb) TX bytes:2534273 (2.4 Mb)

[depan@root]# route add default gw 192.168.1.1
[depan@root]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

--------------------------------------------------------------------------------------------------------
3.Komputer PC3

[root@root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:00:E2:9A:C1:BE
inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3180 errors:0 dropped:0 overruns:0 frame:0
TX packets:1513 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:240536 (234.8 Kb) TX bytes:144341 (140.9 Kb)
Interrupt:11 Base address:0xc000 Memory:ec000000-ec000038

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:37136 errors:0 dropped:0 overruns:0 frame:0
TX packets:37136 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2534273 (2.4 Mb) TX bytes:2534273 (2.4 Mb)

[root@root]# route add default gw 192.168.1.1
[root@root]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0

B. Percobaan ( Dengan NAT ).

1.Komputer PC 1

[bugsfirewall@root]# ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
From 192.168.1.1: icmp_seq=1 Redirect Host(New nexthop: 192.168.1.2)
64 bytes from 192.168.1.2: icmp_seq=1 ttl=63 time=0.364 ms

--- 192.168.1.2 ping statistics ---
6 packets transmitted, 1 received, 83% packet loss, time 5004ms
rtt min/avg/max/mdev = 0.364/0.364/0.364/0.000 ms

[bugsfirewall@root]# ping 192.168.1.3
PING 192.168.1.3 (192.168.1.3) 56(82) bytes of data.
From 192.168.1.1: icmp_seq=1 Redirect Host(New nexthop: 192.168.1.3)
64 bytes from 192.168.1.3: icmp_seq=1 ttl=63 time=0.364 ms

--- 192.168.1.3 ping statistics ---
6 packets transmitted, 1 received, 83% packet loss, time 5004ms
rtt min/avg/max/mdev = 0.364/0.364/0.364/0.000 ms

--------------------------------------------------------------------------------------------------------
2.Komputer PC2

[depan@root]# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
From 192.168.1.2: icmp_seq=1 Redirect Host(New nexthop: 192.168.1.1)
64 bytes from 192.168.1.1: icmp_seq=1 ttl=63 time=0.364 ms

--- 192.168.1.1 ping statistics ---
6 packets transmitted, 1 received, 83% packet loss, time 5004ms
rtt min/avg/max/mdev = 0.364/0.364/0.364/0.000 ms

[depan@root]# ping 192.168.1.3
PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data.
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.193 ms
64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.162 ms

--- 192.168.1.3 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1010ms
rtt min/avg/max/mdev = 0.162/0.177/0.193/0.020 ms

[depan@root]# ping 10.252.108.219
PING 10.252.108.219 (10.252.108.219) 56(84) bytes of data.
64 bytes from 10.252.108.219: icmp_seq=1 ttl=64 time=0.193 ms
64 bytes from 10.252.108.219: icmp_seq=2 ttl=64 time=0.162 ms

--- 10.252.108.219 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1010ms
rtt min/avg/max/mdev = 0.162/0.177/0.193/0.020 ms


--------------------------------------------------------------------------------------------------------
3.Komputer PC3

[root@root]# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
From 192.168.1.3: icmp_seq=1 Redirect Host(New nexthop: 192.168.1.1)
64 bytes from 192.168.1.1: icmp_seq=1 ttl=63 time=0.364 ms

--- 192.168.1.1 ping statistics ---
6 packets transmitted, 1 received, 83% packet loss, time 5004ms
rtt min/avg/max/mdev = 0.364/0.364/0.364/0.000 ms

[root@root]# ping 192.168.1.2
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.193 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.162 ms

--- 192.168.1.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1010ms
rtt min/avg/max/mdev = 0.162/0.177/0.193/0.020 ms

[root@root]# ping 10.252.108.219
PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 10.252.108.219: icmp_seq=1 ttl=64 time=0.193 ms
64 bytes from 10.252.108.219: icmp_seq=2 ttl=64 time=0.162 ms

--- 10.252.108.219 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1010ms
rtt min/avg/max/mdev = 0.162/0.177/0.193/0.020 ms

C. Blok PC2 dan PC3 agar tidak bisa akses web dan FTP

dilakukan dengan perintah:
# iptables -t Filter -A FORWARD -s 192.168.1.0/24 -d 0.0.0.0 -p tcp --dport 80 -j DROP
# iptables -t Filter -A FORWARD -s 192.168.1.0/24 -d 0.0.0.0 -p tcp --dport 21 -j DROP


VI. KESIMPULAN

NAT ( =Network Address Translation ( IP Masquarade ) adalah teknik pemecahan suatu IP number, sehingga satu nomer IP dapat dipecah menjadi banyak. Selain itu berfungsi untuk melindungi Network yang berada di bawah Router agar tidak bisa diketahui secara langsung IP address yang ada di network tersebut.

Perbedaan antara jaringan yang menggunakan Teknik NAT dengan yang tidak menggunakan teknik NAT, adalah pada saat dilakukan proses monitoring pengaksesan IP number.
Apabila jaringan tersebut menggunakan NAT maka IP number yang tampak adalah IP number dari router saja. Sedangkan jaringan yang tidak menggunakan teknik NAT, IP number yang tampak adalah IP number dari masing-masing PC client.

Rule dari firewall juga bisa diset agar client tidak bisa mengakses aplikasi tertentu berdasarkan nomor port yang digunakan. misalnya: aplikasi FTP dengan nomor port 21 atau web dengan nomor port 80.

Semoga Bermanfaat