Для настройки VPN туннеля по SSH подключению до контейнера, который находится под управлением OpenVZ нужно сделать две вещи.
Во первых нужно добавить в контейнер символьное устройство TUN/TAP, с помощью которого будет осуществляться туннелирование. Для этого со стороны админа OpenVZ надо выполнить
modprobe tun vzctl set 101 --devices c:10:200:rw --save vzctl set 101 --capability net_admin:on --save
где 101 — это номер нужного виртуального окружения.
В контейнере надо создать соотвествующее символьное устройство:
mkdir /dev/net mknod /dev/net/tun c 10 200
Далее идет собственно настройка туннеля между клиентом и сервером:
On the client: ssh -f -w 0:1 192.168.1.15 true ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252 route add 10.0.99.0/24 10.1.1.2 On the server: ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252 route add 10.0.50.0/24 10.1.1.1
Либо можно сделать автоматическую настройку, как описано в вики Ubuntu
Automating it all with ifup/down At this point, we have successfully created a virtual private network using SSH 4.3 tunnels. Can we automate this process with ifup/down? The answer is: yes! Machine A: iface tun0 inet static pre-up sleep 5 address 10.0.0.100 pointopoint 10.0.0.200 netmask 255.255.255.0 up arp -sD 10.0.0.200 eth0 pub Machine B: iface tun0 inet static pre-up ssh -f -w 0:0 1.2.3.4 'ifdown tun0; ifup tun0' pre-up sleep 5 address 10.0.0.200 pointopoint 10.0.0.100 netmask 255.255.255.0 up ip route add 10.0.0.0/24 via 10.0.0.200 up ip route add 1.2.3.4/32 via 192.168.0.1 up ip route replace default via 10.0.0.1 down ip route replace default via 192.168.0.1 down ip route del 10.0.0.0/24 via 10.0.0.200 down ip rout edel 1.2.3.4/32 via 192.168.0.1