Направляйте весь трафик через StrongSwan VPN

Направляйте весь трафик через StrongSwan VPN

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

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

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

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

Однако, насколько я могу судить, весь трафик на C по-прежнему идет напрямую через сетевое соединение C, а не через туннель — если я запущу tcpdump ip proto \\icmpтретий, тестовый, сервер (T) и пропингую его с C, я увижу запросы с реальным IP-адресом C. То же самое верно, если я сделаю a 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
    [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

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

Связанный контент