Привет, Geektimes!
Не так давно мне пришла в голову мысль, что подключение к Linux-серверу по SSH, установка пакетов, запуск скриптов — все это однотипная рутина, для которой не нужно участие человека, ее может сделать робот. Конечно, я пользуюсь Ansible, но он ведь тоже "не для всех".
В результате была написана программа "для всех" в которой просто есть одна кнопка "сделать хорошо". Программа с открытым исходным кодом и доступна для изучения и скачивания на GitHub.
Но одной программы для того, чтобы нести личный OpenVPN в массы, не достаточно. Поэтому была написана эта статья, в которой просто и по шагам расписано все, от создания аккаунта в облачном сервисе, до подключения с мобильного телефона.
Всего нужно выполнить 4 простых шага:
- Создать сервер (обычно достаточно просто нажать кнопку "Создать")
- Установить и запустить приложение SSHeller
- Нажать кнопку
Install
и дождаться завершения установки - Скачать
ovpn
файл и подключиться к VPN с его помощью
Создание сервера
Подойдет практически любой виртуальный (VPS, VDS) или физический сервер (у виртуального должен быть tun
интерфейс). Для примера, ниже приведена инструкция по использованию DigitalOcean, как наиболее стабильного, простого и удобного в использовании облачного провайдера.
Подготовка
Для активации аккаунта необходимо одно из двух:
- аккаунт PayPal
- кредитная карта (именно кредитная, по которой можно уйти в минус, зарплатная/дебетовая не подойдет)
Если будете использовать PayPal — нужно будет внести $5. С кредитной карты-же заблокируют $1 и вернут.
Регистрация на DigitalOcean
Лучше всего регистрироваться по реферальной ссылке — тогда будет автоматически применён промокод на $10. А можно зарегистрироваться заполнив форму на главной странице и позже ввести любой промокод — он легко ищется через google. Их много разных и все по $10.
Перейдя по ссылке, достаточно ввести e-mail и придумать пароль.
После нажатия на кнопку, придет письмо с ссылкой для подтверждения регистрации — по ней нужно будет перейти.
Далее нужно ввести данные кредитной карты, либо PayPal. Это обязательное требование для подтверждения аккаунта. PayPal есть практически у каждого.
После нажатия на кнопку подтверждения, запустится стандартный процесс оплаты. Но есть важная особенность, которая позволит немного сэкономить: ваш банк конвертирует рубли в доллары по более выгодному курсу, нежели PayPal
Нужно нажать View conversion options
и выбрать вариант Convert with card issuer
После окончания оплаты, вы попадете на главную страницу Dashboard
. Можно перейти в Settings
-> Billing
чтобы посмотреть баланс.
Здесь Your credit $15
— внесенный аванс. А Usage $0.00
— сумма, которую нужно оплатить. Оплата обычно производится по факту — сколько потратили за месяц, столько вас и попросят оплатить(после исчерпания аванса). В самом низу можно посмотреть, какие были начисления.
Запуск сервера
Сверху-справа нажимаем Create
-> Droplets
Откроется страница создания сервера. Нужно задать 3 основных параметра.
Операционная система: Fedora 27
. Это самая маленькая, быстрая и стабильная из доступных. Хотя Debian 9
— тоже хороший выбор. Более того, поддерживаются все доступные ОС, кроме FreeBSD
и Debian 7
.
Размер: будет достаточно самого маленького за $5.
Регион — нужно выбрать тот, который территориально к вам ближе. Для Европейской части России — это Amsterdam
.
Этого достаточно. В самом низу можно изменить имя, но можно оставить по умолчанию и нажать большую зеленую кнопку Create
. Виртуальная машина начнет создаваться, и вскоре вам придет e-mail с ее адресом и паролем.
Установка SSHeller
Для установки достаточно перейти на страницу релизов, скачать соответствующий файл и запустить его.
- Для Windows:
SSHeller.Setup.X.X.X.exe
- Для macOS:
SSHeller-X.X.X.dmg
- Для Linux:
SSHeller-X.X.X-x86_64.AppImage
— после загрузки сделать исполняемым и запустить
Теперь SSHeller можно запустить из списка приложений.
Установка сервера OpenVPN
Письмо от DigitalOcean уже должно было прийти. Из него нам нужны 4 параметра.
Запускаем SSheller
и жмем Add
Копируем параметры из письма:
Droplet Name
->Name
IP Address
->Host
Username
->User
Password
->Password
Нажатием Save
возвращаемся к списку серверов.
В списке выбираем созданный сервер и нажимаем Connect
. Первое подключение займет немного больше времени, так как DigitalOcean создает виртуальные машины с истекшим паролем, и приложению будет необходимо его обновить. После подключения отобразится состояние сервера (Dashboard). Слева сверху нужно открыть меню и выбрать OpenVPN
.
На экране OpenVPN, достаточно нажать зеленую кнопку Install
и подождать.
Сколько нужно ждать — невозможно предсказать. Иногда это может быть 3 минуты, а иногда — доходить до получаса. Зависит от сервера, на котором запускается ваша виртуальная машина. Чем меньше у сервера заполнен пул энтропии — тем дольше ждать. Если простыми словами: компьютер очень медленно создает новые случайные числа, но делает это постоянно и копит их. А для создания ключей шифрования нужно очень много случайных чисел. Если их кто-то уже использовал — придется подождать.
По окончанию будет выведен отчет. Если интересно, его можно посмотреть.
Сразу будет создан профиль по умолчанию и соответствующий ему файл настроек — client.ovpn
. Можно скачать его, а можно создать еще один, или несколько, введя имя нового профиля и нажав кнопку Add
.
Для загрузки достаточно кликнуть на соответствующий файл профиля.
Подключение
- Для
Windows
иLinux
нужно установитьOpenVPN
- Для
macOS
—Tunnelblick
- Для
Android
иiOS
—OpenVPN Connect
из магазина приложений
Windows
- Скачиваем
openvpn-install-X.X.X-I601.exe
c официального сайта и устанавливаем - Сохраненный файл
client.ovpn
нужно скопировать в папкуC:\Program Files\OpenVPN\config
— потребуется подтверждение прав Администратора - В меню "Пуск" выбрать
OpenVPN
->OpenVPN GUI
- В трее (иконки возле часов) нажать правой клавишей мыши на иконку монитора с замком и выбрать
Подключиться
Если в папке config
будет несколько файлов, то появится подменю для каждого файла.
macOS
- Скачиваем
Tunnelblick_XXX.dmg
с официального сайта (Stable) и запускаем - В открывшемся окне два раза кликаем по иконке с подписью
Tunnelblick
- Появится предупреждение, что эта программа скачена из интернета — нажимаем
Открыть
- В окне приветствия нажимаем
Продолжить
- Далее будет необходимо ввести пароль Администратора
- На вопрос о файле конфигурации ответить:
У меня ЕСТЬ файл конфигурации
, а в следующем окне нажатьOK
- Через Finder найти
client.ovpn
файл и открыть его; указать хотите ли только вы пользоваться им, либо также разрешить другим пользователям компьютера - В трее (иконки возле часов) нажать левой клавишей мыши на иконку ворот и выбрать
соединить client
- Может быть выведено сообщение "Unrecognized option or missing or extra parameter(s)" — оно не влияет на работоспособность
Linux
- Установите пакет OpenVPN пакетным менеджером. Например в Debian и Ubuntu достаточно выполнить:
sudo apt-get install -y openvpn
- Подключение устанавливается командой
sudo openvpn --config client.ovpn
iOS
- Установите
OpenVPN Connect
из App Strore - Отправьте файл на свое мобильное устройство. Например, можно самому себе с компьютера отправить письмо
- Запустите приложение
OpenVPN Connect
, выберитеImport you Private Tunnel Profile
- Выберите сохраненный
client.ovpn
файл - Переместите появившийся переключатель в положение
On
Android
- Установите
OpenVPN Connect
из Google Play - Отправьте файл на свое мобильное устройство. Например, можно самому себе с компьютера отправить письмо
- Запустите приложение
OpenVPN Connect
, выберитеOVPN Profile
- Выберите сохраненный
client.ovpn
файл (обычно он сохраняется в папкуDownloads
) и нажмитеIMPORT
- Введите отображаемое имя профиля или оставьте без изменений, нажмите
ADD
- Переместите появившийся переключатель в положение
On
Как можно сэкономить
В DigitalOcean почасовая оплата
Т.е. можно платить только за то время, которым реально пользуешься. И здесь есть два важных замечания:
- Доступный трафик пропорционален времени работы сервера. Если сервер работал только 1/10 месяца (3 дня), то будет доступно только 1/10 трафика (100Гб). За превышение придется доплачивать (1 цент за каждый Гб)
- Чтобы деньги перестали списываться за сервер, его нужно не просто остановить, а полностью уничтожить, нажав на меню возле сервера и далее
Destroy
, а на появившейся странице сервера еще раз нажатьDestroy
. В следующий раз нужно будет заново повторять всю настройку, создавать новыеovpn
файлы и отправлять их на устройства.
Делитесь с родными и друзьями
Чисто технически, вы можете создать множество профилей, как для разных устройств, так и для разных людей. Вдвоем цена для каждого уже будет $2.5, впятером — $1.
Важно, что по каждому профилю может быть только одно одновременное подключение. Так что, как минимум, нужно создавать отдельные профили для разных устройств.
UPD
1 мая 2018 начали появляться комментарии, что некоторые российские провайдеры блокируют Digital Ocean. Есть отличная альтернатива — Linode (сравнение).
- Регистрируемся на главной странице.
- После ввода e-mail, логина и пароля (нужно придумать), придет письмо со ссылкой для подтверждения, переходим по ней
- Откроется расширенная форма регистрации, нужно ввести фамилию, имя, адрес, промо код и данные карты
- промокод на $10 или $20 легко ищется в google, 01.05.2018 работал
PodcastInIt2018
на $20 - карта подойдет любая, нет особых требований как у DigitalOcean
- в самом низу выбираем первоначальное пополнение, минимум $5
- промокод на $10 или $20 легко ищется в google, 01.05.2018 работал
- После оправки формы, сразу попадаем на страницу создания сервера, в самом низу выбираем Linode 1024 (стоит те же $5 в месяц), ниже выбираем локацию, для Европейской части России ближе всего Frankfurt, DE
- После создания сервера, выбираем его из списка и нажимаем Deploy an Image
- выбираем дистрибутив, например Fedora 27 или Debian 9
- придумываем, запоминаем и вводим пароль сервера
- жмем Deploy
- Нажимаем кнопку Boot чтобы запустить сервер
- Переключаемся на вкладку Remote Access копируем самый первый Public IP, например
172.104.130.238
- Запускаем SSHeller, нажимаем Add
- придумываем и вводим Name
- в Host вставляем скопированный IP
- в User вводим
root
- в Password вводим пароль, придуманный на шаге 5
- Сервер грузится не мгновенно, если быстро ввели параметры доступа к серверу, то придется подождать секунд 30
Дальше все по основной инструкции.