Что нового

Article [4] Умный VPN-сервер на Raspberry Pi: Создание и загрузка Client Certificate файлов

Vander 0

Vander

Команда форума
10.11.2019
472
1 083
Приветствую, продолжаем создавать собственный VPN на RPi.

server-certificate-vs-client-certificate.jpg

Создав наши сертификаты сервера в предыдущих статьях, мы знаем, что они годны в течение 10 лет, поэтому нам нужно делать этот шаг только раз в десять лет.

Однако мы должны создать и загрузить сертификат клиента для каждого ПК / устройства Android, к которому мы хотим подключиться. Мы могли бы просто сделать один и использовать его на всех устройствах, но только одно из них сможет подключаться одновременно.

Нам нужно выполнить некоторую первоначальную настройку, после чего создать файлы сертификатов клиента совсем несложно.

Для начала настройте обновление и синхронизацию времени.

Код:
apt-get install ntpdate
apt-get install -y ntp
/etc/init.d/ntp stop
ntpdate pool.ntp.org
/etc/init.d/ntp start
Синхронизация времени необходима, т.к. сертификаты имеют период действия. Если часы, например, на хосте удостоверяющего центра CA и сервера OpenVPN не синхронны, может получиться так, что выданный удостоверяющим центром сертификат не будет действителен на узлах сети OpenVPN из-за ограничений по дате или времени.

Теперь создаем файл выполняя следующие действия.

Код:
cd /etc/openvpn/easy-rsa/pki
nano defaults.txt
Затем скопируйте / вставьте в него следующие строки:

Код:
client
remote 000.000.000.000 1194
verb 1
nobind
mute 20
dev tun
compress lzo
proto udp
persist-tun
persist-key
key-direction 1
cipher AES-128-CBC
remote-cert-tls server
mute-replay-warnings
resolv-retry infinite
Замените 000.000.000.000 внешним IP-адресом RPi (помните, что это первая строка электронного письма, отправленного вам RPi из предыдущей статьи). Если вы изменили внешний порт для VPN с 1194 на другой, вам также нужно будет изменить этот номер. Затем Ctrl + X и Y для сохранения и выхода.

Эту часть вам нужно будет повторить для каждого клиентского сертификата, который вам нужно создать.

Итак, теперь нам нужно перейти в каталог easy-rsa и создать файлы сертификатов клиента, введя эти 3 команды:

Код:
cd /etc/openvpn/easy-rsa
./easyrsa gen-req ClientName nopass
Где ClientName - это имя, которое вы хотите назвать этим файлом сертификата клиента, который мы собираемся создать. Для каждого устройства выбираем свое имя.

Существует единственная подсказка для «Common Name», которая уже должна по умолчанию соответствовать указанному выше ClientName, поэтому просто нажмите Enter.

1613334810394.png

Теперь нам нужно подписать запрос сертификата клиента:
Код:
./easyrsa sign-req client ClientName
Где ClientName - это имя, которое вы использовали выше при создании сертификата. Просто ответьте «да» на приглашение Confirm request.

Теперь измените каталоги на pki и запустите наш скрипт check_ip.py, чтобы создать файл opvn:

Код:
cd pki
/root/check_ip.py -m ClientName
Где ClientName - это то, что вы указали в ./build-key ClientName выше. По завершении вы создадите файл сертификата клиента с именем ClientName .ovpn, который необходимо установить на свое клиентское устройство. Мы рассмотрим это в следующих статьях.

Если вам нужно создать еще один файл сертификата клиента, просто повторите описанные выше действия.

Скачиваем свой ovpn файл.

Теперь выполните следующие действия, чтобы скопировать сертификат клиента на ПК с Windows:

Код:
cat ClientName.ovpn
Где ClientName.ovpn - это имя клиента, которое вы использовали для создания клиентских сертификатов выше.

Копируем содержимое файла в текстовый файл и удаляем первую и последнюю строки вставленного текста, чтобы он начинался с client и заканчивался </tls-auth>.

Теперь сохраните свой сертификат клиента на ПК с Windows, дав ему то же имя, что и раньше, и с расширением .ovpn.

После установки необходимого программного обеспечения на Windows PC, можно тестировать подключение к вашему VPN.

1613419917134.png

На данном этапе мы имеем подключение к нашей RPi по VPN. Дальнейшим шагом, будет заворачивание трафика в сеть TOR для подмены своего IP адреса.
 
Последнее редактирование:
Верх Низ