Назад | Перейти на главную страницу

Маршрутизируйте весь трафик через StrongSwan VPN

Я новичок в этом - извините, пожалуйста, за мое незнание. Я просмотрел много других подобных вопросов, но безрезультатно.

Попытка настроить StrongSwan VPN так, чтобы клиент C мог подключаться к хосту H, ему был назначен виртуальный IP-адрес и доступ к сети H. (Из-за практических ограничений при настройке и тестировании C и H в настоящее время находятся в одной сети - на самом деле это виртуальные машины на одном физическом ПК, с сетью в режиме моста, поэтому они получают свои собственные IP-адреса.)

Используя StrongSwan 5.3.0, Ubuntu 14.04 (на C и H).

я бегу ipsec up home на C, и кажется, что соединение установлено. H может пинговать виртуальный IP-адрес, назначенный C (192.168.0.1), а C может видеть, что эхо-запросы идут на его виртуальный IP-адрес (подтверждено с помощью tcpdump).

Однако, насколько я могу понять, весь трафик на C по-прежнему идет прямо через сетевое соединение C, а не через туннель - если я запустил tcpdump ip proto \\icmp на третьем, test, server (T) и ping от C, я вижу запросы с реальным IP-адресом C. То же самое верно, если я wget от C до T.

Моя конфигурация следующая:

# /etc/ipsec.conf на хосте (H)

config setup

conn %default
    ikelifetime=60m
    keylife=20m
    rekeymargin=3m
    keyingtries=1
    keyexchange=ikev2

conn rw
    left=192.168.196.50
    leftcert=moonCert.pem
    leftid=@moon.strongswan.org
    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
     leftid=carol@strongswan.org
     leftfirewall=yes
     right=192.168.196.50
     rightid=@moon.strongswan.org
     auto=add

Настоящий IP-адрес H - 192.168.196.50. Настоящий IP-адрес C - 192.168.198.74.

Мне нужно было бежать

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 теперь может видеть другие машины в локальной сети и НЕКОТОРЫЕ (но не все, что я не понимаю) в Интернете.