0

Menghubungkan On premise dengan cloud AWS menggunakan metode site to site VPN

site to site VPN AWS

Kita bisa menghubungkan jaringan yang ada di on premise dengan cloud AWS menggunakan metode site to site VPN (Virtual Private Network).

Apa itu Site to Site VPN?

  • Site to site = lokasi ke lokasi / jaringan ke jaringan
  • VPN = koneksi private dan terenkripsi

Artinya, dengan site to site VPN kita bisa menghubungkan dua jaringan yang berbeda (lokasinya) dan antar jaringan tersebut akan bisa saling berkomunikasi menggunakan jalur private (terenkripsi) melalui internet.

Sebagai contoh (lihat gambar diatas), Server P-1 bisa mengakses Server A (private IP 172.31.1.136). Saat server P-1 mengirim data (misal file.jpg) ke server A, koneksi akan melalui gateway server on premise dulu dan data akan dienkripsi, baru kemudian diteruskan ke internet (data dalam keadaan terenkripsi) dan diterima oleh virtual private gateway milik AWS, data didekripsi dan diteruskan ke server A yang berada di dalam VPC.

Jadi, agar on premise dan cloud AWS bisa saling terhubung, harus ada public gateway (penghubung) dimasing-masing jaringannya:

  1. Virtual Private Gateway -> yang ada di cloud AWS
  2. Gateway server -> yang ada di on premise


Berikut adalah konfigurasi di kedua jaringannya:

  1. Cloud AWS:
    • VPC CIDR 172.31.0.0/16
    • IP Public Virtual Private Gateway: 3.1.155.43
    • OS Gateway Server: –
  2. On premise:
    • CIDR 192.168.0.0/16
    • IP Public Gateway Server: 43.218.202.43
    • OS Gateway Server: Centos 7


Ada 3 step utama yang akan kita lakukan:

  1. Setup Virtual Private Gateway (AWS)
  2. Setup Gateway Server (On premise)
  3. Test koneksi dari On premise ke AWS dan sebaliknya

1. Setup Virtual Private Gateway (AWS)

Untuk mensetup virtual private gateway di AWS, ada 4 step yang harus kita lakukan:

  1. Setup Customer Gateway
  2. Setup Virtual Private Gateway
  3. Setup Site-to-site VPN connections
  4. Enable-kan Route propagation pada route table di VPC

1.1 Setup Customer Gateway

Kita harus mendaftarkan IP Public Gateway server yang ada di on premise, agar nantinya virtual private gateway bisa berkomunikasi dengan gateway server on premise.

Masuk ke service VPC, pada menu sebelah kiri, scroll kebawah, pilih Virtual Private Network (VPN) > Customer gateways

Lalu pada pojok kanan atas klik Create Customer Gateway, isikan seperti gambar dibawah ini, lalu klik Create Customer Gateway

Name tag: customer-gateway-onpremise
BGP ASN: 65000 (default)
IP address: 43.218.202.43

Setelah itu akan terbuat customer gateway-nya


1.2 Setup Virtual Private Gateway

Selanjutnya kita buat virtual private gateway. Virtual private gateway ini akan menjadi gerbang masuk ke dalam jaringan VPC AWS yang kita punya.

Masih di service VPC, pada menu Virtual private network (VPN), pilih Virtual private gateways > Create virtual private gateway.

Masukkan sesuai gambar dibawah, lalu klik Create Virtual Gateway.

  • Name tag: virtual-private-gateway1
  • Autonomouse System Number (ASN): Amazon default ASN


Setelah itu akan terbuat virtual private gatewaynya. Kemudian kita attachkan ke VPC.

Klik Actions > Attach to VPC

Pilih VPC nya (VPC saya: vpc-test), lalu klik attach to VPC

Kalau sudah statenya akan berubah menjadi Attached, artinya virtual private gateway sudah dikaitkan ke VPC.

virtual private gateway aws and on premise


1.3 Setup Site-to-site VPN connections

Selanjutnya kita buat site to site VPN connections untuk menghubungkan antara virtual private gateway dengan customer gateway (gateway server on premise).

Masih di service VPC, pilih menu Virtual Private Network (VPN) > pilih Site to site VPN connections > klik Create VPN Connection.

Masukkan konfigurasinya seperti dibawah dan klik Create VPN Connection

Name tag: VPN-01
Target gateway type: Virtual private gateway
Virtual private gateway: <pilih virtual private gateway yang sebelumnya sudah kita buat>
Customer gateway: Existing
Customer gateway ID: <pilih customer gateway yang sebelumnya sudah kita buat>
Routing options: Static
Static IP prefixes: 172.31.0.0/16 dan 192.168.0.0/16
Local IPv4 network CIDR: 192.168.0.0/16
Remote IPv4 network CIDR: 172.31.0.0./16

Setelah site to site VPN connection terbuat, bisa dilihat pada tab Tunnel details, Tunnel 1 dan Tunnel 2 statusnya masih Down karena belum ada yang terhubung ke Tunnel tersebut. Nantinya gateway server on premise akan connect ke Tunnel 1 (IP Public 3.1.155.43) dan statusnya akan berubah menjadi UP.

site to site VPN AWS

Untuk menghubungkan ke Tunnel 1, kita perlu Download konfigurasinya.

Caranya klik Download configuration > Pilih Vendor Openswan > Klik Download

download configuration openswan in AWS

Nantinya kita akan menginstall software Openswan pada gateway server on premise. (Openswan adalah sebuah software IPsec yang bisa digunakan untuk site to site VPN). Openswan ini akan nembak ke IP Tunnel 1 untuk membuat koneksi site to site VPN yang terenkripsi.

Cara install openswan akan kita bahas di nomor 2 nanti (Setup Gateway Server (On premise)).

1.4 Enable-kan Route propagation pada route table di VPC

Route propagation = enable, akan meroute traffic dari virtual private gateway secara otomatis ke subnet route tables, jadi kita tidak perlu manual menambahkan / hapus VPN routesnya.

Cara mengenable-kannya, masuk ke service VPC > menu Virtual private cloud > Route tables > cari VPC: VPC-test > pilih route table yang public (public-route-table)

Pada tab Route propagation > Edit route propagation > centang Enable pada Propagation > Save.


2. Setup Gateway Server (On premise)

Sekarang pindah ke on premise. Disini kita akan setup server gateway dengan menginstall openswan. Tahapan lengkapnya adalah:

  1. Pastikan selinux sudah disabled
  2. Install openswan
  3. Setup konfigurasi openswan

2.1 Pastikan selinux sudah disabled

Karena menggunakan centos 7 di gateway server, pastikan selinux sudah di disabled. Jika belum ubah ke disabled dan restart servernya.

# vi /etc/selinux/config

2.2 Install Openswan

Sudah dijelaskan tadi, jadi openswan akan membuat koneksi site to site VPN ke cloud AWS melalui Tunnel 1. Jadi kita harus install dulu openswan-nya:

# yum update -y
# yum install openswan -y

Note: jika error saat menginstall openswan (Error: Unable to find a match: openswan), install menggunakan libreswan saja.

# yum install libreswan -y

2.3 Setup konfigurasi openswan

Kita akan setup konfigurasi openswan menggunakan file yang sudah kita download tadi (step 1.3 Site-to-site VPN connections). Buka filenya, disitu akan ada step-step yang harus kita lakukan.

openswan configuration in site to site connections AWS

Pertama, setting sysctl.conf. Buka filenya:

vi /etc/sysctl.conf

Tambahkan script berikut:

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.accept_source_route = 0

Lalu restart konfigurasinya:

sysctl -p
sysctl openswan

Pastikan script #include /etc/ipsec.d/*.conf di file /etc/ipsec.conf sudah diuncomment (hilangkan tanda # jika ada)

Selanjutnya kita akan konfigurasi openswannya:

vi /etc/ipsec.d/aws.conf

Masukkan konfigurasinya (Note: hilangkan parameter auth=esp dan setting leftsubnet dan rightsubnet)

conn Tunnel1
	authby=secret
	auto=start
	left=%defaultroute
	leftid=43.218.202.43
	right=3.1.155.43
	type=tunnel
	ikelifetime=8h
	keylife=1h
	phase2alg=aes128-sha1;modp1024
	ike=aes128-sha1;modp1024
	keyingtries=%forever
	keyexchange=ike
	leftsubnet=192.168.0.0/16
	rightsubnet=172.31.0.0/16
	dpddelay=10
	dpdtimeout=30
	dpdaction=restart_by_peer
  • leftsubnet diisi dengan CIDR onpremise (192.168.0.0/16)
  • rightsubnet diisi dengan CIDR VPC AWS (172.31.0.0/16)
  • leftid = IP Public gateway server onpremise
  • right = IP Public Tunnel 1 AWS
  • ike = Internet key exchange, enkripsi yang digunakan (aes128-sha1)


Konfigurasi terakhir adalah setup PSK (Pre Shared Key). Ini semacam token agar bisa connect ke virtual gateway AWS

# vi /etc/ipsec.d/aws.secrets

Masukkan konfigurasi berikut (jangan sampai salah memasukkan keynya)

43.218.202.43 3.1.155.43: PSK "_PB7O91Fvo5u84.it19B81Gebnw5Aop5"

Kita cek status openswan menggunakan command berikut

# systemctl status ipsec

Statusnya masih inactive, sekarang tinggal kita nyalakan saja

# systemctl start ipsec

Jalankan kembali systemctl status ipsec. Jika koneksi berhasil, outputnya akan seperti ini

site to site VPN AWS with openswan

Kita cek di AWS, Tunnel 1 seharusnya sudah UP statusnya.

site to site VPN AWS

Tunnel 2 masih Down, karena kita tidak melakukan setup untuk Tunnel 2. Fyi, disini kita hanya menggunakan Tunnel 1 saja (biar simple).

Note: Jika Status Tunnel 1 masih Down, silahkan cek konfigurasinya lagi (jangan sampai salah). Jika masih belum bisa silahkan cek firewall disisi on premise, apakah ada yang terblock difirewall?

3. Test koneksi dari On premise ke AWS dan sebaliknya

Berikut list private IP dari servernya:

  • Onpremise
    • Server P-1: 192.168.22.91
    • Server P-2: 192.168.31.167
    • Gateway server: 192.168.10.220
  • Cloud AWS
    • Server A: 172.31.1.136
    • Server B: 172.31.0.6


Kita akan buat 3 skenario test koneksi (ping) ke AWS menggunakan private IP dan sebaliknya:

  1. Skenario 1 (gateway server -> public subnet)
  2. Skenario 2 (server P-1, P-2 -> public subnet dan sebaliknya)
  3. Skenario 3 (server P-1, P-2 -> private subnet dan sebaliknya)

Sebelum memulai, pastikan server P-1, server P-2, server A dan server B sudah diallow protokol ICMP nya pada inbound rule / incoming traffic pada firewall supaya ketika diping bisa reply

add imcp site to site VPN AWS


3.1 Skenario 1 (gateway server -> public subnet)

Ping dari gateway server ke server B (public subnet)

# ping 172.31.0.6

Berhasil


3.2 Skenario 2 (server P-1, P-2 -> public subnet)

  • Ping dari server P-1 ke server B
  • Ping dari server P-2 ke server B
  • Ping dari server B ke server P-1
  • Ping dari server B ke server P-2

Untuk skenario ini pastikan traffic dari server P-1, P-2 sudah dirouting ke gateway server agar bisa mengakses server di AWS. Bisa ditambahkan di iptables atau di mikrotik/sejenisnya (tergantung kalian pakai hardware apa / software apa untuk routingnya)

– Ping dari server P-1 ke server B

# ping 172.31.0.6

Berhasil.

– Ping dari server P-2 ke server B

# ping 172.31.0.6

Berhasil

– Ping dari server B ke server P-1

# ping 192.168.22.91

Berhasil

– Ping dari server B ke server P-2

# ping 192.168.31.167

Berhasil

3.3 Skenario 3 (server P-1, P-2 -> private subnet dan sebaliknya)

  • Ping dari server P-1 ke server A
  • Ping dari server P-2 ke server A
  • Ping dari server A ke server P-1
  • Ping dari server A ke server P-2

Disini kita akan mengakses ke private subnet, jadi harus tambahkan virtual private gateway ke dalam route table si private subnet tersebut.

Buka server A di dashboard EC2, pada tab details klik Subnet ID-nya (subnet-0286xx)

Pilih tab Route Table, klik rtb-0a67xxx

Pada tab Routes klik Edit Routes, daftarkan virtual private gateway seperti dibawah, klik save changes


– Ping dari server P-1 ke server A

# ping 172.31.1.136 

Berhasil

– Ping dari server P-2 ke server A

# ping 172.31.1.136

– Ping dari server A ke server P-1

# ping 192.168.22.91

Berhasil

– Ping dari server A ke server P-2

# ping 192.168.31.167



Sekian tutorialnya, semoga bermanfaat !

Ambar Hasbiyatmoko

Hello, I'm web developer. Passionate about programming, web server, and networking.

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.