Пытался настроить по вашей инструкции, но openpn не стартует. Единственное что я поменял - использую интерфейс tap вместо tun. Почему то на моей VPS tun просто не заводится.
Еще заранее пришлось создать этот tap0 интерфейс, сам он не поднимался. Делал так:
ifconfig tap0 10.8.0.1/29 up
Далее пытался стартовать сервер, но толку не было:
root@ubuntu-8gb-hel1-1:~# /etc/init.d/openvpn start
[ ok ] Starting openvpn (via systemctl): openvpn.service.
Однако в процессах ничего нет:
root@ubuntu-8gb-hel1-1:~# ps auxww | grep -i vpn
root 8352 0.0 0.0 13136 1004 pts/1 S+ 19:08 0:00 grep --color=auto -i vpn
В логах тоже ничего не появляется, если стартовать сервис через стартовый скрипт.
Решил запустить напрямую, что бы в логах хотя бы что то было:
root@ubuntu-8gb-hel1-1:~# /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/server.conf --writepid /run/openvpn/server.pid
Получил такое из /var/log/syslog:
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8328]: disabling NCP mode (--ncp-disable) because not in P2MP client or server mode
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8328]: OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Sep 5 2018
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8328]: library versions: OpenSSL 1.1.0g 2 Nov 2017, LZO 2.08
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: Outgoing Static Key Encryption: Cipher 'BF-CBC' initialized with 128 bit key
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: WARNING: INSECURE cipher with block size less than 128 bit (64 bit). This allows attacks like SWEET32. Mitigate by using a --cipher with a larger block size (e.g. AES-256-CBC).
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: Outgoing Static Key Encryption: Using 160 bit message hash 'SHA1' for HMAC authentication
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: Incoming Static Key Encryption: Cipher 'BF-CBC' initialized with 128 bit key
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: WARNING: INSECURE cipher with block size less than 128 bit (64 bit). This allows attacks like SWEET32. Mitigate by using a --cipher with a larger block size (e.g. AES-256-CBC).
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: Incoming Static Key Encryption: Using 160 bit message hash 'SHA1' for HMAC authentication
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: WARNING: Since you are using --dev tap, the second argument to --ifconfig must be a netmask, for example something like 255.255.255.0. (silence this warning with --ifconfig-nowarn)
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: TUN/TAP device tap0 opened
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: TUN/TAP TX queue length set to 100
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: /sbin/ip link set dev tap0 up mtu 1500
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: /sbin/ip addr add dev tap0 10.8.0.1/-1 broadcast 255.255.255.253
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: Linux ip addr add failed: external program exited with error status: 1
Feb 8 19:05:41 ubuntu-8gb-hel1-1 ovpn-server[8329]: Exiting due to fatal error
Вот что в конфиге openvpn:
root@ubuntu-8gb-hel1-1:~# cat /etc/openvpn/server.conf
dev tap0
ifconfig 10.8.0.1 10.8.0.2
secret /root/static.key
verb 3
daemon
Идеи?
UPDATE 1
После экспериментов с интерфейсами случайно положил свою впс-ку. Пришлось перезагрузиться резетом. Что интересно, после перезагрузки теперь стало писать в сислог и выдает такое:
Feb 8 19:39:18 ubuntu-8gb-hel1-1 systemd[1]: Starting OpenVPN service...
Feb 8 19:39:18 ubuntu-8gb-hel1-1 systemd[1]: Starting OpenVPN connection to server...
Feb 8 19:39:18 ubuntu-8gb-hel1-1 systemd[1]: Started OpenVPN service.
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: disabling NCP mode (--ncp-disable) because not in P2MP client or server mode
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: OpenVPN 2.4.4 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Sep 5 2018
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: library versions: OpenSSL 1.1.0g 2 Nov 2017, LZO 2.08
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: Outgoing Static Key Encryption: Cipher 'BF-CBC' initialized with 128 bit key
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: WARNING: INSECURE cipher with block size less than 128 bit (64 bit). This allows attacks like SWEET32. Mitigate by using a --ciph
er with a larger block size (e.g. AES-256-CBC).
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: Outgoing Static Key Encryption: Using 160 bit message hash 'SHA1' for HMAC authentication
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: Incoming Static Key Encryption: Cipher 'BF-CBC' initialized with 128 bit key
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: WARNING: INSECURE cipher with block size less than 128 bit (64 bit). This allows attacks like SWEET32. Mitigate by using a --ciph
er with a larger block size (e.g. AES-256-CBC).
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: Incoming Static Key Encryption: Using 160 bit message hash 'SHA1' for HMAC authentication
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: WARNING: Since you are using --dev tap, the second argument to --ifconfig must be a netmask, for example something like 255.255.255
.0. (silence this warning with --ifconfig-nowarn)
Feb 8 19:39:19 ubuntu-8gb-hel1-1 systemd[1]: Started OpenVPN connection to server.
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: TUN/TAP device tap0 opened
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: TUN/TAP TX queue length set to 100
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: /sbin/ip link set dev tap0 up mtu 1500
Feb 8 19:39:19 ubuntu-8gb-hel1-1 systemd-udevd[2322]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Feb 8 19:39:19 ubuntu-8gb-hel1-1 systemd-udevd[2322]: Could not generate persistent MAC address for tap0: No such file or directory
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: /sbin/ip addr add dev tap0 10.8.0.1/-1 broadcast 255.255.255.253
Feb 8 19:39:19 ubuntu-8gb-hel1-1 openvpn[2299]: Error: any valid prefix is expected rather than "10.8.0.1/-1".
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: Linux ip addr add failed: external program exited with error status: 1
Feb 8 19:39:19 ubuntu-8gb-hel1-1 ovpn-server[2299]: Exiting due to fatal error
Feb 8 19:39:19 ubuntu-8gb-hel1-1 systemd[1]: openvpn@server.service: Main process exited, code=exited, status=1/FAILURE
Feb 8 19:39:19 ubuntu-8gb-hel1-1 systemd[1]: openvpn@server.service: Failed with result 'exit-code'.
Feb 8 19:39:20 ubuntu-8gb-hel1-1 systemd[1]: Stopped OpenVPN connection to server.
UPDATE 2
Вообщем, после длительных мучений удалось настроить OpenVPN между двумя впс-ками по инструкции отсюда: https://help.ubuntu.com/lts/serverguide/openvpn.html
UPDATE 3
Для тех кто столкнется с подобными проблемами в будущем, вот перевод этой статьи (только самое главное, без воды)
Настройка OpenVPN - перевод официальной документации
Настройка сервера
Заходим по SSH на сервер (та машина, к которой будет подключаться клиент). Создаем Ceritficate Authority, он же CA:
mkdir /etc/openvpn/easy-rsa/
cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/
Далее редактируем /etc/openvpn/easy-rsa/vars:
export KEY_COUNTRY="RU"
export KEY_PROVINCE="Moskovskaya oblast"
export KEY_CITY="Moscow"
export KEY_ORG="Example Company"
export KEY_EMAIL="admin@example.com"
export KEY_CN=MyVPN
export KEY_ALTNAMES=MoiVPN
export KEY_NAME=MyVPN
export KEY_OU=MyVPN
Далее сгенерируем сертификат и ключ:
cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-ca
Далее генерируем сертификат и ключ для сервера. В качестве имени сервере использовал дефолтный hostname, который был выдан провайдером моей vps-ки
./build-key-server myservername
Будет спрашивать "согласны - не согласны", говорим на все йес :-)
Sign the certificate? [y/n] y
1 out of 1 certificate requests certified, commit? [y/n] y
Далее запускам скрипт что бы сгенерировать параметры шифрования для OpenVPN (параметры Диффи-Хэлмана):
./build-dh
Далее копируем ключи в правильное место:
cd keys/
cp myservername.crt myservername.key ca.crt dh2048.pem /etc/openvpn/
Сгенерируем клиентские сертификаты:
cd /etc/openvpn/easy-rsa/
source vars
./build-key client1
Далее по scp перекинем эти сертфикаты и ключи на сервер-клиент (та машина, которая будет подключаться по OpenVPN). Файлы расположить на клиенте как показано ниже:
/etc/openvpn/ca.crt
/etc/openvpn/easy-rsa/keys/client1.crt
/etc/openvpn/easy-rsa/keys/client1.key
Далее на сервере делаем настройку OpenVPN сервера:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/
sudo gzip -d /etc/openvpn/server.conf.gz
Редактируем /etc/openvpn/server.conf:
ca ca.crt
cert myservername.crt
key myservername.key
dh dh2048.pem
Далее - включаем роутинг пакетов, редактируем /etc/sysctl.conf:
net.ipv4.ip_forward=1
И применяем параметры sysctl:
sudo sysctl -p /etc/sysctl.conf
Настройка клиента
sudo apt install openvpn
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/
Редактируем /etc/openvpn/client.conf:
ca ca.crt
cert client1.crt
key client1.key
И теперь остается только запустить OpenVPN на обоих машинах (и на сервере, и на клиенте). На сервере запускаем первым, на клиенте вторым:
sudo /etc/init.d/openvpn start
Убедитесь на что на клиенте и на сервере поднялись tun интерфейсы:
ifconfig -a | grep tun
На этом все. Должно работать.