Безопасный веб: как настроить личный VPN-сервер
2.9k
0
К сожалению, в настоящее время власти некоторых государств всё больше пытаются ограничить свободу действий своих граждан в интернете. Также всё чаще слышно о скандалах, связанных с утечкой личных данных пользователей. Помочь и в том, и в другом случае помогают различные VPN-сервисы. Но, как показало недавнее исследование, практически все провайдеры, предоставляющие свои услуги как на бесплатной, так и на платной основе, всячески следят за пользователями. Даже если на сайте будет написано большими буквами, что ${serviceName} не собирает личных данных, это ещё ничего не значит. Кроме того, высока вероятность, что подобные сервисы могут быть заблокированы. И чем он популярнее, шансы увеличиваются в разы. Вдобавок, обилие рекламы и ограниченная скорость, особенно в бесплатных вариантах, могут хорошенько потрепать нервы.
Помочь в сложившейся ситуации сможет собственный VPN-сервер. Такое решение, пусть оно и кажется сложным на первый взгляд, поможет избавиться от вышеперечисленных проблем: никакой рекламы (если вы сами этого не захотите), не ведётся логирование, шансы быть заблокированным хоть и остаются, но они гораздо ниже. Кроме того, этот вариант гораздо безопаснее, конечно, если свой сервер правильно настроить. А в этом как-раз посодействует замечательный скрипт Streisand. Он позволяет использовать OpenSSH, OpenConnect, OpenVPN, Shadowsocks, sslh, Stunnel, Tor, WireGuard, а также UFW для настройки правил файервола и unattended-upgrades для автоматической установки обновлений, связанных с безопасностью. Более подробно о Streisand и что этот скрипт из себя представляет можно прочитать на Github-странице проекта.
Но прежде чем приступать к поднятию своего VPN-сервера, нужно сначала этот самый сервер арендовать. Подходящее нам решение называется VPS — виртуальный частный сервер (Virtual Private server) — виртуальный компьютер, размещённый в облаке. Существует довольно много подобных сервисов. Среди них хочется выделить парочку, которые успели заслужить наше доверие: DigitalOcean и Scaleway. К тому же у них достаточно демократические цены.
Регистрация у хостинг-провайдера
Описывать процесс регистрации особого смысла нет, всё стандартно и не отличается от большинства сайтов в интернете. Мы лишь перечислим некоторые различия между двумя названными сервисами.
DigitalOcean
Данный хостинг-провайдер, помимо надёжности и стабильности, интересен своей системой рефералов. Если зарегистрироваться по этой ссылке, вы получите сразу на счёт $10, которых хватит на два месяца работы. Для начала пользования сервисом нужно указать реквизиты кредитной/дебетовой карты или воспользоваться PayPal. Со счёта автоматически будет списано $5 за активацию аккаунта и первый месяц аренды.
Scaleway
Здесь нет никаких бонусов, но цена немного ниже, чем у DO при равных конфигурациях. При регистрации снимают на счету €2 для подтверждения карты и через время вся сумма возвращается.
Установка необходимого ПО
Windows
Для доступа к серверу через командную строку и генерации SSH-ключей на ПК под управлением ОС Windows понадобится следующее:
- Скачать утилиты PuTTY, Pageant и PuTTYgen с официального сайта.
- Запустить PuTTYgen и создать ключ следующим образом:
Выбрать тип RSA 2048, нажать кнопку Generate и хаотично двигать курсором мыши в обозначенном поле. Когда процесс завершится, желательно добавить комментарий, чтобы не забыть, что это за ключ. Также придумать кодовую фразу (не обязательно, но забывать нельзя). Затем сохранить приватный (Private Key) и публичный (Public key) ключи. Кроме того, нужно скопировать и сохранить текст из верхнего поля, он пригодится при создании сервера.
Linux / macOS
Если вы пользователь Linux или macOS, то для генерации SSH-ключей потребуется:
- Ввести в терминале команду «ssh-keygen»
- После генерации ввести «cat ~/.ssh/id_rsa.pub»
- Выделить, скопировать и сохранить текст, который выведется в ответ.
Создание личного сервера
DigitalOcean
Теперь можно создать так называемый дроплет. Для этого нужно нажать кнопку Create a new Droplet.
Теперь нужно выбрать дистрибутив (Ubuntu 16.04 x64) и тарифный план сервера (тут выбор стоит за вами, но рекомендуем выбрать самый дешёвый тариф за $5 — этого хватит с головой).
После чего нужно определиться с местоположением сервера. Как правило, наиболее подходящим вариантом является расположение сервера, наиболее близкое к вам. Также вы можете провести тест скорости на этой странице, чтобы наверняка узнать, что выбрать.
Далее нажать на кнопку New SSH Key и вставить в поле текст, созданный в программе PuTTYgen.
В конце нажать на кнопку Create. Пройдёт немного времени и на почту придёт письмо с IP-адресом сервера, логином (root) и паролем.
Scaleway
После попадания в панель управления нужно нажать на кнопку Create Server для создания нового сервера.
Добавить SSH-ключ в в соответствующее поле на странице создания сервера либо в разделе Credentials, созданный в программе PuTTYgen и нажать на кнопку Use this SSH Key.
Выбрать местоположение Амстердам (как правило, скорость до туда выше, чем в Париж) и тарифный план START1-XS (можно и больше, но смысла никакого для наших целей). В качестве дистрибутива установить Ubuntu Xenial.
В конце нажать на кнопку Launch server в правом нижнем углу.
Подключение к серверу
Windows
Чтоб подключиться к созданному серверу пользователям Windows понадобится:
- Запустить утилиту Pageant.
- В трее уведомлений нажать на иконку программы правой кнопкой мыши, выбрать Add Key, указать путь к файлу *.ppk, который был создан в программе PuTTYgen.
- Запустить PuTTy.
- В поле Host Name ввести root@IP-адрес и нажать на кнопку Open.
- В появившемся диалоговом окне с предупреждением выбрать Yes.
- Если всё сделано верно, вы подключитесь к своему серверу.
Linux / macOS
Пользователям Linux или macOS для подключения к созданному серверу нужно сделать следующее:
- В терминале ввести «ssh root@IP-адрес»
- При запросе ввести «yes» для подключения.
- Если всё сделано верно, вы подключитесь к своему серверу.
Подготовка к установке Streisand
Windows
После подключения к своему серверу нужно установить требуемые пакеты для продолжения. Для этого потребуется поочерёдно вводить команды в PuTTy (если вы вошли под именем пользователя, отличного от root, необходимо перед каждой командой вводить sudo):
- Создать SSH-ключи для Streisand
«ssh-keygen» - Обновить список пакетов и установить доступные обновления
«apt update && apt upgrade -y» - Установить Git
«apt install git» - Установить Python и зависимости
«apt install python-paramiko python-pip python-pycurl python-dev build-essential» - Установить Ansible
«pip install ansible markupsafe» - Клонировать ветку Streisand с Github и перейти в созданную папку
«git clone https://github.com/jlund/streisand.git && cd streisand» - Запустить Streisand
«./streisand» - Выбрать пункт localhost введя с клавиатуры цифру «7»
Linux / macOS
Пользователям Linux или macOS можно пойти немного иным путём и настроить сервер более правильным способом. Для этого перед подключением к серверу нужно обновить систему любым способом (а также установить Python версии 2.7, если в вашем дистрибутиве он не был установлен по умолчанию) и затем ввести в терминале следующие команды:
- Установить Git
- На Debian или Ubuntu
«sudo apt-get install git» - На macOS (с использованием Homebrew)
brew install git
- На Debian или Ubuntu
- Установить pip
- На Debian и Ubuntu
«sudo apt-get install python-paramiko python-pip python-pycurl python-dev build-essential» - На macOS
sudo easy_install pip
sudo pip install pycurl
- На Debian и Ubuntu
- Установить Ansible
- На macOS
brew install ansible
- На macOS
- Клонировать ветку Streisand с Github и перейти в созданную папку
«git clone https://github.com/StreisandEffect/streisand.git && cd streisand» - Запустить Streisand
«./streisand» - Выбрать пункт Existing Server введя с клавиатуры цифру «8»
- Ввести IP-адрес сервера
Установка Streisand
После того, как подготовка завершена, можно приступать к установке Streisand. Для этого потребуется:
- Подтвердить действие введя слово «streisand»
- Нажать Enter для настройки параметров установки
- Ещё раз нажать Enter для указания дефолтного пути к SSH-ключу (либо указать путь вручную)
- Указать желаемое количество профилей
- Следующие пункты можно оставлять установленными по умолчанию просто нажимая клавишу Enter либо прописывать «Yes» или «No» для явного указания параметров
- Во время выполнения вас попросят ввести ваши домен и e-mail. Делать этого не обязательно, поэтому можно пропустить данные шаги, нажав Enter
Теперь остаётся только дождаться окончания установки. По завершению в вашем дефолтном браузере откроется страница, где будет указан логин и пароль для доступа к Streisand на вашем сервере.
Теперь нужно перейти по адресу https://ip-адрес-сервера, ввести выданные имя пользователя и пароль. Браузер ругнётся на недействительный сертификат. Чтобы проигнорировать данное сообщение нужно (в Google Chrome, в других браузерах делается аналогичным образом) выбрать пункт «Дополнительно» и нажать на ссылку «Перейти на сайт X.X.X.X (небезопасно)». На открывшейся странице будет доступна информация по подключению к установленным сервисам (логины, пароли, файлы конфигураций и сертификатов, а также ссылки для скачивания различных клиентов для разных операционных систем), которые вы можете раздать своим родственникам, друзьям и знакомым.
Как видно из вышепредставленного руководства, настройка своего VPN-сервера делается достаточно просто (хоть этого и не скажешь на первый взгляд). На всё про всё уходит около часа времени и не требует особых усилий и познаний, которыми обладает опытный сисадмин. Если у вас остались какие-либо вопросы — задавайте их в комментариях.