top of page

Hướng dẫn kết nối VPN từ Fortigate (On-premise) đến AWS VPC (Cloud)

Writer's picture: Tuan NguyenTuan Nguyen

Updated: Apr 18, 2020


Mình đã tạo sẵn VPC và chia subnet cho VPC nên mình sẽ không hướng dẫn phần này.


1. Thực hiện trên AWS


Bước 1. Tạo Virtual Private Gateways


Trong giao diện console của AWS chọn dịch vụ VPC


Phần Virtual Private Network (VPN) > chọn Virtual Private Gateways > chọn Create Virtual Private Gateway


Name tag, đặt tên cho Virtual Private Gateway

Static route mục ASN để mặc định là Amazon default ASN

Chọn Create Virtual Private Gateway để tạo mới


Chọn VPG vừa tạo > chọn Action > chọn Attach VPC


VPC chọn VPC mà các instance đang chạy > chọn Yes, Attach


Đợi vài phút phần State sẽ hiện attached là đã attach VPC vào VPG thành công.


Bước 2. Tạo Customer Gateways


Chọn Customer Gateways > chọn Create Customer Gateway


Name, đặt tên mô tả

Routing, chọn Static

IP Address, nhập IP WAN của fortigate ở on-premise

Các mục còn lại để trống như mặc định

Chọn Create Customer Gateway


Phần State hiện available là đã tạo xong Customer Gateway


Bước 3. Tạo Site-to-Site VPN Connections


AWS VPC VPN hỗ trợ các phương thức VPN sau:

  • Internet Key Exchange version 2 (IKEv2)

  • NAT traversal

  • Four-byte ASN (in addition to two-byte ASN)

  • Reusable IP addresses for customer gateways

  • Additional encryption options including AES 256-bit encryption, SHA-2 hashing, and additional Diffie-Hellman groups

  • Configurable tunnel options

  • Custom private ASN for the Amazon side of a BGP session

Ở hướng dẫn này mình sử dụng IPsec Site-to-Site: AES-256, SHA-2, Diffie-Hellman groups


Chọn Site-to-Site VPN Connections > chọn Create VPN Connection


Name tag, đặt tên mô tả

Target Gateway Type, chọn Virtual Private Gateway

Virtual Private Gateway, chọn VPG đã tạo ở Bước 1

Customer Gateway, chọn Existing

Customer Gateway ID, chọn Customer Gateway đã tạo ở Bước 2


Routing Option, chọn Static

Static IP Prefixes, nhập IP LAN bên phía Fortigate


Các mục còn lại để mặc định > chọn Create VPN Connection


Đợi vài phút chúng ta thấy State đang ở trạng thái available.

Tuy nhiên chúng ta thấy có 2 Tunnel nhưng Status đang là DOWN vì chúng ta chưa cấu hình trên Fortigate.

Mỗi VPN Connection sẽ tạo cho chúng ta 2 Tunnel, chúng ta có thể kết nối VPN giữa Fortigate và AWS VPC thông qua cả 2 Tunnel này (trên Fortigate chúng ta phải tạo 2 IPsec Tunnel), nếu một Tunnel bị mất kết nối thì VPN sẽ chạy trên Tunnel còn lại thích hợp cho mục đích dự phòng.

Ở đây mình chỉ hướng dẫn dùng một Tunnel, nếu các bạn muốn dùng cả 2 thì cũng làm tương tự.


Chọn vào VPN Connection vừa tạo > chọn Download Configuration

Trong file configuration chúng ta cần các thông tin quan trọng dùng để phục vụ cho việc cấu hình trên Foritgate.


Vender, AWS hỗ trợ rất nhiều hãng, ở đây mình dùng firewall của Fortinet

Platform Software, chọn các phiên bản phù hợp với thiết bị firewall đang chạy ở on-premise


2. Thực hiện trên Fortigate

Mình sẽ sử dụng Fortigate CLI Console để cấu hình.


Bước 1. Tạo VPN IPsec Tunnels

Tạo phase 1 cho Tunnal 1, mở file configuration đã download từ AWS


Các lệnh dùng trong CLI Console

config vpn ipsec phase1-interface
  edit IPsec-AWS            //Đặt tên phase 1 là IPsec-AWS
    set interface wan1    //Port WAN của Fortigate
    set keylife 28800    //Thông số lấy trong file đã download
    set peertype any
    set proposal aes128-sha1 //Thông số lấy trong file đã download
    set dhgrp 2             //Thông số lấy trong file đã download
    set remote-gw 13.251.211.146 //Thông số lấy trong file đã download
    set psksecret C6YTLwIAAb5r84v0RSN6ey7iz8Q9FlDH //File đã download
    set dpd-retryinterval 10
    next
 end

Tạo phase 2 cho Tunnel 1, mở file configuration đã download từ AWS


Các lệnh dùng trong CLI Console

config vpn ipsec phase2-interface
  edit AWS-phase2  //Đặt tên phase 2 là IPsec-AWS
    set phase1name IPsec-AWS    //Tên phase 1 đã tạo là IPsec-AWS
    set proposal aes128-sha1  //Lấy trong file đã download
    set dhgrp 2  //Lấy trong file đã download
    set keylifeseconds 3600  //Lấy trong file đã download
    next
  end

Bước 2. Tạo Static Route

Các lệnh dùng trong CLI Console

config router static
  edit 8  // Số 8 ở đây là mình tạo static route mới hoàn toàn
    set dst 172.16.0.0 255.255.0.0  //Lớp mạng của VPC trên AWS
    set device IPsec-AWS  //Tên của phase 1 đã tạo
    next
  end

Bước 3. Tạo Firewall Policy

Tạo chiều in từ VPN vào trong LAN

Các lệnh dùng trong CLI Console

config firewall policy
  edit 10  // Số 10 ở đây là mình  mới hoàn toàn có ID là 10
    set srcintf IPsec-AWS  // Tên phase 1 đã tạo
    set dstintf Lan-Port // Tên port LAN
    set srcaddr all
    set dstaddr all
    set action accept
    set schedule always
    set service ALL
    next
end

Tạo chiều out từ LAN ra VPN

Các lệnh dùng trong CLI Console

config firewall policy
  edit 11  // Số 11 ở đây là mình  mới hoàn toàn có ID là 11
    set srcintf Lan-Port  // Tên port LAN
    set dstintf IPsec-AWS  // Tên phase 1 đã tạo
    set srcaddr all
    set dstaddr all
    set action accept
    set schedule always
    set service ALL
    next
  end

Kiểm tra

Trên Foritigate trạng thái IPsec Tunnel đã chuyển sang Up


Trên AWS chúng ta cũng thấy Tunnel 1 chuyển trạng thái UP


Tuy nhiên đến bước này bạn vẫn chưa kết nối giữa các Instance trên AWS với LAN bên trong Fortigate. Bạn phải chỉnh lại Route Table cho VPC trên AWS.


Vào Route Tables > chọn tên route table mà VPC đang sử dụng > Chon tab Routes

Ở đây chúng ta thấy chỉ có 2 route: route giữa các subnet trong VPC và route ra ngoài internet, chưa có các route trỏ đến mạng LAN trong Fortigate


Chọn Edit routes > Destination, nhập các lớp mạng LAN trong Fortigate > Target, chọn tên Virtual Private Gateway đã tạo.


Vậy là xong, chúng ta có thể kiểm tra kết nối VPN bằng cách ping qua lại giữa một instance trên AWS và một máy tính nào đó trong LAN.







25 views0 comments

Comments


 

© 2018 by Tuấn Nguyễn

 Liên hệ tôi
  • Facebook - Black Circle
  • Google+ - Black Circle
bottom of page