OpenVPN сервер на OpenSuSe 13.2

Зачем? А зачем вообще нужен vpn?

Чтобы никто не влез в ваше соединение и не стыбрил файлик с суперсекретной информацией, чтобы сидеть ВКонтактике с домашнего провайдера если на работе/учёбе злые админы прикрыли доступ к этому сайту, чтобы пользоваться дома ресурсами сервера на работе у которого нет прямого выхода в глобальную сеть. Да мало ли что ещё придумает ваша больная фантазия!

И так:

  • Установим сам openvpn (одним пакетом поставляется и клиент и сервер):
sudo zypper in openvpn
  • Логинимся в рута:
sudo su
  • Качаем тулзу для генерации сертификатов:
wget -O easy-rsa-2.x.tar.gz https://github.com/OpenVPN/easy-rsa/archive/release/2.x.tar.gz
  • Расспаковываем:
tar xvf easy-rsa-2.x.tar.gz

 

  • Копируем в папку с конфигами openvpn:
cp -r easy-rsa-release-2.x/easy-rsa /etc/openvpn/
  • Переходим в папку с которой будем работать:
cd /etc/openvpn/easy-rsa/2.0/
  • И редактируем файл vars:
nano /etc/openvpn/easy-rsa/2.0/vars
  • Запускаем vars:
./vars
  • Запускаем clean-all:
./clean-all
  • Запускаем build-ca
./build-ca
  • Генерируем сертификат сервера
./build-key-server server
  • Запускаем скрипты генерации и отвечаем на вопросы, если [да/нет] то отвечаем утвердительно, пароли можно не создавать, но если вы боитесь что сертификаты попадут в чужие руки то всё таки стоит:
./build-key client1
./build-key client2
./build-key client3

.. столько клиентов сколько вам надо

./build-dh
  • создаём файл /etc/openvpn/client.conf
client
remote IP_ВАШЕГО_СЕРВЕРА 1194
ca ca.crt
cert client1.crt
key client1.key
comp-lzo yes
dev tap
proto udp
nobind
auth-nocache
script-security 2
persist-key
persist-tun
user nobody
group nobody
remote-cert-tls server
  • переходим в папку с ключами и копируем их на место
cd /etc/openvpn/easy-rsa/2.0/keys
cp ca.crt ca.key dh2048.pem server.crt server.key /etc/openvpn
  • Копируем дефолтный файл конфигурации сервера:
cp /usr/share/doc/packages/openvpn/sample-config-files/server.conf /etc/openvpn/
  • И меняем в нём dh1024.pem на dh2048.pem;
  • Так же комментируем dev tun и раcкомментируем dev tap;
  • Добавляем службу в автозапуск и делаем её загружаемой при запуске:
systemctl start openvpn@server.service
systemctl enable openvpn@server.service
  • Теперь копируем ca.crt client.crt client.key на клиентскую тачку и конфиг (для linux конфиг с расширением .conf а для windows с расширением .ovpn);
  • Готово, подключаемся и пользуем.