VPN 시스템과 Linux 서버를 사용하여 회사 네트워크와 Amazon Virtual Private Cloud간에 IPSec VPN 연결을 설정하려고합니다. 불행히도, 내가 찾은 유일한 가이드는 호스트 Linux 시스템을 사용하여 터널을 설정하고 해당 Linux 시스템이 VPC 인스턴스에 액세스하는 방법에 대해 설명하지만 인스턴스가 회사 네트워크에 액세스하는 방법에 대해서는 온라인에서 찾을 수 없습니다. (또는 해당 네트워크를 통한 나머지 인터넷).
네트워크 정보
Local subnet: 10.3.0.0/25
Remote subnet: 10.4.0.0/16
Tunnel 1:
Outside IP Addresses:
- Customer Gateway: : 199.167.xxx.xxx
- VPN Gateway : 205.251.233.121
Inside IP Addresses
- Customer Gateway : 169.254.249.2/30
- VPN Gateway : 169.254.249.1/30
Tunnel 2:
Outside IP Addresses:
- Customer Gateway: : 199.167.xxx.xxx
- VPN Gateway : 205.251.233.122
Inside IP Addresses
- Customer Gateway : 169.254.249.6/30
- VPN Gateway : 169.254.249.5/30
내 /etc/ipsec-tools.conf는 다음과 같습니다.
flush;
spdflush;
spdadd 169.254.249.2/30 169.254.249.1/30 any -P out ipsec
esp/tunnel/199.167.xxx.xxx-205.251.233.121/require;
spdadd 169.254.249.1/30 169.254.249.2/30 any -P in ipsec
esp/tunnel/205.251.233.121-199.167.xxx.xxx/require;
spdadd 169.254.249.6/30 169.254.249.5/30 any -P out ipsec
esp/tunnel/199.167.xxx.xxx-205.251.233.122/require;
spdadd 169.254.249.5/30 169.254.249.6/30 any -P in ipsec
esp/tunnel/205.251.233.122-199.167.xxx.xxx/require;
spdadd 169.254.249.2/30 10.4.0.0/16 any -P out ipsec
esp/tunnel/199.167.xxx.xxx-205.251.233.121/require;
spdadd 10.4.0.0/16 169.254.249.2/30 any -P in ipsec
esp/tunnel/205.251.233.121-199.167.xxx.xxx/require;
spdadd 169.254.249.6/30 10.4.0.0/16 any -P out ipsec
esp/tunnel/199.167.xxx.xxx-205.251.233.122/require;
spdadd 10.4.0.0/16 169.254.249.6/30 any -P in ipsec
esp/tunnel/205.251.233.122-199.167.xxx.xxx/require;
내 /etc/racoon/racoon.conf는 다음과 같습니다.
remote 205.251.233.122 {
exchange_mode main;
lifetime time 28800 seconds;
proposal {
encryption_algorithm aes128;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
generate_policy off;
}
remote 205.251.233.121 {
exchange_mode main;
lifetime time 28800 seconds;
proposal {
encryption_algorithm aes128;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
generate_policy off;
}
sainfo address 169.254.249.2/30 any address 169.254.249.1/30 any {
pfs_group 2;
lifetime time 3600 seconds;
encryption_algorithm aes128;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}
sainfo address 169.254.249.6/30 any address 169.254.249.5/30 any {
pfs_group 2;
lifetime time 3600 seconds;
encryption_algorithm aes128;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}
BGP가 제대로 작동하므로 해당 구성을 게시하지 않겠습니다.
여기 효과가 있습니다
- Linux 상자에서 로컬 엔드 포인트 (169.254.249.2/169.254.249.6) 및 해당 원격 엔드 포인트 (169.254.249.1/169.254.249.5)를 ping 할 수 있습니다.
- 또한 VPC에서 인스턴스를 핑 (Ping) 할 수도 있고 SSH로 연결할 수도 있습니다.
- VPC의 원격 인스턴스에서 로컬 및 원격 엔드 포인트도 핑할 수 있습니다.
- 10.3.0.0/25 서브넷에서 로컬 서버를 ping 할 수 없습니다
나는 간단한 것을 놓치고 있다고 가정하지만 {local subnet} <-> {remote endpoint}을 사용하여 {local endpoint} <-> {remote subnet}을 미러링하기 위해 ipsec-tools.conf에 항목을 추가하려고 시도했습니다. 그러나 작동하지 않는 것 같습니다.
{remote instance}에서 {local server}로 핑하면 핑 시간이 초과됩니다. 로컬 네트워크가 eth1에 있더라도 패킷은 eth0 인터페이스에서 볼 수 있습니다.
구글은 거의 도움이되지 않았다. OpenSwan을 사용하려고하거나 유사한 문제가 있지만 하드웨어 라우터 또는 이전 도구를 사용하는 사람 만 표시합니다.