Search

On Premise Server

fedora.repo
vim /etc/yum.repos.d/fedora.repo
Shell
복사
sudo dnf --enablerepo=fedora install libreswan -y
Shell
복사
# Libreswan EC2의 공인 IP export LEFT_PUBLIC_IP=$(aws ec2 describe-instances \ --filters "Name=tag:Name,Values=onprem-server" "Name=instance-state-name,Values=running" \ --query 'Reservations[0].Instances[0].PublicIpAddress' \ --output text)
Shell
복사
export LEFT_PUBLIC_IP_2=$LEFT_PUBLIC_IP
Shell
복사
export LEFT_SUBNET="10.10.0.0/16" # 온프레미스 VPC 서브넷
Shell
복사
# VPN connection id export VPN_CONNECTION_ID=$(aws ec2 describe-vpn-connections \ --filters "Name=tag:Name,Values=onprem-to-cloud-vpn" "Name=state,Values=available" \ --query 'VpnConnections[0].VpnConnectionId' \ --output text)
Shell
복사
# AWS VPN Gateway의 공인 IP export RIGHT_PUBLIC_IP=$(aws ec2 describe-vpn-connections \ --vpn-connection-ids ${VPN_CONNECTION_ID} \ --query 'VpnConnections[0].VgwTelemetry[0].OutsideIpAddress' \ --output text)
Shell
복사
export RIGHT_PUBLIC_IP_2=$(aws ec2 describe-vpn-connections \ --vpn-connection-ids ${VPN_CONNECTION_ID} \ --query 'VpnConnections[0].VgwTelemetry[1].OutsideIpAddress' \ --output text)
Shell
복사
export RIGHT_SUBNET="10.20.0.0/16" # Cloud VPC 서브넷
Shell
복사
# VPN 첫번째 터널의 사전 공유 키 export PSK_SECRET=$(aws ec2 describe-vpn-connections \ --vpn-connection-ids ${VPN_CONNECTION_ID} \ --query 'VpnConnections[0].Options.TunnelOptions[0].PreSharedKey' \ --output text)
Shell
복사
export PSK_SECRET_2=$(aws ec2 describe-vpn-connections \ --vpn-connection-ids ${VPN_CONNECTION_ID} \ --query 'VpnConnections[0].Options.TunnelOptions[1].PreSharedKey' \ --output text)
Shell
복사
cat << EOF > /etc/sysctl.conf net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 0 net.ipv4.conf.default.accept_source_route = 0 EOF
Shell
복사
sudo sysctl -p
Shell
복사
cat << EOF > /etc/ipsec.d/aws.conf conn Tunnel1 authby=secret auto=start left=%defaultroute leftid=$LEFT_PUBLIC_IP right=$RIGHT_PUBLIC_IP type=tunnel ikelifetime=8h keylife=1h phase2alg = aes256-sha2_256;modp2048 ike=aes128-sha1;modp2048 keyingtries=%forever keyexchange=ike leftsubnet=$LEFT_SUBNET rightsubnet=$RIGHT_SUBNET dpddelay=10 dpdtimeout=30 dpdaction=restart_by_peer overlapip=yes conn Tunnel2 authby=secret auto=start left=%defaultroute leftid=$LEFT_PUBLIC_IP_2 right=$RIGHT_PUBLIC_IP_2 type=tunnel ikelifetime=8h keylife=1h phase2alg = aes256-sha2_256;modp2048 ike=aes128-sha1;modp2048 keyingtries=%forever keyexchange=ike leftsubnet=$LEFT_SUBNET rightsubnet=$RIGHT_SUBNET dpddelay=10 dpdtimeout=30 dpdaction=restart_by_peer overlapip=yes EOF
Shell
복사
cat << EOF > /etc/ipsec.d/aws.secrets $LEFT_PUBLIC_IP $RIGHT_PUBLIC_IP : PSK "$PSK_SECRET" $LEFT_PUBLIC_IP_2 $RIGHT_PUBLIC_IP_2 : PSK "$PSK_SECRET_2" EOF
Shell
복사
systemctl restart ipsec
Shell
복사