6.19.2013

Pembahasan Modul 5 : IPTABLES

Praktikum JarKom Modul 5 ini membahas mengenai IPTABLES. Sebelum masuk ke Soal Shift, ada beberapa hal penting terkait IPTABLES yang perlu diketahui terlebih dahulu. Diantaranya diambil dari soal pada Laporan Pendahuluan.
1.      Apakah yang dimaksud dengan IPTABLES?
Kita sudah mengenal firewall pada sistem operasi windows. Untuk sistem operasi linux, dikenal iptables yang juga serupa dengan firewall. Iptables adalah konfigurasi dalam sistem operasi linux yang berfungsi dalam melakukan filter terhadap lalulintas data. Dengan melakukan konfigurasi iptables inilah kita dapat mengatur semua lalulintas dalam jaringan, baik akses ke jaringan luar, ke dalam, ataupun yang hanya melewati jaringan kita.

2.      Bagaimana aturan penulisan dalam 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. Ketiga chain tersebut terdapat dalam tabel FILTER. Perhatikan gambar berikut ini.
Setiap CHAIN memiliki RULE. Misalkan, paket yang tersaring dalam kategori INPUT akan dikenakan RULE yang berkaitan dengan chain input. Sebuah rule memuat kriteria dan target tertentu. Jika sebuah kriteria didapati cocok, maka sebuah aksi khusus akan diterapkan kepada paket yang berhubungan dengan target. Jika tidak sesuai dengan sebuah kriteria, maka iptables akan mengecek rule selanjutnya.
Adapun yang aksi target yang termasuk dalam rule tersebut adalah ACCEPT, REJECT, DROP, QUEUE, dan RETURN.
Jadi, berdasarkan aturan tersebut, sintaks iptables adalah sebagai berikut.
iptables [-t table] command [match] [target/jump]
Perlu diperhatikan bahwa iptables membaca chain dari atas ke bawah (top-down match).

3.      Ada berapa tables dalam IPTABLES?
Didalam iptables terdapat 3 table yang memiliki fungsinya masing-masing. Berikut adalah ketiga table tersebut:
Ø  Filter
Table Filter adalah table default (jika kita tidak menulis opsi -t ). Table ini berisi chain-chain bawaan seperti INPUT (untuk paket yang di tujukan pada host local), FORWARD (Untuk paket yang melewati host dalam jaringan kita), dan OUTPUT(untuk paket-paket dari jaringan kita jika di fungsikan sebagai gateway).
Ø  NAT
Table NAT berguna untuk memungkinkan sebuah host dalam jaringan untuk berbagi IP yang sama. Table ini berisi chain-chain bawaan seperti: PREROUTING (untuk merubah paket secepat paket itu tiba), OUTPUT (untuk perubahakan paket local sebelum dia di Routing), dan POSTROUTING (untuk perubahan paket yang akan keluar).
Ø  Mangle
Table Mangle berguna untuk perubahan paket yang dispecialkan. Tabel ini juga memiliki tiga chain bawaan yang di suport: INPUT (untuk paket yang di tujukan untuk mesin itu sendiri),FORWARD (untuk paket yang melewati mesin itu sendiri), dan POSTROUTING (untuk perubahan paket yang akan keluar setelah routing terjadi).

4.      Apa perbedaan 3 jenis chain pada table filter?
Ketiga chain dalam tabel filter adalah fordward, input, dan output. Input chain akan diterapkan untuk paket yang masuk/datang ke dalam host. Output chain diterapkan untuk paket yang dibuat dari dalam host (lokal) dan hendak keluar host. Sedangkan, forward chain akan diterapkan untuk paket yang melalui host, berasal dari komputer lain, dan melalui host (router) untuk keperluan routing.

5.      Ada berapa jenis NAT?
Terdapat 3 jenis NAT, sebagai berikut.
  1. Static NAT adalah mekanisme pemetaan one-to-one antara IP private ke IP public (registered IP).
  2. Dynamic NAT adalah mekanisme pemetaan dimana terdapat beberapa IP address terdaftar, kemudian pada tiap IP address private akan dipetakan ke salah satu IP address terdaftar. Berbeda dengan Static NAT, yang akan selalu memetakan salah satu IP address private ke IP address tertentu, pada Dynamic NAT ini, sebuah IP address private tidak selalu mendapatkan IP address terdaftar yang sama.
  3. Overloading adalah variasi dari Dynamic NAT yang juga diketahui sebagai NAPT(Network Address Port Translation) yang memetakan beberapa IP private ke sebuah IP yang terdaftar dan dibedakan berdasarkan TCP/UDP port number.

6.      Apa yang membedakan Mangle dengan table yang lain?
Tabel mangle dalam iptables berfungsi untuk merubah paket. Hal ini berbeda dengan tabel lainnya, tabel nat untuk network address translation, dan tabel filter untuk penyaringan paket. Tabel mangle mengubah Quality of Service bits pada TCP header. Mangle digunakan untuk melakukan penghalusan paket, seperti TTL, TOS, dan MARK.

7.      Apa tujuan dari penggunaan Chain Prerouting dengan Chain Postrouting?
  1. Chain Prerouting bertujuan untuk melakukan NAT sebelum paket benar-benar sampai pada tahap routing yang akan mengirim paket ke INPUT atau FORWARD chains didalam filter table.
  2. Chain Postrouting bertujuan untuk melakukan NAT pada semua paket yang akan keluar dari jaringan ke internet.

Berikut adalah beberapa contoh penerapan IPTABLES untuk berbagai macam kasus penggunaan.

a)
#semua tidak dapat akses tcp port 21,443,66 pada DMZ, kecuali KEBUN BIBIT
#tcp port yang diizinkan pada DMZ adalah port 80,8080,22
(terapkan di ampel)

iptables -A FORWARD -s 10.96.0.0/11 -p tcp -m multiport --dports 21,443,66 -j ACCEPT
iptables -A FORWARD -s 0/0 -p tcp -m multiport --dports 21,443,66 -j REJECT
iptables -A FORWARD -s 0/0 -p tcp -m multiport --dports 80,8080,22 -j ACCEPT
iptables -A FORWARD -s 0/0 -p tcp -j REJECT

b)
#izinkan semua akses UDP ke DMZ
#(terapkan di ampel)
iptables -A FORWARD -s 0/0 -p udp -j ACCEPT

#(terapkan di dmz tp & gm)
iptables -A INPUT -s 0/0 -p udp -j ACCEPT

c)
#subnet dmz tidak dapat di PING, kecuali dengan jaringan AJK dan internal
#(terapkan di ampel)
iptables -A FORWARD -s 10.151.36.0/24 -d 10.151.71.64/29 -p icmp -j ACCEPT
iptables -A FORWARD -s 10.0.0.0/8 -o eth1 -p icmp -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -d 10.151.71.64/29 -p icmp -j DROP

d)
#koneksi SSH pada DMZ dibatasi sebanyak 5 koneksi
#(terapkan di ampel)
#maksimal total 5 koneksi per menit
iptables -A FORWARD -p tcp --dport 22 -m limit --limit 5/minute --limit-burst 1 -j ACCEPT
iptables -A FORWARD -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

#atau, per host 5 koneksi
iptables -A FORWARD -p tcp --dport 22 -m recent --set
iptables -A FORWARD -p tcp --dport 22 -m recent --update seconds 1 -- hitcount 5 -j REJECT
iptables -A FORWARD -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

e)
#lakukan konfigurasi untuk mengatasi syn flood
#(terapkan di tugu_pahlawan)
iptables -A FORWARD -p tcp --syn -m limit --limit 5/second --limit-burst 1 -i eth0 -j ACCEPT

f)
#lakukan konfigurasi untuk mengatasi force ssh attack
#(diterapkan di ampel apabila ssh hanya ada di dmz)
iptables -A FORWARD -p tcp --dport 22 -m state --state NEW -m limit --limit 5/second --limit-burst 1 -j ACCEPT
iptables -A FORWARD -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ACCEPT

g)
#konfigurasi untuk memblok paket scanning (contoh: xmas, fin scan)
#(diterapkan di tugu_pahlawan)
iptables -A INPUT -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL XMAS,FIN -j DROP

h)
#subnet taman_bungkul hanya bisa diakses oleh subnet kebun_bibit
#(diterapkan di siola)
iptables -A FORWARD -i eth0 -s 10.104.0.0/13 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j DROP

#subnet plasa_surabaya hanya bisa diakses pada pukul 08.00-16.00
#(diterapkan di balai_kota)
iptables -A FORWARD -i eth0 -o eth1 -m time --timestart 08:00 --timestop 16:00 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j DROP

#subnet sutos tidak bisa akses YM, FB, dan streaming video pada senin-jumat 07.00-17.00
#(diterapkan di stasiun_gubeng)
iptables -A FORWARD -i eth1 -o eth0 -p tcp -m multiport --dports 5050,80,443 -m time --timestart 07:00 --timestop 17:00 --days Mon,Tue,Wed,Thu,Fri -j DROP
iptables -A FORWARD -i eth1 -o eth0 -p udp --dport 1024:65535 -m time --timestart 07:00 --timestop 17:00 --days Mon,Tue,Wed,Thu,Fri -j DROP

i)
#selain DMZ gunakan NAT untuk mengakses jaringan luar, dilarang menggunakan masquerade
#(diterapkan di tugu_pahlawan)
iptables -t nat -A POSTROUTING -i eth2 -o eth0 -j SNAT
iptables -t nat -A POSTROUTING -i eth3 -o eth0 -j SNAT
iptables -A FORWARD -i eth2 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth3 -o eth0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -o eth0 -j DROP

j)
#catat semua log yang di drop oleh firewall
#(diterapkan di setiap router yang melakukan firewall)
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7
iptables -A LOGGING -j DROP

iptables -A OUTPUT -j LOG
iptables -A INPUT -j LOG
iptables -A FORWARD -j LOG
 
iptables -A OUTPUT -j DROP
iptables -A INPUT -j DROP
iptables -A FORWARD -j DROP

6.10.2013

Pembahasan Modul 4: Routing

Baiklah, pada bahasan kali ini, sebenarnya merupakan lanjutan dari bahasan sebelumnya. Seperti yang tertulis pada judul, pada pembahasan ini, saya akan membahas terkait dengan proses Routing. Seperti biasa, sebelum masuk ke materi, saya akan memaparkan definisi dasar dari Routing agar pembaca dapat memiliki gambaran terkait materi Routing ini.

Jadi, menurut wikipedia Routing atau Penghalaan adalah sebuah proses untuk meneruskan paket-paket jaringan dari satu jaringan ke jaringan lainnya melalui sebuah antar-jaringan (internetwork). Penghalaan juga dapat merujuk kepada sebuah metode penggabungan beberapa jaringan sehingga paket-paket data dapat dialirhantarkan dari satu jaringan ke jaringan selanjutnya. Untuk melakukan hal ini, digunakanlah sebuah perangkat jaringan yang disebut sebagai penghala. Penghala-penghala tersebut akan menerima paket-paket yang ditujukan ke jaringan di luar jaringan yang pertama, dan akan meneruskan paket yang diterima kepada penghala lainnya hingga sampai kepada tujuannya.

Langsung saja, saya akan membahas kembali topologi sebelumnya, seperti gambar berikut.

Berikut adalah konfigurasi untuk tiap-tiap node dalam jaringan.

Konfigurasi Router
  • Hostname: tugu_pahlawan

Hosttype: router
Network: TUNTAP, SA1, SA2, SA3
Interface
Connect to
IP Address/Mask
Netmask
Gateway
eth0
tuntap
10.151.70.34/24
255.255.255.0
10.151.70.33
eth1
switch (SA1)
10.32.0.1/11
255.224.0.0

eth2
switch (SA2)
10.68.0.1/14
255.252.0.0
eth3
switch (SA3)
10.104.0.1/13
255.248.0.0
Routing
post-up route add -net 10.64.0.0/11 gw 10.68.0.2 #SA2,(SC1,SE1),(SC2,SF1)
post-up route add -net 10.96.0.0/11 gw 10.104.0.2 #SA3,SD1
post-up route add -net 10.151.71.64/29 gw 10.36.0.2 #tp,gm
route add default gw 10.151.70.33

  • Hostname: ampel

Hosttype: router
Network: SA1, SB1, SB2
Interface
Connect to
IP Address/Mask
Netmask
Gateway
eth0
switch (SA1)
10.32.0.2/11
255.252.0.0
10.32.0.1
eth1
switch (SB1)
10.151.71.64/30
255.255.255.252

eth2
switch (SB2)
10.151.71.68/30
255.255.255.252
Routing:
route add default gw 10.32.0.1

  • Hostname: monkasel

Hosttype: router
Network: SA2, SC1, SC2
Interface
Connect to
IP Address/Mask
Netmask
Gateway
eth0
switch (SA2)
10.68.0.2/14
255.252.0.0
10.68.0.1
eth1
switch (SC1)
10.73.0.1/16
255.255.0.0

eth2
switch (SC2)
10.77.0.1/16
255.255.0.0
Routing:
post-up route add -net 10.74.0.0/16 gw 10.73.0.2 #SE1
post-up route add -net 10.78.0.0/16 gw 10.77.0.2 #SF1
route add default gw 10.68.0.1

  • Hostname: stasiun_gubeng

Hosttype: router
Network: SA3, SD1
Interface
Connect to
IP Address/Mask
Netmask
Gateway
eth0
switch (SA3)
10.104.0.2/13
255.248.0.0
10.104.0.1
eth1
switch (SD1)
10.112.0.1/13
255.248.0.0

Routing:
route add default gw 10.104.0.1

  • Hostname: siola

Hosttype: router
Network: SC1, SE1
Interface
Connect to
IP Address/Mask
Netmask
Gateway
eth0
switch (SC1)
10.73.0.2/16
255.255.0.0
10.73.0.1
eth1
switch (SE1)
10.74.0.1/16
255.255.0.0

Routing:
route add default gw 10.73.0.1

  • Hostname: balai_kota

Hosttype: router
Network: SC2, SF1
Interface
Connect to
IP Address/Mask
Netmask
Gateway
eth0
switch (SC2)
10.77.0.2/16
255.255.0.0
10.77.0.1
eth1
switch (SF1)
10.78.0.1/16
255.255.0.0

Routing:
route add default gw 10.77.0.1

    Konfigurasi DMZ

  • Hostname: tp

Hosttype: dmz
Network: SB1
Interface
Connect to
IP Address/Mask
Netmask
Gateway
eth0
switch (SB1)
10.151.71.66/30
255.255.255.252
10.151.71.65

  • Hostname: gm

Hosttype: dmz
Network: SB2
Interface
Connect to
IP Address/Mask
Netmask
Gateway
eth0
switch (SB2)
10.151.71.70/30
255.255.255.252
10.151.71.69

Konfigurasi Host
  • Hostname: taman_bungkul

Hosttype: host
Network: SE1
Interface
Connect to
IP Address/Mask
Netmask
Gateway
eth0
switch (SE1)
10.74.0.10/16
255.255.0.0
10.74.0.1/16

  • Hostname: plaza_surabaya

Hosttype: host
Network: SF1
Interface
Connect to
IP Address/Mask
Netmask
Gateway
eth0
switch (SF1)
10.78.0.10/16
255.255.0.0
10.78.0.1

Hostname: kebun_bibit
Hosttype: host
Network: SA3
Interface
Connect to
IP Address/Mask
Netmask
Gateway
eth0
switch (SA3)
10.104.0.10/13
255.248.0.0
10.104.0.1

  • Hostname: sutos

Hosttype: host
Network: SD1
Interface
Connect to
IP Address/Mask
Netmask
Gateway
eth0
switch (SD1)
10.112.0.10/13
255.248.0.0
10.112.0.1


Begitulah konfigurasi yang dapat diterapkan untuk proses routing. Singkatnya, router tidak mampu mengenali  jaringan selain jaringan yang satu interface dengan router itu sendiri, sehingga perlu didaftarkan jalur-jalur untuk Network Address yang tidak dikenali oleh router sehingga antar host didalam Network Address tersebut tetap dapat saling berkirim paket.

Pada topologi tersebut, untuk tiap router yang mendaftarkan Network Address lain melalui router tugu_pahlawan akan langsung didefinisikan melalui default gateway yaitu IP: 0.0.0.0  dan Netmask: 0.0.0.0. Hal tersebut berarti mendaftarkan seluruh IP yang belum terdaftarkan sehingga akan selalu ada jalur komunikasi antar router yang jaraknya sangat berjauhan sekalipun.

Pembahasan Modul 4 : Subnetting

Pada modul 4 Praktikum Jaringan Komputer, mengulas materi terkait Subnetting dan Routing. Pada post kali ini, saya akan membahas terlebih dahulu materi Subnetting karena Routing dapat dilakukan setelah kita telah selesai melakukan Subnetting.

Subnetting adalah proses pembagian sebuah jaringan menjadi beberapa jaringan. Secara teknis, subnetting berarti proses pengalokasian dan pengelompokkan beberapa bit IP address berorde tinggi dari bagian host ID untuk membentuk sebuah subnet mask.

Pada pembahasan Subnetting dan Routing ini, selanjutnya saya akan menggunakan bentuk topologi sebagai berikut.
Click to Enlarge




Untuk melakukan subnetting, kita perlu melakukan pembagian jaringan menjadi beberapa subnet terlebih dahulu. Hasil pembagian subnet adalah sebagai berikut ( Satu lingkaran adalah satu subnet )
Click to Enlarge
Dari proses subnetting diatas, dapat diketahui bahwa terdapat 10 subnet kecil, yaitu:
1. SA1
2. SA2
3. SA3
4. SB1
5. SB2
6. SC1
7. SC2
8. SE1
9. SF1
10. SD1

Subnet-subnet tersebut adalah subnet kecil yang berarti sudah tidak dapat dibagi-bagi lagi menjadi subnet-subnet yang lebih kecil. Sebenarnya untuk mendapat subnet tersebut, proses subnetnya adalah sebagai berikut:

Subnetting
Inisialisasi
Network ID: 10.0.0.0/8
Netmask: 255.0.0.0
Subnet
Subnetting
Network ID/Mask
SA1-SB1-SB2
10.00100000.0.0
10.32.0.0/11
SA2-(SC1-SE1)-(SC2-SF1)
10.01000000.0.0
10.64.0.0/11
SA3-SD1
10.01100000.0.0
10.96.0.0/11

Subnet: SA1-SB1-SB2
Network ID: 10.32.0.0/14
Netmask: 255.224.0.0
Subnet
Subnetting
Network ID/Mask
SA1

10.32.0.0/11
SB1
10.151.71.64/30 (DMZ)
SB2
10.151.71.68/30 (DMZ)

Subnet: SA2-(SC1-SE1)-(SC2-SF1)
Network ID: 10.64.0.0/14
Netmask: 255.224.0.0
Subnet
Subnetting
Network ID/Mask
SA2
10.01000100.0.0
10.68.0.0/14
SC1-SE1
10.01001000.0.0
10.72.0.0/14
SC2-SF1
10.01001100.0.0
10.76.0.0/14

Subnet: SC1-SE1
Network ID: 10.72.0.0/14
Netmask: 255.252.0.0
Subnet
Subnetting
Network ID/Mask
SC1
10.01001001.0.0
10.73.0.0/16
SE1
10.01001010.0.0
10.74.0.0/16

Subnet: SC2-SF1
Network ID: 10.76.0.0/14
Netmask: 255.252.0.0
Subnet
Subnetting
Network ID/Mask
SC2
10.01001101.0.0
10.77.0.0/16
SF1
10.01001110.0.0
10.78.0.0/16

Subnet: SA3-SD1
Network ID: 10.96.0.0/11
Netmask: 255.224.0.0
Subnet
Subnetting
Network ID/Mask
SA3
10.01101000.0.0
10.104.0.0/13
SD1
10.01110000.0.0
10.112.0.0/13

Rangkuman Seluruh Subnet
Subnet
Network ID/Mask
Netmask
SA1
10.32.0.0/11
255.224.0.0
SA2
10.68.0.0/14
255.252.0.0
SA3
10.104.0.0/13
255.248.0.0
SB1
10.151.71.64/30
255.255.255.252
SB2
10.151.71.68/30
255.255.255.252
SC1
10.73.0.0/16
255.255.0.0
SC2
10.77.0.0/16
255.255.0.0
SD1
10.112.0.0/13
255.248.0.0
SE1
10.151.71.64//30
255.255.0.0
SF1
10.151.71.68/30
255.255.0.0

Begitulah proses subnetting hingga didapatkan subnet terkecil beserta masing-masing alamat IP dan Netmasknya. Pada bahasan selanjutnya, akan saya jelaskan mengenai proses routing. Tentunya saya masih menggunakan topologi dan jaringan yang sama.