Настройка собственного VPN-cервера

Поделюсь своим опытом настройки VPN Сервера всего за 112 рублей в месяц.
В итоге вы получаете собственный VPN сервер с безлимитным трафиком и скоростью до 100 мегабит
Гайд будет расчитан на пользователей не умеющих работать в Linux
Гайд подходит для любого VPS Хостинга при установленном Ubuntu 16.04 64bit

идем на сайт по ОБЫЧНОЙ ссылке

выбираем bKVM 256 тариф стоимостью 1,99 доллара в месяц попадаем на панель настройки сервера
в поле Имя хоста: вписываем домен если у вас он есть если нет то придумываем ххххх.local, вместо иксов подставьте любые буквы
в разделе настраиваемые параметры в выпадающем списке Operating System выбираем Ubuntu 16.04 64bit
в списке Location выбираем любой город где будет находится ваш сервер
список Extra IP Address не трогаем
список Control Panel не трогаем
нажимаем далее
нажимаем оформить
далее платим кому каким способом удобнее
идем пить чай на пару часов пока нам поднимут сервер
далее
как только у нас сервер станет в статусе активен
pic
нажимаем на кнопку Активный и попадаем в меню упровления сервером
нажимаем кнопку VNC и в открывшемся окошке нажимаем HTML VNC
и попадаем в консоль сервера
логин root
пароль вам должен был прийти в письме на указанный емейл
проверяем что у нас установлена английская раскладка и вводим сначала логин root
нажимаем ентер и вводим пароль (при вводе пароля символы не показываются так что не пугайтесь) нажимаем ентер
pic
далее просто вводим команды

Код:
apt-get update

ждем обновления репозиториев

Код:
apt-get install openssh-server

ждем установки ssh сервера если его нет
если он есть вы получите такое сообщение
pic
установим mc (mc файловый менеджер типа нортон командер или тотал командер)

Код:
apt-get install mc

далее я вам рекомендую отказатся от VNC и использовать консольную утилиту pytty
скачать можно здесь
устанавливаем и запускаем её
pic
в поле Host Name вписываем свой ip сервера который можно посмотреть в меню управления сервером
он прописан в Основной IP-адрес
порт вписываем 56777
в поле saved session пишем название нашего подключения
и жмем кнопку Save
после этоно можно подключатся к серверу двойным нажатием на названии нашего подключения
вводим логин и пароль и опять попадаем в консоль
устанавлеваем Openvpn Server

Код:
sudo apt-get install openvpn easy-rsa

Необходимое программное обеспечение теперь находится на сервере и готово к настройке
Совет чтоб не писать каманды вручную их можно капировать и вставлять в консоли нажатием правой кнопки
далее буду приводить код который вставляется в консоль
и ответ от сервера при нормальной отработке команд если это потребуется

Код:
make-cadir ~/openvpn-ca
cd ~/openvpn-ca
nano vars

ищем строку
и меняем красные надписи на свои,
export KEY_COUNTRY=»US»
export KEY_PROVINCE=»CA»
export KEY_CITY=»SanFrancisco»
export KEY_ORG=»Fort-Funston»
export KEY_EMAIL=»me@myhost.mydomain»
export KEY_OU=»MyOrganizationalUnit«
Создание центра сертификации

Код:
cd ~/openvpn-ca
source vars

вы должны получить ответ

Код:
NOTE: If you run ./clean-all, I will be doing a rm -rf on /home/sammy/openvpn-ca/keys

вставляем далее

Код:
./clean-all
./build-ca

Запустится процесс создания ключа корневого сертификата

Код:
Generating a 2048 bit RSA private key
………………………………………………………………………………+++
………………………….+++
writing new private key to ‘ca.key’
——
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.

на все вопросы системы просто жмем ентер
далее

Код:
./build-key-server server

при вопросах системы нажимаем y и энтер
нормальный ответ от сервера

Код:
Certificate is to be certified until May  1 17:51:16 2026 GMT (3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

продолжаем

Код:
./build-dh
openvpn —genkey —secret keys/ta.key

Создаем ключи для клиентов

Код:
cd ~/openvpn-ca
source vars
./build-key [color=red]client1[/color]

вместо красного client1
указываем название клиента
Настройка службы OpenVpn

Код:
cd ~/openvpn-ca/keys
sudo cp ca.crt server.crt server.key ta.key dh2048.pem /etc/openvpn
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
sudo nano /etc/openvpn/server.conf

открывается редактор в котором мы ищем
tls-auth и удаляем перед ней знак ;
ниже добовляем
key-direction 0
ищем cipher AES-128-CBC и удаляем символ ;
ниже добовляем
auth SHA256
наконец, найдите user и group настройки и удалите ;
получится что то вроде

Код:
user nobody
group nogroup

ищем ;push «redirect-gateway def1 bypass-dhcp» и удаляем ;
тоже самое с
;push «dhcp-option DNS 208.67.222.222»
;push «dhcp-option DNS 208.67.220.220»
удаляем ; перед строками
ищем параметр dh dh1024.pem
и меняем на dh dh2048.pem
Сохроните Файл нажав Ctrl+X и на вопрос о сохранении нажмите y
Разрешить IP-пересылку
Во-первых, нам нужно разрешить серверу пересылать трафик. Это довольно важно для функциональности, которую мы хотим предоставить нашему VPN-серверу.
Мы можем настроить этот параметр, изменив /etc/sysctl.conf файл

Код:
sudo nano /etc/sysctl.conf

Внутри найдите строку, которая устанавливает net.ipv4.ip_forward. Удалите символ « # » с начала строки, чтобы расскомментировать этот параметр:
Сохроните Файл нажав Ctrl+X и на вопрос о сохранении нажмите y

Код:
sudo sysctl -p

так как нам очень важно чтоб у нас сервер был защищён из интернета настроим фаерволл

Код:
ip route | grep default

в ответ мы увидем чтото типо
default via 203.0.113.1 dev eth0 proto static metric 600
запоминаем или записываем параметр отмеченный красным, это наш сетевой интерфейс
Когда у вас есть интерфейс, связанный с вашим маршрутом по умолчанию, откройте /etc/ufw/before.rules файл, чтобы добавить соответствующую конфигурацию:

Код:
sudo nano /etc/ufw/before.rules

добовляем в файл отмеченное красным проверив чтоб сетевой интерфейс совпадал с вашим
#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
# ufw-before-input
# ufw-before-output
# ufw-before-forward
#
# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to wlp11s0 (change to the interface you discovered!)
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES

# Don’t delete these required lines, otherwise there will be errors
*filter
. . .
Сохроните Файл нажав Ctrl+X и на вопрос о сохранении нажмите y
вводим далее

Код:
sudo nano /etc/default/ufw

в открывшемся файле приводим строку к такому виду
DEFAULT_FORWARD_POLICY=»ACCEPT«
Сохроните Файл нажав Ctrl+X и на вопрос о сохранении нажмите y

Код:
sudo ufw allow 1194/udp
sudo ufw allow OpenSSH
sudo ufw disable
sudo ufw enable

Теперь наш сервер настроен правильно обрабатывать трафик OpenVPN.

Код:
service openvpn start

ответ от сервера
# service openvpn start
* Starting virtual private network daemon(s)… * Autostarting VPN ‘server’
проверим туннель

Код:
ip addr show tun0

ответ
tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 100
link/none
inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
valid_lft forever preferred_lft forever
создаем конфигурации клиентов

Код:
mkdir -p ~/client-configs/files
chmod 700 ~/client-configs/files
cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf
nano ~/client-configs/base.conf

Внутри нам нужно внести несколько корректировок.
убираем знак #
user nobody
group nogroup
добавляем
cipher AES-128-CBC
auth SHA256
key-direction 1

Сохроните Файл нажав Ctrl+X и на вопрос о сохранении нажмите y
Создание сценария генерации конфигурации

Код:
nano ~/client-configs/make_config.sh

Внутри вставьте следующий скрипт:

Код:
#!/bin/bash
# First argument: Client identifier
KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf
cat ${BASE_CONFIG} \
<(echo -e ‘<ca>’) \
${KEY_DIR}/ca.crt \
<(echo -e ‘</ca>\n<cert>’) \
${KEY_DIR}/${1}.crt \
<(echo -e ‘</cert>\n<key>’) \
${KEY_DIR}/${1}.key \
<(echo -e ‘</key>\n<tls-auth>’) \
${KEY_DIR}/ta.key \
<(echo -e ‘</tls-auth>’) \
> ${OUTPUT_DIR}/${1}.ovpn

Сохроните Файл нажав Ctrl+X и на вопрос о сохранении нажмите y

Код:
chmod 700 ~/client-configs/make_config.sh


Создание конфигураций клиентов

Код:
cd ~/client-configs
Код:
./make_config.sh client1

всесто client1 пишем название созданных ключей клиента

Код:
ls ~/client-configs/files

вывод client1.ovpn как обычно вместо красной надписи название нашего клиента
добавление в автозагрузку

Код:
update-rc.d openvpn enable

Перенос конфигурации на клиентские устройства
Рекомендую использовать программу WinSCP
скачиваем здесь
устанавливаем, в процессе спросит разрешение перенести настройки из pytty
разрешаем и подключаемся к нашему серверу
далее идем по папкам, по пути
/root/client-configs/files/
и скачиваем файлы конфигурации клиентов с расширением .ovpn
подключение к серверу
качаем программу OpenVPN для windows
устанавливаем
после в трее выбираем заначек программы правой клавишей и нажимаем импортировать конфигурацию, выбираем наш файл client1.ovpn
после подключаемся к серверу, значек монитора должен стать зеленым, это означает что все хорошо и VPN подключен
для проверки заходим на сайт http://2ip.ru и смотрим откуда мы подключены.
всё!!! радуемся жизни

Запись опубликована в рубрике Администрирование. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Solve : *
25 − 4 =