OpenVPN — это мощное решение виртуальной частной сети (VPN) с открытым исходным кодом, которое можно использовать в различных сценариях приложений. Ниже приведены несколько распространенных сценариев применения OpenVPN:
Автор выбрал образ CentOS7.6. Прежде чем создавать его, перейдите в консоль облегченного сервера приложений, чтобы настроить брандмауэр и разрешить протокол TCP порта 1194.
1. Установите исходный код программного обеспечения.
sudo yum install epel-release
2. Установите openvpn, easy-rsa.
sudo yum install -y openvpn easy-rsa
3. Создайте каталог и сгенерируйте ключ.
sudo mkdir /etc/openvpn/easy-rsa
sudo cp -ai /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsa/
cd /etc/openvpn/easy-rsa
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca nopass
sudo ./easyrsa build-server-full server nopass
sudo ./easyrsa gen-dh
sudo cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn/
sudo cp /etc/openvpn/easy-rsa/pki/issued/server.crt /etc/openvpn/
sudo cp /etc/openvpn/easy-rsa/pki/private/server.key /etc/openvpn/
sudo cp /etc/openvpn/easy-rsa/pki/dh.pem /etc/openvpn/
4. Создайте файл конфигурации.
vim /etc/openvpn/server.conf
port 1194 #порт
proto tcp #протокол
dev tun #Принять режим туннеля маршрутизации
ca ca.crt #caРасположение сертификата
cert server.crt #Сервер Расположение открытого ключа
key server.key #Сервер Расположение закрытого ключа
dh dh.pem #Алгоритм проверки сертификата
server 10.8.0.0 255.255.255.0 #Пул адресов, выделенный клиенту
push "route 10.70.0.0 255.255.0.0" Доступ к #сегментам интрасети разрешен
ifconfig-pool-persist ipp.txt #addresspoolrecordрасположение файл, пусть openvpnклиент в будущем будет использовать фиксированный IP-адрес
keepalive 10 120 # Время выживания, пинг раз в 10 секунд, если в течение 120 секунд не будет получен ответ, это будет считаться кратковременным
max-clients 100 #Разрешить до 100 подключений
status openvpn-status.log #Местоположение журнала, запись статуса openvpn
log /var/log/openvpn.log #openvpnlogging местоположение
verb 3 #openvpnversion
client-to-client #Разрешить общение между клиентом и клиентом
persist-key #После обнаружения тайм-аута через Keepalive перезапустите VPN, не перечитывая
persist-tun #После истечения времени обнаружения перезапустите VPN и продолжайте настройку соединения, иначе сеть сначала отключится, а затем подключится.
duplicate-cn #клиент Могут ли ключи (сертификаты и приватные ключи) повторяться?
comp-lzo #Запускаем формат сжатия данных lzo
client-config-dir /etc/openvpn/ccd #клиент Каталог с конфигурационными файлами
Запустить сервер
sudo systemctl start openvpn@server
Настройте автозапуск при включении
sudo systemctl enable openvpn@server
Настройка сервера завершена
cd /etc/openvpn/easy-rsa
./easyrsa build-client-full client_name pwd
Затем загрузите ca.crt имя_клиента.crt имя_клиента.ключ.
расположение файла
ca.crt >> /etc/openvpn/easy-rsa/pki
client_name.crt >> /etc/openvpn/easy-rsa/pki/issued
client_name.key >> /etc/openvpn/easy-rsa/pki/private
sudo yum install epel-release
sudo yum -y install openvpn
vim /etc/openvpn/client.conf
client
dev tun
proto tcp
remote Серверip 1194
resolv-retry infinite
nobind
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client_name.crt
key /etc/openvpn/client_name.key
verb 3
persist-key
comp-lzo
будет ca.crt client_name.crt client_name.keyзагрузить в/etc/openvpn/
systemctl start openvpn@client
1) Добавьте следующие правила iptables, среди которых ens160 необходимо изменить в соответствии с фактической ситуацией (сетевая карта, которая может получить доступ к службе интрасети, как показано в ifconfig)
iptables -t nat -A POSTROUTING -o ens160 -j MASQUERADE
iptables -A FORWARD -i tun0 -o ens160 -j ACCEPT
iptables -A FORWARD -i ens160 -o tun0 -j ACCEPT
2) Включить функцию переадресации IP
vim /etc/sysctl.conf
Воля net.ipv4.ip_forward=
установлен на1
3) Создайте каталог ccd в каталоге openvpn на стороне сервера.
mkdir /etc/openvpn/ccd
4) Создайте файл с именем клиента.
vim /etc/openvpn/ccd/client_name
ifconfig-push 10.8.0.2 255.255.255.0 #Фиксированный IP
iroute 10.70.0.0 255.255.0.0 #При доступе к 10.70.0.0/16 Сеть маршрутизируется к этому клиенту.
5) Также добавьте его в файл конфигурации сервера.
push "route 10.70.0.0 255.255.0.0" Доступ к #сегментам интрасети разрешен
6)ПерезапускСервер
sudo systemctl restart openvpn@server
7)Перезапускклиент
systemctl restart openvpn@client
официальный адресhttps://openvpn.net/client/client-connect-vpn-for-windows/
cd /etc/openvpn/easy-rsa
./easyrsa build-client-full client_name pwd
Затем загрузите ca.crt имя_клиента.crt имя_клиента.ключ.
расположение файла
ca.crt >> /etc/openvpn/easy-rsa/pki
client_name.crt >> /etc/openvpn/easy-rsa/pki/issued
client_name.key >> /etc/openvpn/easy-rsa/pki/private
sudo systemctl restart openvpn@server
client
dev tun
proto tcp
remote Серверip 1194
resolv-retry infinite
nobind
ca ca.crt
cert client_name.crt
key client_name.key
verb 3
persist-key
comp-lzo
будет ca.crt client_name.crt имя_клиента.ключ и имя_клиента.ovpn помещаются в одну папку
Дважды щелкните файл, чтобы создать ссылку.
iOS может перейти в AppStore для загрузки Открыть VPNклиент,AndroidДоступно дляОфициальный сайт OpenVPNскачатьAndroidклиент
cd /etc/openvpn/easy-rsa
./easyrsa build-client-full client_name pwd
Затем загрузите ca.crt имя_клиента.crt имя_клиента.ключ.
расположение файла
ca.crt >> /etc/openvpn/easy-rsa/pki
client_name.crt >> /etc/openvpn/easy-rsa/pki/issued
client_name.key >> /etc/openvpn/easy-rsa/pki/private
sudo systemctl restart openvpn@server
client
dev tun
proto tcp
remote Серверip 1194
resolv-retry infinite
nobind
<ca>
Заполните все содержимое файла ca.crt здесь.
</ca>
<cert>
Просто заполните сюда содержимое сертификата в client_name.crt, а именно:
-----BEGIN CERTIFICATE-----
......
-----END CERTIFICATE-----
</cert>
<key>
Заполните здесь все содержимое client_name.key.
</key>
verb 3
persist-key
comp-lzo
После переноса Имя_клиента.ovpn на мобильный телефон откройте файл в openvpn по ссылке
На этом статья заканчивается. Если в процессе строительства у вас возникнут вопросы, вы можете оставить сообщение в области комментариев.