mengenai VPN (virtual private network) di Cisco jadi penasaran sama salah satu protocol pengamanan dalam penggunaan VPN yaitu IPSec. Jadi apa sih IPSec?. Dikutip dari datatracker.ietf.org :
"The IP Security Protocol Working Group (IPSEC) will develop mechanisms to protect client protocols of IP. A security protocol in the network layer will be developed to provide cryptographic security services that will flexibly support combinations of authentication, integrity, access control, and confidentiality"
So? IPsec itu adalah sebuah protocol (aturan) yang digunakan untuk mentransmisikan sekaligus sebagai enkripsi data dalam komunikasi VPN. Kali ini saya lagi belajar pemakaian IPSec di Cisco, dan berikut adalah contoh topologi sederhana.
Dari gambar di atas dapat dilihat ada 3 router yang saya namai R2 dan R3 serta Cloud. Karena menggunakan jaringan simulasi jadi seolah-olah router yang berada di tengah itu diasumsikan adalah cloud/internet.
Ada beberapa step yang dilakukan untuk mengaktifkan komunikasi VPN yang dilapisi IPSec, antara lain :
Konfigurasi IP address
Konfigurasi IP address pada interface masing-masing router seperti gambar di atas, dan pastikan loopback pada router R2 bisa ping loopback router R3, bisa menggunakan dynamic routing atau statik routing karena sebagai catatan topologi di atas hanya sekedar simulasi.
Membuat session ISAKMP
Untuk membuat sebuah sesi komunikasi yang aman antara dua router dengan menggunakan IPSec, maka dibutuhkan sebuah framework protokol yang disebut ISAKMP/Oakley. (id.wikipedia.org/wiki/IP_Security)
Berikut komponen ISAKMP untuk konfigurasi di router R2 dan R3 :
authentication : pre-share
encryption : aes 256
group : 5
hash : sha
lifetime : 1800
Router R2
R2#configure terminal
R2(config)#crypto isakmp policy 5
R2(config-isakmp)#authentication pre-share
R2(config-isakmp)#encryption aes 256
R2(config-isakmp)#group 5
R2(config-isakmp)#hash sha
R2(config-isakmp)#lifetime 1800
Router R3
R3#configure terminal
R3(config)#crypto isakmp policy 5
R3(config-isakmp)#authentication pre-share
R3(config-isakmp)#encryption aes 256
R3(config-isakmp)#group 5
R3(config-isakmp)#hash sha
R3(config-isakmp)#lifetime 1800
Menentukan pre-shared key
Pre-shared key ini adalah berupa kunci yang sudah ditentukan sebelumnya digunakan untuk membuka komunikasi kedua node menggunakan protokol IPSec, contoh kali ini misal kata kuncinya adalah 'RAHASIA'.
Router R2
R2(config)#crypto isakmp key 0 RAHASIA address 11.11.11.10
Router R3
R3(config)#crypto isakmp key 0 RAHASIA address 22.22.22.6
Membuat trasnform set
Transform set merupakan kombinasi dari protokol sekuriti dan algoritma. Sewaktu IPSec melakukan negosiasi SA (Security Association), kedua peer harus menggunakan transform set yang sama untuk melindungi flow data. Contoh transform set saya beri nama JOIN.
Router R2
Router R3
Menentukan lifetime IPSec SA
Selanjutnya menentukan lama waktu SA sebelum menjadi expired.
Router R2
Router R3
R2(config)#crypto ipsec security-association lifetime seconds 1800
Membuat access list
Pembuatan access list ini berfungsi untuk mengfilter network lokal yang diijinkan untuk berkomunikasi menggunakan protokol IPSec. Kemudian advertise access list tadi kedalam Crypto Map.
Router R2
Router R3
Mengaktifkan IPSec pada interface router
Setelah semua konfigurasi IPSec dilakukan selanjutnya adalah mengaktifkanya pada interface router yang digunakan untuk komunikasi IPSec.
Router R2
R2(config)#interface Fastethernet 0/0
R2(config-if)#crypto map MAP
Router R3
R3(config)#interface Fastethernet 0/0
R3(config-if)#crypto map MAP
Cek IPSec
untuk melakukan cek konfigurasi IPsec sudah berjalan dengan baik lakukan test ping dengan source dari network lokal (loopback).
Router R3
R3#ping 2.2.2.2 source 3.3.3.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 36/39/40 ms
Lakukan beberapa perintah 'show' seperti berikut :
R3#show crypto ipsec transform-set
Transform set JOIN: { esp-256-aes esp-sha-hmac }
will negotiate = { Tunnel, },
R3#show crypto map
Crypto Map "MAP" 10 ipsec-isakmp
Peer = 22.22.22.6
Extended IP access list 100
access-list 100 permit ip 3.3.3.0 0.0.0.255 2.2.2.0 0.0.0.255
Current peer: 22.22.22.6
Security association lifetime: 4608000 kilobytes/1800 seconds
PFS (Y/N): Y
DH group: group5
Transform sets={
JOIN,
}
Interfaces using crypto map MAP:
FastEthernet0/0
R3#show crypto ipsec sa
interface: FastEthernet0/0
Crypto map tag: MAP, local addr 11.11.11.10
protected vrf: (none)
local ident (addr/mask/prot/port): (3.3.3.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (2.2.2.0/255.255.255.0/0/0)
current_peer 22.22.22.6 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4
#pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 1, #recv errors 0
local crypto endpt.: 11.11.11.10, remote crypto endpt.: 22.22.22.6
path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
current outbound spi: 0x2045B818(541440024)
inbound esp sas:
spi: 0x20E57A35(551909941)
transform: esp-256-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2001, flow_id: SW:1, crypto map: MAP
sa timing: remaining key lifetime (k/sec): (4529856/1296)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0x2045B818(541440024)
transform: esp-256-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2002, flow_id: SW:2, crypto map: MAP
sa timing: remaining key lifetime (k/sec): (4529856/1295)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
R3#show crypto isakmp sa
dst src state conn-id slot status
22.22.22.6 11.11.11.10 QM_IDLE 1 0 ACTIVE
Dari gambar di atas dapat dilihat ada 3 router yang saya namai R2 dan R3 serta Cloud. Karena menggunakan jaringan simulasi jadi seolah-olah router yang berada di tengah itu diasumsikan adalah cloud/internet.
Ada beberapa step yang dilakukan untuk mengaktifkan komunikasi VPN yang dilapisi IPSec, antara lain :
Konfigurasi IP address
Konfigurasi IP address pada interface masing-masing router seperti gambar di atas, dan pastikan loopback pada router R2 bisa ping loopback router R3, bisa menggunakan dynamic routing atau statik routing karena sebagai catatan topologi di atas hanya sekedar simulasi.
Membuat session ISAKMP
Untuk membuat sebuah sesi komunikasi yang aman antara dua router dengan menggunakan IPSec, maka dibutuhkan sebuah framework protokol yang disebut ISAKMP/Oakley. (id.wikipedia.org/wiki/IP_Security)
Berikut komponen ISAKMP untuk konfigurasi di router R2 dan R3 :
authentication : pre-share
encryption : aes 256
group : 5
hash : sha
lifetime : 1800
Router R2
R2#configure terminal
R2(config)#crypto isakmp policy 5
R2(config-isakmp)#authentication pre-share
R2(config-isakmp)#encryption aes 256
R2(config-isakmp)#group 5
R2(config-isakmp)#hash sha
R2(config-isakmp)#lifetime 1800
Router R3
R3#configure terminal
R3(config)#crypto isakmp policy 5
R3(config-isakmp)#authentication pre-share
R3(config-isakmp)#encryption aes 256
R3(config-isakmp)#group 5
R3(config-isakmp)#hash sha
R3(config-isakmp)#lifetime 1800
Menentukan pre-shared key
Pre-shared key ini adalah berupa kunci yang sudah ditentukan sebelumnya digunakan untuk membuka komunikasi kedua node menggunakan protokol IPSec, contoh kali ini misal kata kuncinya adalah 'RAHASIA'.
Router R2
R2(config)#crypto isakmp key 0 RAHASIA address 11.11.11.10
Router R3
R3(config)#crypto isakmp key 0 RAHASIA address 22.22.22.6
Membuat trasnform set
Transform set merupakan kombinasi dari protokol sekuriti dan algoritma. Sewaktu IPSec melakukan negosiasi SA (Security Association), kedua peer harus menggunakan transform set yang sama untuk melindungi flow data. Contoh transform set saya beri nama JOIN.
Router R2
R2(config)#crypto ipsec transform-set JOIN esp-aes 256 esp-sha-hmac
Router R3
R2(config)#crypto ipsec transform-set JOIN esp-aes 256 esp-sha-hmac
Menentukan lifetime IPSec SA
Selanjutnya menentukan lama waktu SA sebelum menjadi expired.
Router R2
R2(config)#crypto ipsec security-association lifetime seconds 1800
Router R3
R2(config)#crypto ipsec security-association lifetime seconds 1800
Membuat access list
Pembuatan access list ini berfungsi untuk mengfilter network lokal yang diijinkan untuk berkomunikasi menggunakan protokol IPSec. Kemudian advertise access list tadi kedalam Crypto Map.
Router R2
R2(config)#access-list 100 permit ip 2.2.2.0 0.0.0.255 3.3.3.0 0.0.0.255
R2(config)#crypto map MAP 10 ipsec-isakmp
R2(config-crypto-map)#match address 100
R2(config-crypto-map)#set peer 11.11.11.10
R2(config-crypto-map)#set transform-set JOIN
R2(config-crypto-map)#set pfs group5
R2(config-crypto-map)#set security-association lifetime seconds 1800
Router R3
R3(config)#access-list 100 permit ip 3.3.3.0 0.0.0.255 2.2.2.0 0.0.0.255
R3(config)#crypto map MAP 10 ipsec-isakmp
R3(config-crypto-map)#match address 100
R3(config-crypto-map)#set peer 22.22.22.6
R3(config-crypto-map)#set transform-set JOIN
R3(config-crypto-map)#set pfs group5
R3(config-crypto-map)#set security-association lifetime seconds 1800Mengaktifkan IPSec pada interface router
Setelah semua konfigurasi IPSec dilakukan selanjutnya adalah mengaktifkanya pada interface router yang digunakan untuk komunikasi IPSec.
Router R2
R2(config)#interface Fastethernet 0/0
R2(config-if)#crypto map MAP
Router R3
R3(config)#interface Fastethernet 0/0
R3(config-if)#crypto map MAP
Cek IPSec
untuk melakukan cek konfigurasi IPsec sudah berjalan dengan baik lakukan test ping dengan source dari network lokal (loopback).
Router R3
R3#ping 2.2.2.2 source 3.3.3.3
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 3.3.3.3
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 36/39/40 ms
Lakukan beberapa perintah 'show' seperti berikut :
R3#show crypto ipsec transform-set
Transform set JOIN: { esp-256-aes esp-sha-hmac }
will negotiate = { Tunnel, },
R3#show crypto map
Crypto Map "MAP" 10 ipsec-isakmp
Peer = 22.22.22.6
Extended IP access list 100
access-list 100 permit ip 3.3.3.0 0.0.0.255 2.2.2.0 0.0.0.255
Current peer: 22.22.22.6
Security association lifetime: 4608000 kilobytes/1800 seconds
PFS (Y/N): Y
DH group: group5
Transform sets={
JOIN,
}
Interfaces using crypto map MAP:
FastEthernet0/0
R3#show crypto ipsec sa
interface: FastEthernet0/0
Crypto map tag: MAP, local addr 11.11.11.10
protected vrf: (none)
local ident (addr/mask/prot/port): (3.3.3.0/255.255.255.0/0/0)
remote ident (addr/mask/prot/port): (2.2.2.0/255.255.255.0/0/0)
current_peer 22.22.22.6 port 500
PERMIT, flags={origin_is_acl,}
#pkts encaps: 4, #pkts encrypt: 4, #pkts digest: 4
#pkts decaps: 4, #pkts decrypt: 4, #pkts verify: 4
#pkts compressed: 0, #pkts decompressed: 0
#pkts not compressed: 0, #pkts compr. failed: 0
#pkts not decompressed: 0, #pkts decompress failed: 0
#send errors 1, #recv errors 0
local crypto endpt.: 11.11.11.10, remote crypto endpt.: 22.22.22.6
path mtu 1500, ip mtu 1500, ip mtu idb FastEthernet0/0
current outbound spi: 0x2045B818(541440024)
inbound esp sas:
spi: 0x20E57A35(551909941)
transform: esp-256-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2001, flow_id: SW:1, crypto map: MAP
sa timing: remaining key lifetime (k/sec): (4529856/1296)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
inbound ah sas:
inbound pcp sas:
outbound esp sas:
spi: 0x2045B818(541440024)
transform: esp-256-aes esp-sha-hmac ,
in use settings ={Tunnel, }
conn id: 2002, flow_id: SW:2, crypto map: MAP
sa timing: remaining key lifetime (k/sec): (4529856/1295)
IV size: 16 bytes
replay detection support: Y
Status: ACTIVE
outbound ah sas:
outbound pcp sas:
R3#show crypto isakmp sa
dst src state conn-id slot status
22.22.22.6 11.11.11.10 QM_IDLE 1 0 ACTIVE