Ahhh... ACL, lagi ...?

Pada postingan lalu, kita telah mempelajari Standard ACL, dan sedikit menyinggung tentang Extended ACL. Extended ACL menyediakan fitur yang lebih fleksibel untuk menyaring paket data. Jika pada Standard ACL, paket data di-filter berdasarkan source IP Address, Extended ACL akan mem-filter paket data berdasarkan source dan destination IP Address, source dan destination port serta protocol.

Fleksibilitas inilah yang membuat kita dapat membuat Access Control List yang sangat spesifik sesuai dengan kebutuhan. Contohnya kita dapat membolehkan traffik email sementara pada saat yang sama, memblok file transfer dan browsing.

Konfigurasi Extended ACL

Sintaks dasar untuk mengkonfigurasikan Extended ACL adalah :
 access-list acl-nomor [permit|deny] protocol source [source-wildcard] dest [dest-wildcard] [logic dest-port]  
contoh topologi extended acl
Pada contoh ini kita akan mengkonfigurasikan extended acl yang memblok (deny) trafik ftp ke network 10.0.0.0 /24 , tapi membolehkan ke network yang lain.
cat: 
ftp menggunakan port 20 dan 21

Definisikan protokol, source, destination dan port mana yang diblok,
Router(config)#access-list 101 deny tcp 10.0.0.0 0.0.0.255 118.10.1.6 0.0.0.0  eq 20
Router(config)#access-list 101 deny tcp 10.0.0.0 0.0.0.255 118.10.1.6 0.0.0.0 eq 21
Router(config)#access-list 101 permit ip any any

Terapkan acl 101 pada interface
Router(config)#interface fa0/0
Router(config-if)#ip access-group 101 out

Perhatikan bahwa kita harus membuat trafik lain tidak diblok ( access-list permit 101 ip any any) karena ada pada akhir setiap acl terdapat "deny all" yang memblok semua trafik.
Seperti yang kita lihat pada contoh acl diatas, destination  ditullis dengan "118.10.1.6 0.0.0.0" yang menentukan host. Kita dapat juga menggunakan perintah "host 118.10.1.6".
Pernyataan "118.10.1.6 0.0.0.0" mengunakan wildcard masking.

Logic Operator ACL

Pada contoh acl diatas, terdapat statement "eq" yang berarti "equal". Berikut ini adalah logic operator yang digunakan oleh Cisco IOS
gt = greater than
eq = equal to
neq = not equal to
range = range of port number

Named ACL

Sifat manusia yang pelupa membuat kita lebih mudah mengingat nama daripada mengingat nomor. Membuat nama ACL akan memudahkan kita mengingat fungsinya, contoh ACL diatas lebih mudah diingat dengan nama NO_FTP.
Sintaks dasar untuk mengkonfigurasikan named ACL 
ip access-list [standard | extended] nama-acl

Untuk contoh acl diatas, versi named acl

Router(config)#ip access-list NO_FTP
deny tcp 10.0.0.0 0.0.0.255 118.10.1.6 0.0.0.0  eq 20
Router(config-ext-nacl)#101 deny tcp 10.0.0.0 0.0.0.255 118.10.1.6 0.0.0.0  eq 21
Router(config-ext-nacl)#101 permit any any
Router(config-ext-nacl)#end
Router(config)#interface fa0/0
Router(config-if)# ip access-group NO_FTP out

Ahhh ACL, Access Control List

ACL atau Access Control List adalah sekumpulan aturan . Tujuannya untuk meningkatkan keamanan jaringan 
Pada keluarga *NIX/Linux dikenal dengan nama packet filtering / netfilter dengan software-nya yang populer, iptables.

Cara kerja ACL pada Cisco IOS
  1. Paket data yang masuk atau keluar akan dibandingkan dengan statement pertama dari access-list
  2. Jika paket data cocok, aksi akan dilakukan (permit atau deny). Proses berakhir untuk paket data.
  3. Jika tidak cocok, ulangi langkah 1 dan 2 dengan statement berikutnya (top - down processing)
  4. Jika paket data tidak cocok dibandingkan dengan seluruh baris accessl-list, paket akan di deny.

ACL dapat di kelompokkan menjadi 2 tipe
  • Standard ACL
  • Extended ACL
Pada gambar dibawah ini kita dapat melihat jenis ACL yang didukung oleh Cisco IOS versi 12.4. 
Cisco's Access Control List

Standard Access Control List 

Standar ACL akan menyaring paket data hanya berdasarkan Source IP Address atau subnet, pada dasarnya hanya membolehkan permit atau deny untuk seluruh paket data. Untuk ACL yang lebih fleksibel dapat menggunakan Extended ACL yang menyaring paket data berdasarkan source dan destination IP Address, source dan destination port, dan protokol TCP/IP seperti ICMP, UDP dan TCP, lebih jelasnya lihat disini.


Pada Cisco IOS, untuk membuat ACL yang kita lakukan adalah:
  1. Definisikan rule menggunakan perintah access-list.
  2. Langkah berikutnya, menerapkan rule -yang telah didefinisikan sebelumnya- pada interface menggunakan perintah access-group, dengan arah inbound atau outbound.

Sintaks ACL

access-list accesss-list number [permit | deny] [ip address | any] [wildcard mask(opt)]

access-list number 
Standard ACL nomor 1 sampai 99 dan 1300 - 1999
Extended ACL nomor 100 - 199  dan 2000-2099                             
wildcard mask  lihat disini

contoh:
access-list 1 permit 192.168.1.1 0.0.0.0
router(config)#interface fa0/0
router(config-int)#ip access-group 1 in

tergantung interface dan direction, jika acl diatas diterapkan pada interface fa0/0 dengan perintah "ip access-group 1 in " maka hanya traffic dari 192.168.1.1 yang diteruskan ke interface fa0/0 , jika menggunakan "ip access-group 1 out" maka hanya traffic dari 192.168.1.1 yang boleh keluar dari interface fa0/0.


Pedoman untuk membuat Access List

Design dan implementasi jaringan yang baik dapat menambah keamanan. Berikut beberapa hal yang perlu diperhatikan dalam mengkonfigurasi ACL
  • Pilih jenis ACL apakah standar atau extended berdasarkan kondisi 
  • ACL akan di eksekusi dari baris pertama sampai baris terakhir (top-down), sehingga jika baris pertama cocok, baris berikutnya tidak akan diproses. Buatlah sedemikian rupa sehingga aturannya dari spesifik ke general.
  • Hanya boleh satu ACL per interface, per protocol, per direction yang diijinkan.
  • Tempatkan Standard ACL sedekat mungkin dengan destination traffic , dan Extended ACL source sedekat mungkin dengan source traffic.
  • Ada statement deny all pada setiap acl yang kita buat, sehingga setiap acl setidaknya harus mempunyai satu statement permit, jika tidak semua traffic akan di deny / drop.

Monitoring Access Control List pada Cisco IOS

Perintah berikut ini berguna untuk memeriksa konfigurasi ACL
  • show access-list
  • show access-list access-list number
  • show ip access-list
  • show ip interface
  • show running-config 

Konfigurasi RIP dengan otentikasi

Ada beberapa cara untuk mengamankan jaringan komputer, menggunakan Access Control List, menggunakan password untuk otentikasi, tunnelling dll. Salah satu cara adalah mengamankan pertukaran informasi antara router, sehingga kita dapat memastikan bahwa informasi yang dimasukkan ke tabel routing valid. RIP versi 2 telah mendukung otentikasi.   Ada dua pilihan otentikasi plain-text atau md5. Pada cisco defaultnya adalah plain-text.
topologi jaringan
Router R1 dan R2 terkoneksi langsung melalui interface serial-nya. Menggunakan routing protocol RIP, kita ingin agar paket update yang dikirim dan diterima oleh router tersebut terotentikasi.
Konfigurasi interfase serial, agar kedua router terkoneksi

 Konfigurasi dasar Router R1

Konfigurasi dasar Router R2
Tes koneksi antar router

Konfigurasi RIP versi 2

Ok... sebelum melanjutkan pada konfigurasi otentikasi, kita kembali ke basic. Kita aktifkan RIP pada kedua router.
konfiurasi RIPv2 pada Router R1

konfiurasi RIPv2 pada Router R2

Verifikasi RIP

Pastikan bahwa kedua router telah saling bertukar informasi,
verify RIPv2 pada R1
verify RIPv2 pada R2


Setelah kita memastikan bahwa kedua router dapat mengirim dan menerima paket update, kita akan membuat key chain, key dan key string, yang akan digunakan untuk otentikasi.

Konfigurasi parameter otentikasi
konfigurasi key chain, key dan key string pada R1
konfigurasi key chain, key dan key string pada R2


catatan :
  • key chain "kunci" tidak perlu sama pada kedua router
  • nomor identifikasi "key 1" tidak perlu sama KECUALI menggunakan otentikasi md5
  • "key string p4ssw0rd " adalah password sebenarnya, harus sama pada kedua router

 

Konfigurasi plain-text otentikasi

konfigurasi plain-text pada R1
konfigurasi plain-text pada R2

 

Verifikasi plain-text otentikasi

debug ip rip
seperti kita lihat diatas, hasil dari perintah debug ip rip, passwordnya terlihat jelas. Pilihan labih baik adalah menggunakan otentikasi md5.

 

Konfigurasi dan verifikasi otentikasi md5

Mari kita setting otentikasi md5 pada Router R1, mengaktifkan debug pada Router R2 untuk melihat apa yang terjadi,

konfigurasi md5 pada R1

Pada Router R2, 
konfigurasi md5 pada R2

Pada hasil perintah "debug ip rip " , kita dapat melihat R2 mengabaikan paket update yang diterima dari Router R1 dengan informasi "(invalid authentication)". Kemudian kita setting otentikasi md5 pada Router R2, informasi paket update dapat saling diterima oleh kedua router seperti yang terlihat pada hasil "debug ip rip" di Router R1

Otentikasi md5 pada cisco router sangat mudah untuk dikonfigurasikan, seperti yang terlihat dari tutorial diatas.

Konfigurasi Dasar Routing Information Protocol (RIP)

Routing Information Protocol atau RIP adalah salah satu routing protokol yang tertua, yang menggunakan hop count sebagai routing metric-nya 

Karakter RIP  

  • Merupakan Distance Vector routing protocol murni
  • Hop Count sebagai metric untuk memilih rute terbaik 
  • Maksimum hop count adalah 15, hop ke 16 dianggap unreachable 
  • Mengirimkan update lengkap tabel routingnya pada semua interface yang aktif setiap 30 detik

Versi RIP


Terdapat tiga versi dari routing protocol RIP:
1. RIP Version 1
  • Clasfull routing protocol
2. RIP Version 2
    Sama sperti RIP v1 tetapi dengan tambahan fitur
  • Autentikasi MD5 
  • Support Classless IP Address
  • Menggunakan ip multicast 224.0.0.9 untuk update tabel routing-nya
3. RIPng  
  • Autentikasi menggunakan IPSec
  • Support IPv6
  • compatible RIPv2 tetapi tidak dengan RIPv1
  • menggunakan ip multicast FF02::9 untuk update


Konfigurasi Dasar

Konfigurasi RIP pada router Cisco sangat mudah dilakukan, hanya membutuhkan dua atau tiga perintah saja. Kita akan mencobanya menggunakan gns3. Gambar topologinya, topologi RIP
 ios: c2600-ipbase.bin

Router R1
R1(config)# router rip
R1(config-router)# ver 2
R1(config-router)# network 192.168.0.0
R1(config-router)# network 192.168.1.0
R1(config-router)# network 192.168.2.0
R1(config-router)#  passive-interface fa0/1
R1(config-router)# ^Z

Router R2  
R2(config)# router rip
R2(config-router)# ver 2
R2(config-router)# network 192.168.0.0
R2(config-router)# network 192.168.1.0
R2(config-router)# network 192.168.2.0
R2(config-router)# ^Z

Router R3
R3(config)# router rip
R3(config-router)# ver 2
R3(config-router)# network 192.168.0.0
R3(config-router)# network 192.168.1.0
R3(config-router)# network 192.168.2.0
R3(config-router)#  passive-interface fa0/1
R3(config-router)# ^Z  

passive-interface


Pada topologi diatas, R1 dan R3 dapat di kategorikan sebagai stub network, network yang hanya mempunyai satu jalur masuk / keluar. Apakah perlu untuk update paket RIP pada interface fa0/1 di R1 dan R3 ? Tentu tidak, karena percuma.
Untuk mencegah RIP mengirim paket update,  kita dapat menggunakan beberapa cara, salah satunya dengan menggunakan perintah passive-interface. Perintah ini akan membuat RIP menerima paket update, tapi tidak akan mengirim paket update. 

Konfigurasi telah selesai, kita akan mencoba ping dari host C1 ke host C2,
hasil ping

ping berhasil, yang menunjukkan ada koneksi antara C1 dan C2. Perintah - perintah berikut berguna jika terjadi error dalam RIP
  • show ip route
  • show ip protocol
  • debug ip rip

Routing Dinamis

Pada artikel tentang statis routing, hanya terdapat sedikit router yang perlu dikonfigurasi. Bagaimana jika kita mempunyai banyak router dan menggunakan routing statis ?
Sudah tentu, kita akan mempunyai banyak rute yang menunjuk pada setiap network dan kita tidak mempunyai backup. Bagaimana jika salah satu link gagal ?
Routing dinamis adalah jawabannya. Routing dinamis akan mengirim informasi tentang network kepada tiap router yang berpartisipasi.

Ada 2 (dua) istilah yang mirip tetapi sangat berbeda artinya.
1. Routing Protocol
2. Routed Protocol

Routing protocol digunakan antar router untuk saling bertukar informasi tentang routing dan membangun tabel routing.
Routed protocol adalah protocol yang kita routing-kan contoh IPv4, Appletalk dll.

Ada 2 tipe routing protocol :
1. Interior Gateway Protocol, pertukaran informasi routing dalam satu Autonomous System (AS), contoh RIP, EIGRP, OSPF
2. Exterior Gateway Protocol, pertukaran informasi routing diantara beberapa Autonomous System (AS).

Berdasarkan cara kerjanya, routing protocol dibedakan menjadi 3:
1. Distance Vector, menggunakan algoritma yang sederhana, cocok digunakan untuk network skala kecil. Untuk penjelasan detail disini. Contoh routing protocol-nya adalah RIP
2. Link State,  menggunakan algoritma routing yang kompleks, sering digunakan untuk network skala menengah sampai besar. Penjelasan detail disini. Contoh OSPF,IS-IS.
3. Balanced Hybrid/Hybrid, mempunyai fitur yang mirip Distance Vector dan Link State, contoh EIGRP.

Administrative Distance (AD)

Administrative Distance (AD) adalah ukuran kepercayaan suatu informasi routing yang diterima dari router tetangga. AD akan bernilai antara 0 - 255, dimana nilai 0 adalah rute paling terpercaya sedangkan nilai 255 paling tidak terpercaya.
Jika informasi rute mempunyai nilai AD yang sama, maka routing protocol akan menggunakan metric sebagai pembedanya. Tapi jika Ad dan Metric bernilai sama routing protocol akan me-load balance trafiknya.

Tabel Administrative Distance Cisco


Metric

Metric adalah cara untuk mengukur atau membandingkan. Routing protocol menggunakan metric untuk memilih rute terbaik ketika terdapat banyak rute yang menuju satu network yang sama. 
Terdapat beberapa parameter yang digunakan untuk mengukur metric diantaranya:
  • Hop Count 
  • Bandwith 
  • Load 
  • Delay 
  • Reliability 
  • Cost
Penggunaan metric untuk routing protocol,
RIP : Hop Count, rute terbaik akan di-install pada tabel routing dengan nilai terendah.
EIGRP : Bandwidth, delay, reliability dan load, rute terbaik dipilih dengan nilai terendah yang dihitung dari 4 parameter ini, secara default hanya bandwidth dan delay yang digunakan
OSPF : Cost, rute terbaik digunakan dengan nilai cost terendah.