Прокси сервер на виртуальном хостинге

Приветствую! И сразу к делу. Для чего нужен VPN-сервер? В основном его используют для смены IP-адреса и своей страны чтобы обойти различные блокировки сайтов на работе и дома. Кроме этого, VPN-соединение помогает зашифровать трафик и, таким образом, обеспечивает безопасность передаваемых данных.

Например, используя общественный Wi-Fi, все данные которые передаются через сеть могут быть «угнаны». Теоретически, это могут быть любые файлы, но обычно крадут пароли от кошельков, почты, скайпа и чего угодно. В этой статье мы настроим собственный VPN-сервер, это не сложно. Несмотря на объёмность текста, основное действие занимает малую часть, а остальное — плюшки В статье также есть видео.

В интернете есть куча и маленькая тележка VPN-сервисов, от бесплатных до очень платных. Недостатки бесплатных VPN-сервисов:

  • ограничены в скорости
  • нестабильность (то всё хорошо, то жутко тормозит)
  • ограничения трафика (до нескольких Гигабайт в месяц)
  • ограничения периода бесплатного пользования
  • периодически нужно искать другие сервисы
  • не факт, что передаваемые данные будут в безопасности, совсем не стоит надеяться на анонимность, я бы сказал.
  • не всегда есть нужная страна или город
  • заезженные IP-адреса (используются сотнями клиентов), относится и к бесплатным
  • бывает просто обман без возврата денег, например, трафик не безлимитный, некоторые сервера не работают или слишком медленные

Есть и преимущества VPN-сервисов – это простота использования, относительная дешевизна.

Итак, если нужна конкретная страна или город, или требуется много трафика, который не дают VPN-сервисы, гарантия безопасности — тогда есть смысл заморочиться настройкой личного VPN-сервера. Как правило, это требует глубоких знаний системного администрирования серверов. Но я постарался объяснить всё просто, чтобы разобрался даже чайник)

Недостатки у этого способа тоже есть:

  • всего один IP-адрес, на который вы можете «пересесть», но есть дополнительные за отдельную плату
  • нетривиальная настройка в первый раз
  • платно

Дочитайте до конца, и я покажу как использовать свой VPS сервер для обхода блокировок без настройки на нём VPN.

Хостинг-провайдеров в интернете бесчисленное множество. Все они позволяют размещать у них свои веб-сайты. Самая популярная услуга – это виртуальный хостинг. Более продвинутая – это выделенный виртуальный сервер – VPS (VDS — это, считай, тоже самое). На VPS можно размещать сайты, поднимать VPN-сервер, почтовый сервер, игровой сервер – да что угодно!

Вам нужно знать, что VPS-сервера бывают нескольких видов: OpenVZ, Xen и KVM. Для работы VPN-сервера нужно KVM. Тип сервера указан в тарифах хостинга. OpenVZ и Xen тоже иногда подходят, но нужно писать в техподдержку хостинга и спрашивать, подключён ли модуль “TUN”. Не вдаваясь в подробности для чего это, просто спрашиваете. Если нет, то могут ли они включить его. Не помешает также спросить, будет ли работать VPN как таковой (даже на KVM), т.к. некоторые компании прикрывают эту возможность. Ах да, операционная система сервера – Debian, Ubuntu или CentOS (в общем, Linux-подобная). Мощность сервера не имеет значения.

Вы можете посмотреть видео или читать расширенную статью:

В моём распоряжении имеется VPS-сервер KVM хостинг-провайдера AdminVPS. Здесь сразу всё работает, никуда писать не надо.

  • При заказе услуги можно выбрать самый простой тарифный план «Micro»
  • Все сайты открываются даже на серверах в России
  • Есть бесплатный тестовый период 7 дней
  • Техподдержка помогает
  • Для моих посетителей, при вводе промокода: itlike60 — вы получите реальную скидку 60% на первый платёж.

Далее, первые скриншоты остались от старого хостинга, но всё так же.

«Hostname» вводим любой или имя своего сайта (если в будущем будете размещать на хостинге свой сайт). «OS Template» выбираем «Ubuntu 14.04 64bit» или любую из Ubuntu, Debian, CentOS:

Операционную систему потом можно поменять, если вдруг что не получится.

После оплаты на почту приходят данные для входа в панель управления и Root-пароль для настройки сервера. А также IP-адрес сервера, и именно он будет вашим IP-адресом, когда мы поднимем VPN и подключимся к нему с компьютера

Переходим по ссылке в письме и входим в панель управления. На вкладке «Virtual Servers» будет ваш сервер:

Нажимаем кнопку «Manage» и попадаем в окно администрирования:

Здесь нам ничего не нужно трогать. Единственное что может понадобится – это переустановка операционной системы – кнопка «Reinstall», об этом позже.

Теперь нам нужно подключиться к серверу чтобы посылать ему команды. Для этого будем использовать бесплатную программу Putty.

Распаковываем архив с программой и запускаем файл

В поле «Имя хоста» вставляем IP-адрес сервера, который пришёл в письме, также его можно скопировать с панели управления:

и нажимаем «Соединиться». Если выскочило вот такое окно, то жмём «Да»:

Перед нами должно появиться чёрное окно консоли (командная строка). Именно здесь мы и будем давать команды. Но сперва нужно залогиниться. Для этого в поле «login» вводим «root»

Затем копируем из письма root-пароль и вставляем его в поле «password». Чтобы вставить сюда из буфера обмена, нужно просто кликнуть один раз правой кнопкой мышки по окну консоли. При этом пароль не печатается на экране, такое чувство что ничего не произошло. Всё нормально, жмём «Enter». Должны проскочить строчки с информацией о системе. Если же написало какую-то ошибку, то проверьте всё ещё раз. Также, консоль не будет долго ждать, пока вы ищете root-пароль. Если к тому моменту выскочит ошибка, то запускайте Putty заново.

Мы уже на финишной прямой в настройке собственного VPN-сервера. Существует множество инструкций в интернете как установить сервер, но все они требуют знаний системного администратора, ибо мелкие нюансы упускаются из виду. На радость всем чайникам, существует универсальный скрипт «OpenVPN road warrior», который сделает всю работу сам. Нам нужно только дать команду скачать и запустить его.

Итак, копируем эту строчку и вставляем в консольное окно правой кнопкой и жмём «Enter»:

Проскочат всякие строчки и, если скрипт успешно скачался и запустился, с нами начнётся диалог мастера настройки VPN-сервера:

Скрипт находит предполагаемое значение для каждого параметра и предлагает с ним согласиться, т.е. нажать «Enter», либо ввести своё значение.

  1. Первый параметр – это «IP address». Скрипт должен предложить тот самый айпи VPS-сервера. Так должно быть в 99.9% случаев, но если это, почему-то, не так, то исправьте на правильный адрес.
  2. Второе — протокол UDP или TCP. Оставляем по умолчанию UDP.
  3. Идём дальше, «Port: 1194» — соглашаемся.
  4. «What DNS do you want to use with the VPN?» — выбираем «Google», т.е. вбиваем цифру «2» вместо единички, Enter. Если гугл заблокирован, то оставляем по умолчанию.
  5. «Client name» — имя пользователя. Можно создать доступ для разных пользователей. По умолчанию «client» — соглашаемся.
  6. «Press any key…» — нажать «Enter» и подождать несколько минут, пока всё установится и сконфигурируется.

В общем-то, создание VPN сервера на этом закончено, пора пожинать плоды. В процессе инсталляции скрипт создал файл с настройкой для нашего компьютера. Чтобы мы могли использовать сервер, этот файл нужно скачать. Для этого вставляем в командную строку:

На экран будет выведено содержимое файла «client.ovpn». Теперь его надо аккуратно скопировать в буфер обмена. Листаем вверх до ввода команды, выделяем мышкой все строчки, кроме самой последней (для новых команд), т.е. последняя выделенная строчка будет “ ”. Чтобы скопировать выделенное в буфер обмена жмём «Ctrl-V».

Теперь на компьютере в Windows 7/8/10 открываем блокнот и вставляем в него скопированный текст. Сохраняем файл на рабочем столе под именем «client.ovpn».

Если планируется давать доступ к серверу другим людям, то лучше создать для них отдельные файлы, например vasya.ovpn. Для этого просто запускаем скрипт ещё раз и выбираем теперь 1-й пункт — создание нового пользователя.

Поздравляю, мы на финишной линии! Теперь только осталось установить бесплатную программу, которая будет подключаться к нашему VPN-серверу. Называется она «OpenVPN».

Скачиваем версию для Windows и устанавливаем её, запускать не надо.

Если в процессе установки будут выскакивать всякие окошки, со всем соглашаемся.

Чтобы подключиться к серверу кликаем на рабочем столе по файлу «client.ovpn» правой кнопкой и выбираем «Start OpenVPN on this config file»:

Появится чёрное окошко с процессом инициализации подключения. Если всё прошло успешно, то последняя строчка должна быть, типа:

Ещё может выпадет окно с вопросом типа новой сети, тогда выбираем «Общественная сеть».

Можно проверять, заходим на сайт 2ip.ru и смотрим свой IP, должен совпадать с IP VPS-сервера:

Окно консоли сервера теперь смело можно закрывать. А чтобы закрыть впн-соединение и вернуть старый айпи – нужно закрыть окошко от OpenVPN.

Чтобы подключиться в следующий раз, достаточно просто запустить правой кнопкой файл «client.ovpn» с рабочего стола, больше ничего делать не требуется.

С телефоном всё ещё проще, нужно установить через плеймаркет приложение OpenVPN, закачать в память файл client.ovpn, выбрать его в приложении и подключиться к нашему vpn-серверу.

Если чувствуете что из-за вашей ошибки теперь всё идёт наперекосяк, то можно переустановить операционную систему на хостинге. Для этого в панели управления кликаем «Reinstall» (см. скриншот панели) и выбираем новую операционную систему (или ту же):

Давим кнопку «Reinstall» и ждём 10 минут. Также будет выдан новый Root-пароль, не потеряйте его!

Большинство проблем возникает на этапе подключения к серверу в программе OpenVPN, особенно в Windows 8/10. В чёрном окошке могут быть ошибки, например:

  • FlushIpNetTable failed on interface
  • All TAP-Win32 adapters on this system are currently in use
  • CreateFile failed on TAP device
  • DNS failed..

При этом первое что надо сделать — это дать программе права администратора и, соответственно, заходить в систему с правами администратора. Идём в «C:\Program Files\OpenVPN\bin\» , кликаем правой кнопкой по файлу openvpn.exe -> свойства. На вкладке «Совместимость» ставим галку «Выполнять эту программу от имени администратора». Теперь всё должно работать.

  • удалить программу и переустановить от имени админа
  • выключить службу «Маршрутизация и удалённый доступ» (“Routing and Remote Access”) через «Панель управления -> Администрирование -> Службы»
  • попробовать переустановить из этого инсталлятора или отсюда
  • удалить все ВПН’овские программы и приблуды от других платных и бесплатных сервисов

Понять, точно ли проблема в компьютере или ноутбуке, можно, если установить через плеймаркет приложение OpenVPN на телефон или планшет, закачать на него файл client.ovpn и подключиться к нашему vpn-серверу. Если и так не получится, то нужно искать причину на сервере, написать в службу поддержки.

Обратите внимание на сообщения в чёрном окне, нет ли там повторяющихся строчек «read from TUN/TAP … (code=234)»

а также на сообщение где-то в середине «WARNING: ‘tun-mtu’ is used inconsistently, local…»:

В этом случае открываем файл client.ovpn в блокноте и в новой самой первой строке пишем:

значение сервера — это число, указанное в конце строчки в тексте «remote=’tun-mtu 1500′». Подставляем своё значение! В итоге должно получится так:

Делается это потому, что по каким-то причинам значение MTU на компьютере и на VPS-сервере различаются. Файл .ovpn для смартфона оставляем нетронутым!

Можно использовать наш VPS/VDS сервер как Proxy Server. Для этого делаем всё как раньше до момента нажатия кнопки «Соединиться» в программе Putty. Не нужно открывать консоль и запускать скрипт. Идём на вкладку «SSH->Tunnel» , прописываем Source Port: 3128

Упс, статью дописывал позже, тут у меня Putty на английском, но суть та же.

Если пишет ошибку «You need to specify a destination address in the form host.name:port», то переключите на «Dynamic» вместо «Local».

На вкладке «Connection» в поле «Seconds between keepalives…» ставим 100 секунд, это надо чтобы коннект не разрывался из-за простоя. Теперь подключаемся — нажимаем «Open», вводим логин/пароль. Далее, идём в настройки сети в браузере и прописываем там прокси-сервер. В хроме это «Настройки->Поиск настроек->пишем ‘прокси’->Настройки прокси-сервера». Делаем всё как на скриншоте:

Теперь все сайты будут работать через наш сервер, но только в браузере и некоторых программах. Другие программы не увидят прокси, будут работать напрямую. Нужно в каждой программе в настройках подключения, если они предусмотрены, прописать адрес, порт и тип прокси: Socks4/5. Или устанавливайте OpenVPN и не используйте прокси.

Устанавливаем расширение для Google Chrome или Mozilla Firefox, называется FoxyProxy. В настройках надо добавить наш прокси-сервер:

На вкладке «URL Patterns» добавляем маски сайтов, которые должны открываться через наш сервер. Маска сайта это его имя со звёздочками по бокам.

Всё, теперь добавленный сайт будет ходить через proxy, а все остальные напрямую. Если кликнуть по значку расширения, то можно выбрать пускать все сайты через него или вообще никакие.

Подключать Putty к прокси можно одним кликом. Для этого нужно перед подключением в разделе «Connection->Data» прописать логин сервера, тот, что обычно root

и сохранить сессию со всеми настройками:

Теперь нужно создать ярлык на рабочем столе, в котором указать такие параметры:

«C:\Program Files\PuTTY\putty.exe» -load myvpn -pw пароль_к_серверу

где myvpn — это имя сохранённой сессии. Всё, осталась одна деталь — убрать окно Putty из панели задач в системный трей. Нужно скачать модификацию утилиты отсюда и заменить exe-файл. Теперь в настройках на вкладке Behaviour появится соответствующая галочка, но этого можно и не делать.

Предлагаю вашему вниманию инструкцию (в виде цикла статей ибо за один раз на пикабу всю статью не опубликовать), как обойти ограничения на посещение сайтов и стать безликим для рекламных сетей с применением VPN и прокси сервера, установленных на VPS. Статья была написана для другого ресурса, но возможно буде интересна и здесь.

Многие из вас в гневе восклинут, что это боян и статей про VPN и Squid миллион! Да это так, но тем не менее, считаю данный материал актуальным и вот почему.

Большинство инструкций по настройке VPN сервера не описывают:

— где взять виртуальную машину для его установки;

— как выбрать хостинг, какие требования к VPS и хостингу;

— как попасть в консоль по сертификату и защитить сервер от брутфорса;

— как обойтись без консоли (в частности для редактирования файлов), а то ничего не понятно;

— как защитить сервер, настроив файрволл;

— как обойти ограничения корпоративных сетей на «левые» порты и протоколы.

Т.е. инструкции по настройки есть, но для человека, далекого от тематики они порождают вопросов больше, чем дают ответов. А на свободный интернет и анонимность имеют право все.

Кроме того, имея где-то там свой личный сервер с VPN было бы глупо не использовать возможность установки анонимного прокси, который пусть и не на 100%, но процентов на 90 сделает вас безликим для сборщиков личной информации (рекламные сети, поисковики и пр.).

Есть платные VPN сервисы, есть платные прокси и у них есть много неоспоримых преимуществ (множество IP, возможность менять IP и страну на ходу, легкое подключение). Но есть и очевидные недостатки:

— в первую очередь цена. Свой VPS обойдется значительно дешевле.

— кто-то, кто создал сервис, знает о вас всё.

— IP адреса таких платных сервисов часто банятся как на уровне провайдеров, так и на уровне интернет-ресурсов.

В общем я написал пошаговую, очень подробную инструкцию, как:

1. Выбрать хостера и арендовать VPS.

2. Настроить безопасный вход по SSH с использованием сертификатов.

3. Настроить файрволл своего VPS.

4. Установить и настроить VPN сервер. Настроить все свои устройства для подключения к этому серверу (в том числе смартфоны);

5. Установить и настроить прокси-сервер Squid и настроить подключение к нему

Напоминаю, нашей целью не является полная анонимность. Если вы хотите стать анонимным в сети, используйте Tor и свою паранойю. Наша цель избавиться от слежения со стороны рекламных сетей и интернет-провайдеров, исключить модификацию трафика интернет-провайдерами, обойти ограничения на посещение сайтов и зашифровать весь свой трафик, проходящий по территории страны проживания. Если вы будете делать что-то противозаконное с использованием описанных в статье технологий, вас найдут, даже не сомневайтесь.

А еще сможете в компании так невзначай сказать: «Что, вы не можете зайти на порн-хаб? Элементарно! Я вот поднял свой VPN сервер c проксированием в Нидерландах. Никакие ограничения на меня не действуют, хожу в интернет по зашифрованному каналу».

Выбор хостинга и аренда VPS

Для начала нам понадобиться виртуальный сервер (VPS). В мире много… нет, не так. В мире ОЧЕНЬ МНОГО хостеров, готовых предложить VPS за небольшие деньги. Конкуренция велика и это хорошо. Чтобы выбрать именно то, что нам нужно, определим требования:

1. Поддержка tun/tap (Что это такое, ищите в Википедии. Некоторые хостеры эту технологию не предоставляют вообще, некоторые по запросу, некоторые сразу. Уточнить можно в службе продаж или в службе тех. поддержки хостера.)

2. Как можно дешевле. Ну тут понятно.

3. Датацентр хостера должен быть как можно ближе к вам (меньше пинг).

4. Желательно, чтобы он не попадал под юрисдикцию российских спецслужб и никак от них не зависел. Т.е. у хостера не должно быть представительств или датацентров в России. Мы же не хотим, чтобы кто-то «слушал» наш трафик или лез в нашу личную жизнь. Вернее, лезть то будут, но лично меня не парит ели это будут спецслужбы Нидерландов, Франции или Германии, но я исключительно против российских спецслужб.

5. Нам не важен размер жесткого диска VPS и скорость его работы. Т.е. нам всё равно, HDD будет SSD. Да и места потребуется настолько мало, что этим параметром можно пренебречь.

6. А вот оперативной памяти я бы не рекомендовал меньше 512 МБ.

7. Сетевой трафик VPS должен быть либо не ограничен, либо иметь такое ограничение, в которое мы не упремся (по опыту от 512 ГБ в месяц и выше).

8. Скорость сетевого интерфейса не менее 100 МБ/сек.

9. Ну и сам хостер должен быть с более-менее приличным сроком нахождения на рынке, а не какой-то реселлер однодневка.

Я не буду давать здесь конкретных рекомендаций по хостерам, дабы не сочли за рекламу. Если кому-то интересно моё мнение и мой опыт по этому вопросу, то готов ответить в комментариях.

Я буду приводить скриншоты при работе с одним из моих постоянных хостеров, у других всё тоже самое. Принципиальных отличий нет.

Итак, нашли подходящего хостера и берём в аренду VPS.

Если при настройке услуги хостер просит указать доменное имя и DNS, пишем любую лабуду. Нам это, в данном случае, не важно. Операционную систему я выбрал CentOS 7 x64 и для неё будут все дальнейшие инструкции. Вы вольны выбрать любой дистрибутив, принципиальных отличий нет.

При первоначальной регистрации и оплате хостер может запросить некоторые ваши документы: фото удостоверения личности (паспорта); фото банковской карты, с которой проводится оплата (естественно с закрашенными начальными цифрами номера и закрашенным CVC-кодом); копию последней платежки за коммунальные услуги с различимым адресом проживания. Это нормальная ситуация. Хотят убедится, что вы не мошенник и не пользуетесь чужой картой. Могут и не запросить. Тут как повезёт.

После оплаты и верификации вы получите на свою электронную почту письмо примерно такого содержания:

Как видим нам дали IP адрес нашего арендованного VPS (Main IP), логин (Username) и пароль (Root Password) для входя по SSH. Также дали ссылку на панель управления сервером и логин-пароль для входа в панель. Из панели, как правило, можно включить/выключить/перезагрузить сервер, сбросить пароль root, посмотреть статистику сервера (использование памяти/процессора/трафика) и прочие базовые вещи.

Управлять нашим сервером мы будем через SSH-консоль. Да, есть множество решений графического интерфейса для управления linux-серверами, но это не наш путь. Во-первых, наш VPS очень базового уровня и его ресурсов если и хватит для работы графического интерфейса, то впритык. Во-вторых, практически для любого графического интерфейса потребуется Web-сервер и дополнительные открытые порты, что резко увеличивает уязвимость нашего сервера для атак злоумышленников. Ну и в-третьих, нам его один раз настроить и забыть.

Нам потребуется сам SSH-клиент, а также утилиты для генерации ключей. Качаем и распаковываем архив https://the.earth.li/

Из архива нужны будут сам клиент putty.exe и утилита генерации ключей puttygen.exe. Также можно скачать их по-отдельности на этой странице: https://www.chiark.greenend.org.uk/

Еще нам понадобиться WinSCP. Очень удобная штука, особенно для тех, кто не любит работать в консоли. Качаем здесь https://winscp.net/download/files/201705310908cd3ce105c1c1ca. и распаковываем архив. Для запуска используем WinSCP.exe

Теперь все готово. Начинаем настраивать.

Для начала подключимся по SSH по паролю и убедимся, что наш сервер работает. Для этого запускаем putty.exe

в поле Host Name вписываем полученный по почте IP-адрес и жмем кнопку Open (если появится окно PuTTY Security, жмем «Да») и, в черном окне, вводим логин (root) и пароль из письма.

Маленький лайфхак: сейчас вам придётся в консоль вводить длинный и не удобный пароль, а в дальнейшем длинные и неудобные команды. Можно сократить ручной труд и просто копировать вставлять. Копировать как обычно, а для вставки переводим курсор на черное окно putty и жмем правую кнопку мыши. Всё. То, что копировали, будет вставлено. И пароль тоже вставиться. Этого будет не видно, но ничего страшно, после нажатия правой кнопки мыши сразу нажмите Enter. При копировании будьте аккуратны, выделяя текст для копирования не зацепите лишние пробелы.

login as: root
root@123.123.123.123’s password:
[root@vps12345

Чтобы завершить ввод команды, нужно нажать Enter. Например, добавим нужный репозиторий и обновим наш сервер. Вводим (или копируем отсюда) следующую команду и жмем Enter.

yum install epel-release –y

Результат будет выглядеть примерно так:

Свернём пока консоль, она нам понадобиться чуть позже. Попробуем подключиться к серверу в WinSCP. Запускаем WinSCP.exe.

Host name: IP-адрес из письма

Password: оставляем пустым

Жмём “Save”, в появившемся окне «ОК». Теперь слева, в списке, появилась запись вида root@[IP-адрес]. Дважды кликнем по ней. Появится окно с предупреждением, жмём Yes. Вводим пароль и WinSCP подключается.

Теперь мы видим две панели: слева файловую систему своего компьютера (диск С), а справа файловую систему VPS (обычно при первом входе бывает открыта папка /root). Обратите внимание: в правой панели сверху списка папок всегда будет символ папки со стрелочкой и двумя точками. Если его два раза кликнуть (или стрелками на клавиатуре переместить на него курсор и нажать Enter) вы перейдёте на уровень вверх. Например, сейчас сможете попасть в корень файловой структуры сервера. Выглядит это так:

Свернём пока WinSCP и запустим puttygen.exe.

Сейчас мы создадим сертификаты для SSH-подключения. Ранее мы подключились по простому паролю. Использование пароля не безопасно: его можно перехватить или подобрать. Поэтому сделаем ключи и настроим наш сервер на подключение только с этими ключами.

Проверяем, что выбран тип ключа RSA, количество бит не менее 2048

И жмём кнопку “Generate”. Теперь на время освоим роль биологического генератора случайных чисел: двигаем хаотично мышкой и(или) жмем хаотично кнопки на клавиатуре (желательно кнопки с буквами и цифрами, остальные не трогаем). Как только зелёная полоска доползет, закрытый ключ готов.

Придумываем для его защиты хороший пароль (Не менее 10 символов, латинские маленькие и большие буквы, хотя бы один спец-символ !@#$%^&*()<>. ;”’). Пароль забывать нельзя, его никак не восстановить! Вводим этот пароль два раза:

Жмем “Save public key” и сохраняем публичный ключ (даём ему имя public.pub и не забываем куда сохранили. Я создал папку test на диске С:, дальше буду использовать её). Жмём “Save private key” и сохраняем приватный ключ (даём ему имя private и сохраняем рядом с публичным). У нас должно получиться два файла: private.ppk и public.pub

Рuttygen можно закрывать, он нам больше не понадобиться. Возвращаемся к WinSCP. Слева находим папку с двумя указанными выше файликами, а справа открываем папку /tmp. Слева «становимся» на файл public.pub, нажимаем F5 (одна из ненужных кнопок в самом верхнем ряду клавиатуры) и ОК. Наш файлик копируется на сервер. Получится вот так:

Возвращаемся к консоли PuTTY. Вводим команду:

ssh-keygen -i -f /tmp/public.pub >> /root/.ssh/authorized_keys

Всё, наш сервер готов принимать подключения по сертификату. Закрываем (совсем, крестиком) окно PuTTY и снова запускаем putty.exe. Создадим профиль для нашего сервера. Опять в поле “Host Name” вписываем IP-адрес сервера. Справа, в списке находим пункт Connection -> Data и в поле “Auto-login username” вписываем root. Справа в списке находим пункт Connection -> SSH -> Auth находим поле “Private key file for authentication:” и жмём кнопу “Browse …”. Указываем путь на приватный ключ (в моём случае C:\test\private.ppk)

Слева в списке выбираем пункт Session, в поле “Saved Session” вписываем любое имя профиля (например, my_vpn) и жмем “Save”. Ниже в списке появится строчка с этим именем. Щелкнем её двойным кликом. Появится консоль и попросит ввести пароль от приватного ключа (вы ведь его не забыли):

Вводим его, жмём Enter. Если все сделали правильно, мы авторизуемся. Отлично. Теперь настроим WinSCP. Закроем его окно (крестиком) и вновь запустим wincsp.exe. У нас есть уже сохраненный профиль, просто отредактируем его. Выберем профиль («встать» на него в списке слева) и нажмём кнопку Edit, а затем кнопку Advanced… В появившемся окне слева, в списке, выбираем пункт SSH -> Authentication. Возле поля “Private key file” жмем кнопку с тремя точками и указываем путь на файл приватного ключа (также, как мы это делали для putty).

Жмём ОК и в первоначальном окне жмём кнопку Save. Теперь двойным кликом по названию профиля подключаемся, вводим пароль от приватного ключа.

Теперь запретим нашему серверу принимать подключения по простому паролю. В правой панели WinCSP открываем папку /etc/ssh/ и находим файл sshd_config

Двойным кликом открываем его. Находим строчку, в которой написано

Именно так, без символа #, и меняем yes на no. Получится:

Нажимаем сверху символ дискеты и закрываем окно редактирования файла. Если кто-то никогда не видел дискет, то просто закрываем окно редактирования файла и нажимаем Yes в окне с предупреждением. Закрываем окно WinSCP. В консоли PuTTY вводим команду

и закрываем окно крестиком. Сервер перезагружается. Обычно это занимает от 10 до 60 секунд. По истечении это времени снова запускаем putty.exe и wincsp.exe и подключаемся к серверу в каждом из них.

Ну вот, теперь вы можете работать со своим сервером безопасно. Ваш сеанс работы в консоли зашифрован, а подключиться к серверу без сертификата не получиться.

private.key храните только в надежном месте на доверенном компьютере. А лучше вообще на флешке, которую будете подключать только для настройки сервера. А это нужно крайне редко. Ну и пароль от ключа не забывайте.

Если статья будет интересна аудитории пикабу, то продолжу её публикацию согласно плана в начале.