РЕДАКТИРОВАТЬ:
Хорошо, благодаря всей вашей помощи я добился некоторого прогресса. Я исправил проблемы с подключением к мосту, вручную настроив мост в файле интерфейсов и отредактировав сценарии bridge-start и bridge-stop, чтобы только добавить / удалить интерфейс касания (текущие версии этих файлов см. Ниже. )
Теперь я могу подключиться к серверу, но соединение продолжает обрываться. Это ключевой вопрос? Я безрезультатно пытался восстановить ключи.
Журнал из Tunnelbrick при попытке подключения к моему серверу:
2010-09-19 10:08:05 *Tunnelblick: OS X 10.6.4; Tunnelblick 3.0 (build 1437); OpenVPN 2.1.1
2010-09-19 10:08:07 *Tunnelblick: Attempting connection with evan's apartment.conf; Set nameserver = 1; monitoring connection
2010-09-19 10:08:07 *Tunnelblick: /Applications/Tunnelblick.app/Contents/Resources/openvpnstart start evan's\ apartment.conf 1338 1 0 0 0
2010-09-19 10:08:07 *Tunnelblick: /Applications/Tunnelblick.app/Contents/Resources/openvpn --management-query-passwords --cd /Users/evan/Library/Application Support/Tunnelblick/Configurations --daemon --management-hold --management 127.0.0.1 1338 --config /Users/evan/Library/Application Support/Tunnelblick/Configurations/evan's apartment.conf --script-security 2 --up "/Applications/Tunnelblick.app/Contents/Resources/client.up.osx.sh" --down "/Applications/Tunnelblick.app/Contents/Resources/client.down.osx.sh" --up-restart
2010-09-19 10:08:07 SUCCESS: pid=2376
2010-09-19 10:08:07 SUCCESS: real-time state notification set to ON
2010-09-19 10:08:07 SUCCESS: real-time log notification set to ON
2010-09-19 10:08:07 OpenVPN 2.1.1 i386-apple-darwin10.2.0 [SSL] [LZO2] [PKCS11] built on Feb 24 2010
2010-09-19 10:08:07 MANAGEMENT: TCP Socket listening on 127.0.0.1:1338
2010-09-19 10:08:07 waiting...
2010-09-19 10:08:07 MANAGEMENT: Client connected from 127.0.0.1:1338
2010-09-19 10:08:07 MANAGEMENT: CMD 'pid'
2010-09-19 10:08:07 MANAGEMENT: CMD 'state on'
2010-09-19 10:08:07 MANAGEMENT: CMD 'log on all'
2010-09-19 10:08:07 END
2010-09-19 10:08:07 MANAGEMENT: CMD 'hold release'
2010-09-19 10:08:07 SUCCESS: hold release succeeded
2010-09-19 10:08:07 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
2010-09-19 10:08:07 Control Channel Authentication: using '/Users/evan/VPN/ta.key' as a OpenVPN static key file
2010-09-19 10:08:07 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
2010-09-19 10:08:07 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
2010-09-19 10:08:07 LZO compression initialized
2010-09-19 10:08:07 Control Channel MTU parms [ L:1576 D:168 EF:68 EB:0 ET:0 EL:0 ]
2010-09-19 10:08:07 Data Channel MTU parms [ L:1576 D:1450 EF:44 EB:135 ET:32 EL:0 AF:3/1 ]
2010-09-19 10:08:07 Local Options hash (VER=V4): 'e39a3273'
2010-09-19 10:08:07 Expected Remote Options hash (VER=V4): '3c14feac'
2010-09-19 10:08:07 or --up-delay
2010-09-19 10:08:07 Attempting to establish TCP connection with 192.168.0.2:1194 [nonblock]
2010-09-19 10:08:07
2010-09-19 10:08:08 TCP connection established with 192.168.0.2:1194
2010-09-19 10:08:08 Socket Buffers: R=[525624->65536] S=[131768->65536]
2010-09-19 10:08:08 TCPv4_CLIENT link local: [undef]
2010-09-19 10:08:08 TCPv4_CLIENT link remote: 192.168.0.2:1194
2010-09-19 10:08:08
2010-09-19 10:08:08 restarting [0]
2010-09-19 10:08:08 TCP/UDP: Closing socket
2010-09-19 10:08:08 process restarting
2010-09-19 10:08:08
2010-09-19 10:08:08 MANAGEMENT: CMD 'hold release'
2010-09-19 10:08:08 SUCCESS: hold release succeeded
2010-09-19 10:08:08 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
2010-09-19 10:08:08 Re-using SSL/TLS context
2010-09-19 10:08:08 LZO compression initialized
2010-09-19 10:08:08 Control Channel MTU parms [ L:1576 D:168 EF:68 EB:0 ET:0 EL:0 ]
2010-09-19 10:08:08 Data Channel MTU parms [ L:1576 D:1450 EF:44 EB:135 ET:32 EL:0 AF:3/1 ]
2010-09-19 10:08:08 Local Options hash (VER=V4): 'e39a3273'
2010-09-19 10:08:08 Expected Remote Options hash (VER=V4): '3c14feac'
2010-09-19 10:08:08 Attempting to establish TCP connection with 192.168.0.2:1194 [nonblock]
2010-09-19 10:08:08
2010-09-19 10:08:09 TCP connection established with 192.168.0.2:1194
2010-09-19 10:08:09 Socket Buffers: R=[525624->65536] S=[131768->65536]
2010-09-19 10:08:09 TCPv4_CLIENT link local: [undef]
2010-09-19 10:08:09 TCPv4_CLIENT link remote: 192.168.0.2:1194
2010-09-19 10:08:09
2010-09-19 10:08:09 restarting [0] ... (just keeps repeating from here)
Вот обновленные файлы, которые я изменил:
интерфейсы
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
# Bridge for OpenVPN
auto br0
iface br0 inet static
address 192.168.0.2
netmask 255.255.255.0
gateway 192.168.0.1
bridge_ports eth0
мост-старт
#!/bin/bash
#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################
# Define Bridge Interface
br="br0"
# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"
# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0"
eth_ip="192.168.0.2"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.0.255"
eth_gateway="192.168.0.1"
eth_network="192.168.0.0"
for t in $tap; do
openvpn --mktun --dev $t
done
#brctl addbr $br
#brctl addif $br $eth
for t in $tap; do
brctl addif $br $t
done
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done
ifconfig $eth 0.0.0.0 promisc up
#ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast gateway $eth_gateway
мостовая остановка
#!/bin/bash
####################################
# Tear Down Ethernet bridge on Linux
####################################
# Define Bridge Interface
br="br0"
# Define list of TAP interfaces to be bridged together
tap="tap0"
#ifconfig $br down
#brctl delbr $br
for t in $tap; do
openvpn --rmtun --dev $t
done
Мой файл server.conf выглядит так, как предлагал aleroot.
Спасибо за всю вашу помощь, я думаю, что теперь я близок :).
ОРИГИНАЛЬНЫЙ ВОПРОС:
Я пытаюсь заставить свой сервер Ubuntu 10.04 действовать как сервер OpenVPN, чтобы я мог в конечном итоге самба смонтировать свои данные на моем рабочем столе, пока я на работе. Я выполнил инструкции Вот несколько раз безуспешно.
Я почти уверен, что проблема связана с настройкой мостов и интерфейса крана. Я думаю, это потому, что как только я настроил мост (используя эти скрипты - http openvpn.net/index.php/open-source/documentation/miscellaneous/76-ethernetbridging.html#linuxscript - извините, я могу сделать только одну ссылку на данный момент :)) и запускаю сервер (который запускается без ошибок). Я теряю соединение eth0 (и когда я запускаю ifconfig, только новый br0 имеет IP-адрес). Кроме того, после включения мостов я больше не могу подключаться к моему серверу по ssh, который снова начинает работать, когда я останавливаю сервер openvpn и запускаю сценарий bridge-stop.
Я не понимаю, какой IP-адрес куда идет.
У моего маршрутизатора есть общедоступный IP-адрес, скажем, 25.25.25.25, а у моего сервера Ubuntu статический IP-адрес 192.168.0.2 (переадресация портов и все работает правильно, я могу подключиться по ssh откуда угодно, пока я не запустил сценарии моста или не попробую :)). Вот значения, которые я использовал в указанных выше файлах, они выглядят правильно?
Из бридж-старта (ссылка на полный файл выше)
# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0"
eth_ip="192.168.0.2"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.0.255"
Из server.conf
local 192.168.0.2
dev tap0
up "/etc/openvpn/up.sh br0"
down "/etc/openvpn/down.sh br0"
;server 10.8.0.0 255.255.255.0
server-bridge 192.168.0.2 255.255.255.0 192.168.0.50 192.168.100
push "route 192.168.0.2 255.255.255.0"
push "dhcp-option DNS 192.168.0.1"
;push "dhcp-option DOMAIN example.com" <- commented not sure what i should use, the value is resolve.conf?
tls-auth ta.key 0 # This file is secret
user nobody
group nogroup
Спасибо за вашу помощь!!
Не могу ничего предложить по конфигурации выше, но я могу предложить пару альтернатив:
Возможно, вы захотите установить Сервер OpenVPN-AS - мы запускаем его на Ubuntu, и это здорово. Он устанавливается быстро и безболезненно и имеет интуитивно понятный веб-интерфейс для настройки и мониторинга. Он обеспечивает прозрачную настройку интерфейсов и даже настраивает для вас соответствующие правила iptables. До 2 одновременных пользователей бесплатны, а другие - дешево (5 долларов США за пользователя в год). Клиенты могут загрузить предварительно настроенный, настроенный файл конфигурации (* .nix) или пакет установки (Windows) через веб-интерфейс.
В качестве альтернативы вы можете запустить pfSense в виртуальной машине (отлично работает под KVM в Ubuntu) или поместите ее в отдельный ящик (для этого не нужно много оборудования) и воспользуйтесь преимуществами встроенных серверов L2TP, OpenVPN или PPTP VPN. Опять же, это потребует некоторой боли, связанной с настройкой и настройкой, хотя вам потребуется настроить KVM если вы пошли по этому пути.
Я не думаю, что вам нужно использовать мост для того, что вы хотите сделать. Вы пробовали просто настроить обычный сервер OpenVPN?
Пример Server.cfg в ваших ситуациях:
port 1194
proto tcp
dev tap
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/Server-VPN.crt
key /etc/openvpn/easy-rsa/keys/Server-VPN.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
ifconfig-pool-persist ipp.txt
server-bridge 192.168.0.2 255.255.255.0 192.168.0.50 192.168.0.100
push "route 192.0.0.0 255.0.0.0"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
Также вам необходимо запустить этот скрипт при запуске системы (вставьте его в /etc/init.d/ и символическую ссылку в /etc/rcX.d/ в вашем дистрибутиве ubuntu) для настройки вашего моста:
#!/bin/bash
#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################
# Define Bridge Interface
br="br0"
# Define list of TAP interfaces to be bridged,
# for example tap="tap0 tap1 tap2".
tap="tap0"
# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0"
eth_ip="192.168.0.2"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.0.255"
for t in $tap; do
openvpn --mktun --dev $t
done
brctl addbr $br
brctl addif $br $eth
for t in $tap; do
brctl addif $br $t
done
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done
ifconfig $eth 0.0.0.0 promisc up
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast