클라우드,네트워크,서버/AWS Basic

[AWS Basic] AWS site-to-site vpn 구성(openswan)

설레임하우스 2022. 9. 29. 17:42
728x90
반응형
AWS openswan을 이용한 site-to-site VPN 구성

목표 구성

Site-to-site vpn구성연결

Site-to-Site VPN 이란?

두 개의 네트워크 도메인이 가상의 사설 네트워크 연결을 사용하여 프라이빗 통신을 가능하게 하는 서비스

AWS에서 제공하는 Site-to-site vpn은 표준 Ipsec vpn만 지원

Site-to-Site VPN 제한 사항

Site-to-Site VPN 연결에는 다음과 같은 제한 사항이 있습니다.

  • 가상 프라이빗 게이트웨이의 VPN 연결에는 IPv6 트래픽이 지원되지 않습니다.
  • AWS VPN VPN 연결은 경로 MTU 검색을 지원하지 않습니다.

또한 Site-to-Site VPN을 사용할 때는 다음 사항을 고려하십시오.

VPC를 공통 온프레미스 네트워크에 연결하는 경우 네트워크에 겹치지 않는 CIDR 블록을 사용하는 것이 좋습니다.

Site-to-Site VPN 연결당 0.05 USD(시간당)

AWS Site-to-Site VPN에서 전송되는 데이터의 경우 EC2 온디맨드 요금 페이지에 설명된 데이터 송신 요금이 부과됩니다.

기본 구성

1. VPC 생성

- 이름 : IDC-VPC ,  IP대역 : 10.10.0.0/16

- 이름 : AWS-VPC , IP대역 : 10.20.0.0/16

VPC 생성

2. 서브넷 생성

- 이름 : IDC-Public-sn , VPC  : IDC-VPC, IP대역 : 10.10.0.0/24

- 이름 : IDC-Private-sn , VPC : IDC-VPC , IP대역 : 10.10.1.0/24

- 이름 : AWS-Public-sn , VPC : AWS-VPC , IP대역 : 10.20.0.0/24

서브넷 생성

3. 인터넷 게이트웨이 생성

-  이름 : IDC-IGW , VPC 연결 : IDC-VPC 

-  이름 : AWS-IGW , VPC 연결 : AWS-VPC

인터넷 게이트웨이 생성

4. 탄력적 IP 생성

- 이름 : IDC-CGW , IDC-CGW인스턴스 생성 후 탄력적 IP  연결(10.10.0.100)

- 이름 : AWS-EC2 , AWS-EC2 인스턴스 생성 후 탄력적 IP 연결(10.20.0.100)

탄력걱IP 생성

5. 라우팅 테이블 생성

라우팅테이블 생성

상세 라우팅 테이블

- 이름 : IDC-Public-RT , 서브넷연결 : 10.10.0.0/24  , 라우팅 추가 : 0.0.0.0->IDC-IGW

라우팅 테이블

- 이름 : IDC-Private-RT , 서브넷연결 : 10.10.1.0/24 , 라우팅 추가 : 10.20.0.0->IDC-CGW 인스턴스 ENI

- 이름 : AWS-Public-RT , 서브넷 연결 : 10.20.0.0/24 , 라우팅 추가 : 0.0.0.0->AWS-IGW , 라우팅 전파 : 10.10.0.0/16->VGW(가상 프라이빗 게이트웨이 생성 후 설정가능)

6. EC2 인스턴스 생성

- 이름 : IDC-CGW , VPC : IDC-VPC , 서브넷 : IDC-Public-sn , 퍼블릭ip할당 : 비활성화 , Primary ip : 10.10.0.100<->탄력적 ip 연결 ,보안규칙 : icmp ,위치무관/ udp 4500 추가, openswan 설치

- 이름 : IDC-EC2 , VPC : IDC-VPC , 서브넷 : IDC-Private-sn , 퍼블릭ip할당 : 비활성화 , Primary ip : 10.10.1.100

보안규칙 : icmp ,위치무관 추가, ssh 패스워드 로그인 방식 활성화, root로그인 활성화

#!/bin/bash
(
echo "test123"
echo "test123"
) | passwd --stdin root
sed -i "s/^PasswordAuthentication no/PasswordAuthentication yes/g" /etc/ssh/sshd_config
sed -i "s/^#PermitRootLogin yes/PermitRootLogin yes/g" /etc/ssh/sshd_config
service sshd restart

- 이름 : AWS-EC2 , VPC : AWS-VPC , 서브넷 : AWS-Public-sn , 퍼블릭ip할당 : 비활성화 , Primary ip : 10.20.1.100<->탄력적 ip 연결 ,보안규칙 : icmp ,위치무관 추가 

ec2 인스턴스 생성

7. 고객 게이트웨이 생성

- 이름 : IDC-CGW-VPN , IP 주소 : IDC-CGW 의 탄력적 IP 

고객 게이트웨이 생성
고객게이트웨이 생성확인

8. 가상 프라이빗 게이트웨이 생성

가상 게이트웨이 생성
가상 프라이빗 게이트웨이 생성확인

9. Site-to-Site VPN 연결

- 이름 : IDC-AWS-VPN , 대상 게이트웨이 유형 : 가상 프라이빗 게이트웨이 , 가상 프라이빗 게이트웨이 : AWS-VPN

고객 게이트웨이 ID : IDC-CGW-VPN , 라우팅 옵션 : 정적, 고정 IP 접두사: 10.10.0.0/16(IDC대역) 

Site-to-Site VPN 연결 VPN생성

VPN 연결 생성 확인.

VPN 연결 생성 확인

VPN 구성 다운로드

VPN 구성 다운로드

공급업체 Openswan 

다운로드를 진행하면 vpn설정에 필요한 txt파일을 받을 수 있다.

순서에 따라 설정 진행을 하면된다.

 

10. IDC-CGW 인스턴스 openswan 설치 및 설정

sudo su -
yum install openswan -y

openswan 설치

1) Open /etc/sysctl.conf and ensure that its values match the following:

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.accept_source_route = 0
wq
sysctl -p #Apply the changes in step 1 by executing the command

2)Open /etc/ipsec.conf and look for the line below. Ensure that the # in front of the line has been removed, then save and exit the file.
    #include /etc/ipsec.d/*.conf

3)Create a new file at /etc/ipsec.d/aws.conf if doesn't already exist, and then open it. Append the following configuration to the end in the file:

conn Tunnel1
        authby=secret
        auto=start
        left=%defaultroute
        leftid=15.164.X.X   #IDC-CGW 탄력적IP
        right=15.165.X.X    #터널1 외부IP
        type=tunnel
        ikelifetime=8h
        keylife=1h
        phase2alg=aes128-sha1;modp1024
        ike=aes128-sha1;modp1024
        # auth=esp          #ESP사용안하므로 주석처리
        keyingtries=%forever
        keyexchange=ike
        leftsubnet=10.10.0.0/16  #IDC-VPC 사설대역
        rightsubnet=10.20.0.0/16 #AWS-VPC 사설대역
        dpddelay=10
        dpdtimeout=30
        dpdaction=restart_by_peer
        overlapip=yes             #HA 설정 (VPN Tunnel2 연결)

conn Tunnel2
        authby=secret
        auto=start
        left=%defaultroute
        leftid=15.164.X.X  #IDC-CGW 탄력적IP
        right=54.180.X.X  #터널2 외부IP
        type=tunnel
        ikelifetime=8h
        keylife=1h
        phase2alg=aes128-sha1;modp1024
        ike=aes128-sha1;modp1024
        # auth=esp
        keyingtries=%forever
        keyexchange=ike
        leftsubnet=10.10.0.0/16
        rightsubnet=10.20.0.0/16
        dpddelay=10
        dpdtimeout=30
        dpdaction=restart_by_peer
        overlapip=yes    #HA 설정 (VPN Tunnel2 연결)

VPN 설정

4) Create a new file at /etc/ipsec.d/aws.secrets if it doesn't already exist, and append this line to the file (be mindful of the spacing!):

5) IPsec 서비스 재시작

systemctl start ipsec.service
systemctl enable ipsec.service
systemctl status ipsec.service

vpn서비스 상태 확인

11. IDC-CGW EC2 네트워크 설정 수정

IDC-CGW 인스턴스 선택 후 작업>네트워킹>소스/대상 확인 변경(소스/대상확인 중지 활성화)

12. 통신상태 확인

IDC-EC2(10.10.1.100)<->AWS EC2(10.20.0.100)

AWS EC2(10.20.0.100)<-> IDC-EC2(10.10.1.100)

13. 자원삭제

VPN연결삭제->가상프라이빗 게이트웨이(VPC에서 분리)-> 가상 프라이빗 게이트웨이 삭제->고객 게이트웨이 삭제

->탄력적IP 연결해제->탄력적 IP 주소 릴리즈->인스턴스 삭제->VPC삭제

 

728x90
반응형