Rabu, 19 Juni 2013

Modul 5 Jaringan Komputer (Tutorial Iptables)

Topologi dan subnet sama dengan modul sebelumnya.

Soal Shift


  1. Semua subnet tidak dapat mengakses TCP port 21, 443, 66 pada DMZ kecuali KEBUN_BIBIT sedangkan port TCP yang diizinkan untuk mengakses DMZ adalah port 80, 8080, 22.
  2. Mengijinkan semua akses UDP ke DMZ.
  3. Subnet DMZ tidak dapat di PING dari luar selain subnet AJK dan jaringan internal.
  4. Koneksi kepada DMZ melalui ssh dibatasi sebanyak 5 koneksi.
  5. Buatlah sebuah perintah iptables untuk mengatasi synflood
  6. Buatlah sebuah perintah iptables untuk mengatasi force ssh attack.
  7. Buatlah perintah iptables untuk memblok paket scanning. Contoh: xmas, file scan.
  8. Subnet taman_bungkul hanya bisa diakses oleh subnet kebun_bibit, subnet plasa_surabaya hanya bisa diakses ketika jam kerja (08.00 – 16.00), subnet sutos tidak bisa melakukan koneksi ke YM dan Facebook serta tidak bisa melakukan streaming video pada hari dan jam kerja (senin-jumat 07.00-17.00).
  9. Selain DMZ gunakan NAT untuk mengakses jaringan luar (tidak boleh menggunakan masquerade).
  10. Catat semua log yang di-drop oleh firewall.


Jawab

1.
Di Ampel
iptables -A INPUT -s 172.16.1.0/27 -i eth0 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 21 -j DROP
iptables -A INPUT -s 172.16.1.0/27 -i eth0 -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j DROP
iptables -A INPUT -s 172.16.1.0/27 -i eth0 -p tcp --dport 66 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 66 -j DROP

iptables -A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 8080 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT

2.
Di Ampel
iptables -A INPUT -i eth0 -p udp -s 0/0 --dport 53 -j ACCEPT

3.
Di Ampel
iptables -A FORWARD -p icmp -d 10.151.71.112/29 -s 10.151.36.0/24--icmp-type echo-request -j ACCEPT 
iptables -A FORWARD -p icmp -d 10.151.71.112/29 -s 172.16.0.0/18 --icmp-type echo-request -j ACCEPT 
iptables -A FORWARD -p icmp -d 10.151.71.112/29 --icmp-type echo-request -j REJECT

4.
Di Ampel
iptables -I INPUT -p icmp --icmp-type echo-request -m recent --set
iptables -I INPUT -p icmp --icmp-type echo-request -m recent --update --hitcount 5 -j DROP

5.
Di TP dan GM
iptables -N syn-flood
iptables -A syn-flood -m limit --limit 10/second --limit-burst 50 -j RETURN
iptables -A syn-flood -j LOG --log-prefix "SYN flood: "
iptables -A syn-flood -j DROP

6.
Di TP dan GM
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent  --update --seconds 60 --hitcount 4 -j DROP

Di Siola
iptables -A FORWARD -p tcp –d 172.16.2.0/26 -m time --timestart 08:00 --timestop 16:00 -j ACCEPT
iptables -A FORWARD -p tcp –d 172.16.2.0/26 -j REJECT

7.
Di TP dan GM(scan xmas)
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

8.
Di stasiun_gubeng
iptables -A INPUT -s 172.16.1.0/27 -i eth0 -j ACCEPT
iptables -A INPUT -i eth0 -j DROP

Di Siola
iptables -A FORWARD -p tcp –d 172.16.2.0/26 -m time --timestart 08:00 --timestop 16:00 -j ACCEPT
iptables -A FORWARD -p tcp –d 172.16.2.0/26 -j REJECT

Di balai_kota
iptables -A FORWARD -p tcp -d 172.16.0.0/24 -m time --timestart 07:00 --timestop 17:00 --weekdays Mon,Tue,Wed,Thu,Fri -j REJECT 
iptables -A FORWARD -p tcp -d www.facebook.com –s 172.16.0.0/24 -m time --timestart 07:00 --timestop 17:00 --weekdays Mon,Tue,Wed,Thu,Fri -j REJECT
iptables -A FORWARD -p tcp -d www.messenger.yahoo.com –s 172.16.0.0/24 -m time --timestart 07:00 --timestop 17:00 --weekdays Mon,Tue,Wed,Thu,Fri -j REJECT
iptables -A FORWARD -p tcp -d www.youtube.com –s 172.16.0.0/24 -m time --timestart 07:00 --timestop 17:00 --weekdays Mon,Tue,Wed,Thu,Fri -j REJECT

9.
iptables -t nat -A POSTROUTING -o ppp0 -j SNAT \ --to $PPPIP

10.
lihat di /var/log/firewall, warn, messgaes -clutter

Semua ditaruh di etc/rc.local masing-masing router atau DMZ sesuai kebutuhan lalu dilakukan service network restart serta reboot.

Jumat, 07 Juni 2013

Konfigurasi IP dan Tabel Routing serta Implementasi pada UML Menggunakan Algoritma CIDR

Berikut topologi yang diberikan:
Topologi Default
Pertama yang harus dilakukan adalah membagi topologi yang ada agar memiliki beberapa subnet kecil. Syarat pembagian subnet ini adalah dalam satu subnet kecil tidak boleh terdapat router. Sehingga antara ethernet router satu dengan ethernet router yang lainnya dihubungkan oleh sebuah subnet. Subnet-subnet kecil akan ditunjukkan dengan daerah-daerah yang dibatasi dengan garis berwarna hijau di bawah ini.
Topologi Default (1)
Pembagian berdasarkan abjad:
Topologi Default(5)
Untuk melakukan subnetting, kita harus tahu berapa kebutuhan alamat IP tiap-tiap subnet. Misalnya sutos memiliki 150 host, maka dia otomatis butuh 150 alamat IP untuk masing-masing host, 2 alamat IP untuk network ID dan broadcast ID, serta 1 alamat IP untuk kaki router balai_kota yang masuk subnet A. Dengan demikian subnet A butuh 153 alamat IP. Seharusnya kita bisa mengalokasikan hanya 153 alamat IP untuk subnet A, namun agar memudahkan penghitungan alamat IP maka kita alokasikan jumlah IP sebanyak 2^x untuk masing-masing subnet. Syarat berikutnya adalah 2^x harus lebih dari/sama dengan jumlah alamat IP yang dibutuhkan. Dengan demikian kita perlu mengalokasikan 256 atau 2^8 alamat IP untuk subnet A. Karena normalnya /0 adalah 2^32 alamat IP, maka kita cukup menuliskan /(32-8) atau /24 untuk subnet A.

Pembagian subnet berdasarkan alokasi jumlah alamat IP:

  • A: Butuh 153 alamat IP, sehingga perlu dialokasikan 256 alamat IP(/24)
  • B: Butuh 25 alamat IP, sehingga perlu dialokasikan 32 alamat IP(/27)
  • C: Butuh 63 alamat IP, sehingga perlu dialokasikan 64 alamat IP(/26)
  • D: Butuh 4 alamat IP, sehingga perlu dialokasikan 4 alamat IP(/30)
  • E: Butuh 4 alamat IP, sehingga perlu dialokasikan 4 alamat IP(/30)
  • F: Butuh 4 alamat IP, sehingga perlu dialokasikan 4 alamat IP(/30)
  • G: Butuh 28 alamat IP, sehingga perlu dialokasikan 32 alamat IP(/27)
  • H: Butuh 4 alamat IP, sehingga perlu dialokasikan 4 alamat IP(/30)
  • I: Butuh 4 alamat IP, sehingga perlu dialokasikan 4 alamat IP(/30)
  • J: Butuh 4 alamat IP, sehingga perlu dialokasikan 4 alamat IP(/30)
  • AB: Gabungan antara /24 dengan /27, sehingga /(24-1) = /23
  • ABC: Gabungan antara /23 dengan /26, sehingga /(23-1) = /22
  • ABCD: Gabungan antara /22 dengan /30, sehingga /(22-1) = /21
  • ABCDE: Gabungan antara /21 dengan /30, sehingga /(21-1) = /20
  • FG: Gabungan antara /30 dengan /27, sehingga /(27-1) = /26
  • HI: Gabungan antara /30 dengan /30, sehingga /(30-1) = /29 (DMZ)
  • HIJ: Tidak perlu digabung karena H dan I memiliki alokasi IP DMZ sendiri sebagai IP Public agar dapat diakses dari luar.
  • ABCDEFG: Gabungan antara /20 dengan /26, sehingga /(20-1) = /19
  • ABCDEFGHIJ: Gabungan antara /19 dengan /30, sehingga /(19-1) = /18

Pembagian IP(CIDR) adalah sebagai berikut:

  • ABCDEFGJ(/18): x.y.0.0 - x.y.63.255
  • ABCDEFG(/19): x.y.0.0 - x.y.31.255
  • ABCDE(/20): x.y.0.0 - x.y.15.255
  • ABCD(/21): x.y.0.0 - x.y.7.255
  • ABC(/22): x.y.0.0 - x.y.3.255
  • AB(/23): x.y.0.0 - x.y.1.255
  • J(/30): x.y.32.0 - x.y.32.3
  • FG(/26): x.y.16.0 - x.y.16.63
  • E(/30): x.y.8.0 - x.y.8.3
  • G(/27): x.y.16.0 - x.y.16.31
  • F(/30): x.y.16.32 - x.y.16.35
  • D(/30): x.y.4.0 - x.y.4.3
  • C(/26): x.y.2.0 - x.y.2.63
  • B(/27): x.y.1.0 - x.y.1.31
  • A(/24): x.y.0.0 - x.y.0.255

Pembagian IP di Host dan Router:

  • sutos: 172.16.0.1 (150 host diwakili 1 host)
  • balai_kota:
    • eth0: 172.16.1.30
    • eth1: 172.16.0.254
  • kebun_bibit: 172.16.1.1 (20 host diwakili 1 host)
  • siola:
    • eth0: 172.16.4.1
    • eth1: 172.16.2.62
    • eth2: 172.16.1.29
  • plaza_surabaya: 172.16.2.1 (60 host diwakili 1 host)
  • monkasel:
    • eth0: 172.16.8.1
    • eth1: 172.16.4.2
  • taman_bungkul: 172.16.16.1 (25 host diwakili 1 host)
  • stasiun_gubeng:
    • eth0: 172.16.16.33
    • eth1: 172.16.16.30
  • tp(DMZ): 10.151.71.113/30
  • gm(DMZ): 10.151.71.115/30
  • ampel:
    • eth0: 172.16.32.1
    • eth1: 10.151.71.114/30
    • eth2: 10.151.71.116/30
  • tugu_pahlawan:
    • eth0: 10.151.70.58 (satu subnet dengan IP tuntap)
    • eth1: 172.16.32.2
    • eth2: 172.16.8.2
    • eth3: 172.16.16.34

Cara mengatur routing table pada masing-masing router di UML adalah dengan memasukkan network ID subnet-subnet yang ada di bawah router tersebut dan menuliskan alamat IP next hop yang harus dilalui untuk menuju subnet yang diinginkan. Syntaxnya adalah "up ip route add <network ID/subnet> via <next hop>" dan dituliskan di "etc/network/interface" pada bagian ethernet yang dilalui sebagai jalan keluar dari router tersebut. Tambahkan semua subnet di bawah router yang akan diatur tabel routing-nya kecuali yang bersebelahan/menempel dengan router tersebut. Dengan cara ini maka tiap router akan mengenali semua network ID dari subnet-subnet yang ada di bawahnya. Jangan lupa juga menuliskan alamat IP yang dijadikan sebagai gateway router itu agar dia mengirimkan paket ke alamat gateway ketika dia tidak menemukan alamat IP yang dituju.
Berikut ini kutipan gambar hasil pengaturan alamat IP beserta tabel routing pada UML(router dan host).
tugu_pahlawan

ampel

tp

gm

stasiun_gubeng

taman_bungkul

monkasel

siola

plaza_surabaya

kebun_bibit

balai_kota

sutos

Kemudian pada masing-masing router, jalankan perintah "nano /etc/sysctl.conf". Cari baris yang sesuai kutipan gambar berikut ini.
sysctl.conf(1)
Lalu uncomment baris tersebut agar router dapat meneruskan paket.
sysctl.conf(2)
Lakukan perintah ip forwarding di atas pada setiap router yang ada.
Untuk memeriksa apakah router sudah dapat meneruskan paket, lakukan perintah seperti kutipan gambar berikut.
sysctl -p
Jika UML menampilkan report seperti di atas, maka seharusnya router tersebut sudah dapat meneruskan paket.

Setelah semua konfigurasi di atas kita lakukan, jalankan perintah "service network restart" pada seluruh router dan host. Dengan ini, masing-masing host dan router sudah bisa mengirim dan menerima paket satu sama lain. Untuk mengetes, lakukan perintah "ping <alamat IP yang dituju>".

Agar host pada topologi ini dapat mengirim paket ke server lokal lain, kita perlu melakukan konfigurasi tambahan pada router yang terhubung dengan tuntap, yaitu tugu_pahlawan. Lakukan perintah "nano /etc/rc.local" pada jendela tugu_pahlawan. Tambahkan konfigurasi seperti berikut ini.
rc.local
Konfigurasi ini akan membuat router tugu_pahlawan dapat melakukan request ke gateway supaya terkoneksi dengan internet luar. Untuk lebih jelasnya lagi silakan cari referensi tentang fungsi-fungsi iptables di internet.
Setelah melakukan konfigurasi di atas, jalankan perintah "reboot" di tugu_pahlawan maka seluruh host yang ada di topologi ini sudah dapat melakukan ping ke alamat IP luar atau server lokal lain di luar topologi ini.