Сцена следующая
image-20220918211527746
image-20220918211508833
использование докера означает, что все является контейнером
docker pull kylemanna/openvpn
mkdir -p /home/dockerfolder/openvpn
docker run -v /home/dockerfolder/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u tcp://101.34.243.14
#IP внешней сеть или доменное имя Моё местоположение 101.34.243.14.
[root@k8s-node1 smart-extension-activity-module]# docker run -v /home/dockerfolder/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u tcp://101.34.243.14
Processing PUSH Config: 'block-outside-dns'
Processing Route Config: '192.168.254.0/24'
Processing PUSH Config: 'dhcp-option DNS 8.8.8.8'
Processing PUSH Config: 'dhcp-option DNS 8.8.4.4'
Processing PUSH Config: 'comp-lzo no'
Successfully generated config
docker run -v /home/dockerfolder/openvpn:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
[root@k8s-node1 smart-extension-activity-module]# docker run -v /home/dockerfolder/openvpn:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /etc/openvpn/pki
Using SSL: openssl OpenSSL 1.1.1g 21 Apr 2020
Enter New CA Key Passphrase:
Re-Enter New CA Key Passphrase:
Generating RSA private key, 2048 bit long modulus (2 primes)
............+++++
...................................................................................................................................................................................+++++
e is 65537 (0x010001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:
CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/etc/openvpn/pki/ca.crt
Using SSL: openssl OpenSSL 1.1.1g 21 Apr 2020
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
.....................+...................................................................................................................................................................................................................................................................+............++*++*++*++*
DH parameters of size 2048 created at /etc/openvpn/pki/dh.pem
Using SSL: openssl OpenSSL 1.1.1g 21 Apr 2020
Generating a RSA private key
..........................+++++
.....................+++++
writing new private key to '/etc/openvpn/pki/easy-rsa-73.hMNoFJ/tmp.kDCbkp'
-----
Using configuration from /etc/openvpn/pki/easy-rsa-73.hMNoFJ/tmp.NbaHFC
Enter pass phrase for /etc/openvpn/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'101.34.243.14'
Certificate is to be certified until Dec 19 16:17:07 2024 GMT (825 days)
Write out database with 1 new entries
Data Base Updated
Using SSL: openssl OpenSSL 1.1.1g 21 Apr 2020
Using configuration from /etc/openvpn/pki/easy-rsa-148.Jbkbcc/tmp.ehLdMP
Enter pass phrase for /etc/openvpn/pki/private/ca.key:
An updated CRL has been created.
CRL file: /etc/openvpn/pki/crl.pem
docker run -v /home/dockerfolder/openvpn:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full huahua nopass
[root@k8s-node1 smart-extension-activity-module]# docker run -v /home/dockerfolder/openvpn:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full huahua nopass
Using SSL: openssl OpenSSL 1.1.1g 21 Apr 2020
Generating a RSA private key
.........................+++++
..................................................................................................................................................................+++++
writing new private key to '/etc/openvpn/pki/easy-rsa-1.MIpgpi/tmp.AlbjnJ'
-----
Using configuration from /etc/openvpn/pki/easy-rsa-1.MIpgpi/tmp.oAeKfC
Enter pass phrase for /etc/openvpn/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'whsir'
Certificate is to be certified until Dec 19 16:19:35 2024 GMT (825 days)
Write out database with 1 new entries
Data Base Updated
# Создать папку -p может создавать многоуровневые папки
mkdir -p /data/openvpn/conf
docker run -v /home/dockerfolder/openvpn:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient huahua > /home/dockerfolder/openvpn/conf/huahua.ovpn
docker run --restart=always --name openvpn -v /home/dockerfolder/openvpn:/etc/openvpn -d -p 21194:1194 --cap-add=NET_ADMIN kylemanna/openvpn
/home/dockerfolder/openvpn/conf/huahua.ovpn
Скачать на локальныйimage-20220917005440549
route
функция для достижения,Но до сих пор он не был успешно протестирован.,Итак, цель обратилась к самому openvpn Установить на хост-машинуимя хоста IP внешней сети IP-адрес интрасети openvpn 43.142.192.164 10.0.4.15
предположение Установитьдавать возможностьepel
источник,использоватьyum
способ Установитьopenvpn
。
yum -y install openssl openssl-devel lzo openvpn easy-rsa
Рекомендуется использовать маршрутизацию, если у вас нет конкретных сценариев, требующих моста, например:
Server и Client изVPN-туннельподсеть,Просто избегайте сетевых конфликтов в существующей среде.
По умолчанию: 10.8.0.0/16
Esay-RSAпо умолчанию Установитькаталог в/usr/share/easy-rsa/3.0.8
,Шаблон профиля документа находится в/usr/share/doc/easy-rsa-3.0.8
。
В документе рекомендуется скопировать копию в другой каталог, чтобы избежать перезаписи во время будущих обновлений. Просто делайте, как нам говорят, и выбирайте в качестве каталога нашу конфигурационную папку OpenVPN. Ведь она для этого и предназначена.
cp -a /usr/share/easy-rsa/3.0.8 /etc/openvpn/easy-rsa
Скопируйте шаблон файла конфигурации. Документ «Установить» требует, чтобы он был переименован в vars, прежде чем его можно будет загрузить автоматически.
cp -a /usr/share/doc/easy-rsa-3.0.8/vars.example /etc/openvpn/easy-rsa/vars
Отредактируйте переменные файла конфигурации, в основном изменяя параметры, связанные с сертификатом. В документации также написано, что по сути ничего менять не нужно, просто используйте дефолтный и все готово. Даже этот файл конфигурации не нужно использовать. Давайте просто приложим немного усилий, чтобы это изменить. Вы можете определить его по своему усмотрению, это не окажет никакого влияния на сертификат.
set_var EASYRSA_REQ_COUNTRY "CN"
set_var EASYRSA_REQ_PROVINCE "JiangSu"
set_var EASYRSA_REQ_CITY "Nanjing"
set_var EASYRSA_REQ_ORG "SIMAEK"
set_var EASYRSA_REQ_EMAIL "master@simaek.com"
set_var EASYRSA_REQ_OU "Development Dept."
иллюстрировать: EASYRSA_REQ_COUNTRY "Страна" EASYRSA_REQ_PROVINCE "провинция" EASYRSA_REQ_CITY «Город, в котором вы находитесь» EASYRSA_REQ_ORG «Организация, к которой принадлежишь» EASYRSA_REQ_EMAIL "Адрес электронной почты" EASYRSA_REQ_OU «Организационная единица, отдел»
Объясните сертификат, который нам нужно создать:
Введите каталог, в котором находится наш скрипт easy-rsa, исходный каталог pki, созданный нами сертификат и сгенерированный промежуточный файл будут храниться в этом каталоге. Местоположение по умолчанию — это путь, по которому выполняется скрипт. На самом деле его можно настроить, но я считаю, что всем, как и мне, лень менять файл конфигурации.
cd /etc/openvpn/easy-rsa
./easyrsa init-pki
./easyrsa build-ca
./easyrsa gen-req server nopass
./easyrsa sign server server
./easyrsa gen-dh
./easyrsa gen-req client nopass
./easyrsa sign client client
port 1194 #порт
proto udp #протокол
dev tun #Принятие туннельного режима маршрутизации Tun
ca ca.crt #caРасположение файла сертификата
cert server.crt #Имя открытого ключа сервера
key server.key #Имя закрытого ключа сервера
dh dh.pem #Обмен сертификата
server 10.8.0.0 255.255.255.0 #Назначьте клиенту пул адресов. Примечание. Он не может совпадать с сегментом внутренней сети VPN-сервера.
push "route 10.0.4.0 255.255.255.0" #Разрешить клиенту доступ к сегменту сети интрасети 10.0.4.0 Это собственный сегмент сети сервера Таким образом, когда клиент обращается к сегменту сети 10.0.4.x, он может перейти на наш сервер.
ifconfig-pool-persist ipp.txt #Местоположение файла записи пула адресов
keepalive 10 120 #Время выживания, пинг раз в 10 секунд, 120 Если ответ не получен, он считается отключенным.
max-clients 100 #Максимум 100 клиентов могут подключаться
status openvpn-status.log #Место регистрации
verb 3 #openvpnversion
client-to-client #Поддержка общения между клиентами и клиентами
log /var/log/openvpn.log #openvpnlogging местоположение
persist-key #После обнаружения тайм-аута с помощью Keepalive перезапустите VPN, не перечитывая ключи, и сохраните ключи, использованные в первый раз.
persist-tun #После истечения времени обнаружения повторно включите VPN и продолжайте соединение. В противном случае сеть сначала отключится, а затем подключится.
duplicate-cn
cp /etc/openvpn/pki/ca.crt /etc/openvpn/
cp /etc/openvpn/pki/issued/server.crt /etc/openvpn/
cp /etc/openvpn/pki/private/server.key /etc/openvpn/
cp /etc/openvpn/pki/dh.pem /etc/openvpn/
[root@openvpn openvpn]# cat /etc/openvpn/check.sh
#!/bin/sh
###########################################################
PASSFILE="/etc/openvpn/openvpnfile"
LOG_FILE="/var/log/openvpn-password.log"
TIME_STAMP=`date "+%Y-%m-%d %T"`
if [ ! -r "${PASSFILE}" ]; then
echo "${TIME_STAMP}: Could not open password file \"${PASSFILE}\" for reading." >> ${LOG_FILE}
exit 1
fi
CORRECT_PASSWORD=`awk '!/^;/&&!/^#/&&$1=="'${username}'"{print $2;exit}' ${PASSFILE}`
if [ "${CORRECT_PASSWORD}" = "" ]; then
echo "${TIME_STAMP}: User does not exist: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}
exit 1
fi
if [ "${password}" = "${CORRECT_PASSWORD}" ]; then
echo "${TIME_STAMP}: Successful authentication: username=\"${username}\"." >> ${LOG_FILE}
exit 0
fi
echo "${TIME_STAMP}: Incorrect password: username=\"${username}\", password=\"${password}\"." >> ${LOG_FILE}
exit 1
systemctl start openvpn@server.service
systemctl enable openvpn@server.service
/etc/openvpn/pki/ca.crt
/etc/openvpn/pki/issued/client.crt
/etc/openvpn/pki/private/client.key
client #Указываем, что текущая VPN является клиентом
dev tun #Использовать протокол передачи туннеля Tun
proto udp #Используйте протокол udp для передачи данных
remote Это публичный IP 1194 #openvpn IP-адрес сервера номер порта
resolv-retry infinite #Автоматический перезапуск при отключении, очень полезно, когда сеть нестабильна.
nobind #Не привязывайте локальные номера портов
ca ca.crt #Указываем путь к файлу сертификата CA
cert client.crt #Указываем путь к файлу сертификата текущего клиента
key client.key #Указываем путь к файлу закрытого ключа текущего клиента
verb 3 #Укажите уровень детализации записи файла журнала, необязательно, от 0 до 9. Чем выше уровень, тем более подробным будет содержимое журнала.
persist-key #После обнаружения таймаута через Keepalive повторно запустите VPN, не перечитывая ключи и сохраняя ключи, использованные в первый раз.
persist-tun #После истечения времени обнаружения повторно включите VPN и продолжайте соединение. В противном случае сеть сначала отключится, а затем подключится.
ca.crt
,client.crt
,client.key
Вручную перейти к нашему импортуиз Внутри конфигурации,Вот как это выглядит в итогеimage-20220918212128666
image-20220918212110768
Дважды щелкните «Установить хорошее программное обеспечение OpenVPN», а затем щелкните правой кнопкой мыши «Соединить».
Есть проблема
image-20220918212233799
Справочная статья: Посетите интранет компании
openvpn.exeМожно получить из「openvpn-install-2.4.6-I602.exe」https://www.aliyundrive.com/s/rAvbGxEavkG
скачать