Fork me on GitHub

Установка и настройка OpenVPN в Fedora 27

источник: Install OpenVPN on Fedora 26- оказалось некоторые неточности которые мешают воспроизвести инструкцию как она есть. Таким образом, ниже инструкция которая поможет избежать проблем при настройке сервера и клиента с которым я столкнулся.

Настройка сервера OpenVPN

1) Установка:

sudo dnf install openvpn easy-rsa

2) Копируем rsa скрипты в домашнюю папку:

cp -ai /usr/share/easy-rsa/3/* ~/openvpn-ca
cd ~/openvpn-ca

3) Создаем новый PKI и генерируем CA парыключей/сертификаты

./easyrsa init-pki
./easyrsa build-ca nopass

4) Генерация ключей и сертификатов сервера

./easyrsa build-server-full server nopass

5) Генерация ключей и сертификата клиенту

./easyrsa build-client-full client1 nopass

6) Generate a strong Diffie-Hellman keys

./easyrsa gen-dh

7) Generate HMAC signature to strengthen the server’s TLS integrity verification

capabilities
openvpn --genkey --secret pki/ta.key

8) Перед настрйокой OpenVpn сервера нужно скопировать все сгенерированные ключи и сертификаты сервера  ca.crt ca.key server.crt server.key ta.key dh.pem в папку  /etc/openvpn/server

sudo cp ~/openvpn-ca/pki/issued/server.crt /etc/openvpn/server
sudo cp ~/openvpn-ca/pki/private/server.key /etc/openvpn/server
sudo cp ~/openvpn-ca/pki/private/ca.key /etc/openvpn/server
sudo cp ~/openvpn-ca/pki/ca.crt /etc/openvpn/server
sudo cp ~/openvpn-ca/pki/dh.pem /etc/openvpn/server
sudo cp ~/openvpn-ca/pki/ta.key /etc/openvpn/server

9) Конфигурация сервера, сначала скопируем типовую конфигурацию:

sudo cp /usr/share/doc/openvpn/sample/sample-config-files/server.conf /etc/openvpn/server

10) Поменяем некоторые строки в типовой конфигурации

  • добавим строки в конец файла

key-direction 0 auth SHA256

  • удалите символ  ; перед строками которые ниже:

user nobody group nobody

10’) для пропускания всего трафика через VPN, удалите символ ;перед строками push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220"

10’’)[optional] Adjust port and protocol if you don’t wish to use default port 443 proto tcp

and if you have server.crt and server.key with the different name point to them here cert myservername.crt key myservername.key 11) Allow IP Forwarding. This is fairly essential to the functionality we want our VPN server to provide. sudo nano /etc/sysctl.conf and drop a line there net.ipv4.ip_forward=1 activate that: sudo sysctl -p

12) Настройка firewalld для работы с  OpenVPN

sudo firewall-cmd --permanent --add-service openvpn
sudo firewall-cmd --permanent --add-masquerade

если firewalld  не установлен, то установите и настройте автозапуск

если firewalld  не установлен, то установите и настройте автозапуск

13) Настрйоим наш systemd сервис:

sudo ln -s /lib/systemd/system/openvpn-server\@.service /etc/systemd/system/multi-user.target.wants/openvpn-server\@server.service

NB! server corresponts with the configuration file name in /etc/openvpn/server such as server.conf. So if you have myserver.conf you have to replace server with myserver

14) Укажем чтобы OpenVPN загружался  автоматически при заупске системы и запустим его.

sudo systemctl -f enable openvpn-server@server.service
sudo systemctl start openvpn-server@server.service

Если все запустилось без ошибок, то таким образом сконфигурировали OpenVPN сервер.

Настройка конфигурации клиента OpenVPNМы выше уже сгенирировали файлы client1.crt and client1.key.  Сейчас будем создавать конфигурационный файл *.ovpn который объдиняет ваши сертификаты и ключи.

1) Сначала  скопируем в отдельную папку все сгенирированные сущности которые нужны для клиента

cd ~/client-configs
mkdir keys
cp ~/openvpn-ca/pki/ca.crt ~/client-configs/keys
cp ~/openvpn-ca/pki/ta.key ~/client-configs/keys
cp ~/openvpn-ca/pki/private/client1.key ~/client-configs/keys
cp ~/openvpn-ca/pki/issued/client1.crt ~/client-configs/keys

2) Скопируем шаблон типовой конфигурации клиента

cp /usr/share/doc/openvpn/sample/sample-config-files/client.conf ~/client-configs/base.conf

3) Откроем в вашем тектовом редакторе nano ~/client-configs/base.conf

  • и внесем некоторые изменения

remote server_IP_address 1194  #нужно заменить server_IP_address на ваш IP адрес сервера proto udp # update with specified protocol

  • удалите символ ; перед следующими строками

user nobody group nobody

  • и закоментируйте следующие строки
# ca ca.crt
# cert client.crt
# key client.key
# tls-auth ta.key 1
  • и в конце файла конфигурации добавьте строки (обязательно в конце конфигурации должна быть пустая строка чтобы файл конфигурации был корректным):

auth SHA256 key-direction 1

5)  Далее мы создадим простой скрипт который объединяет нашу конфигурацию клиента с сертификатами и ключами клиента, итоговый конфигурационный файл будет создан в папке ~/client-configs/ .

  • созадим файл:
nano ~/client-configs/make_config.sh
  • скоруйте в созданный файл make_config.sh следующее содержимое

  • ``` BASE_CONFIG=~/client-configs/base.conf KEY_DIR=~/client-configs/keys OUTPUT_DIR=~/client-configs cat ${BASE_CONFIG} \ <(echo -e '') \ ${KEY_DIR}/ca.crt \ <(echo -e '\n') \ ${KEY_DIR}/${1}.crt \ <(echo -e '\n') \ ${KEY_DIR}/${1}.key \ <(echo -e '\n') \ ${KEY_DIR}/ta.key \ <(echo -e '') \

    ${OUTPUT_DIR}/${1}.ovpn ```

  • сделаем файл запускаемым

chmod 700 ~/client-configs/make_config.sh

6) Запусти файл с параметром client1 :

./make_config.sh client1

Если у вас все получилось, то сгенирируется файл client1.ovpn в папку ~/client-configs/

Использование файла конфигурации для различных платформ

скопируйте на ваше устройство файл конфигурации client1.ovpn , данный файл не нужно выкладывать в общий доступ, так как если он попадет к "плохим" людям, то они могут расшифровать весь ваш трафик.

  • клиент Fedora 27: Заходим в Настройки системы ->  Сеть -> в разделе VPN нажимаем "+" -> выбираем Импортировать из файла -> указываем файл client1.ovpnесли выбрали правильный файл конфигурации, то настрйоки автоматически настроятся и нажимаете сохранить.Чтобы воспользоваться VPN нужно его активировать.
  • клиент Android: устанавливаем программуOpenVPN Connect из Play Marketa.далее просто находим файл конфигурации в файловом менеджере и нажимаем на файл client1.ovpn, автоматически откроется программа OpenVPN Connect и можно подключиться к OpenVPN серверу.

social