Собственно, сабж
<a href="http://wiki.debian.org/HowTo/openvpn">http://wiki.debian.org/HowTo/openvpn</a>
Гениально и просто, и никаких заморочек с ключами и прочей ерундистикой. Сделал на основе протокола tcp, ибо не данные качаю, а пользователи заходят поработать на площадку.
На одном конце стоит старенький Debian, на другом - CentOS.
На сервере вот что
dev tun0
proto tcp-server
ifconfig 10.10.0.250 10.10.0.251
secret /etc/openvpn/static.key
keepalive 10 120
verb 3
а на клиенте - другая ситуация:
dev tun0
proto tcp-client
nobind
remote :1194
ifconfig 10.10.0.251 10.10.0.250
secret /etc/openvpn/static.key
ну, и по идее надо бы ещё довернуть маршрутов.
В результате поднятия туннеля образуется point-to-point интерфейс на каждом из участников соединения.
Соответственно, для того чтобы видеть что же там, за p-t-p, есть, нужно прописать правильные маршруты, причём как для vpn-клиента, так и и для default gateway, находящегося на стороне сети (потому что в сети пакеты будут благополучно с хостов утекать на default gateway, который должен их заруливать на vpn-сервер).
в идеале vpn должен подыматься на default gateway. Либо под него нужно выделять отдельную тачку.
P.S.
В довесок: <a href="http://adminletters.blogspot.com/2009/05/openvpn.html">http://adminletters.blogspot.com/2009/05/openvpn.html</a>
(это моя статья <a href="http://eleksir8.blogspot.ru/2011/03/vpn-openvpn.html">http://eleksir8.blogspot.ru/2011/03/vpn-openvpn.html</a>)