Мне удалось настроить openvpn на тестовом сервере, настроить PKI и распространить сертификаты на тестовые клиентские машины. Я могу ssh с клиентских машин на сервер openvpn, используя IP-адрес другого конца моста tun:
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.1.0.2 P-t-P:10.1.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
что достигается с помощью этой строки в файле конфигурации openvpn:
ifconfig 10.1.0.2 10.1.0.1
Я запускаю openvpn со следующим скриптом openvpn-startup.sh
dir=/home/lurscher/openvpn/testChapter8/sample-config-files/
# load the firewall
$dir/firewall.sh
# load TUN/TAP kernel module
modprobe tun
# enable IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
openvpn --script-security 2 --cd $dir --daemon --config tls-office.conf --log $dir/log/vpn.log
это tls-office.conf:
dev tun
ifconfig 10.1.0.1 10.1.0.2
up ./office.up
# the office.up script has this:
##!/bin/sh
#route add -net 10.0.1.0 netmask 255.255.255.0 gw $5
#(in the openvpn manual, it says that if the Device is TUN, $5 stands for Remote IP)
tls-server
dh /home/lurscher/keys/dh1024.pem
ca /home/lurscher/keys/ca.crt
cert /home/lurscher/keys/vpnCh8TestServer.crt
key /home/lurscher/keys/vpnCh8TestServer.key
verb 3
Для клиентской машины я использую следующий файл конфигурации:
dev tun
remote my.server.com
# 10.1.0.2 is our local VPN endpoint (home).
# 10.1.0.1 is our remote VPN endpoint (office).
;ifconfig 10.1.0.2 10.1.0.1
# Our up script will establish routes
# once the VPN is alive.
up ./home.up
##!/bin/sh
#route add -net 10.0.0.0 netmask 255.255.255.0 gw $5
#(in the openvpn manual, it says that if the Device is TUN, $5 stands for Remote IP)
tls-client
ca /home/chuckq/keys/ca.crt
cert /home/chuckq/keys/vpnCh8TestClient.crt
key /home/chuckq/keys/vpnCh8TestClient.key
ns-cert-type server
; port 1194
; user nobody
; group nogroup
verb 3
Однако я немного не понимаю, как подключиться / увидеть IP-адрес других машин на той же стороне туннеля, где находится сервер openvpn. Я предполагаю, что они получают IP в диапазоне 10.1.X.X, но я не вижу ни одного из них. Может быть, я просто не знаю, как узнать, какой ip назначен за туннелем, потому что я просто использую ifconfig
чтобы узнать, какой локальный IP-адрес у машины, но каждая машина сообщает только об узлах моста tun IP (клиент и сервер), но не упоминает о других машинах на обоих концах
Итак, предположим, что есть http-сервер на машине за сервером openvpn, но не на той же машине; как мне добраться до него или увидеть его у клиентов openvpn?
Спасибо!
Следующая директива
статус /var/log/openvpn-status.log
в файле конфигурации сервера OpenVPN будет поддерживать список адресов конечных точек и маршрутизируемых сетей всех ваших клиентов OpenVPN в файле /var/log/openvpn-status.log, который обновляется каждые 60 секунд, пока работает OpenVPN.