rmx1337
Участник
- Статус
- offline
- Регистрация
- 29.04.2017
- Сообщения
- 28
- Репутация
- 17
P.S. Копирайт
Поднять OpenVPN вручную вам не под силу? Не отчаивайтесь, у меня для вас хорошие новости!
О Чудо!
На Github существует Open Source скрипт, который позволяет быстро и легко поднять OpenVPN сервер на вашем VPS.
Скрипт называтся openvpn-install, и вот ссылка на Github: nyr/openvpn-install
И этого скрипта есть куча форков, которые вы можете изучить.
Посмотреть исходный код можно здесь.
Приступим.
Работаем под пользователем root или суперпользователем.
Для начала, обновим систему:
Если вы уже пытались поднять OpenVPN вручную, но у вас ничего не получилось, то нужно сначала его полностью снести.Удаляем openvpn:
удаляем папку:
выключаем ufw:
и установим нужные пакеты:
Скачиваем скрипт в домашнюю папку root:
Запускаем скрипт:
И вы попадете в так называемый Инсталятор. Где нужно будет отвечать на вопросы или что-то вписывать. Для перехода на следующий этап установки жмите Enter.
Первый делом, предложит ввести внешний IP адрес, но вероятнее всего скрипт сам его определит:
IP address: 111.222.111.222
Следующий этап, выбрать протокол. Я жму 1 и выбираю UDP.
Далее, выбираете порт. Я поставлю, например 14000.
После этого предложит выбрать DNS сервера. Выбор будет из Google, OpenDNS или текущих, которые на VPS и еще каких-то. Я выбираю OpenDNS, жму 3.
После этого предложит ввести имя клиента. Я введу " FORKSCLUB".
Далее начнется скачивание-утановка пакетов, генерация ключей, сертификатов и конфигурационных файлов.
когда все закончится, он поместит конфиг. в домашнюю папку юзера, от имени которого запсукался скрипт.
То есть, сейчас конфиг лежит по адресу:
/root/
Собственно, на этом конфигурация OpenVPN скриптом завершается.
Можно уже сейчас взять новый конфиг и использовать.
Просто, да?
Интересно, чего он там такого сгенерировал вам, посмотрим на конфиг pp-runion.ovpn:
nano ~/FORKSCLUB.ovpn
>>: (без ключей и сертификатов)
client
dev tun
proto udp
sndbuf 0
rcvbuf 0
remote 111.222.111.222 14000
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
setenv opt block-outside-dns
key-direction 1
verb 3
<ca>
Все вроде бы нормально, да лучше auth SHA512 явно указать.
Поэтому добавим
auth SHA512
Вот так:
client
dev tun
proto udp
sndbuf 0
rcvbuf 0
remote 111.222.111.222 14000
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA512
comp-lzo
setenv opt block-outside-dns
key-direction 1
verb 3
Обратите внимание, что скрипт уже запихнул фичу для предотвращения утечки DNS под клиент Windows:
Если у вас Linux или MacOS - эту строку лучше закомментировать.
Теперь посмотрим на серверный конфиг server.conf:
nano /etc/openvpn/server.conf
>>:
port 14000
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
Здесь также добавляем auth SHA512 (а то работать не будет, если на клиенте указан а на серве нет), делаем verb 0.
Также нужно проделать следующее.
Нужно закомментировать строку
status openvpn-status.log
И добавить log:
log /dev/null 2>&1
Где-то выше писал, зачем он нужен.
Получилось так:
port 14000
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
cipher AES-256-CBC
auth SHA512
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
#status openvpn-status.log
log /dev/null 2>&1
verb 0
crl-verify crl.pem
Берем клиентский файл-конфиг и помещаем на ваше устройство. Об этом я писал выше.
При повторном запуске скрипта из-под рута:
Скрипт предложит создать нового клиент, удалить существующего (не сможет больше коннектиться) или удалить OpenVPN.
Поднять OpenVPN вручную вам не под силу? Не отчаивайтесь, у меня для вас хорошие новости!
О Чудо!
На Github существует Open Source скрипт, который позволяет быстро и легко поднять OpenVPN сервер на вашем VPS.
Скрипт называтся openvpn-install, и вот ссылка на Github: nyr/openvpn-install
И этого скрипта есть куча форков, которые вы можете изучить.
Посмотреть исходный код можно здесь.
Приступим.
Работаем под пользователем root или суперпользователем.
Для начала, обновим систему:
Код:
apt-get update && apt-get dist-upgrade -y
Если вы уже пытались поднять OpenVPN вручную, но у вас ничего не получилось, то нужно сначала его полностью снести.Удаляем openvpn:
Код:
apt-get remove --purge openvpn
удаляем папку:
Код:
rm -rf /etc/openvpn/
выключаем ufw:
Код:
ufw disable
и установим нужные пакеты:
Код:
apt-get install -y sudo nano curl perl python wget git iptables openvpn openssl ca-certificates
Скачиваем скрипт в домашнюю папку root:
Код:
git clone https://github.com/Nyr/openvpn-install.git ~/nyr-openvpn[CODE]
Переходим туда:
[CODE]cd ~/nyr-openvpn/
Запускаем скрипт:
Код:
bash openvpn-install.sh
И вы попадете в так называемый Инсталятор. Где нужно будет отвечать на вопросы или что-то вписывать. Для перехода на следующий этап установки жмите Enter.
Первый делом, предложит ввести внешний IP адрес, но вероятнее всего скрипт сам его определит:
IP address: 111.222.111.222
Следующий этап, выбрать протокол. Я жму 1 и выбираю UDP.
Далее, выбираете порт. Я поставлю, например 14000.
После этого предложит выбрать DNS сервера. Выбор будет из Google, OpenDNS или текущих, которые на VPS и еще каких-то. Я выбираю OpenDNS, жму 3.
После этого предложит ввести имя клиента. Я введу " FORKSCLUB".
Далее начнется скачивание-утановка пакетов, генерация ключей, сертификатов и конфигурационных файлов.
когда все закончится, он поместит конфиг. в домашнюю папку юзера, от имени которого запсукался скрипт.
То есть, сейчас конфиг лежит по адресу:
/root/
Собственно, на этом конфигурация OpenVPN скриптом завершается.
Можно уже сейчас взять новый конфиг и использовать.
Просто, да?
Интересно, чего он там такого сгенерировал вам, посмотрим на конфиг pp-runion.ovpn:
nano ~/FORKSCLUB.ovpn
>>: (без ключей и сертификатов)
client
dev tun
proto udp
sndbuf 0
rcvbuf 0
remote 111.222.111.222 14000
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
comp-lzo
setenv opt block-outside-dns
key-direction 1
verb 3
<ca>
Все вроде бы нормально, да лучше auth SHA512 явно указать.
Поэтому добавим
auth SHA512
Вот так:
client
dev tun
proto udp
sndbuf 0
rcvbuf 0
remote 111.222.111.222 14000
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-CBC
auth SHA512
comp-lzo
setenv opt block-outside-dns
key-direction 1
verb 3
Обратите внимание, что скрипт уже запихнул фичу для предотвращения утечки DNS под клиент Windows:
Код:
setenv opt block-outside-dns
Если у вас Linux или MacOS - эту строку лучше закомментировать.
Теперь посмотрим на серверный конфиг server.conf:
nano /etc/openvpn/server.conf
>>:
port 14000
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
Здесь также добавляем auth SHA512 (а то работать не будет, если на клиенте указан а на серве нет), делаем verb 0.
Также нужно проделать следующее.
Нужно закомментировать строку
status openvpn-status.log
И добавить log:
log /dev/null 2>&1
Где-то выше писал, зачем он нужен.
Получилось так:
port 14000
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
cipher AES-256-CBC
auth SHA512
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
#status openvpn-status.log
log /dev/null 2>&1
verb 0
crl-verify crl.pem
Берем клиентский файл-конфиг и помещаем на ваше устройство. Об этом я писал выше.
При повторном запуске скрипта из-под рута:
Код:
bash /root/nyr-openvpn/openvpn-install.sh
Скрипт предложит создать нового клиент, удалить существующего (не сможет больше коннектиться) или удалить OpenVPN.