
나는 이것에 익숙하지 않습니다. 나의 무지를 용서해주십시오. 나는 아무 소용이 없는 다른 많은 유사한 질문을 살펴보았습니다.
클라이언트 C가 호스트 H에 연결하고, 가상 IP 주소를 할당받고, H의 네트워크에 액세스할 수 있도록 StrongSwan VPN을 설정하려고 합니다. (설정 및 테스트하는 동안의 실제적인 제한으로 인해 C와 H는 현재 동일한 네트워크에 있습니다. 실제로 C와 H는 동일한 물리적 PC에 있는 VM이고 네트워크는 브리지 모드이므로 자체 IP 주소를 갖습니다.)
StrongSwan 5.3.0, Ubuntu 14.04(C 및 H 모두)를 사용합니다.
C에서 실행했는데 ipsec up home
연결이 설정된 것 같습니다. H는 C에 할당된 가상 IP 주소(192.168.0.1)에 대해 ping을 수행할 수 있고 C는 가상 IP 주소(tcpdump를 사용하여 확인)로 이동하는 ping을 볼 수 있습니다.
그러나 내가 알 수 있는 한, C의 모든 트래픽은 여전히 터널을 통하지 않고 C의 네트워크 연결을 통해 곧바로 나갑니다. tcpdump ip proto \\icmp
세 번째 테스트, 서버(T)에서 실행하고 C에서 핑하면 I C의 실제 IP 주소로 요청을 확인하세요. wget
C에서 T로 이동하는 경우에도 마찬가지입니다 .
내 구성은 다음과 같습니다.
# 호스트(H)의 /etc/ipsec.conf
config setup
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev2
conn rw
left=192.168.196.50
leftcert=moonCert.pem
[email protected]
leftfirewall=yes
right=%any
rightsourceip=192.168.0.0/16
auto=add
-
# /etc/ipsec.conf - 클라이언트에서 (C)
config setup
conn %default
ikelifetime=60m
keylife=20m
rekeymargin=3m
keyingtries=1
keyexchange=ikev2
conn home
left=192.168.198.74
leftsourceip=%config
leftcert=carolCert.pem
[email protected]
leftfirewall=yes
right=192.168.196.50
[email protected]
auto=add
H의 실제 IP 주소는 192.168.196.50입니다. C의 실제 IP 주소는 192.168.198.74입니다.
답변1
난 달려야 했어
sudo sysctl net.ipv6.conf.all.forwarding=1
sudo sysctl net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.0.3.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.0.3.0/24 -o eth0 -j MASQUERADE
호스트에서 트래픽을 외부로 라우팅하도록 합니다.
내 클라이언트 C는 이제 로컬 네트워크의 다른 컴퓨터와 인터넷의 일부(모두는 아니지만 이해가 안 됨)를 볼 수 있습니다.