Поднимаем свой VPN

Всем доброго времени.
В связи с сегодняшней ситуацией в нашей стране по блокировке в интернете vpn сервисов и их удорожанием, а также повышения собственной безопасности в сети, решил запилить гайд по поднятию своего vpn. В чем плюс, так это в полной уверенности что не будут вестись логи, так же шифруется трафик и на стороне оператора он фильтроватся не будет. Это более выгодно чем платить стороннему сервису и не иметь полной гарантии в своей безопасности. По понятным причинам названия сервисов рекомендовать не буду, всё гуглиться. Все манипуляции можно делать как на пк с Линукс так и на Андроид. Думаю что для других ос все аналогично разница, только в названии приложений.

1. Ищем временно бесплатный vpn с пробным периодом, ставим. (Как запустить vpn на том или ином устройстве есть на сайте провайдера услуг)
2.Заводим анонимную почту.
3.Находим буржуйский VPS/VDS сервис с оплатой в крипте (в идеале оплата монеро и не в странах альянса 14 глаз) на крайняк оплачивать с левого кошелька, чистыми битками.
ОБЯЗАТЕЛЬНО! Выбирать сервер нужно с KVM виртуализацией! В противном случае VPN с виртуализацией OpenVZ работать не будет в 99%
4. Итак выбрали нужный vps/vds сервис с kvm виртуализацией, зарегистрировались с указанием анонимного ящика, закинули на баланс крипту.
Выбираем параметры сервера, здесь важно отметить что мощный сервер для использования VPN на 1-2 устройствах, не нужен. Я брал конфигурацию 0.5 гб оперативы 1 ядро и 20 гб диск, тянуло два устройства без тормозов. Может потянет и больше не экспериментировал.
По цене такая конфигурация мне вышла 1,5 $ в месяц.
5. На выбранную конфигурацию в личном кабинете ставим последний Debian. Мой выбор пал на эту систему по причине самого большого сообщества и при нахождении уязвимостей, патчи безопасности выходят быстрее чем на той же Ubuntu.
Ваша задача будет потом заходить хотя бы раз в месяц и обновлять систему двумя командами.
6. Дальше в зависимости от провайдера будет два варианта: придёт письмо с именем пользователя и паролем для доступа к серверу по ssh. Или письмо с предложением предоставить ключ. Тут хочу отметить что выбор за вами. Если нет уверенности что будете заходить на север для обслуживания с одного и того же устройства то имеет смысл пользоваться для доступа только паролем (минимум 10 значным предварительно записав на бумаге). Надёжней вариант это создать открытый и закрытый ключи. (которые можно хранить в облаке для резерва в виде запороленного rar архива минимум 8значным паролем). Далее рассмотрим оба варианта.
7. Вариант первый. Получив на почту логин пароль и ip адрес логинимся. Линукс или МакОС это консоль, Винда это или терминал или PuTTY, Андроид это ConnectBot или много аналогов в маркете как платных так и бесплатных на выбор.
Подключиться к виртуальному серверу по SSH можно одной командой:

ssh username@ip_adress:port

где вместо username нужно указать логин пользователя, вместо ip-adress — IP-адрес сервера, к которому вы подключаетесь port - обычно стандартный 22 . Более подробную информацию смотрим в Гугле в зависимости от вашей системы. Суть одна.

После ввода команды система запросит подтверждение подключения (необходимо ввести yes и нажать Enter) и пароль пользователя. После ввода нажмите клавишу Enter — откроется SSH-соединение:

root@server_name:~#

8. Вариант второй это соединение ssh по ключу. Здесь может придется ввести либо открытый ключ, либо открытый и закрытый ключи на сайте в личном кабинете. Либо настроить в самом сервере, предварительно подключившись через ssh по паролю как описывал выше. Все зависит от вашего провайдера. Если провайдер предлагает в личном кабинете оставить оба ключа то есть смысл добавить дополнительно аутентификацию по паролю. Если оставляем только открытый ключ то с паролем можно не париться.
О том как создать пару ключей для ssh конкретно на вашем устройстве и где они сохраняются смотрим в интернете.
Далее размещаем открытый ключ (id_rsa.pub) либо в личном кабинете, либо загружается на удаленный сервер, к которому необходимо получить доступ. Его нужно добавить в специальный файл:
~/.ssh/authorized_keys
По умолчанию в корневой директории пользователя находится директория .ssh, если по какой то причине её нет, то создаём её командой:

# mkdir ~/.ssh

копируем открытый ключ из своей на удаленную систему:

$ scp ~/.ssh/id_rsa.pub root@server_name
логинимся.
9. Ок мы залогинились по ssh через пароль или ключ.
root@server_name:~#
Первое что нужно сделать это сменить пароль root который отправили в письме.
Придумываем новый длинный пароль записываем. Далее вводим команду:

# passwd

после чего наберите дважды новый пароль (после каждого набора Enter)
Пароль не отображается, поэтому внимательно! Далее переподключаемся с новым паролем.

10. Обновляем систему:

# apt update
# apt upgrade

11. Далее установим утилиту sudo и добавим пользователя с привилегиями.

# apt install sudo

Добавляем пользователя:

# adduser username

вместо username укажите имя пользователя, которого вы создаете.
После запуска данной команды, вы должны ввести пароль для нового пользователя(который желательно записать). Затем будет предложено ввести дополнительную информацию о пользователе: имя, номер комнаты (кабинета), телефоны и комментарий. Вводить эту информацию необязательно. Просто нажимайте Enter, чтобы пропустить ввод данных.

Добавляем пользователя в группу sudo:

# usermod -aG sudo username

(username - ваш новый пользователь)

12. Выходим и логинимся под новым пользователям которого создали.

ssh username@ip_adress

Тут хочу отметить, что если у вас настроено подключение по ключам и произошел затык(нет подключения) то нужно будет перенести открытый ключ в папку для нового пользователя.
Заходим обратно под старым подключением root и набираем:

# su username

Вводим пароль нового пользователя.
Проверяем наличие папки в корневом каталоге .ssh, при отсутствии создаем папку и копируем туда ключ

# mkdir ~/.ssh

$ scp ~/.ssh/id_rsa.pub username@server_name

Далее пытаемся зоново логинится под новым пользователем.

13. Если вы дошли до этого пункта значит половину дела сделали и готовы к установке VPN. :)
Итак залогинились под новым пользователем:
username@server_name:~$

Далее скачаем скрипт установщик Open VPN

$ wget https://git.io/vpn -O openvpn-install.sh

Запускаем скрипт

$ sudo bash ./openvpn-install.sh

Вводим свой пароль, далее(enter) вводим ip адрес вашего сервера, далее(enter) выбираете цифрами какой протокол будете использовать 1(UDP рекомендуется) или 2 (TCP).

Далее нужно выбрать порт для UDP это 1194 или TCP это 443
Выбираем DNS цифрами от 1до5 далее(enter)
Выбираем имя клиента к примеру pupkin

Далее нажимаем любую клавишу и ждем когда сервер сконфигурируется и запустится.

14. Готово. Сервис установлен и запущен. Файл конфигурации с сертификатом и базовой настройкой находится:
/root/pupkin.ovpn
Перемещаем файл в домашнюю директорию:

$ sudo mv /root/pupkin.ovpn .

Делаем себя владельцем файла:

$ sudo chown username pupkin.ovpn

(username - ваше имя пользователя)
Отключаемся от ssh.

15. Удаляем старый временный VPN который устанавливали ранее.
Копируем файл на своё локальное устройство.
Открываем консоль, терминал или что там у вас на устройстве.
Пишем:

$ scp username@ip_adress:/home/username/pupkin.ovpn ~/Download/

(username - ваше имя пользователя
ip_adress - ip адрес вашего сервера
Download - ваша локальная папка название по выбору)

Файл конфигурации скачан на ваше устройство.

16. Открываем браузер переходим на официальный сайт OpenVPN скачиваем клиент для вашего устройства если у вас нет. Устанавливаем запускаем и находим вкладку импортировать настройки и добавляем скачанный файл pupkin.ovpn

Почти готово уже можно пользоваться, но остались нюансы.

17. Для того чтобы добавить ещё устройства нужно опять запустить установочный скрипт. Который мы скачали в п.13

$ sudo bash ./openvpn-install.sh

В этот раз будет предложено:
Удалить vpn
Переустановить
Или добавить пользователя.
Выбираем добавить пользователя и проделываем все шаги описанные выше по копированию файла не забудьте придумать новое имя для дополнительного соединения.

18. Теперь позаботимся о своей безопасности.
Отключаем запись логов в файл.
Подключаемся через ssh:


$ ssh username@ip_adress

перейдем в папку с конфигом сервера:

$ cd /etc/openvp

Открываем файл настроек

$ sudo nano server.conf

ищем строку в самом низу:

status openvpn-status.log

удаляем эту строку. (Если её нет и всё чисто то пропускаем)
В самом низу дописываем:

log /dev/null
status /dev/null

Сохраняем, закрываем.
Этим самым мы отключаем запись логов в файл.

Перезапустим опенвпн:

$ service openvpn restart

Готово можно пользоваться.
 
Всем доброго времени.
В связи с сегодняшней ситуацией в нашей стране по блокировке в интернете vpn сервисов и их удорожанием, а также повышения собственной безопасности в сети, решил запилить гайд по поднятию своего vpn. В чем плюс, так это в полной уверенности что не будут вестись логи, так же шифруется трафик и на стороне оператора он фильтроватся не будет. Это более выгодно чем платить стороннему сервису и не иметь полной гарантии в своей безопасности. По понятным причинам названия сервисов рекомендовать не буду, всё гуглиться. Все манипуляции можно делать как на пк с Линукс так и на Андроид. Думаю что для других ос все аналогично разница, только в названии приложений.

1. Ищем временно бесплатный vpn с пробным периодом, ставим. (Как запустить vpn на том или ином устройстве есть на сайте провайдера услуг)
2.Заводим анонимную почту.
3.Находим буржуйский VPS/VDS сервис с оплатой в крипте (в идеале оплата монеро и не в странах альянса 14 глаз) на крайняк оплачивать с левого кошелька, чистыми битками.
ОБЯЗАТЕЛЬНО! Выбирать сервер нужно с KVM виртуализацией! В противном случае VPN с виртуализацией OpenVZ работать не будет в 99%
4. Итак выбрали нужный vps/vds сервис с kvm виртуализацией, зарегистрировались с указанием анонимного ящика, закинули на баланс крипту.
Выбираем параметры сервера, здесь важно отметить что мощный сервер для использования VPN на 1-2 устройствах, не нужен. Я брал конфигурацию 0.5 гб оперативы 1 ядро и 20 гб диск, тянуло два устройства без тормозов. Может потянет и больше не экспериментировал.
По цене такая конфигурация мне вышла 1,5 $ в месяц.
5. На выбранную конфигурацию в личном кабинете ставим последний Debian. Мой выбор пал на эту систему по причине самого большого сообщества и при нахождении уязвимостей, патчи безопасности выходят быстрее чем на той же Ubuntu.
Ваша задача будет потом заходить хотя бы раз в месяц и обновлять систему двумя командами.
6. Дальше в зависимости от провайдера будет два варианта: придёт письмо с именем пользователя и паролем для доступа к серверу по ssh. Или письмо с предложением предоставить ключ. Тут хочу отметить что выбор за вами. Если нет уверенности что будете заходить на север для обслуживания с одного и того же устройства то имеет смысл пользоваться для доступа только паролем (минимум 10 значным предварительно записав на бумаге). Надёжней вариант это создать открытый и закрытый ключи. (которые можно хранить в облаке для резерва в виде запороленного rar архива минимум 8значным паролем). Далее рассмотрим оба варианта.
7. Вариант первый. Получив на почту логин пароль и ip адрес логинимся. Линукс или МакОС это консоль, Винда это или терминал или PuTTY, Андроид это ConnectBot или много аналогов в маркете как платных так и бесплатных на выбор.
Подключиться к виртуальному серверу по SSH можно одной командой:

ssh username@ip_adress:port

где вместо username нужно указать логин пользователя, вместо ip-adress — IP-адрес сервера, к которому вы подключаетесь port - обычно стандартный 22 . Более подробную информацию смотрим в Гугле в зависимости от вашей системы. Суть одна.

После ввода команды система запросит подтверждение подключения (необходимо ввести yes и нажать Enter) и пароль пользователя. После ввода нажмите клавишу Enter — откроется SSH-соединение:

root@server_name:~#

8. Вариант второй это соединение ssh по ключу. Здесь может придется ввести либо открытый ключ, либо открытый и закрытый ключи на сайте в личном кабинете. Либо настроить в самом сервере, предварительно подключившись через ssh по паролю как описывал выше. Все зависит от вашего провайдера. Если провайдер предлагает в личном кабинете оставить оба ключа то есть смысл добавить дополнительно аутентификацию по паролю. Если оставляем только открытый ключ то с паролем можно не париться.
О том как создать пару ключей для ssh конкретно на вашем устройстве и где они сохраняются смотрим в интернете.
Далее размещаем открытый ключ (id_rsa.pub) либо в личном кабинете, либо загружается на удаленный сервер, к которому необходимо получить доступ. Его нужно добавить в специальный файл:
~/.ssh/authorized_keys
По умолчанию в корневой директории пользователя находится директория .ssh, если по какой то причине её нет, то создаём её командой:

# mkdir ~/.ssh

копируем открытый ключ из своей на удаленную систему:

$ scp ~/.ssh/id_rsa.pub root@server_name
логинимся.
9. Ок мы залогинились по ssh через пароль или ключ.
root@server_name:~#
Первое что нужно сделать это сменить пароль root который отправили в письме.
Придумываем новый длинный пароль записываем. Далее вводим команду:

# passwd

после чего наберите дважды новый пароль (после каждого набора Enter)
Пароль не отображается, поэтому внимательно! Далее переподключаемся с новым паролем.

10. Обновляем систему:

# apt update
# apt upgrade

11. Далее установим утилиту sudo и добавим пользователя с привилегиями.

# apt install sudo

Добавляем пользователя:

# adduser username

вместо username укажите имя пользователя, которого вы создаете.
После запуска данной команды, вы должны ввести пароль для нового пользователя(который желательно записать). Затем будет предложено ввести дополнительную информацию о пользователе: имя, номер комнаты (кабинета), телефоны и комментарий. Вводить эту информацию необязательно. Просто нажимайте Enter, чтобы пропустить ввод данных.

Добавляем пользователя в группу sudo:

# usermod -aG sudo username

(username - ваш новый пользователь)

12. Выходим и логинимся под новым пользователям которого создали.

ssh username@ip_adress

Тут хочу отметить, что если у вас настроено подключение по ключам и произошел затык(нет подключения) то нужно будет перенести открытый ключ в папку для нового пользователя.
Заходим обратно под старым подключением root и набираем:

# su username

Вводим пароль нового пользователя.
Проверяем наличие папки в корневом каталоге .ssh, при отсутствии создаем папку и копируем туда ключ

# mkdir ~/.ssh

$ scp ~/.ssh/id_rsa.pub username@server_name

Далее пытаемся зоново логинится под новым пользователем.

13. Если вы дошли до этого пункта значит половину дела сделали и готовы к установке VPN. :)
Итак залогинились под новым пользователем:
username@server_name:~$

Далее скачаем скрипт установщик Open VPN

$ wget https://git.io/vpn -O openvpn-install.sh

Запускаем скрипт

$ sudo bash ./openvpn-install.sh

Вводим свой пароль, далее(enter) вводим ip адрес вашего сервера, далее(enter) выбираете цифрами какой протокол будете использовать 1(UDP рекомендуется) или 2 (TCP).

Далее нужно выбрать порт для UDP это 1194 или TCP это 443
Выбираем DNS цифрами от 1до5 далее(enter)
Выбираем имя клиента к примеру pupkin

Далее нажимаем любую клавишу и ждем когда сервер сконфигурируется и запустится.

14. Готово. Сервис установлен и запущен. Файл конфигурации с сертификатом и базовой настройкой находится:
/root/pupkin.ovpn
Перемещаем файл в домашнюю директорию:

$ sudo mv /root/pupkin.ovpn .

Делаем себя владельцем файла:

$ sudo chown username pupkin.ovpn

(username - ваше имя пользователя)
Отключаемся от ssh.

15. Удаляем старый временный VPN который устанавливали ранее.
Копируем файл на своё локальное устройство.
Открываем консоль, терминал или что там у вас на устройстве.
Пишем:

$ scp username@ip_adress:/home/username/pupkin.ovpn ~/Download/

(username - ваше имя пользователя
ip_adress - ip адрес вашего сервера
Download - ваша локальная папка название по выбору)

Файл конфигурации скачан на ваше устройство.

16. Открываем браузер переходим на официальный сайт OpenVPN скачиваем клиент для вашего устройства если у вас нет. Устанавливаем запускаем и находим вкладку импортировать настройки и добавляем скачанный файл pupkin.ovpn

Почти готово уже можно пользоваться, но остались нюансы.

17. Для того чтобы добавить ещё устройства нужно опять запустить установочный скрипт. Который мы скачали в п.13

$ sudo bash ./openvpn-install.sh

В этот раз будет предложено:
Удалить vpn
Переустановить
Или добавить пользователя.
Выбираем добавить пользователя и проделываем все шаги описанные выше по копированию файла не забудьте придумать новое имя для дополнительного соединения.

18. Теперь позаботимся о своей безопасности.
Отключаем запись логов в файл.
Подключаемся через ssh:


$ ssh username@ip_adress

перейдем в папку с конфигом сервера:

$ cd /etc/openvp

Открываем файл настроек

$ sudo nano server.conf

ищем строку в самом низу:

status openvpn-status.log

удаляем эту строку. (Если её нет и всё чисто то пропускаем)
В самом низу дописываем:

log /dev/null
status /dev/null

Сохраняем, закрываем.
Этим самым мы отключаем запись логов в файл.

Перезапустим опенвпн:

$ service openvpn restart

Готово можно пользоваться.
думал тоже отписать немного по другому но читабельно !
 
Верх