저는 최근 두 개의 다른 우분투 서버가 있는 두 개의 다른 사이트에 Strongswan IKEv2 원격 액세스 VPN을 배포했습니다. 모두 훌륭하게 작동하지만 이제 사이트 간 VPN을 사용하여 두 사이트를 "병합"하여 하나의 원격 액세스 VPN만 남겨두고 두 서브넷에 모두 액세스할 수 있도록 하려고 합니다. 문제는 그것을 어떻게 하는가이다. 내 아이디어는 트래픽을 관리하기 위해 두 사이트 간의 Strongswan과 두 사이트 라우터의 정적 라우팅을 사용하는 IPSec 터널이었습니다.
사이트는 다음과 같이 구성됩니다.
A)
Only One Public IP : x.x.x.x
Subnet : 10.5.5.0/24
B)
One Usable Public IP : x.x.x.x
Subnet : 192.168.5.0/24
질문은 다음과 같습니다
- 동일한 Strongswan 인스턴스에서 두 서비스(IKEv2 원격 액세스 및 IPSec 터널)를 실행할 수 있습니까? 이에 대한 내 대답은 '아니요'입니다. 그렇다면 다른 두 개의 우분투 서버를 게이트웨이로 사용하여 Strongswan의 새 인스턴스를 추가할 준비가 되었습니다.
- 하지만 사이트에서 두 개의 서로 다른 서버를 사용하는 경우 또 다른 문제가 발생하면 사이트에는 각각 하나의 공용 IP만 있습니다. IPSec와 IKEv2가 모두 동일한 포트를 사용해야 하므로 어떻게 충돌을 해제합니까? IPSec 터널에서 사용되는 포트를 변경할 수 있습니까? 아니면 IPSec 터널에 대한 포트 전달이 필요하지 않습니까?
이것은 IPSec 터널에 대한 나의 참조입니다. https://www.tecmint.com/setup-ipsec-vpn-with-strongswan-on-debian-ubuntu/
이 혼란스러운 작업을 수행하는 방법에 대한 아이디어가 있습니까? 두 개의 VPN 서버를 실행하려면 항상 두 개의 다른 IP 주소가 필요합니까? OpenSource DMVPN이 도움이 될 수 있나요?
미리 감사드립니다.
답변1
귀하의 질문에 답변하려면
- 예, 동일한 StrongSwan 인스턴스에서 원격 액세스(일명 Roadwarrior) 및 사이트 간 터널을 실행할 수 있습니다.
- 인증 방법에 따라 사이트 간 연결과 원격 액세스 연결을 구분할 수 있습니다.
다음은 작업 설정입니다.
connections {
site {
pools = ipv4, ipv6
local {
auth = pubkey
certs = site1.example.com.pem
id = site1.example.com
}
remote {
auth = pubkey
cacerts = MyCA.cer
id = "CN=site2.example.com"
}
children {
site {
local_ts = 10.218.2.0/24, ::/0
remote_ts = 10.218.1.0/24, 2001:470:ffff::/64
}
}
}
win {
pools = ipv4, ipv6
local {
auth = pubkey
certs = site1.example.com.pem
id = site1.example.com
}
remote {
auth = pubkey
cacerts = LloydsCertificateAuthorityG2.cer
}
children {
win {
local_ts = 0.0.0.0/0, ::/0, 10.218.1.0/24, 2001:470:ffff::/64
}
}
}
}
pools {
ipv4 {
addrs = 10.218.2.3-10.218.2.254
dns = 10.218.1.99
netmask = 255.255.255.0
subnet = 10.218.2.0/24,10.218.1.0/24
}
ipv6 {
addrs = 2001:470:ffff:2::3-2001:470:ffff:2::ffff
dns = 2001:470:ffff::99/64
subnet = 2001:470:ffff:2::/64,2001:470:ffff::/64
}
}
사이트 2는 IKEv2 프로토콜 및 시스템 인증서 CN=site2.example.com으로 연결됩니다.
인증서는 사이트 1의 다음 위치에 저장됩니다.
/etc/swanctl/rsa/site1.example.com.pem (private key)
/etc/swanctl/x509/site1.example.com.pem (public key)
/etc/swanctl/x509ca/MyCa.cer (Root CA)
다음을 사용하여 구성을 다시 로드합니다.swanctl --load-all
원격 액세스 클라이언트에 대해 NAT를 활성화하려면
iptables -t nat -A POSTROUTING -s 10.218.2.0/24,10.218.1.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.218.2.0/24,10.218.1.0/24 -o eth0 -j MASQUERADE