Установка своего VPN на VPS хостинге с нуля

Содержание

Простейшая установка VPN сервера с помощью PPTP

Наиболее востребованная услуга среди пользователей создание частного VPN сервера (обращаем Ваше внимание публичные прокси сервера на базе наших серверов запрещены). Самый оптимальный вариант для выполнения многих задач подходит OpenVPN, как наиболее безопасный сервер. Но наиболее простым, который прост как в установке, так и в настройке, который к тому же совместим практически со всеми мобильными устройствами, является PPTP (Point-To-Point Tunneling Protocol) и данная технология наименее всего потребляет ресурсы сервера.

Для настройки потребуется любой сервер с виртуализацией KVM. Еще раз, ни в коем случае не использовать сервера на базе OpenVZ, кроме того, что это запрещено нашим регламентом, у этих сервером там многие протоколы урезаны и настроенный сервер может не работать. Рекомендуем использовать сервера из локаций Нидерланды, Литва, США, т. к. в данных локациях интернет менее всего подвержен цензуре и Вы сможете попадать на заблокированные ресурсы правительством некоторых стран. Например для Украины таковыми являются Яндекс, Маил.Ру, Вконтакте, Одноклассники и пр.

Шаг 1 — Установка PPTP

Вам необходимо выбрать один сервер, который будет отвечать за раздачу IP-адресов другим серверам и авторизацию всех Ваших серверов в Вашей VPN. Он и станет Вашим PPTP-сервером.

Если выбрали операционню систему CentOS 6 x64::

На Ubuntu 12.10 x64:

Теперь необходимо отредактировать файл

добавив в него следующие строчки:

В данном случае, localip — это IP-адрес вашего сервера, а remoteip — IP-адреса, которые будут присваиваться клиентам, которые в ним соединяются.

Затем Вам необходимо настроить авторизацию для PPTP путем добавления пользователей и их паролей. Просто добавьте их в /etc/ppp/chap-secrets:

Здесь сlient — это имя пользователя (логин), server — тип сервиса (в нашем примере — pptpd), secret — пароль, а в IP addresses указывается, какие IP-адреса могут авторизоваться (с данным логином и паролем). Установив в поле IP-адресов звёздочку * Вы указываете, что данная пара логин/пароль должна приниматься с любого IP.

Шаг 2 — Добавление DNS-серверов в /etc/ppp/pptpd-options

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Теперь Вы можете запустить PPTP-демон:

Проверьте, что он работает и принимает соединения:

Шаг 3 — Настройка форвардинга (Forwarding)

Очень важно включить форвардинг IP на Вашем PPTP-сервере. Это позволит Вам пересылать пакеты между публичным IP и приватными IP, которые Вы настроили при помощи PPTP. Просто отредактируйте /etc/sysctl.conf, добавив туда следующую строку, если ее там еще не было:

Для применения изменений выполните команду sysctl -p

Шаг 4 — Создание NAT-правил для iptables

Если Вы также хотите, чтобы Ваши PPTP-клиенты могли общаться между собой, добавьте следующие правила для iptables:

Теперь Ваш PPTP-сервер также работает и как роутер.

Если Вы хотите установить ограничение на то, какие сервера могут соединяться с Вашими дроплетами, Вы можете задать правило для IP-таблиц, которое ограничивает TCP-соединения к порту 1723.

Шаг 5 — Настройка клиентов

Установите PPTP-клиент на Ваших клиентских серверах:

yum -y install pptp

Шаг 6 — Добавление необходимого модуля ядра

Создайте новый файл

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

Здесь 198.211.104.17 — публичный IP-адрес нашего PPTP-сервера, box1 и 24oiunOi24 — это пара логин/пароль, которые мы задали в файле /etc/ppp/chap-secrets на нашем PPTP-сервере.

Теперь мы можем «вызывать» этот PPTP-сервер. В следующей команде необходимо использовать имя, которое Вы дали файлу с пирами (peers) в директории /etc/ppp/peers/. Поскольку в нашем примере мы назвали этот файл pptpserver, наша команда выглядит следующим образом:

Вы должны увидеть успешное подключение в логах PPTP-сервера:

На Вашем PPTP-клиенте настройте маршрутизацию на Вашу приватную сеть через интерфейс ppp0:

Ваш интерфейс ppp0 должен быть настроен, что можно проверить путем запуска ifconfig

Теперь Вы можете сделать пинг к Вашему PPTP-серверу и любым другим клиентам, подключенным к этой сети:

Мы можем добавить второй PPTP-клиент к этой сети:

Добавьте необходимые строки в файл

(заменяя логины и пароли своими):

Теперь на втором клиенте выполните следующие команды:

Вы можете сделать пинг к первому клиенту, при этом пакеты будут идти через PPTP-сервер и перенаправляться по правилам ip-таблиц, которые мы задали ранее:

Такая настройка позволит Вам создать Вашу собственную виртуальную частную сеть:

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

Вы можете использовать такой подход совместно с Nginx, Squid, MySQL и любыми другими приложениями.

Поскольку трафик внутри сети шифруется 128-битным шифрованием, PPTP меньше нагружает процессор, чем OpenVPN, но все же обеспечивает дополнительный уровень безопасности Вашего трафика.

Источник: http://host-for.net/ru/wiki/item/21-prostejshaya-ustanovka-servera-vpn-s-pomoshchyu-pptp

Как установить и настроить свой личный VPN

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

Текущая ситуация с конфиденциальностью в сети

Если вы много путешествуете, то наверняка используете бесплатные общественные Wi-Fi точки доступа в сеть, чтобы проверить, как там ваши дела на Forex, долить сеточки и закрыть прибыльные сделки. Иногда сделать это в другой стране невозможно. Те же Google, Facebook, Youtube, а также многие другие популярные сервисы в некоторых странах просто заблокированы, например, в Китае.

Вообще, многие интернет-сайты цензурируются рядом правительств, и больше всего в странах с «железным занавесом» не любят Google, с помощью которого можно найти практически любую информацию. Кстати, в самом Google не стесняются и подобную информацию не скрывают, давая возможность узнать, правительства каких стран блокируют доступ к их сайту или запрашивают информацию о пользователях. Узнать эту информацию можно на официальной страничке Google под названием «Отчет о доступности сервисов и данных».

Помимо недоступности сервисов в некоторых странах, в путешествиях вообще есть определенная проблема с нормальным доступом в Интернет. Не всегда удается купить местную SIM-карту, поэтому приходится подключаться к Wi-Fi сетям в отелях, аэропортах и кафе. Фактически мы ничего не знаем об этих сетях: кем они были созданы, насколько надежны, и не «слушает» ли кто-либо сейчас наш трафик.

Чтобы ваши личные данные, такие как пароли и логины от терминалов и кошельков, утекли в карманы не очень добросовестных людей (вместе с вашими деньгами), не обязательно выезжать за границу. Вы всегда можете для этого просто подключиться к бесплатной точке доступа в любимой кафешке, в метро, электричке или в любом другом месте. Вы понятия не имеете, насколько безопасны эти сети, и, вполне возможно, прямо сейчас весь ваш трафик прослушивается злоумышленниками, которые сидят за соседним столиком. Более того, находиться непосредственно рядом не обязательно, достаточно сделать довольно нехитрые настройки общественной Wi-Fi сети, чтобы получать нужные данные «с доставкой на дом».

Отсюда простое правило – всегда, когда вы подключаетесь к общественной сети, вы должны понимать, что все данные, с которыми вы работаете в рамках этой сессии, отныне тоже достояние общественности, в том числе и ваши счета, кошельки и личные переписки с фоточками котиков.

Еще одно неудобство – реклама. Дело в том, что эффективная реклама – это таргетированная и персонализированная реклама. Рекламные сети, арендующие площади на страницах сайтов, собирают о нас необходимую им информацию: пол, возраст, страна и адрес проживания, личные интересы и хобби, профессиональные интересы и навыки, сексуальные предпочтения и пр. Так уж сложилось, что рекламные сети знают о вас больше, чем самые близкие ваши родственники.

Кроме того, не стоит забывать и о правительстве, которое в последние годы старается взять интернет под свой контроль, ограничивая нашу свободу в сети. Законодательство обязывает интернет-провайдеров записывать весь трафик пользователей и хранить какое-то время на своих серверах (в России это система СОРМ). К этому архиву могут получить неограниченный доступ спецслужбы и с легкостью использовать эту информацию против пользователей. На сегодняшний день уже имеется немало прецедентов, когда люди за какой-то неосторожный комментарий в любимом виртуальном вконтактике отправлялись во вполне реальную тюрьму на не менее реальный срок.

Ну и, конечно же, Роскомнадзор, который блокирует не только неугодные правительству сайты, но и вместе с ними вообще любые, какие попадутся на пути. А теперь, кстати, еще и VPN-сервисы. Как видите, абсолютно никому, кроме вас самих, не выгодна ваша анонимность. Даже наоборот – гораздо удобнее знать о том, что вы думаете и чем живете, чтобы показать вам в нужный момент правильный баннер, залезая в ваш кошелек, ну или просто посадить, если вас что-то не устраивает.

Как решить эту проблему?

Если вы дочитали до этого места, то наверняка понимаете, что просто необходимо принять какие-то меры для обеспечения своей безопасности. Хотя многие могут возразить, что им нечего скрывать и они спят спокойно. Таким людям предлагаю просто выложить в комментариях к статье логины и пароли от кошельков и онлайн- кабинетов.

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

Прежде чем продолжить, я хочу подчеркнуть, что VPN не даст вам полной анонимности в сети. Но при этом он поможет вам:

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

Немного об анонимности в сети

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

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

Для того, чтобы собирать о вас информацию, нужно как-то выделить лично вас на фоне других пользователей. Для этого формируется так называемый «отпечаток» или «fingerprint». Отпечаток браузера представляет собой уникальный слепок с настроек вашего браузера и компьютера. Отпечатки браузера – это альтернатива cookies с рядом преимуществ.

Существует множество сайтов, позволяющих увидеть, по каким данным вас можно идентифицировать, например:

Теперь давайте разберемся, что же вообще такое VPN и как он работает.

Что такое VPN?

Представьте себе подземный тоннель со множеством въездов и выездов, внутри которого есть куча развязок. Никто извне не знает, где окажутся автомобили, въезжающие в него. Никто извне не знает, что происходит в тоннеле.

Скорее всего, у вас дома есть Wi-Fi роутер. Подключённые к нему устройства могут обмениваться данными даже без интернета. Получается, у вас есть своя частная сеть, но чтобы подключиться к ней, нужно физически быть в пределах досягаемости сигнала роутера.

VPN – это виртуальная частная сеть (аббревиатура от virtual private network). Это зашифрованный туннель между двумя устройствами, позволяющий получить доступ к любому сайту и онлайн-сервису конфиденциально и безопасно.

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

VPN-туннель представляет собой сквозное подключение, установленное между двумя устройствами – как правило, между VPN-сервером и вашим устройством. Туннелирование трафика позволяет встроить его в стандартные пакеты TCP/IP и безопасно передавать их через Интернет. Так как ваши данные зашифрованы, то ни хакеры, ни правительство, ни даже интернет-провайдеры не получат к ним доступ, пока вы подключены к VPN-серверу.

Для вашего провайдера, администратора Wi-Fi сети или же злоумышленников, которые сканируют трафик в Wi-Fi сетях, вся ваша сетевая активность выглядит как одно-единственное соединение к одному-единственному IP-адресу. Это всё, что им доступно. Что именно происходит внутри этого соединения, они не смогут узнать, поскольку просто не смогут проникнуть «внутрь» этого соединения.

Да, можно взломать сам VPN-сервер и получить доступ к вашему трафику уже на нем, но очевидно, что никто не будет этим заниматься. К тому же взломать хорошо защищенный VPN-сервер – тот еще челлендж.

Тем не менее, не все VPN-серверы одинаково полезны. Например, компания, в которой вы работаете, может использовать виртуальную частную сеть для удалённых сотрудников. С помощью VPN они подключаются к рабочей сети. При этом их компьютеры, смартфоны или планшеты виртуально переносятся в офис и подключаются к сети изнутри. Для входа в виртуальную частную сеть нужно знать адрес VPN-сервера, логин и пароль.

Использовать VPN довольно просто. Обычно компания поднимает VPN-сервер где-то на локальном компьютере, сервере или в дата-центре, а подключение к нему происходит с помощью VPN-клиента на пользовательском устройстве.

Сейчас встроенные VPN-клиенты есть во всех актуальных операционных системах, в том числе в Android, iOS, Windows, macOS и Linux.

Пуская сотрудников в рабочую среду только через VPN и по учётным записям, работодатель всегда будет знать, кто и что делал и делает. Более того, владелец VPN может мониторить и контролировать вообще весь трафик, который идёт между сервером и пользователем. Сотрудники много сидят во «ВКонтакте»? Можно закрыть доступ к этому сервису. Василий Анатольевич половину рабочего дня проводит за рассматриванием котиков? Анна Петровна с обеда и до вечера сидит на сайте tlap.com? Вся активность автоматически записывается в логи и станет железным аргументом для вашего увольнения.

Тем не менее, когда вы сидите под рабочим VPN из вашего уютного дома и пишете очередной пост о граале на форуме, ваш провайдер, в отличие от работодателя, об этом не догадывается. Для него – вы въехали в тот самый тоннель и, возможно, куда-то выехали, а может, и нет. Так работает VPN-сервер.

Готовые VPN-серверы в сети

В интернете есть целая куча VPN-сервисов, от бесплатных до очень даже платных. Средняя цена нормального VPN-сервиса колеблется в пределах 300-500 рублей в месяц. За эти деньги вы получаете туннель за границу, чаще всего есть возможность выбрать страну, куда будет уходить ваш трафик. Плюс вы получите еще несколько фич, полезность которых, по правде сказать, высосана из пальца. Кроме этого, вам придется доверять выбранному VPN-провайдеру. Строго говоря, у вас есть две альтернативы – купить готовый VPN-сервер (или использовать бесплатный) или же поднять свой собственный.

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

Кроме того, платные инструменты могут в любой момент исчезнуть: закон о запрете анонимайзеров и VPN давно приняли, правда, пока еще не применяли.

Преимущества своего личного VPN

На сторонних сервисах личная анонимность низкая: владельцы VPN-сервера могут собирать о вас совершенно любую информацию – от паролей к учеткам в соцсетях до любимых роликов в pornhub.

На своем сервере все будет намного лучше, деанонимизировать вас могут только спецслужбы тех стран, от которых зависит хостинг вашего сервера (ну и вы сами, по глупости).

Скорость.

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

На своем сервере скорость не хуже, ведь сервер ваш, и канал занимаете только вы.

Анонимность для сайтов и рекламодателей.

На сторонних сервисах анонимность высокая, так как сервер настроен профессионалами.

На своем сервере при правильной настройке тоже все будет хорошо.

Личная анонимность.

Но, как я уже говорил, не стоит воспринимать VPN как панацею от всего и вся. Не стоит также думать, что с использованием VPN вы сможете начать заниматься хакерской деятельностью, ломать сети и воровать кредитные карточки.

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

Поэтому я хотел бы, чтобы вы поняли: VPN – это не для хакерства, это для защиты от злоумышленников и тоталитаризма государства, которое посягает на ваши конфиденциальные данные, ваши мысли, ценности и свободы.

Недостатки своего VPN

Конечно, даже у своего VPN есть недостатки:

  • Некоторые сайты начнут загружаться на языке страны, в которой располагается ваш VPN-сервер. Однако это легко исправить. Поскольку чаще всего мы приходим на какие-либо сайты через поиск в Google, достаточно один раз настроить его выдачу, и с этого момента вы будете направляться на сайты с нужной вам локализацией. Всегда можно выбрать локализацию на самом сайте;
  • То же самое касается и рекламы. Ее существенная часть начнет отображаться для страны, в которой находится ваш VPN-сервер;
  • Некоторые российские сервисы блокируют доступ с нероссийских IP-адресов, поэтому VPN при их использовании придется на время отключать;
  • Снизится скорость загрузки сайтов. По замерам это действительно так, но на практике падение скорости для обычного пользования Интернетом настолько незначительно и неощутимо, что данным недостатком можно пренебречь.

Чем VPN отличается от прокси?

Наверняка многие не раз использовали прокси, например, чтобы посидеть в Telegram. В чем отличие прокси от VPN-сервера?

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

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

VPN-сервис обеспечит вам все преимущества прокси-сервера, а также защитит и зашифрует трафик, которым ваше устройство обменивается с интернет-серверами. Это позволит вам работать в Интернете, не опасаясь кражи или перехвата ваших данных.

Выбираем страну для своего VPN-сервера

Выбирать страну для своего VPN-сервера стоит по следующим критериям:

  • кратчайшее расстояние до вас – это обеспечит меньший пинг и потери в скорости соединения;
  • минимальное количество запретов на свободу Интернета, доступность любых популярных сервисов;
  • наименьшая политическая напряженность между вашей страной и страной, где будет находиться VPN-сервер. В этом случае ваш трафик теперь уже с VPN-сервера, скорее всего, не будут читать спецслужбы другого государства. Но здесь палка о двух концах. Например, многие российские пользователи предпочитают располагать VPN-сервер в Великобритании именно из-за высокой напряженности между странами, ведь в случае чего, последняя ни за что не сдаст трафик российским спецслужбам. Поэтому данный подход также может быть оправданным.

Для российских пользователей в целом подойдет любая страна Евросоюза, однако практика показывает, что лучшим решением является Германия: отличные пинг и стабильность канала, незначительные потери в скорости и хорошая доступность любых мировых ресурсов.

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

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

Выбираем хостинг для своего VPN-сервера

Чтобы развернуть свой VPN, нам нужно иметь сервер. Поэтому для начала нам требуется выбрать хороший виртуальный сервер (VPS).

VPS (Virtual Private Server) или VDS (Virtual Dedicated Server) – это хостинг-услуга, где пользователю предоставляется виртуальный выделенный сервер с максимальными привилегиями. VDS или VPS эмулирует работу реального физического сервера: на одном физическом сервере может быть запущено множество виртуальных серверов, каждый из которых имеет определенный процессор, объем памяти, некоторый объем жесткого диска, root-доступ, собственные IP-адреса, порты, а также на нем возможна установка своих операционных систем и программного обеспечения. Обычно в качестве виртуального сервера используются операционные системы Linux.

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

Чтобы выбрать именно то, что нам нужно, давайте определим требования:

  • Поддержка TUN/TAP. Некоторые хостеры эту технологию не предоставляют вообще, некоторые включают по запросу, некоторые сразу;
  • Цена. Слишком дорогой брать не стоит, но это на ваше усмотрение;
  • Страна. Чем ближе к вам дата-центр хостера, тем меньше будет пинг. Но смотрите, чтобы он не попадал под юрисдикцию российских спецслужб и никак от них не зависел. В идеале, как я уже писал выше – Великобритания или Германия;
  • Размер жесткого диска и скорость его работы не столь важны. Для VPN места потребуется настолько мало, что этим параметром можно пренебречь;
  • Оперативной памяти не меньше 512 МБ;
  • Сетевой трафик должен быть либо не ограничен, либо иметь такое ограничение, в которое мы не упремся. Скорость должна быть не менее 100 Мб/сек.

Поднимать свой VPN-сервер мы будем на основе операционной системы Linux Debian, а не Linux Ubuntu, которая считается более популярной.

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

При настройке услуги хостер может просить указать доменное имя и DNS. Нам это в данном случае не важно, поэтому можете писать все, что угодно.

При регистрации и оплате хостер может запросить некоторые ваши данные: ФИО, е-mail, телефон, адрес, Zip code и т. п. Все это можете придумать сами, но смотрите по своему IP. Также могут запросить фото паспорта, банковской карты, с которой проводится оплата (естественно, с закрашенными начальными цифрами номера и закрашенным CVC-кодом), и прочее. Это нормальная ситуация – они хотят убедиться, что вы не мошенник и не пользуетесь чужой картой. Могут и не запросить. Тут как повезёт.

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

Из наиболее популярных на сегодняшний день глобальных хостинговых компаний можно выделить следующие:

Мы сегодня будем настраивать Amazon Web Services (AWS) из-за известности бренда, большого количества доступных географических зон для размещения сервера и высокой стабильности. Многие популярные интернет-сервисы работают на базе AWS, арендуя там серверы для своих нужд, например, Facebook.

На мой взгляд, вряд ли сегодня кто-то может глобально конкурировать с Amazon. Компания была пионером в облачных технологиях и, по сути, открыла эту отрасль. Сегодня AWS предоставляет множество решений для облачных вычислений на любой вкус и цвет, но нам с вами нужна обычная виртуальная машина. Ее мы возьмем в одной из разработок AWS – Lightsail.

Lightsail – это упрощенное решение для создания виртуальных серверов, в отличие от своего старшего собрата EC2. Всё завернуто в очень простой интерфейс, в котором разберется даже новичок, поэтому для нашей цели AWS Lightsail подходит лучше всего.

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

Использование VPN-сервера на базе AWS Lightsail будет обходиться вам в 3.5 доллара в месяц. За эти деньги вы получаете машину с 512 Мб оперативной памяти. Подобная конфигурация легко справляется с обработкой VPN-трафика 3-4 устройств. Первый месяц у AWS будет и вовсе бесплатным.

Что касается протоколов VPN-соединения, сегодня их существует несколько: PPTP, L2TP, IPSec, OpenVPN, IKEv2. Не думаю, что вам будет интересно про них читать, поэтому опустим эту информацию. Наиболее популярны на сегодняшний день IPsec, IKEv2 и OpenVPN.

Сегодня существуют готовые решения для развертывания своего VPN-сервера на платформе Linux, например, скрипт Algo (для IKEv2) или Streisand (для OpenVPN), которые нужно просто скачать, распаковать и запустить на сервере. Данные скрипты сами установят, настроят все необходимые пакеты и на выходе предоставят работающий VPN-сервер.

Теперь с теоретической частью покончено, и мы можем смело приступать к созданию своего VPN-сервера.

Создание VPN-сервера

После нехитрой регистрации вы сможете перейти в панель управления услугами. Чтобы не искать нужную, просто вбиваем в поиск lightsail:

Как мы уже обсудили, выбираем систему Debian:

Для работы нам понадобится статический ip-адрес, поэтому переходим на вкладку networking и ищем кнопку Create static ip:

Далее привязываем нашу машину и жмем create:

Этот статический ip-адрес появится в настройках, рекомендую его куда-нибудь записать:

Теперь нам нужно скачать наш публичный ключ, он понадобится нам в будущем. Переходим в аккаунт:

Кликаем на вкладку SSH keys и скачиваем ключ:

Сохраните ключ в удобном для вас месте, он нужен будет для доступа через ftp-клиент.

Переходим обратно на вкладку connect:

Там мы видим кнопочку connect using SSH, жмем ее. Это браузерная ssh консоль. Сначала нам нужно в консоли получить права root юзера:

Затем обновить систему с помощью этих двух команд:

После нам нужно перезагрузить систему. Не выходя из консоли, это можно сделать командой:

После перезагрузки я предлагаю установить firewall:

apt-get install ufw

Необходимо открыть затребованные порты, такие как SHH port 22, 80, 443 и так далее:

Для включения фаервола запустим:

Состояние правил фаервола:

Теперь установим скрипт openvpn-install.sh

Запустим скрипт openvpn-install.sh для установки и настройки сервера OpenVPN автоматически:

Жмем кнопки, как указано на скриншоте. Порт вы можете указать любой, но не забудьте добавить его в firewall, как мы делали это выше.

Скрипт сгенерирует файл с расширением .ovpn – это настроечный файл для ваших клиентов (устройств, с которых вы будете пользоваться vpn). Он находится в защищенной папке, из которой его трудно достать при помощи ftp клиента. Поэтому скопируем файл в другую папку:

cp /root/имя_вашего_файла /home/admin/

Далее устанавливаем ftp клиент. У меня – filezilla. После установки запускаем. Жмем:

Настройки должны быть, как указаны тут:

Жмем Соединиться и находим папку home/admin/. Копируем оттуда наш файл с настройками куда-то себе.

У Lightsail есть встроенный firewall и нам нужно добавить в него наш порт, который мы указали при настройке VPN.

Переходим в панель управления нашей машиной, на вкладку Networking.

Далее установим OpenVPN клиент, скачать его можно тут.

Клиенты есть под любые операционные системы:

Заходим в клиент после установки и загружаем наш файл настроек:

Для работы на мобильных устройствах точно так же устанавливаем OpenVPN клиент, а затем присылаем себе файл с настройками почтой. Затем открываем этот файл при помощи клиента (открыть с помощью) и импортируем наши настройки.

Заключение

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

Источник: http://tlap.com/sozdaem-svoj-vpn-server/

Настройка VPN сервера на Windows Server 2008, 2012, 2016 на VPS/VDS

Настройка VPN сервера на Windows Server 2008, 2012, 2016 на VPS/VDS

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

Как правило, это используется для объединения удаленных офисов или мелких филиалов в одну сеть.

Меня зовут Севостьянов Антон и в данном видео давайте рассмотрим процесс настройки VPN сервера на базе Windows Server 2016. И делать мы это будем на арендованном виртуальном сервере от компании NeoServer.

Несмотря на то, что я буду выполнять все действия в Windows Server 2016, аналогичным образом все можно настроить на 2008 и 2012 серверах.

Как я и говорил, весь процесс настройки у нас будет проходить на арендованном виртуальном сервере. Поэтому первым делом нам нужно создать виртуальный сервер, для этого переходим на сайт neoserver.ru \ Войти \ Виртуальные сервера.

Если вы никогда не работали с сервисом NeoServer, то на эту тему у меня есть более подробное видео «Настройка виртуального VPS VDS сервера Windows», в котором я рассказываю все от процесса регистрации до конфигурации сервера.

Соберем сервер, у меня он будет состоять из следующих характеристик: Windows Server 2016 ru, 2Гб ОЗУ, все остальное по умолчанию.

Я буду работать через RDP подключение, так как для меня этот способ наиболее удобен.

Устанавливаем роль VPN

Пуск \ Диспетчер серверов \ Управление \ Добавить роли и компоненты \ Далее \ Далее \ Далее \ Удаленный доступ \ Далее \ Далее \ DirectAccesss и VPN \ Добавить компоненты \ Далее \ Далее \ Установить.

Настройка VPN сервера

Мы можем запустить процесс настройки либо сразу из окна мастера добавления ролей и компонентов, либо через оснастку «Маршрутизация и удаленный доступ» (Средства \ Маршрутизация и удаленный доступ \ Выбираем наш сервер \ ПКМ \ Настроить и включить маршрутизацию и удаленный доступ \ Далее \ Особая конфигурация \ Далее \ Доступ к виртуальной частной сети (VPN) \ Далее \ Готово \ Запустить службу)

Отлично, службу мы запустили, остается выполнить более тонкие настройки (Имя сервера \ Свойства \ IPv4 \ Сервер может назначать адреса используя статический пул адресов, так как у нас в сети нет DHCP, то выбираем эту настройку, если у вас DHCP есть, то оставляем, по умолчанию \ 192.168.0.10-192.168.0.20 \ Безопасность \ Разрешить пользовательские политики \ Вводим ключ безопасности \ Применить \ Перезапускаем службу Маршрутизации и удаленного доступа \ Диспетчер задач \ Службы \ Маршрутизация и удаленный доступ \ Перезапустить)

Предоставляем доступ пользователям для подключения через VPN

(Пуск \ Управление компьютером \ Пользователи \ Администратор \ Входящие звонки \ Разрешить доступ)

Настраиваем VPN подключение на клиентском компьютере (Центр управления сетями и общим доступом \ Создание и настройка нового подключения \ Подключение к рабочему месту \ Использовать мое подключение к интернету (VPN) \ IP адрес \ Свойства подключения \ Безопасность \ Протокол L2TP \ Дополнительные параметры \ Для проверки подлинности использовать общей ключ \ вводим ключ \ Шифрование данных \ Обязательное, отключить если нет шифрования)

Чтобы на клиенте не пропадал интернет при подключении к VPN, переходим в (Свойства сетевого VPN подключения \ Сеть \ IPv4 \ Свойства \ Дополнительно \ Использовать основной шлюз в удаленной сети \ Убираем галочку \ ОК)

Подключаемся к виртуальной сети VPN

Выбираем сетевое подключение \ Подключиться \ Вводим имя пользователи и пароль \ Все

Для проверки можем подключиться к нашему виртуальному серверу через IP адрес, открыть общий доступ к какой-нибудь папке и проверить работу локальной сети.

В описании данного видео, есть временные метки, по которым вы сможете сразу перейти к моменту в видео, который вас больше всего интересует.

Список временных меток:

  • Создание виртуального сервера VPS/VDS на сервисе NeoServer
  • Подключение к виртуальному серверу
  • Установка роли VPN сервера
  • Настройка VPN сервера
  • Настройка доступа к VPN серверу
  • Создание VPN соединения на клиентском компьютере
  • Проверка работы сети через VPN подключение

Источник: http://sys-team-admin.ru/videouroki/administrirovanie/199-nastrojka-vpn-servera-na-windows-server-2008-2012-2016-na-vps-vds.html

Учимся поднимать собственный VPN на сервере

Что такое VPN

VPN расшифровывается как Virtual Private Network (Виртуальная Частная Сеть). Это технология, которая создает виртуальный защищенный канал (или туннель) между вашим устройством (компьютер/смартфон/планшет) и Интернетом.

VPN — это некий сервис, который обычно работает на удаленной машине (сервере).

Зачем нужен VPN

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

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

Также, если ваш провайдер не предоставляет вам статический IP адрес, VPN может быть использован для создания такого выделенного IP.

Для нас VPN является отличным средством анонимизации и защиты нашего трафика от провайдера.

VPN будет скрывать от вашего провайдера ресурсы, которые вы посещаете. А от ресурсов, которые вы посещаете, VPN будет скрывать ваш реальный IP адрес.

VPN часто используется как средство для сокрытия Tor-траффика от вашего провайдера, ведь запуская VPN, а затем Tor Браузер, ваш трафик имеет цепь VPN -> Tor, что означает, что факт использования Tor скрыт от провайдера, в ваш настоящий IP адрес не палится перед первой (входной) нодой сети Tor.

VPN протоколы

Существует множество разных протоколов VPN.

OpenVPN — это протокол с открытым исходным кодом, использующий библиотеку OpenSSL — поддерживает большое количество шифров, очень безопасный, достаточно гибкий в настройке, может работать на любом порту, быстрый по скорости. Для работы необходимо стороннее ПО (клиенты OpenVPN под разные ОС, об этом ниже). Клиентский файл .ovpn может использоваться на любой ОС, в том числе и мобильных. Везде рекомендую вам именно OpenVPN.

IKEv2 — Тоже очень неплохой протокол с очень высокой степенью защиты, быстрый по скорости. Один из немногих протоколов, поддерживающий устройства Blackberry, но сам по себе поддерживает достаточно мало платформ. Этот протокол встретишь не так часто в VPN сервисах, в отличии от OpenVPN или L2TP. Исходный код не открыт, а это потенциально небезопасно.

PPTP — Этот протокол достаточно старый, один из самых первых. Быстрый по скорости и легкий в настройке, поддерживается почти всеми ОС, однако очень уязвимый и совершенно небезопасный. Несколько раз взламывался спецслужбами. Этот протокол использовать крайне не рекомендуется за исключением случаев, где вам не нужна защита. Это юзать не нужно ни в коем случае!

L2TP/IPsec — Уже лучше, чем PPTP. L2TP также поддерживается многими ОС, в том числе и мобильными и тоже достаточно прост в настройке. IPsec обеспечивает более стойкое шифрование, чем PPTP. Однако, L2TP/IPsec медленнее, чем PPTP или OpenVPN. Не обходит Фаерволлы.

SSTP — Протокол от Microsoft. SSTP с хорошим, стойким шифрованием, доступен только для операционных систем Windows. Как и OpenVPN, позволяет обходить Firewall. Проще в настройке, чем OpenVPN. Без открытого исходного кода, поэтому OpenVPN лучше.

Вывод: если есть возможность, использовать лучше только OpenVPN из-за открытого исходного кода, безопасности и относительной скорости. IKEv2 хороший протокол, безопасный, быстрый, стабильный, но с закрытым исходным кодом. L2TP/IPsec можно использовать вместо PPTP, а PPTP использовать вовсе не рекомендую. SSTP доступен только для Винды, тоже не очень рекомендую.

Бесплатные VPN vs свой VPN vs покупной VPN

Если вам нужен VPN срочно, быстро, здесь и сейчас и у вас нет оформленной подписки на каком-то VPN-сервисе, а своего сервера нет и подавно — тогда можете воспользоваться бесплатными VPN. Но затея, конечно, сомнительная.

Идем на сайты, скачиваем конфигурационный файл OpenVPN или получаем инструкцию по подключению, если вы используете другой VPN протокол.

Конфигурационный файл OpenVPN (с расширением .ovpn) нужно «скормить» вашему OpenVPN клиенту (о клиентах я написал ниже).

В чем преимущество бесплатных VPN?

Очевидно, что сама по себе бесплатность является плюсом. Также то, что такими серверами пользуются большое количество людей, прибавляет анонимности. На этом его преимущества заканчиваются.

Данные VPN очень нестабильные. Часто отваливаются. Очень медленные. Использовать их я бы рекомендовал, только если нужно срочно для чего-то и нет других возможностей. Но лучше что бы у вас не было таких ситуаций. Не исключено, что на таких серверах ведутся логи. Да и что на этих серверах ЕЩЕ происходит — никому не известно.

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

Можно воспользоваться собственным VPN. Нужно лишь купить сервер в интернете, зайти на него и поднять там OpenVPN по инструкции.

По сравнению с платными VPN-сервисами, свой собственный VPN выходит еще дешевле. Арендовать VPS (Virtual Private Server) можно чуть ли не за 2-3$/месяц в интернете. Что, по-моему, достаточно дешево — нужно лишь поискать.

Конечно же, свой VPN имеет и другие преимущества. Например, у вас будет root-доступ к серверу, поэтому вы можете отключить логирование и 100% быть уверенными в том, что логирование не ведется. В отличии от не своего VPN (бесплатные или платные), где у вас нет root-доступа, а это значит, что вы не можете никак быть уверенны в том, что логирование отключено, как бы вас не убеждали в этом эти сервисы. Вы сам себе хозяин на сервере. Это ваш VPN.

В отличии от бесплатных VPN, свой сервер будет работать гораздо быстрее и стабильнее. Это очень весомый плюс.

Также, поскольку у вас будет свой собственный сервер, туда можно прикрутить что-нибудь помимо OpenVPN, какой-нибудь другой сервис. Например, веб-сервер и разместить там небольшой сайт. Или можно сделать ее Tor-нодой, если провайдер разрешает. Tor relay разрешают чаще чем Tor Exit Node (выходную ноду).

Однако, существует проблема, что на сервере будете находиться вы и только вы один (если вы, конечно, не дадите использовать свой VPN еще пару сотен человек, но тогда и сервер нужен будет мощнее). Такой проблемы нет у бесплатных или платных VPN.

Еще одним минусом является то, что не каждый способен поднять себе VPN. Кто-то может плохо разбираться в IT и ему эти инструкции будут казаться совершенно дикими и непонятными. А кто-то будет совершенно не понимать что он делает вообще, это тоже не хорошо. В общем, настоятельно рекомендую использовать.

Можно воспользоваться услугами платных VPN сервисов которые тоже относительно недорогие (в среднем 5-12$/месяц).

Такие сервисы нужно искать, конечно же, в интернете. Большинство из них принимают к оплате Bitcoin, что несомненно круто. У многих есть свой OpenVPN клиент под какую-то операционную систему, но пользоваться их клиентами не очень рекомендуется из соображений безопасности.

Регистрируетесь и платите за месяц (или год, что выходит дешевле), скачиваете конфигурационный файл OpenVPN (.ovpn), скармливаете его вашему OpenVPN клиенту и всё, у вас будет VPN. Если у вас не OpenVPN, то читаете инструкцию на сайте сервиса по подключению с другим протоколом. Благо на этих сайтах у них хорошие инструкции и все предельной просто и понятно.

Из преимуществ можно выделить то, что каждый сервис предлагает сервера во многих разных странах, которые доступны вам. Между этими странами можно переключаться, вручную с .ovpn конфигами или как-то автоматически, если эта фича реализована в их клиенте. Тогда как на своем собственном сервере вы привязаны к одной стране, одному IP адресу. Не понравилась одна страна — переключились на другую.

Говорить про то, что эти сервера намного стабильнее, надежнее и быстрее по сравнению с «бесплатным» решением, я думаю не нужно. Доверие к платным сервисам тоже как-то больше, чем к бесплатным VPNам, хоть все равно нет гарантий.

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

Когда вы выбираете себе VPN сервис или VPS, обращайте внимание на то, где зарегистрирована фирма представляющая VPN, а также на то, в каких странах расположены их сервера. Про выбор VPS тоже самое.

Юридический момент в этом деле важен, но здесь я вам не помощник.
Могу сказать лишь то, что использовать VPN расположенный в стране, где вы совершаете преступление, так себе затея. Так что, если вы работаете против России, заказывать сервера в этой стране или пользоваться услугами Российского VPN сервиса КРАЙНЕ нелогично.

Выбираете сервис или VPS — смотрите где расположены сервера, где зарегистрирован сервис или хостер, читайте политику конфиденциальности.

Ищем и арендуем VPS за Bitcoin

Для того чтобы поднять собственный OpenVPN, нам неожиданно нужен свой сервер (далее VPS). Нужно купить VPS, зайти на него средствами SSH, произвести первичную настройку сервера (необязательно) и поднять OpenVPN.

Проблемы при анонимной покупке VPS

Многие зарубежные компании-хостеры принимают к оплате Bitcoin. Чего не скажешь о российских сервисах, предлагающих арендовать VPS. Хотя и среди Российских можно найти с оплатой данной криптовалютой.

Однако, даже с учетом того, что «белый» хостер принимает к оплате анонимную криптовалюту, многие из них все равно не любят анонимных клиентов. Поэтому при регистрации требуют ввести такие данные как ФИО, страна, город, адрес проживания, e-mail, мобильный телефон (не всегда). Также при регистрации и последующих заходах в личный кабинет логируется ваш IP адрес. Бывают более лояльные хостеры, бывают менее. Так что достаточно просто и анонимно купить VPS получится далеко не всегда.

Казалось бы, что при регистрации можно вбить левые данные, а проблема логирования IP решается проксями или Tor Браузером. НО НЕТ! Дело в том, что у многих таких «белых» хостеров на сайтах внедрены специальные антифрод системы, которые борются с мошенническими транзакциями. Вообще-то, это защита прежде всего от кардеров, но успешно работает и против чересчур анонимных клиентов.

Антифрод система рассчитывает риск мошеннической транзации или «странного» клиента на основе очень многих факторов, которые долго и бесполезно перечислять в рамках данной статьи. В вкратце расскажу о некоторых базовых факторах, которые стоит учитывать:

1) IP адрес. Он должен быть более-менее чистый и не быть в базе антифрод системы как прокся и прочее. Это важнейший фактор. Как вы понимаете, IP адрес Tor во всех списках, и если у хостера стоит самый хуевый антифрод и есть желание бороться с анонимными клиентами, то через Tor зарегистрироватьмч не получится.

Вы можете использовать хорошие прокси или VPN. В общем, разберетесь.

2) Человек должен соответствовать реальности. Вбивать в ФИО ‘ksdjfsjd skdfkk skdgs» примерно такое — не нужно.

3) Адрес должен быть тоже реальным. Не нужно писать улица ленина, в городе залупинс в Афганистане. Ок? Также, если у вас IP российский, значит и адрес тоже должен быть российским.

4) Желательно чтобы адрес соответствовал Zip Code (индексу). В смысле, он должен принадлежать ему.

5) Телефон. Должен иметь разный вид в зависимости от страны. Если Россия, то +7901… и дальше любые цифры. Зарубежные компании (это относится, кстати, не только к хостерам), очень редко присылают смс-код на номер телефона для подтверждения регистрации или чего-то еще, в отличии от российских компаний.

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

VPS с арендой за Bitcoin

Аренду VPS предлагает много хостеров. Нам не нужны большие мощности, поэтому подойдут самые слабые сервера с технологией виртуализации OpenVZ (но лучше KVM или Xen) с малой процессорной мощностью и небольшим количеством оперативной памяти (256-512 mb). Стоить такие сервера могут в среднем 2-5$ в месяц. А если постараться поискать, то можно найти и за 12-18$ за целый год.

Кстати, если вы нашли VPS, который не принимает к оплате Bitcoin или у вас просто их нет, зато есть Qiwi или Яндекс Деньги, то вы можете попытаться заплатить за сервер Виртуальной Кредитной Картой (VCC — Virtual Credit Card). Эти карты можно выпустить на сайте Qiwi и Яндекс Денег соответственно. При этом, естественно, Киви и ЯД должны быть левыми. Но лучше платите Биткоинами.

Для поднятия OpenVPN нам нужно чтобы наш VPS поддерживал TUN/TAP.
Обычно почти все VPS провайдеры предоставляют эту фичу. Где-то она сразу включена, как только создается VPS, где-то приходится включать через панель управления на сайте (если OpenVZ), где-то нужно просить техническую поддержку что бы включили вам TUN/TAP (но это редко).

Что бы найти VPS, нужно ввести правильный запрос в гугле. Запросы лучше делать на англ. языке, чтобы выдавал зарубежных хостеров (если нужно). Запросы могут выглядить следующим образом: «buy vps», «buy cheap vps», «cheapest vps», «cheap openvz vps», «cheap vps » и подобное.

Также существуют различные сайты, на которых можно найти достаточно дешевые VPS.

Дешевые VPS

LowEndBox — сайт, на котором можете посмотреть дешевых VPS провайдеров.

LowEndTalk — этот сайт существует как дополнение к предыдущему. На нем много пользователей, идет активное обсуждение разных VPS провайдеров. Сайт этот очень полезный. На нем можно найти много мелких и не очень предпринимателей, которые подторговывают VPS. Также много полезной инфы, обзоров различных хостеров и прочее. Иногда сам почитываю.

LowEndStock — вот здесь представлены разные дешевые хостеры VPS в таблице.

VPS-List.Cryto — сайт, подобный предыдущему.

CompareVPS — еще один подобный сайт с таблицей, по-моему мнению, хуже LowEndStock.

PoiskVPS.ru — Российский сайт по подбору VPS. Подбирать можно по разым параметрам, например таким как страна размещения сервера или способ оплаты (можно отфильтровать за биткоин, киви или что вам удобно). Полезный сайт. В основном здесь российские хостеры. Цена на VPS начитается от 70 руб./месяц.

Crypto.net — а на этом сайте, по ссылке, автор собрал и переодически обновляет список VPS провайдеров, которые принимают к оплате Bitcoin. Раньше это было более актуально, но сейчас очень большое количество провайдеров принимают Bitcoin.

FreeVPS.us — данный сайт может быть тоже интересен. Можно встретить каких-то VPS провайдеров дешевых. Можно найти и бесплатных или с бесплатным пробным периодом — этому сайт и посвящен.

WebHostingTalk.comp — в дополнение. Большой форум с обсуждением провайдеров VPS/VDS, и хостингов.

На этих сайтах достаточно много информации по дешевым VPS. Заходите, читайте, находите.

Анонимно арендуем VPS за Bitcoin

И вот мы нашли VPS с поддержкой TUN/TAP, теперь нам нужно его арендовать. Я буду показывать аренду VPS в одном из перечисленных выше VPS провайдеров.

Мое соеденение на данным момент такое: на Хост. машине VPN + виртуалка Whonix. Поскольку я писал выше о проблемах аренды VPS через Tor, мне необходим на выходе белый (не Tor) IP.

Я иду на vpngate.net, нахожу там France в списке, скачиваю OpenVPN TCP конфиг (TCP, потому что этот VPN идет после Tor, а он только с TCP). Запускаю VPN на своем Linux (openvpn —config ).

Так как я выбрал France VPN, с французский IP, это значит что и мой «вирутальный клиент», тоже будет из Франции. И звать его будут никак не Вася Иванов, и жить он будет не в Красноярске.

Я захожу на сайт whoer.net для того чтобы убедиться, что IP действительно определяется из Франции. Там же была показана следующая информация: IP Фрнации, а также был указан город — Audincourt.

Вы можете тоже воспользоваться бесплатным VPN или хорошими проксями/SSH. В моем случае так получилось, что это Франция.

На сайте провайдера, я выбираю нужную мне услугу, в моем случае это VPS за 3$/месяц. Жму «Купить» или «Заказать» и меня перекидывает на страницу с конфигурацией сервера.

Так вводим какую-то информацию о сервере: Hostname, NS префиксы, пароль от root, выбираем операционную систему.

Hostname — вводим что угодно, например site.test

NS префиксы — тоже что угодно, например ns1.site.test, ns1.site.test

Пароль от root — вводим по безопаснее.

Выбираем ОС — выбирайте лучше Debian или Ubuntu (лучше Debian).

Лучше 64 бит. И самые последние доступные версии. Я выбрал Debian 8 x64. Если вы умеете работать с дистрибутивом, например CentOS, то выбирайте что душе угодно. Я все буду показывать на примере Debian.

Страница на этапе конфигурации может отличаться от провайдера к провайдеру. Поэтому не удивляйтесь, например, что вам не предложит ввести праоль от рута — значит они его сгенерируют самостоятельно и вышлют на почту.

После этого я жму Contune, затем Checkout и попадаю на страницу, где нужно вбивать данные о себе:

Имя, фамилия (придумываем сами, только не Вася Иванов)

Имейл (регаем по новой или юзаем если есть, лучше gmail, yahoo.com, hotmail, outlook, или еще что-то, У ВАС ДОЛЖЕН БЫТЬ ДОСТУП К НЕМУ)

Страна (страну вы знаете по IP)

Область (раскрывающийся список из областей, на которую поделена страна)

Город (город может отображаться на том же whoer.net или других подобных сервисах, а может и не отображаться)

Пароль от аккаунта

Как сгенерировать эти данные? Ведь одно дело, когда у вас IP российский, а другое, когда другой страны, типа Франции. С Россией или Украиной в этом плане как-то проще, тут все понятно.

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

А именно, я открываю Google Maps и вводжу в поиск название города, который у меня отобразился — Audincourt. Меня приблежвает к городу и карты подсвечивают его границы. Я приближаю еще немного сильнее карту и ищу какой-нибудь ОБЪЕКТ (кафе, школа, пиццерия, ресторан или еще что-то). Жму мышкой на этот объект и мне высвечивается инфорамция о нем, а именно:

Полный адрес и Zip Code, телефон (не всегда).

Для того чтобы определить область/штат/регион/провинцию, которой соответствует этот город — я просто гуглю название города и на 1-2 странице будет нужна информация.

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

Выбираю оплату Bitcoin, соглашаюсь с их правилами и жму Checkout или подобнуюю кнопку. На этом этапе начинает работать антифрод система, которая на основе факторов выше (IP, браузер, введенная информация) вычисляет так называемый Risk Score или Fraud Score, и определяет, можно тебе дальше или нельзя.

В моем случае все прошло гладко (обычно так и бывает) и меня перекинуло на страницу с информацией для оплаты bitcoin.

Там будет: число биткоинов к оплате + кошелек, куда платить. Помимо этого, этот Payment gateway (платежный шлюз) Coinfy позволяет платить не только Bitcoin но и другими криптовалютами. На все про все у вас 15 минут (без подтверждений, биткоин нужно лишь отправить). — Идем в ваш биткоин кошелек, копирует кошелек к оплате, копируем сколько битков переводить и переводим. После этого почти моментально страница с инф. к оплате изменит свой вид. — Типа, все нормально, битки идут, и перекинет вас обратно на сайт, на так называемую страницу Order Confirmation.

Еще Order Confirmation вам упадет на имейл. Помимо этого, может упасть на имейл «подтверждалка» — письмо с ссылком, при переходе по которой, вы подтверждаете свой email. Так что проверяйте.

Начался процесс создания сервера. Длится он обычно не долго. Может минут 15, может час. Ну максимум 2. Если в течении этого времени сервер не создался, то пишите в тех.поддержку, создавая тикет.

Когда VPS создатстся, вам на имейл придет письмо со всей необходимой информацией для коннета на SSH: IP адрес VPS, пароль от root.

Или эта информация будет у вас в личной кабинете на сайте.
Или часть там, часть на имейл.

Также, не везде и не всегда, провайдер предоставляет доступ к VPS Contol Panel. В моем случае он предоставляет. В письме есть инфа для логина.

Заходим на сервер по SSH

После того, как все данные для подключения были высланы вам на почту или вы нашли их в личном кабинете, то для коннекта к серверу вы обладаете всеми данными, а именно:

Пароль от root: либо вы указывали при создании сервера, либо был сгенерирован.

Для того чтобы подключиться по SSH на Windows, нужно воспользоваться сторонними программами. Скачивайте на выбор: Putty или Kitty. Работать с этими программами достаточно просто.

На ОС Linux и MacOS все проще.

В терминале вводим:

где: ip — IP адрес VPS.

user — username пользователя. При первом подключении / в нашем случае — root.

После нажатия enter, при самом первом коннекте, вам выскочит сообщение:

Are you sure you want to continue connecting (yes/no)?

вручную вводим yes, потом вам предложит ввести пароль от root, который у вас также есть. Если все хорошо, то вы подключились к VPS и вам будет передано управление командной строкой.

Скопировать и вставить в терминале можно так:

Если Linux, то ctrl+shift+v вставить в терминале (ctrl+shift+c скопировать из терминала).

Если Windows и вы используете Putty/Kitty, то вставить в консоль можно по нажатию на ПКМ.

Такое бывает, но иногда дистрибутив созданного сервера не совпадает с тем, который вы выбирали, когда делали заказ. Поэтому, если вы зашли на сервер по SSH и ввели команду

Ставим нужные пакеты:

nano — консольный редактор. Обычно стоит изначально, но не всегда.
htop — консольный диспетчер задач.
openvpn — пакет openvpn. Нужно для поднятия OpenVPN.
easy-rsa — скрипты для легкой генерации ключей. Нужно для поднятия OpenVPN.
git — понадобится, если будете поднимать OpenVPN скриптом (далее в статье).

Еще можно поставить следующие пакеты, но не обязательно:

Далее, нам нужно создать пользователя:

useradd — команда, создающая пользователя.

-m — создает домашнюю папку пользователя (по пути /home/ /), по-умолчанию имеет такое же название, как и имя пользователя

-s — указывает, какой shell использовать

pp-ruloh — имя пользователя.

После создания юзера, вам ОБЯЗАТЕЛЬНО нужно создать ему пароль, потому что мы будем использовать этого юзера для коннекта по ssh, поэтому вводим команду:

Предложит дважды ввести пароль. При вводе не будет отображаться. Как вставлять в терминале я писал вышел.

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

Для того что бы посмотреть, какие сервисы запущены. На данном этапе в идеале должен быть запущен только sshd. Поскольку у меня установлена Debian-minimal, то у меня так и есть и команда

Но обычно может быть запущен какой-нибудь веб-сервер, mail-server, еще что-то… Не знаю, что запущено у вас, поэтому по-очереди вводите следующие команды:

Это должно отключить то, что обычно запущено уже при создании сервера.

Далее, можно настроить sshd. Из соображений безопасности поменяем порт со стандартного на нестандартный и запретим коннект от root.

Редактируем файл /etc/ssh/sshd_config при помощи nano:

Следующий ваш коннект по SSH будет выглядить следующим образом:

-p 1488 — порт SSH, который вы указывали в /etc/ssh/sshd_config
user — пользователь, отличный от root. Под рутом не получится подключиться.

Если у вас винда, то в PUTTY/KITTY тоже меняете порт. Теперь вы будете коннектиться по SSH на сервер через этого юзера. У него нет почти никаких прав, он даже не суперпользователь. Поэтому, для того чтобы производить какие-то манипуляции на сервера, нужно залогиниться под рутом. Для этого под обычным юзером вводим:

И вводим пароль от root. Все — можете делать что хотите. Чтобы выйти из-под рута, вводите exit.

Поднимаем OpenVPN вручную

Итак, собственно, поднимаем OpenVPN-server.

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

И три основных пакета:

После установки пакетов, разархивируем пример конфигурационного файла в папку /etc/openvpn/:

Файл /etc/openvpn/server.conf — основной серверный конфигурационный файл OpenVPN.

Теперь немного отредактируем его:

Файл длиный, с большим количесвом комментариев (все, что идет в строчке после символа # — комментарий). Строки, которые начинаются с символа ; в данном файле — тоже комментарии.

Частичный разбор конфига будет ниже в статье.

Редактируем. В самом верху сразу будет port:

Я поменяю порт на какой-нибудь совсем не стандартный:

(Диапазон от 0 до 65000), я выбрал рандомно. Не займите порт, который слушает другой сервис, например в моем случае sshd случает 1488.

Идем дальше. Выбираем протокол — пара строк ниже:

И видим, что она никак не закоментированная. Потому что по-умолчанию OpenVPN будет работать по UDP. Если вам нужен TCP, выше есть строчка proto tcp — раскоментируйте ее, удалите символ ; в нчале строки, а proto udp закоментируйте, добавив символ #. Оба нельзя, или то или другое. Я буду показывать на примере UDP, поэтому оставляю как есть.

Опускаемся ниже в конфиге и находим строку:

Меняем на dh2048.pem:

Идем ниже и находим закоментированную строку:

Еще чуть ниже находим две раскоментированные строки рядом:

Это то, какой DNS будет использоваться. По-умолчанию прописаны сервера OpenDNS, но можем прописать публичные сервера Google:

Можете оставить и OpenDNS.

Идем дальше и натыкаемся на строку

Листаем ниже и находим строку:

Это шифрование. Раскоментируем строку и переделаем на AES-256-CBC:

Еще чуть ниже в файле находим две закоментированные строки:

Далее, ниже находим строку, которая начинается со слова status и переделываем ее в следующий вид:

Еще чуть ниже, находим строку, которая начинается со слова log, и придаем ей такой вид:

Не закоментированная. Это логи. Отключить логирование OpenVPN нельзя в привычном понимании, поскольку если закоментировать строку, то по-умолчанию будет писаться в syslog файл (/var/log/syslog).

Еще чуть ниже, verb 3 меняем на:

Сохраняем, закрываем. Мы еще вернемся к этому файлу позже.

Теперь включаем перенаправление пакетов, вводим команду:

Если возвращает единицу, значит все ОК.

Теперь надо чтобы изменения были и при перезагрузке сервера, поэтому редактирум файл /etc/sysctl.conf:

Если такой строки в файле нет вообще, добавьте вручную.

Настроим Firewall

Ранее мы установили пакет ufw. Теперь нам нужно добавить некоторые правила. Во-первых, нам нужно дать разрешить траффик на SSH. Я ввожу:

Поскольку у меня sshd слушает порт 1488, если вы не меняли и у вас sshd слушает 22 порт, то вводите:

Далее, нам нужно разрешить траффик на порт, который будет слушать OpenVPN, в моем случае это port 16122, потому что я менял его в конфиг. файле (выше):

Поскольку OpenVPN будет слушать UDP порт, я в конце добавил /udp. Если у вас OpenVPN настроен не на UDP, а на TCP, без слеша на конце (или /tcp).

Если вы ничего не меняли в конфиге, то у вас слушает порт 1194 UDP, а значит:

Теперь нужно изменить Forward Policy, редактируем файл /etc/default/ufw:

И меняем ее значение на:

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

Команда выведет ваши интерфейсы. Там будет интерфейс lo и еще какой-нибудь, например eth0 или venet0. В моем случае интерфейс называется venet0 (ибо OpenVZ). У меня такой вывод:

Вам нужен интерфейс, который показывает ваш внешний IP. Из кода выше понятно, что venet0 показывает внешний IP. (inet МОЙ IP)

Далее, что нужно редактировать файл /etc/ufw/before.rules:

И куда-нибудь наверх, вставляем следующее:

где вместо пишем интерфейс, в моем случае это venet0 и получилось так:

После всего этого включаем ufw:

Cмотрим на наши правила:

Выводом покажет правила, которые вы создавали выше, у меня так:

где 1488 — для SSH и 16122 — UDP опенвпн.

Отключить ufw можно так:

Генерируем ключи для сервера. Ранее мы ставили пакет easy-rsa. Теперь копируем папку со скриптами easy-rsa в папку openvpn:

внутри папки easy-rsa создаем папку keys:

Теперь сгенерируем Diffie-Hellman длиной 2048 и поместим его в /etc/openvpn:

Еще сгенерируем файл ta.key в папку /etc/openvpn, для tls-auth:

Переходим в папку easy-rsa:

Тут лежит файл vars с какими-то переменными, редактируем его:

Крутим вниз пока не наткнемся на блок:

В первых 6 строках можете менять значения, можете оставить как есть. Я оставлю как есть. Пофиг. Главное нельзя оставлять их пустыми.

Но конкретно здесь нас интересует строка

Здесь значение меняем на server, что бы было вот так:

Можно поменять на любое другое, но не ебем мозг и меняем как я, потому что иначе вам придется менять значения в server.conf.

Если дали название отличное от server — запомните его.

Вот так. Сохраняем, закрываем файл.

Далее вводим следующее:

Будет предлогать вводить какие-то значения, но мы их меняли (или не меняли) в файле vars. Просто везде жмем Enter и все. При этом, дойдя до пункта Name, нажимая Enter будет то имя, которое вы указывали ранее в KEY_NAME у меня это server.

Следующим делом вводим:

где: — это то имя, которое вы давали в файле vars. Если ничего не давали, то по-умолчанию там было Easy-RSA. Я давал имя server, поэтому:

Точно таким же образом, везде жмем Enter. Даже там, где предложит ввести ‘A challenge password’, жмем enter.

Потом дважды вводим символ y, где попросит:

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

Теперь нам нужно переместить все сгенерированные ключи и сертификаты в папку /etc/openvpn.

Всё добро находится в папке /etc/oepnvpn/easy-rsa/keys. Нас интересуют 3 файла (исплючая dh2048.pem и ta.key, которые мы сгенерировали ранее) — ca.crt, server.crt, server.key,

где файлы server.crt и server.key — имеют название, которое вы указывали в KEY_NAME, я указывал server, помним да.

Перемещаем их следующим образом:

Идем обратно в папку openvpn:

Вводим к консоли ls и смотрим, какие файлы лежат. На данный момент должны быть следующие файлы: ca.crt, dh2048.pem (который мы генерировали ранее), server.conf (основной конфиг), server.crt, server.key и ta.key Еще может быть файл update-resolv-conf.

Теперь запускаем openvpn:

Проверяем, запустился ли:

Должно гореть зелененьким (лол), вы увидите надпись:

Проверяем, слушает ли порт:

Должно вывести один сервис, который слушает на порту, который вы указывали.

У меня вывод такой:

Все проверили, молодцы. Теперь остановим:

Делаем клиента, генерируем ключи.

Для начала нам нужно скопировать пример конфиг. файла для клиента.
Скопируем его в папочку /etc/openvpn/easy-rsa/keys и переименуем (даем расширение .ovpn):

Редактируем файл клиента:

Листаем файл вниз, натыкаемся на строку

где: my-server-1 — IP адрес вашего сервера. Тот, что пришел вам на почту или смотрите по команде ip addr | grep inet и ищите. 1194 — Порт, на котором слушает OpenVPN на вашем сервере, в моем случа это 16122.

Меняйте эту строку, я меняю:

Листаем ниже, находим строку:

стираем ее и меняем на:

Еще чуть ниже строка:

Меняем шифрование на то, которое вы указывали в server.conf. Я указывал AES-256-CBC:

Если вы в server.conf ничего не указывали, то эту строку не трогайте.

Все. Сохраняем и закрываем.

Теперь нужно сгенерировать ключи и серты для клиента.

Перейдем в папку easy-rsa:

где: client1 — название клиента. Может быть любым. Я сделал client1.

Таким же образом, как и с сервом, везде жмем Enter. И соглашаемся, нажимая y, там где это нужно.

Клиентский конфиг состоит из:

.ovpn файла. В моем случае это client.ovpn.

файла ca.crt — который общий для сервера и все клиентов.

файл ta.key — тоже общий для сервера и клиента. Это для tls-auth, что не обязательно.

файлов client1.crt и client1.key — которые индивидуальные для каждого клиента.

Дело в том, что все эти файлы нужны .ovpn конфигу, без них он не будет работать. Но не будем же мы их везде вместе таскать! Поэтому есть возможность все эти файлы строить в .ovpn конфиг, чтобы был один единый файл и все.

Нужно проделать кое-какие манипуляции, поэтому для удобства создаем папку client1:

Нужно скопировать туда конфиг.файл .ovpn и все серты и ключи,
по аналогии с сервером, файлы client1.crt и client1.key имеют названия специфические, в зависимости от того, какое вы указывали имя клиента, выполняя команду выше. Я назвал client1 поэтому у меня они называются именно так.

За одно копируем client.ovpn (называться может как угодно, хоть xuy.ovpn):

И не забываем про ta.key, которые лежит в папке openvpn:

Переходим в папку client1:

На данный момент там находится 5 файлов:

Теперь нужно быть внимательнее! В особенности с именами файлов.
Внедряем содержимое нужных файлов в наш конфиг .ovpn.

По очереди, в том порядке, в котором это у меня, выполняем следующие команды.

где client.ovpn название конфиг файла.

Теперь для client1.crt:

где client1.crt — серт. файл, которые генерировали выше.

Теперь для client1.key:

Теперь для ta.key, нужно для tls-auth:

Таким образом, все ключи и сертификаты теперь в одном файле .ovpn, и он может работать сам по себе.

Теперь нужно еще немного отредактировать файл client.ovpn:

Листаем, пока не наткнемся на блок:

Нам это не нужно, поэтому закоментируем их:

Собственно, конфиг клиента готов. Он будет работать, если вы запустите его на OpenVPN клиенте вашего устройства.

Можем запускать OpenVPN:

После любых манупуляций в файле server.conf, для того что бы применились изменения, нужно перезапускать OpenVPN:

Но я хочу еще проделать какие-то модификации на server.conf и client.ovpn

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

Сделать это легко. Но для начала, на всякий случай, сделаем backup:

теперь одной командой удаляем все комментарии (# и ; в начале строки) и пустые строки:

И оба наших конфига примут более читабельный вид.

И куда-нибудь в середину прихерачим следующее:

Куда-нибудь в конфиг, до начала сертификатов и ключей:

Таким образом, мой конфиг server.conf выглядит так:

А client.ovpn так (Безключей и сертификатов):

Можете использовать эти конфиги.

Разберем немного конфиг.

Какой протокол юзать, TCP или UDP?

UDP обычно работает быстрее.

TCP более надежный, стабильный, лучше обходит фаерволл — например можно повестить на порт 443.

UDP, также можно повесить на порт, который обычно не блокируют — 53.

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

На какой порт повесить? Лучше на нестандартный, как у меня. Или замаскировать под какой-то сервис — 443/ssl для tcp и 53/dns для udp

Какое шифрование использовать?

Используйте AES-256-CBC или AES-128-CBC. Если явно не задать, то по-умолчанию будет исопльзоваться Blowfish (cipher BF-CBC).
Этот параметр должен быть и на сервере и на клиенте. Если на сервере есть, на клиенте нет или они отличаются, может не законнектить.

Если не задавать, будет использоваться auth SHA1. Используйте auth SHA512 или auth SHA256. Этот параметр должен быть и на сервере и на клиенте. Если на сервере есть, на клиенте нет или они отличаются, может не законнектить.

По умолчанию будет записываться в файл какой-то, какие клиенты сейчас онлайн. Чтобы ничего не писало, нужно закомментировать строку. Я также ЗАЧЕМ то написал /dev/null 2>&1 …

Это то самое логирование OpenVPN которое для безопасности лучше выключить. Дело в том, что выключить его нельзя, а если закоментировать, то логи будут писаться в /var/log/syslog
Поэтому я раскоментировал и сказал писать в /dev/null.

Какие DNS юзать?

Юзайте паблик DNS от Google (8.8.8.8 и 8.8.4.4.) или от OpenDNS (208.67.222.222 и 208.67.220.220).

Утечка DNS под Windows и Linux

Если вы будете юзать этот конфиг на Windows, в конфиг добавляем следующую строку:

Да, вот так просто. Под MacOS с Tunnelblick все норм.

А под Linux есть файл update-resolv-conf, который находится в папке /etc/openvpn на клиентской машине. Файл может иметь название или update-resolv-conf или update-resolv-conf.sh. Поэтому на клиентском Линукс вводим в терминале:

И узнаем название файла.

Далее, в конфиг .ovpn нужно вставить следующие строки:

где update-resolv-conf — название файла, которое вы получили выше.

Перекидываем конфиг .ovpn с серва на клиент.

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

Если вы создавали пользователя и запрещали ssh коннект от рута, то первым делом нужно поместить .ovpn конфиг в домашнюю папку созданного пользователя. У меня это был pp-ruloh

Изменить права у файла:

Linux. Будем юзать sftp.

где 1488 — порт на котором слушает sshd.

Как законнектились, мы уже будем в домашней папке pp-ruloh. Можем посмотреть файлы — вводим ls.

Windows, linux, MacOS: скачиваем программу для работы по FTP — FileZilla
и подключаемся к серву по sftp. Нужено будет указать port sftp (у меня 1488), пользователя (pp-ruloh, ибо руту зарпетили). Копируем файл куда хотим и радуемся. Как пользоваться программой разберетесь сами.

Поднимаем OpenVPN скриптом

Поднять OpenVPN вручную вам не под силу? Не отчаивайтесь, у меня для вас хорошие новости!

На Github существует Open Source скрипт, который позволяет быстро и легко поднять OpenVPN сервер на вашем VPS. Скрипт называтся openvpn-install, и вот ссылка на Github. И этого скрипта есть куча форков, которые вы можете изучить.

Посмотреть исходный код можно здесь. Приступим. Работаем под пользователем root или суперпользователем.

Для начала, обновим систему:

Если вы уже пытались поднять OpenVPN вручную, но у вас ничего не получилось, то нужно сначала его полностью снести. Удаляем openvpn:

и установим нужные пакеты:

Скачиваем скрипт в домашнюю папку root:

И вы попадете в так называемый Инсталятор. Где нужно будет отвечать на вопросы или что-то вписывать. Для перехода на следующий этап установки жмите Enter.

Первый делом, предложит ввести внешний IP адрес, но вероятнее всего скрипт сам его определит:

Следующий этап, выбрать протокол. Кликаете 1 и выбираете UDP. Далее, выбираете порт. В статье указакана 14000. После этого предложит выбрать DNS сервера. Выбор будет из Google, OpenDNS или текущих, которые на VPS и еще каких-то. Мы выбираем OpenDNS, жмите 3. После этого предложит ввести имя клиента. Мы ввели «pp-ruloh». Далее начнется скачивание-утановка пакетов, генерация ключей, сертификатов и конфигурационных файлов. когда все закончится, он поместит конфиг. в домашнюю папку юзера, от имени которого запсукался скрипт. То есть, сейчас конфиг лежит по адресу:

Собственно, на этом конфигурация OpenVPN скриптом завершается. Можно уже сейчас взять новый конфиг и использовать. Посмотрим на конфиг pp-ruloh.ovpn:

(без ключей и сертификатов)

Все вроде бы нормально, да лучше auth SHA512 явно указать. Поэтому добавим

Обратите внимание, что скрипт уже активен для предотвращения утечки DNS под клиент Windows:

Если у вас Linux или MacOS — эту строку лучше закомментировать.

Теперь посмотрим на серверный конфиг server.conf:

Здесь также добавляем auth SHA512 (а то работать не будет, если на клиенте указан а на сервере нет), делаем verb 0. Также нужно проделать следующее. Нужно закомментировать строку.

Где-то выше писал, зачем он нужен. Получилось так:

Берем клиентский файл-конфиг и помещаем на ваше устройство. Об этом я писал выше.

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

Скрипт предложит создать нового клиент, удалить существующего (не сможет больше коннектиться) или удалить OpenVPN.

Клиенты OpenVPN под разные ОС

Поскольку OpenVPN не встроен по-умолчанию ни в одну популярную ОС, то требуется установить сторонее ПО — клиент OpenVPN.

Windows

Под Windows есть официальный клиент, называется OpenVPN GUI.
Скачать его можно на офф. сайте OpenVPN. Скачиваете, устанавливаете. Появится ярлык на раб. столе, после запуска — иконка в трее.

Далее, помещаете ваш .ovpn файл в папку config, в установленной папке OpenVPN. В общем, если устанавливать OpenVPN GUI по-умолчанию в папку Program Files, то адрес такой:

В эту папку кидаем конфиги .ovpn. Потом из трея можно запускать VPN. Все достаточно просто.

Linux

На Линукс в репозиориях вашего дистрибутива пакет скорее всего будет называется «openvpn» (еще может openvpn-client), и ставится следующим образом:

Если у вас Debian-подобные дистрибутивы (Debian, Ubuntu, Mint). Если у вас дистрибутив другой линейки — сами разберетесь как ставить.

Работает это следующим образом. У вас есть .ovpn файл, далее вы в терминале вводите команду:

где , собственно, путь до файла .ovpn.

Или можете скормить файл network-manager ‘ у.

MacOS

Под MacOS из клиентов OpenVPN подходит Tunnelblick. Скачать его можно здесь. Устанавливается просто, требует права суперпользователя. По-умолчанию будет отправлять файлы с расширением .ovpn. Будет иконка в трее, там конектимся. Можно настроить, что бы коннектился к OpenVPN сразу при загрузке системы. Когда соеденение обрывается с VPN, интернет пропадает. В этом случае нужно вручную отсоединяться от VPN.

Android

Официальный клиент OpenVPN Connect под Android доступен для скачивания на Google Play

iOS

Для iOS клиент скачиваем из AppStore.

Клиенты, предоставляемые провайдером VPN. Некоторые провайдеры предоставляеют свой собственный OpenVPN клиент под разные ОС и платформы. Использовать их или нет, решать вам. Но это потенциально не очень безопасно.

Список vpn, которые 100% ведут логи можете найти в этой статье.

Запрещаем весь траффик не через OpenVPN на клиенте

Правила iptables. Только для адептов Луникса. Что делать если VPN внезапно отключился? Или вы забыли его включить вообще? Обычно, когда внезапно обнаруживаешь, что траффик идет не через VPN, и при этом ты не используешь Whonix, то через 3 секунды понимаешь, что твои штаны полны говна. Что нужно делать чтобы явно ограничить весь траффик?

А вот и сами правила:

Было изменено на:

Есть у нас правила, что дальше? Теперь открываем терминал в вашем Линуксе

И создаем файл, который назовем vpn.rules:

Поместим туда все правила:

В самом верху файла пишем:

Далее, правила из кода выше. Копируете — вставляете, меняете

там где VPN_IP на IP вашего сервера (указан в .ovpn конфиге).

Запсукае скрипт из под рута или sudo:

Теперь у вас применились правила. Можете проверить — без VPN интернет работать не будет. Этот скрипт можно запускать каждый раз. Так же можно сохранить правила:

И сделать сервис iptables автозапускающимся при загрузки системы:

Боремся с детектом OpenVPN

VPN может детектироваться конечным ресурсом (например сайт) какими-то хитро-выебанными способами. Для начала можете читануть статью на хабре

И смотрим строку «TCP/IP OS Fingerprinting»

Если у вас, конфиг UDP, то можно проделать следующее. нужно прописать

Источник: http://helpugroup.com/uchimsya-podnimat-sobstvennyj-vpn-na-servere/

Запускаем собственный VPN-сервер на SSD VDS за пару минут

Запускаем собственный VPN-сервер на SSD VDS за пару минут

Мы стараемся сделать использование наших услуг проще и доступнее — ведь SSD VDS заказывают не только суровые UNIX-администраторы, управляющие своими серверами через черные прямоугольники терминалов 🙂 Один из вариантов для сохранения времени и сил наших пользователей — это предоставление готовых, уже настроенных под определенну задачу SSD VDS. Попробуем рассказать, как можно буквально за пару минут получить готовую SSD VDS, подготовленную для использования в качестве личного VPN-сервера.

Начнем с самого простого — создаем учетную запись на my.itldc.com, указываем имя, актуальный email, пароль. Затем переходим в «Виртуальные серверы» и нажимаем в меню кнопочку «Заказать». Для персонального VPN обычно достаточно самого простого тарифа, выбираем его:

Следущим шагом — выбор операционной системы и других параметров. Оставляем Centos 6 или Centos 7 — на выбор, а вот в «Предустановленном ПО» выбираем желаемый вариант VPN:

Таких вариантов сейчас два — OpenVPN AS и IPSec VPN. Первый вариант (мы писали о нем ранее в нашем блоге) требует установки клиентского программного обеспечения, оно доступно для Windows, Mac, Android, IOS. Среди преимуществ OpenVPN можно отметить обычно более стабильную работу через различные варианты публичных сетей (в кафе, торговых центрах).

Второй же вариант, IPSec (L2TP) VPN — более стандартный, так как все необходимое для установки подключения уже есть во всех операционных системах, как на смартфонах, так и на обычных компьютерах. Выберем именно этот тип VPN, закажем и оплатим виртуальный сервер.

Через несколько минут на электронную почту, указанную при регистрации, поступит письмо с параметрами доступа:

Сохраним его, так как для следущего шага нам будет нужен указанный в письме пароль и, конечно, IP-адрес нашего сервера. Попробуем настроить VPN-клиент на Apple iPad. Переходим в «Настройки» — «Основные» — «VPN» — «Добавить конфигурацию VPN». Указываем тип подключения L2TP, описание — например, «ITLDC VPN», в поле «Сервер» указываем IP-адрес нашей VDS. Пароль и «Общий ключ» — это наш пароль root из письма об активации услуги. Не забудем сдвинуть ползунок и включить опцию «Для всех данных»:

На этом настройка закончена, можно подключаться и пользоваться своим собственным VPN. Сделаем небольшой тест с нашего iPad, который подключен к обычному городскому Интернет-провайдеру, в качестве роутера — TP-Link Archer C7. Вот проверка скорости с помощью приложения Speedtest без VPN:

А ниже — проверка скорости с использованием VPN. Фактически — те же цифры, причем один из параметров — лучше, чем при прямом подключении:

Внимательный читатель заметит, что значение ping достаточно высоко. Да, это так и это означает, что наш тест сделан в совершенно реальной обстановке — сам iPad находится в

2000км от VPN-сервера, а расстояние между VPN-сервером и тестовым узлом — около 600км. Прекрасная скорость — а значит, и комфортная работа!

Источник: http://itldc.com/ru/oldblog/l2tp-vpn-za-paru-minut/

Установка — настройка VPS/VDS с нуля с PHP7

О VPS

Данное руководство описывает полный процесс настройки VPS под ваши сайты, на вашем виртуальном сервере под Linux, используя Apache, PHP 7, MySQL, phpmyadmin, vsftpd как FTP, и другие мелкие утилиты. Все что я нашел в интернете или не полное, или местами не подходило к современным реалиям. Я переносил с обычного виртуального хостинга свой сайт, так как уперся в ограничения большинства хостеров.

Если вы планируете продавать хостинг или устанавливать панель управления (ISP Manager, cPanel, Plesk и т.п.), данный метод настройки не подойдет. Настройки для такого развертывания иные. PHP7 имеет ряд серьезных преимуществ в быстродействии и оптимизации по сравнению с PHP 5. Мои проекты на WordPress, к примеру, заметно быстрее работают. Важно знать: если у вас не сильно известная CMS с последними обновлениями, а какой-то самописный проект, не оптимизированный под PHP7, то возможны нестыковки.

Я использую в данном руководстве Ubuntu Server 14.04.4 LTS, также все здесь описанное подойдет для VPS\VDS на других Debian — подобных дистрибутивов. Подразумевается, что вы имеете базовые знания Linux и умеете работать с терминальной консолью. Я частично поясню азы, но все же.

Настраиваем

Итак, у нас есть свежеустановленная на VPS система и доступ по SSH. Логинимся на сервер под рутом.

1. Создадим себе пользователя. Работать под рутом без надобности — признак дурачины.

Где user — меняем на ваш будущий логин. Отвечаем на вопросы системы, пароль придумываем сложный, ваш логин будет основным для удаленного управления системой, рут мы в дальнейшем отключим от удаленного терминала из соображений безопасности.

2. Добавляем нашего созданного пользователя в группу sudo, дабы выполнять команды из-под рута:

Плюс, добавим самого себя в группу администраторов:

3. Выходим из системы (logout) и логинимся под своим новым созданным пользователем на SSH. С этого момента, если нам нужно выполнить команду от имени рута, мы используем операнд sudo перед остальными операндами команды (примеры ниже).

4. Стоит вам только опубликовать ваш сайт-адрес сервера VPS, как всяческие хакинговые боты начнут стучаться к вам на терминальный порт 22. Поэтому, обезопасим терминал VPS, сменив порт с 22 на чтото другое. Как новый порт, вводим любое число от 1 до 65535. Нельзя использовать для этого порты 80, 443, 3306, 22, 21 и 8080. Они заняты под другие сервисы нашего VPS.

Nano — консольный «блокнот». Наверняка вы уже с ним знакомы, но я напомню базовое управление: Ctrl+X — выход, Ctrl+O — сохранение, Ctrl+W — поиск, стрелки — перемещение курсора.

Ищем в открывшемся файле строку «Port 22», обычно она прямо сверху. Изменяем 22 на выбранный вами порт. Далее проматываем кнопкой PgDn до самого низа файла и дописываем каждую команду с новой строки:

Первая команда ограничивает подключения только стандартом IPv4, отключая не нужный IPv6. Вторая запрещает логиниться в терминал под рутом. Третья запрещает вообще кому либо логиниться, кроме вас — подставляйте свой логин вместо user.

Сохраняем и закрываем, как я показывал выше. Впредь все редактирования файлов будут проходить по такому сценарию. Перезапустим удаленный терминал, чтобы настройки применились:

5. Разлогинтесь из терминала (logout), и подключитесь к серверу заново, используя новый порт.

6. Обновим источники приложений и сами приложения:

Соглашаемся на установку обновлений нажав Y и Enter.

7. Если у вас не самой последней версии система, имеет смысл обновить дистрибутив до последнего подрелиза (необязательный шаг):

8. Ускоряем общую работу системы — Prelink и Preload. Prelink нужен для создания статичных адресов для библиотек, Preload — это небольшое приложение, которое следит за файлами наиболее часто используемых приложений, и предзагружает их в память, пока система простаивает.

Далее, нужно включить Prelink:

Откроется знакомый Nano, и там измените строку с PRELINKING=unknown на PRELINKING=yes. Не забываем сохранять перед закрытием, вы же запомнили уже, ага? Следующий шаг — добавляем в планировщик cron ежедневный запуск:

9. C системными предустановками пока закончим, ставим апач:

Также, включим mod_rewrite. Почему-то по умолчанию в большинстве систем он отключен. Отвечает за переписывание билибердовых ссылок под красивые короткие. Критично для работы многих сайтов.

10. Далее, MySQL-сервер:

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

MySQL сервер последних версий корректно настроен для работы в нашем окружении, принимает запросы только от localhost. Поэтому, не лезем в конфиг.

11. Ставим php7. На момент написания статьи, файловые репозитории Ubuntu не содержат PHP7, поэтому нам нужно будет добавить неофициальный репозиторий и из него поставить php7:

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

Набор модулей тут мной определен эксперементально. Во всех источниках указаны разные, где-то нет mbstring, но он нужен для phpmyadmin, админки для MySQL. Где-то отсутствует curl и gd, но они нужны для капчи и некоторых плагинов CMS. В любом случае, дополнительные модули можно всегда доставить после.

12. Поднастроим Apache. Перейдем (cd) в каталог с настройками апача:

Отредактируем главный конфигурационный файл:

Уже установленные переменные не трогаем, проматываемся в конец файла. Там добавляем каждую команду с новой строки:

Это задаст хост по умолчанию для самоопределения апача (localhost) и отключит отображение версии системы и сервера на страницах ошибок. Это небезопасно. Как всегда, сохраняем, закрываем.

13. Поднастроим PHP.

Многие скрипты используют короткий тэг открытия, вместо полного, поэтому включим эту опцию, заменив Off на On (отсюда и далее указываю то, как должно быть, а не как было):

Раздвинем ограничения по памяти и загрузке файлов:

14. Установим phpmyadmin. Это графическая панель управления базами данных MySQL. Первый раз когда я его ставил из apt репозитория, он не взлетел. Оказалось, репозитории ubuntu не содержат последней версии phpmyadmin, которая понимает PHP7, так как и самого PHP7 в этих репозиториях тоже нет.

Лучше всего устанавливать в /usr/share:

Качаем, на момент написания, последняя версия 4.6.0:

Установим unzip, он понадобится:

Отредактируем конфиг-файл апача, чтобы он знал, гдеи скать наш phpmyadmin:

После «DocumentRoot /var/www/html» добавляем строки:

Все готово, перезапустим апач:

15. После всех манипуляций, у нас будет тестовая страница апача открываться в браузере по адресу вашего сервера, а phpmyadmin будет доступен по адресу http://вашсайт/phpmyadmin . Логин туда root, пароль — указанный при установке MySQL.

16. Создадим старницу phpinfo для проверки работы сервера:

Вставляем такой код в Nano и сохраняем:

Теперь по адресу http://вашсайт/phpinfo должна открываться сервисная страница с информацией о PHP и подключенных модулях, например:

Если все работает и отображается, скройте phpinfo, изменив название этой папки на какую-нибудь только вам известную билиберду:

Прямой доступ по известному пути — дыра в безопасности VPS.

17. Поставим FTP. Используем vsftpd:

Убедитесь, что параметры в этом файле соответствуют приведенным ниже. Если параметры закомментированы знаком #, раскомментируйте его, удалив #. Если параметра нет, добавьте вручную в конец файла:

После этого, можно логиниться на сервер по FTP, используя логин и пароль от системы. C этим конфигом, у вас будет доступ ко ВСЕЙ операционной системе. Если вам нужно ограничить доступ к папкам, поищите в интернете руководства.

18. Резервное копирование. Альфа и Омега администрирования VPS. Бэкапы надо делать хотя бы раз в неделю. Следующий скрипт создает архив с бэкапом папок /var/www (где обычно лежат сайты), /etc, /var/log и /root. Также бэкапит все базы MySQL. Скрипт следует исполнять от имени рута из папки, в которой будут хранится бэкапы. Также, желательно внести файл скрипта в cron. Собственно, скрипт:

Обратите внимание, верхние несколько строчек скрипта нужно изменить в соответствии с вашей конфигурацией MySQL.

Допустим, у нас в корне будет папка /backup и в ней будет и скрипт, и сами резервные копии. Переходим в корень файловой системы:

И вставляем туда скрипт выше. Сохраняем, назначаем его исполняемым:

Мы запустим процесс бэкапа. Для среднего сайта на средней мощности VPS это занимает 5-10 минут. После окончания процесса, в папке /backup будут несколько архивов с резервными копиями. Как я говорил выше, лучше всего этот скрипт запихнуть в cron. Погуглите, как это сделать.

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

Полезные утилиты

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

WP-CLI

Это командная утилита для администрирования WordPress из терминальной консоли Linux. Умеет очень много, бэкапить, копировать данные в базе данных, отключать и включать плагины и так далее. Очень полезно, в случаях если у вас конфликт плагинов, или вы где-то накосорезили и админка сайта у вас отвалилась. Подробнее тут.

Multitail

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

Htop

Полный аналог «Диспетчера задач» из Windows для терминальной консоли. Очень полезная вещь для мониторинга процессов, памяти, загрузки и управления процессами. Ставиться командой:

И вызывается (кто бы думал) командой:

Let’s Encrypt

Бесплатный сервис для выдачи SSL сертификатов. Отличный вариант для перевода вашего сайта на HTTPS. Больше в моей отдельной статье здесь.

Выбор VPS

Если вы ищите подходящий VPS/VDS хостинг, могу порекомендовать HexCore, которым сам и пользуюсь. По условиям все можете посмотреть сами у них на сайте. Меня лично подкупило наличие возможности поставить туда любую свою систему (позволяют загрузить свой .ISO образ); и регулярные полные бэкапы делаются автоматом.

Источник: http://blog.rasks.ru/ustanovka-nastroika-vps-vds-s-nulia

Notepad

С ростом количества удаленных рабочих мест/офисов возникает проблема не только пропускного канала центрального офиса, но и производительности VPN сервера центрального узла. Как показывают простые тесты предельная суммарная (прием/передача) производительность VPN простых железок 951 серии (которых вполне достаточно для удаленного офиса) 18-20Мб/сек. При использовании сложных алгоритмов шифрования, и того меньше.

Столкнувшись с проблемой производительности туннелей, решено вывести функцию центрального VPN сервера за пределы своей сети – на масштабируемый VPS хостинг. Это дает:

  1. Возможность плавно наращивать производительность (и стоимость) центрального узла;
  2. Получить предельную производительность канала 1Гб/сек, которая, скорее всего, будет очень дорога при покупке такого канала у провайдера центрального офиса;
  3. Защищенность VPN сервера от DDOS;
  4. Надежность канала и оборудования;
  5. Возможность доступа к консоли роутера при ошибке в настройках и потере сетевого доступа к роутеру. Есть конечно SafeMode в winbox, но всякое бывает;
  6. Полная отвязка от провайдеров офисов в плане выделения публичных каналов;
  7. Значительно упрощается резервирование каналов до центрального офиса за счет необходимости резервирования только исходящих каналов в удаленных офисах. Все узлы становятся равноправными.
  8. Возможность в будущем вынести IP атс так же на хостинг и тем самым сократив пинг, как до провайдеров так и до самой АТС.
  1. Нужно платить от 80руб. в мес. что легко перекрывается отказом от публичных IP в одном из офисов.

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

Для тех кто хочет найти своего провайдера необходимо учитывать параметры:

  • Надежность дата центра. Тут наверно субъективно, но взор падает на крупные города и крупные дата-центры;
  • Страна размещения. Т.к. для работы нет нужды обходить блокировки необходимо выбирать провайдеров России, что значительно улучшит качество каналов. Регион размещения лучше выбрать по пингу. Для 90% – Москва.
  • 99% что слабым местом будет процессор и ширина канала. Объем памяти и тип и объем дисков никакого значения не имеет (в последних релизах CHR объем дисков урезан до 15Гб), т.е. утилизация процессора и канала идет более быстрыми темпами чем памяти.
  • Частота процессора должна быть максимальной, чтобы купив 1 ядро и минимум памяти (обычно самый дешевый тариф) получить сразу прирост производительности.
  • Ширина канала, обычно, не меняется для виртуальной машины, поэтому лучше сразу искать хостинг с нужным параметров с учетом роста. Бывают хостинги с мощным железом но канал 20Мб/сек. Очень часто пишется что канал 1Гб, а фактические тесты показывают что 30-50Мб. Часто 1Гб выделяется на пул машин, т.е. на совместное использование.
  • Ищите хостера с бесплатным тестовым периодом, т.к. это даст вам возможность протестировать все в реальных условиях, а не на рекламных проспектах. Дают потестировать – значит уверены в своих возможностях.

Мне пришлось перебрать 7 провайдеров прежде чем найти подходящего:

  • Бесплатный тест 3 дня;
  • Мощный процессор: 97Мб/сек VPN PPTP канал утилизирует процессор на 15-20%;
  • Реальный гигабитный канал (протестировано на паблик BW серверах mikrotik);
  • Защита клиентов от DDOS;
  • Возможность добавления внутреннего интерфейса для взаимодействия с другими виртуальными машинами, что избавит от необходимости VPN канала с рядом стоящей IP АТС или Web сервера.

Далее будет информация применительно к этому провайдеру.

Если вам нужен VPN в европе, то присмотритесь к недорогому варианту:

RouterOS vs Cloud Hosted Router

Выбор прост – CHR:

  1. Система специально разработана для виртуализации;
  2. Лицензия не привязана к железу. Можно легко менять хостинг. Для RouterOS при смене железа нужно покупать пакет замены лицензии;
  3. Нет никаких ограничений в бесплатной версии кроме пропускной способности канала – 1Мб/сек. Следующий уровень уже платный – 1ГБ/сек. по цене равен level 4.

Никаких преимущество у RouterOS в виртуальной среде – нет. MetaRouter и KVM в виртуальной среде не работает.

Установка CHR

Решений явно много, но я использовал свой сценарий с удаленной загрузкой образа диска из Windows. Общий смысл такой: на сервере запускаем утилиту nc, которая ожидает входящие подключения и данные полученные в этом подключении она будет передавать утилите dd, которая полученные данные запишет прямо на диск. Утилите nc данные будем передавать с Windows машины, при помощи специально написанной для этого утилиты chr.copytonet.

  1. Создаем виртуальную машину с Debian 7/8;
  2. Подключаемся к созданной машине через SSH. В Windows среде – putty;
  3. Если вы выбрали IPHoster, то нужно посмотреть настройки IP, т.к. их вручную придется вносить в CHR;
  4. Скачиваем приложение chr.copytonet. Оно необходимо как замена Linux клиенту nc.
  5. Скачиваем RAW (Raw disk image) образ Cloud Hosted Router – https://mikrotik.com/download и кладем рядом с chr.copytonet;
  6. Запускаем chr.copytonet и следуем инструкциям (по умолчанию подходят для hexcore).
  7. Сразу после успешного завершения – в SSH консоли сервера выполняем команду: reboot. Машина перезагрузится.
  8. У hexcore есть DHCP поэтому CHR сразу получит настройки IP по этому IP сразу можно подключиться при помощи winbox и выполнять нужные настройки. Естественно первым делом сменив пароль пользователя admin. Через 10 минут простоя увидите кучу попыток входа (подбора пароля).

Дальнейшая настройка VPN каналов делается так.

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

Результаты тестирования канала

Тестируем канал hexcore с публичными серверами Mikrotik (1 ядро 3066МГц, 1Гб):

UPD: Hexcore добавил штатную поддержку CHR и можно без дополнительных усилий создать машину сразу с CHR. Если возникнут вопросы – поддержка отвечает.

2 мысли о “Производительный VPN сервер на базе Mikrotik”

Отличная статья. Установил Cloud Hosted Router на VPS хостинге, правда другого провайдера. Всё настроил, работает. Настраивал по этой инструкции “http://mikrotik.vetriks.ru/wiki/VPN:SSTP_site-to-site_(%D0%BE%D0%B1%D1%8A%D0%B5%D0%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BE%D1%84%D0%B8%D1%81%D0%BE%D0%B2_%D0%B1%D0%B5%D0%B7_%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D1%8B_%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D0%B2)”. Поднял VPN SSTP. CHR выступает в качестве головного офиса. Ни как не могу настроить связь между клиентами, нет связи. От каждого клиента до офиса связь есть, а между офисами нет. Можете подсказать в чём проблема?

Посмотрите мастер объединения офисов по PPTP, а именно – построение маршрутов. У филиалов нужно прописать маршрут: соседний филиал искать на шлюзе головного офиса. Вариантов несколько. Я использую route marks, для разделения маршрутов. Для локальной сети офиса, например, 192.168.10.0/24 прописываю таблицу main в ip route rules, следующим правилом отправляю искать соседние офисы в центральный офис: 192.168.0.0/16 – route marks = vpn_centr. Для некоторых офисов бывает делаю отдельный прямой маршрут в этом случае кроме локального прописываю до общего правила еще специально для офиса: 192.168.11.0/24 route mark = vpn_direct_11.
1. 192.168.10.0/24 -> main
2. 192.168.11.0/24 -> vpn_direct_11
3. 192.168.0.0/16 -> vpn_centr

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Источник: http://t-ev.ru/2017/07/chr-vpn-server/

Объединение сетей с помощью VDS и VPN PPTP

Во избежании полемики в комментариях в сторону не надежности PPTP — предупреждаю:
я осведомлен о уязвимостях PPTP, что есть более надежные L2TP/IPSec и даже практически идеальные OpenVPN с 4096 — OverМного битным ключом.
О них я расскажу в следующих двух статьях.

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

Возможно статья не претендует на уникальность, она написана ради себя и таких же, как я.

Не у всех есть белый IP адрес, не говоря уж о белом статическом IP. В основном оборудование MikroTik находится за NAT’ом, а то и за целой цепочки из NAT’ов. Особенно это касается интернета через 3/4G/LTE модемы и пионерские сети.

Подразумевается, что объединяемые сети имеют разные диапазоны IP адресов.

Конкретно в моем случае, офис M имеет 192.168.0.0/24 , а офис T — 10.0.0.0/24
Офис B как концепт — 10.10.0.0/24

Для начала нам нужно выбрать и подготовить VDS

Установка PPTP сервера

За что я люблю линукс? Консоль и репозитории.
(ц) Я

Все операции проводятся под root пользователем.

Установим PPTP сервер командой apt-get install pptpd

После установки отредактируем файл конфигурации командой nano /etc/pptpd.conf

И добавим в конце диапазон выдаваемых IP адресов. Я использую 10.255.0.150-200

localip 10.255.0.1
remoteip 10.255.0.100-200

Сохраняем командой Ctrl+O, закрываем Ctrl+X

Заносим клиентов командой nano /etc/ppp/chap-secrets

M pptpd Lyuhnsdf7i 10.255.0.10
T pptpd Kghndsfy7iyhnlkH 10.255.0.20
B pptpd K

Максимальная длина пароля 63 символа, желательно без спец символов.

Сохраняем командой Ctrl+O, закрываем Ctrl+X

Перезапускаем pptp сервер командой service pptpd restart

Настраиваем форвардинг (пересылка между интерфейсами)

nano /etc/sysctl.conf

Ищем и раскомментируем строчку net.ipv4.ip_forward = 1 , если ее нет, то добавляем.

Применяем изменения командой sysctl -p

Подключаем клиент MikroTik

Не важно какой интернет, сгодится любой. Не важно какой микротик, главное — свежая прошивка.
Я использую пользователя из первой строчки /etc/ppp/chap-secrets

Открываем в настройках микротика Interface -> + PPTP Client
Вводим название соединения (Name)
Указываем адрес соединения (Connected To)
Вводим User и Password
Жмем Apply
Через несколько секунд поднимется соединение с IP адресом 10.255.0.10
По этому адресу мы сможем сделать маршрут к данной сети.

Подключение клиента Windows ничем не отличается от создания обычного VPN соединения.

Второй микротик подключаем аналогично по второму логину и паролю и он соединяется с IP адресом 10.255.0.20

iptables

И так мы подключили микротик и сами подключились в Windows по VPN, но все равно не можем попасть на микротик по выдаваемому ему IP по VPN

Для исправления этой ситуации добавим правила:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -m tcp -p tcp —dport 1723 -j ACCEPT
iptables -I INPUT -s 10.255.0.0/24 -i ppp0 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp1 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp1 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp2 -j MASQUERADE

Обратите внимание на интерфейс, мы разрешили маскарад и входящие для ppp0 и ppp1 интерфейсов. Но если у нас много клиентов — надо разрешить много интерфейсов!

Добавим еще 18 штук:
iptables -I INPUT -s 10.255.0.0/24 -i ppp2 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp3 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp3 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp4 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp4 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp5 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp5 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp6 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp6 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp7 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp7 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp8 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp8 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp9 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp09 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp10 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp10 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp11 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp11 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp12 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp12 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp13 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp13 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp14 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp14 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp15 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp15 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp16 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp16 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp17 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp17 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp18 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp18 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp19 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp19 -j ACCEPT
iptables —table nat —append POSTROUTING —out-interface ppp20 -j MASQUERADE
iptables -I INPUT -s 10.255.0.0/24 -i ppp20 -j ACCEPT

iptables —append FORWARD —in-interface eth0 -j ACCEPT

Перезапустим service pptpd restart

Чтобы правила не слетали, сохраним их командой:
iptables-save > /etc/iptables_rules
Добавим их в автозагрузку:
nano /etc/rc.local
Перед exit добавим строчку:
/sbin/iptables-restore
Так как наш pptpd сервер не запускается сам, перед exit добавляем:
service pptpd start

Проверяем все ли работает.
Перезагружаем сервер командой reboot и пробуем подключить VPN и подключиться к нашему микротику по адресу 10.255.0.10 и второму микротику по адресу 10.255.0.20 , у меня все получилось.

Подправим mtu. Опытным путем я высчитал, что mtu равен 1372
Его и пропишем:
nano /etc/ppp/pptpd-options
Добавляем строки:
mtu 1400
mru 1400
И перезагружаем сервер.
Это позволит избежать «зависания» при использовании https и работе по RDP

Чтобы видеть внутренние ресурсы сетей, нужно указать серверу где какая сеть находится.
Напомню:
M внутренняя сеть 192.168.0.0/24, VPN IP 10.255.0.10
T внутренняя сеть 10.0.0.0/24, VPN IP 10.255.0.20
B внутренняя 10.10.0.0/24, VPN IP 10.255.0.30

Для этого надо прописать маршруты:
ip route add 192.168.0.0/24 via 10.255.0.10
ip route add 10.0.0.0/24 via 10.255.0.20
ip route add 10.10.0.0/24 via 10.255.0.30

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

Редактируем:
nano /etc/ppp/ip-up

#!/bin/bash
case «$5» in
10.255.0.10)
/sbin/route add -net 192.168.0.0/24 gw 10.255.0.10
;;
10.255.0.20)
/sbin/route add -net 10.0.0.0/24 gw 10.255.0.20
;;
10.255.0.30)
/sbin/route add -net 10.10.0.0/24 gw 10.255.0.30
;;
*)
esac

Перезагружаемся. Теперь при каждом соединении — под конкретного клиента будет добавляться свой маршрут.

Но Windows иногда не знает куда идти, если нужно попасть на 192.168.0.200
Мы укажем это маршрутом через 10.255.0.1
Через CMD добавляем маршрут:
route add -p 192.168.0.0 mask 255.255.255.0 10.255.0.1 METRIC 1
route add -p 10.0.0.0 mask 255.255.255.0 10.255.0.1 METRIC 1
При этом желательно указывать маршруты до конкретных IP, а не всей подсети, чтобы не давать лишнего доступа. Так же часто бывает 192.168.0.0/24 используется в домашней сети. Но лучше это предвидеть заранее, и сделать в сетях 10.*.*.*/24

VDS с белым IP

Давайте выжмем максимум из нашего VDS!

В сети M MikroTik живет на IP адресе 192.168.0.10
В сети T MikroTik живет на IP адресе 10.0.0.1

И мы можем на них попасть по IP адресу нашего VPS сервера. Просто добавим правила:
iptables -t nat -A PREROUTING -p tcp -d IP_АДРЕС_VDS —dport 81 -j DNAT —to-destination 192.168.0.10:80
Указываем IP нашего VDS, указываем какой порт перенаправляем, в нашем случае 81, указываем на какой IP адрес и порт внутренней сети направляем трафик — 192.168.0.10:80
iptables -t nat -A PREROUTING -p tcp -d IP_АДРЕС_VDS —dport 82 -j DNAT —to-destination 10.0.0.1:80

Теперь если открыть IP_АДРЕС_VDS:81 — мы попадаем на микротик сети M, а IP_АДРЕС_VDS:82 — микротик сети T

Таким образом можно завернуть трафик любого порта в любую сеть на любой IP адрес на любой порт.

Можно пускать весь трафик через VDS, просто добавив PPTP соединение в маскарад и указав дистанцию меньшую, чем основной интернет, не забыв указать DNS в /etc/ppp/pptpd-options
ms-dns 8.8.8.8
ms-dns 8.8.4.4

После перезагрузки правило слетает, как сего сохранять — я описал в разделе iptables

MikroTik Routes

Осталось сети филиалов сделать видимыми друг другу.

Открываем настройки микротика IP -> Routes
Жмем + и указываем через что идти на конкретный IP адрес.
Я рекомендую указывать только нужные IP адреса, но в этом примере укажу всю подсеть:

На микротике в сети T (напомню у него VPN IP 10.255.0.20 , внутренняя сеть 10.0.0.0/24 )
Указываем:
Dst. Adress: 192.168.0.0/24
Gateway: Наше PPTP соединение
Distance: я указал 30, единица меня смущает.

На микротике в сети M (напомню у него VPN IP 10.255.0.10 , внутренняя сеть 192.168.0.0/24 )
Указываем:
Dst. Adress: 10.0.0.0/24
Gateway: Наше PPTP соединение
Distance: 30

Теперь два офиса связаны. Можно провести тест скорости соединения. В моем случае с плохим интернетом (3G билайна в деревне Тульской области) на одном конце и (3G мегафона в деревне Московской области) на другом конце — максимальная скорость была 2.2Мбит.

IP адреса двух сетей доступны друг другу без проблем.

Результаты пингов:

Подмосковный мегафон 3G VDS: 56мсек
Тульский билайн 3G VDS: 80мсек
Тульский билайн Подмосковный мегафон: 140мсек
Хороший интернет VDS: 5мсек.
Хороший интернет Тульский билайн 3G: 104мсек
Хороший интернет Подмосковный мегафон 3G: 71мсек

Можно комфортно работать по RDP

В заключении

Это не самый безопасный способ объединения сетей, по этому лучше смотреть в сторону OpenVPN

Если вам нужна помощь в настройке микротика — оставьте комментарий на странице

Источник: http://moron.1side.ru/lokalnye-seti/obedinenie-setej-s-pomoshhyu-vds-i-vpn-pptp.php

Как поднять собственный vpn на сервере

VPN расшифровывается как Virtual Private Network (Виртуальная Частная Сеть). Это технология, которая создает виртуальный защищенный канал (или туннель) между вашим устройством (компьютер/смартфон/планшет) и Интернетом.

VPN — это некий сервис, который обычно работает на удаленной машине (сервере).

Зачем нужен VPN

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

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

Также, если ваш провайдер не предоставляет вам статический IP адрес, VPN может быть использован для создания такого выделенного IP.

Для нас VPN является отличным средством анонимизации и защиты нашего трафика от провайдера.

VPN будет скрывать от вашего провайдера ресурсы, которые вы посещаете. А от ресурсов, которые вы посещаете, VPN будет скрывать ваш реальный IP адрес.

VPN часто используется как средство для сокрытия Tor-траффика от вашего провайдера, ведь запуская VPN, а затем Tor Браузер, ваш трафик имеет цепь VPN -> Tor, что означает, что факт использования Tor скрыт от провайдера, в ваш настоящий IP адрес не палится перед первой (входной) нодой сети Tor.

VPN протоколы

Существует множество разных протоколов VPN.

OpenVPN — это протокол с открытым исходным кодом, использующий библиотеку OpenSSL — поддерживает большое количество шифров, очень безопасный, достаточно гибкий в настройке, может работать на любом порту, быстрый по скорости. Для работы необходимо стороннее ПО (клиенты OpenVPN под разные ОС, об этом ниже). Клиентский файл .ovpn может использоваться на любой ОС, в том числе и мобильных. Везде рекомендую вам именно OpenVPN.

IKEv2 — Тоже очень неплохой протокол с очень высокой степенью защиты, быстрый по скорости. Один из немногих протоколов, поддерживающий устройства Blackberry, но сам по себе поддерживает достаточно мало платформ. Этот протокол встретишь не так часто в VPN сервисах, в отличии от OpenVPN или L2TP. Исходный код не открыт, а это потенциально небезопасно.

PPTP — Этот протокол достаточно старый, один из самых первых. Быстрый по скорости и легкий в настройке, поддерживается почти всеми ОС, однако очень уязвимый и совершенно небезопасный. Несколько раз взламывался спецслужбами. Этот протокол использовать крайне не рекомендуется за исключением случаев, где вам не нужна защита. Это юзать не нужно ни в коем случае!

L2TP/IPsec — Уже лучше, чем PPTP. L2TP также поддерживается многими ОС, в том числе и мобильными и тоже достаточно прост в настройке. IPsec обеспечивает более стойкое шифрование, чем PPTP. Однако, L2TP/IPsec медленнее, чем PPTP или OpenVPN. Не обходит Фаерволлы.

SSTP — Протокол от Microsoft. SSTP с хорошим, стойким шифрованием, доступен только для операционных систем Windows. Как и OpenVPN, позволяет обходить Firewall. Проще в настройке, чем OpenVPN. Без открытого исходного кода, поэтому OpenVPN лучше.

Вывод: если есть возможность, использовать лучше только OpenVPN из-за открытого исходного кода, безопасности и относительной скорости. IKEv2 хороший протокол, безопасный, быстрый, стабильный, но с закрытым исходным кодом. L2TP/IPsec можно использовать вместо PPTP, а PPTP использовать вовсе не рекомендую. SSTP доступен только для Винды, тоже не очень рекомендую.

Бесплатные VPN vs свой VPN vs покупной VPN

Если вам нужен VPN срочно, быстро, здесь и сейчас и у вас нет оформленной подписки на каком-то VPN-сервисе, а своего сервера нет и подавно — тогда можете воспользоваться бесплатными VPN. Но затея, конечно, сомнительная.

Идем на сайты, скачиваем конфигурационный файл OpenVPN или получаем инструкцию по подключению, если вы используете другой VPN протокол.

Конфигурационный файл OpenVPN (с расширением .ovpn) нужно «скормить» вашему OpenVPN клиенту (о клиентах я написал ниже).

В чем преимущество бесплатных VPN?

Очевидно, что сама по себе бесплатность является плюсом. Также то, что такими серверами пользуются большое количество людей, прибавляет анонимности. На этом его преимущества заканчиваются.

Данные VPN очень нестабильные. Часто отваливаются. Очень медленные. Использовать их я бы рекомендовал, только если нужно срочно для чего-то и нет других возможностей. Но лучше что бы у вас не было таких ситуаций. Не исключено, что на таких серверах ведутся логи. Да и что на этих серверах ЕЩЕ происходит — никому не известно.

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

Можно воспользоваться собственным VPN. Нужно лишь купить сервер в интернете, зайти на него и поднять там OpenVPN по инструкции.

По сравнению с платными VPN-сервисами, свой собственный VPN выходит еще дешевле. Арендовать VPS (Virtual Private Server) можно чуть ли не за 2-3$/месяц в интернете. Что, по-моему, достаточно дешево — нужно лишь поискать.

Конечно же, свой VPN имеет и другие преимущества. Например, у вас будет root-доступ к серверу, поэтому вы можете отключить логирование и 100% быть уверенными в том, что логирование не ведется. В отличии от не своего VPN (бесплатные или платные), где у вас нет root-доступа, а это значит, что вы не можете никак быть уверенны в том, что логирование отключено, как бы вас не убеждали в этом эти сервисы. Вы сам себе хозяин на сервере. Это ваш VPN.

В отличии от бесплатных VPN, свой сервер будет работать гораздо быстрее и стабильнее. Это очень весомый плюс.

Также, поскольку у вас будет свой собственный сервер, туда можно прикрутить что-нибудь помимо OpenVPN, какой-нибудь другой сервис. Например, веб-сервер и разместить там небольшой сайт. Или можно сделать ее Tor-нодой, если провайдер разрешает. Tor relay разрешают чаще чем Tor Exit Node (выходную ноду).

Однако, существует проблема, что на сервере будете находиться вы и только вы один (если вы, конечно, не дадите использовать свой VPN еще пару сотен человек, но тогда и сервер нужен будет мощнее). Такой проблемы нет у бесплатных или платных VPN.

Еще одним минусом является то, что не каждый способен поднять себе VPN. Кто-то может плохо разбираться в IT и ему эти инструкции будут казаться совершенно дикими и непонятными. А кто-то будет совершенно не понимать что он делает вообще, это тоже не хорошо. В общем, настоятельно рекомендую использовать.

Можно воспользоваться услугами платных VPN сервисов которые тоже относительно недорогие (в среднем 5-12$/месяц).

Такие сервисы нужно искать, конечно же, в интернете. Большинство из них принимают к оплате Bitcoin, что несомненно круто. У многих есть свой OpenVPN клиент под какую-то операционную систему, но пользоваться их клиентами не очень рекомендуется из соображений безопасности.

Регистрируетесь и платите за месяц (или год, что выходит дешевле), скачиваете конфигурационный файл OpenVPN (.ovpn), скармливаете его вашему OpenVPN клиенту и всё, у вас будет VPN. Если у вас не OpenVPN, то читаете инструкцию на сайте сервиса по подключению с другим протоколом. Благо на этих сайтах у них хорошие инструкции и все предельной просто и понятно.

Из преимуществ можно выделить то, что каждый сервис предлагает сервера во многих разных странах, которые доступны вам. Между этими странами можно переключаться, вручную с .ovpn конфигами или как-то автоматически, если эта фича реализована в их клиенте. Тогда как на своем собственном сервере вы привязаны к одной стране, одному IP адресу. Не понравилась одна страна — переключились на другую.

Говорить про то, что эти сервера намного стабильнее, надежнее и быстрее по сравнению с «бесплатным» решением, я думаю не нужно. Доверие к платным сервисам тоже как-то больше, чем к бесплатным VPNам, хоть все равно нет гарантий.

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

Когда вы выбираете себе VPN сервис или VPS, обращайте внимание на то, где зарегистрирована фирма представляющая VPN, а также на то, в каких странах расположены их сервера. Про выбор VPS тоже самое.

Юридический момент в этом деле важен, но здесь я вам не помощник.
Могу сказать лишь то, что использовать VPN расположенный в стране, где вы совершаете преступление, так себе затея. Так что, если вы работаете против России, заказывать сервера в этой стране или пользоваться услугами Российского VPN сервиса КРАЙНЕ нелогично.

Выбираете сервис или VPS — смотрите где расположены сервера, где зарегистрирован сервис или хостер, читайте политику конфиденциальности.

Ищем и арендуем VPS за Bitcoin

Для того чтобы поднять собственный OpenVPN, нам неожиданно нужен свой сервер (далее VPS). Нужно купить VPS, зайти на него средствами SSH, произвести первичную настройку сервера (необязательно) и поднять OpenVPN.

Проблемы при анонимной покупке VPS

Многие зарубежные компании-хостеры принимают к оплате Bitcoin. Чего не скажешь о российских сервисах, предлагающих арендовать VPS. Хотя и среди Российских можно найти с оплатой данной криптовалютой.

Однако, даже с учетом того, что «белый» хостер принимает к оплате анонимную криптовалюту, многие из них все равно не любят анонимных клиентов. Поэтому при регистрации требуют ввести такие данные как ФИО, страна, город, адрес проживания, e-mail, мобильный телефон (не всегда). Также при регистрации и последующих заходах в личный кабинет логируется ваш IP адрес. Бывают более лояльные хостеры, бывают менее. Так что достаточно просто и анонимно купить VPS получится далеко не всегда.

Казалось бы, что при регистрации можно вбить левые данные, а проблема логирования IP решается проксями или Tor Браузером. НО НЕТ! Дело в том, что у многих таких «белых» хостеров на сайтах внедрены специальные антифрод системы, которые борются с мошенническими транзакциями. Вообще-то, это защита прежде всего от кардеров, но успешно работает и против чересчур анонимных клиентов.

Антифрод система рассчитывает риск мошеннической транзации или «странного» клиента на основе очень многих факторов, которые долго и бесполезно перечислять в рамках данной статьи. В вкратце расскажу о некоторых базовых факторах, которые стоит учитывать:

1) IP адрес. Он должен быть более-менее чистый и не быть в базе антифрод системы как прокся и прочее. Это важнейший фактор. Как вы понимаете, IP адрес Tor во всех списках, и если у хостера стоит самый хуевый антифрод и есть желание бороться с анонимными клиентами, то через Tor зарегистрироватьмч не получится.

Вы можете использовать хорошие прокси или VPN. В общем, разберетесь.

2) Человек должен соответствовать реальности. Вбивать в ФИО ‘ksdjfsjd skdfkk skdgs» примерно такое — не нужно.

3) Адрес должен быть тоже реальным. Не нужно писать улица ленина, в городе залупинс в Афганистане. Ок? Также, если у вас IP российский, значит и адрес тоже должен быть российским.

4) Желательно чтобы адрес соответствовал Zip Code (индексу). В смысле, он должен принадлежать ему.

5) Телефон. Должен иметь разный вид в зависимости от страны. Если Россия, то +7901. и дальше любые цифры. Зарубежные компании (это относится, кстати, не только к хостерам), очень редко присылают смс-код на номер телефона для подтверждения регистрации или чего-то еще, в отличии от российских компаний.

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

VPS с арендой за Bitcoin

Аренду VPS предлагает много хостеров. Нам не нужны большие мощности, поэтому подойдут самые слабые сервера с технологией виртуализации OpenVZ (но лучше KVM или Xen) с малой процессорной мощностью и небольшим количеством оперативной памяти (256-512 mb). Стоить такие сервера могут в среднем 2-5$ в месяц. А если постараться поискать, то можно найти и за 12-18$ за целый год.

Кстати, если вы нашли VPS, который не принимает к оплате Bitcoin или у вас просто их нет, зато есть Qiwi или Яндекс Деньги, то вы можете попытаться заплатить за сервер Виртуальной Кредитной Картой (VCC — Virtual Credit Card). Эти карты можно выпустить на сайте Qiwi и Яндекс Денег соответственно. При этом, естественно, Киви и ЯД должны быть левыми. Но лучше платите Биткоинами.

Для поднятия OpenVPN нам нужно чтобы наш VPS поддерживал TUN/TAP.
Обычно почти все VPS провайдеры предоставляют эту фичу. Где-то она сразу включена, как только создается VPS, где-то приходится включать через панель управления на сайте (если OpenVZ), где-то нужно просить техническую поддержку что бы включили вам TUN/TAP (но это редко).

Что бы найти VPS, нужно ввести правильный запрос в гугле. Запросы лучше делать на англ. языке, чтобы выдавал зарубежных хостеров (если нужно). Запросы могут выглядить следующим образом: «buy vps», «buy cheap vps», «cheapest vps», «cheap openvz vps», «cheap vps » и подобное.

Также существуют различные сайты, на которых можно найти достаточно дешевые VPS.

Дешевые VPS

  • LowEndBox — сайт, на котором можете посмотреть дешевых VPS провайдеров.
  • LowEndTalk — этот сайт существует как дополнение к предыдущему. На нем много пользователей, идет активное обсуждение разных VPS провайдеров. Сайт этот очень полезный. На нем можно найти много мелких и не очень предпринимателей, которые подторговывают VPS. Также много полезной инфы, обзоров различных хостеров и прочее. Иногда сам почитываю.
  • LowEndStock — вот здесь представлены разные дешевые хостеры VPS в таблице.
  • VPS-List.Cryto — сайт, подобный предыдущему.
  • CompareVPS — еще один подобный сайт с таблицей, по-моему мнению, хуже LowEndStock.
  • PoiskVPS.ru — Российский сайт по подбору VPS. Подбирать можно по разым параметрам, например таким как страна размещения сервера или способ оплаты (можно отфильтровать за биткоин, киви или что вам удобно). Полезный сайт. В основном здесь российские хостеры. Цена на VPS начитается от 70 руб./месяц.
  • Crypto.net — а на этом сайте, по ссылке, автор собрал и переодически обновляет список VPS провайдеров, которые принимают к оплате Bitcoin. Раньше это было более актуально, но сейчас очень большое количество провайдеров принимают Bitcoin.
  • FreeVPS.us — данный сайт может быть тоже интересен. Можно встретить каких-то VPS провайдеров дешевых. Можно найти и бесплатных или с бесплатным пробным периодом — этому сайт и посвящен.
  • WebHostingTalk.comp — в дополнение. Большой форум с обсуждением провайдеров VPS/VDS, и хостингов.

На этих сайтах достаточно много информации по дешевым VPS. Заходите, читайте, находите.

Анонимно арендуем VPS за Bitcoin

И вот мы нашли VPS с поддержкой TUN/TAP, теперь нам нужно его арендовать. Я буду показывать аренду VPS в одном из перечисленных выше VPS провайдеров.

Мое соеденение на данным момент такое: на Хост. машине VPN + виртуалка Whonix. Поскольку я писал выше о проблемах аренды VPS через Tor, мне необходим на выходе белый (не Tor) IP.

Я иду на vpngate.net, нахожу там France в списке, скачиваю OpenVPN TCP конфиг (TCP, потому что этот VPN идет после Tor, а он только с TCP). Запускаю VPN на своем Linux (openvpn —config ).

Так как я выбрал France VPN, с французский IP, это значит что и мой «вирутальный клиент», тоже будет из Франции. И звать его будут никак не Вася Иванов, и жить он будет не в Красноярске.

Я захожу на сайт whoer.net для того чтобы убедиться, что IP действительно определяется из Франции. Там же была показана следующая информация: IP Фрнации, а также был указан город — Audincourt.

Вы можете тоже воспользоваться бесплатным VPN или хорошими проксями/SSH. В моем случае так получилось, что это Франция.

На сайте провайдера, я выбираю нужную мне услугу, в моем случае это VPS за 3$/месяц. Жму «Купить» или «Заказать» и меня перекидывает на страницу с конфигурацией сервера.

Так вводим какую-то информацию о сервере: Hostname, NS префиксы, пароль от root, выбираем операционную систему.

Hostname — вводим что угодно, например site.test

NS префиксы — тоже что угодно, например ns1.site.test, ns1.site.test

Пароль от root — вводим по безопаснее.

Выбираем ОС — выбирайте лучше Debian или Ubuntu (лучше Debian).

Лучше 64 бит. И самые последние доступные версии. Я выбрал Debian 8 x64. Если вы умеете работать с дистрибутивом, например CentOS, то выбирайте что душе угодно. Я все буду показывать на примере Debian.

Страница на этапе конфигурации может отличаться от провайдера к провайдеру. Поэтому не удивляйтесь, например, что вам не предложит ввести праоль от рута — значит они его сгенерируют самостоятельно и вышлют на почту.

После этого я жму Contune, затем Checkout и попадаю на страницу, где нужно вбивать данные о себе:

Имя, фамилия (придумываем сами, только не Вася Иванов)

Имейл (регаем по новой или юзаем если есть, лучше gmail, yahoo.com, hotmail, outlook, или еще что-то, У ВАС ДОЛЖЕН БЫТЬ ДОСТУП К НЕМУ)

Страна (страну вы знаете по IP)

Область (раскрывающийся список из областей, на которую поделена страна)

Город (город может отображаться на том же whoer.net или других подобных сервисах, а может и не отображаться)

Пароль от аккаунта

Как сгенерировать эти данные? Ведь одно дело, когда у вас IP российский, а другое, когда другой страны, типа Франции. С Россией или Украиной в этом плане как-то проще, тут все понятно.

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

А именно, я открываю Google Maps и вводжу в поиск название города, который у меня отобразился — Audincourt. Меня приблежвает к городу и карты подсвечивают его границы. Я приближаю еще немного сильнее карту и ищу какой-нибудь ОБЪЕКТ (кафе, школа, пиццерия, ресторан или еще что-то). Жму мышкой на этот объект и мне высвечивается инфорамция о нем, а именно:

Полный адрес и Zip Code, телефон (не всегда).

Для того чтобы определить область/штат/регион/провинцию, которой соответствует этот город — я просто гуглю название города и на 1-2 странице будет нужна информация.

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

Выбираю оплату Bitcoin, соглашаюсь с их правилами и жму Checkout или подобнуюю кнопку. На этом этапе начинает работать антифрод система, которая на основе факторов выше (IP, браузер, введенная информация) вычисляет так называемый Risk Score или Fraud Score, и определяет, можно тебе дальше или нельзя.

В моем случае все прошло гладко (обычно так и бывает) и меня перекинуло на страницу с информацией для оплаты bitcoin.

Там будет: число биткоинов к оплате + кошелек, куда платить. Помимо этого, этот Payment gateway (платежный шлюз) Coinfy позволяет платить не только Bitcoin но и другими криптовалютами. На все про все у вас 15 минут (без подтверждений, биткоин нужно лишь отправить). — Идем в ваш биткоин кошелек, копирует кошелек к оплате, копируем сколько битков переводить и переводим. После этого почти моментально страница с инф. к оплате изменит свой вид. — Типа, все нормально, битки идут, и перекинет вас обратно на сайт, на так называемую страницу Order Confirmation.

Еще Order Confirmation вам упадет на имейл. Помимо этого, может упасть на имейл «подтверждалка» — письмо с ссылком, при переходе по которой, вы подтверждаете свой email. Так что проверяйте.

Начался процесс создания сервера. Длится он обычно не долго. Может минут 15, может час. Ну максимум 2. Если в течении этого времени сервер не создался, то пишите в тех.поддержку, создавая тикет.

Когда VPS создатстся, вам на имейл придет письмо со всей необходимой информацией для коннета на SSH: IP адрес VPS, пароль от root.

Или эта информация будет у вас в личной кабинете на сайте.
Или часть там, часть на имейл.

Также, не везде и не всегда, провайдер предоставляет доступ к VPS Contol Panel. В моем случае он предоставляет. В письме есть инфа для логина.

Заходим на сервер по SSH

После того, как все данные для подключения были высланы вам на почту или вы нашли их в личном кабинете, то для коннекта к серверу вы обладаете всеми данными, а именно:

Пароль от root: либо вы указывали при создании сервера, либо был сгенерирован.

Для того чтобы подключиться по SSH на Windows, нужно воспользоваться сторонними программами. Скачивайте на выбор: Putty или Kitty. Работать с этими программами достаточно просто.

На ОС Linux и MacOS все проще.

В терминале вводим:

где: ip — IP адрес VPS.

user — username пользователя. При первом подключении / в нашем случае — root.

После нажатия enter, при самом первом коннекте, вам выскочит сообщение:

Are you sure you want to continue connecting (yes/no)?

вручную вводим yes, потом вам предложит ввести пароль от root, который у вас также есть. Если все хорошо, то вы подключились к VPS и вам будет передано управление командной строкой.

Скопировать и вставить в терминале можно так:

Если Linux, то ctrl+shift+v вставить в терминале (ctrl+shift+c скопировать из терминала).

Если Windows и вы используете Putty/Kitty, то вставить в консоль можно по нажатию на ПКМ.

Такое бывает, но иногда дистрибутив созданного сервера не совпадает с тем, который вы выбирали, когда делали заказ. Поэтому, если вы зашли на сервер по SSH и ввели команду

И вам выдало ошибку о том, что apt-get такой команды нет, и при этом введя, например

И пошел какой-то процесс, это означает, что вместо Debian/Ubuntu у вас установился CentOS. Пугаться не нужно.

Для этого вам просто напросто нужно переустановить ОС. Сделать это можно из VPS Control Panel, данные о котором пришли все в том же письме, если провайдер предоставляет эту фичу, или из личного кабинета на сайте провайдера. Ищем там что-то вроде «Reinstall OS» или «Rebuild» и переустанавливаем, если это нужно, на Debian/Ubuntu.

Покажу на своем примере VPS Control Panel, потому что у меня как раз такой случай, когда установился не тот дистрибутив.

Перехожу на сайт, ввожу логин и пароль (все это на почте)

После этого сервер выключится и начнется переустановка OC. Займет она минут 5-10. Новые данные для подключения упадут на почту: IP будет тот же, логин root, изменится лишь пароль, если вы вводили новый.

Проверяем TUN/TAP на VPS

Для начала, елси поднимать мы будем именно OpenVPN, который как я писал выше, требует TUN/TAP, то нужно проверить, включен он или нет. Для этого в терминале вводим следующую команду:

И если вам выдает:

То это значит, что он включен и можно работать дальше. А если вывод такой:

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

Я захожу в VPS Control Panel, введя логин и пароль, ищу нужную кнопку, в моем случае это VPS Configuration.

Затем ставлю галочку на Enable TUN/TAP.

После этого сервер перезагрузится. Подключитесь к нему по-новой в введите:

Если так, то все нормально. Если нет, то вы что-то сделали не так.

Первичная настройка VPS

Далее, перед поднятием непосредственно OpenVPN, было бы неплохо произвести какую-то первичную настройку на сервере: обновить пакеты — поставить нужные пакеты, отключить ненужные сервисы, создать пользователя, настроить sshd_config (поменять порт, запретить коннет от root).

Поскольку я показываю на примере дистрибутива Debian, вводимые команды будут для этого дистибутива и для дистрибутивов основанных на Debian (Ubuntu).

Ставим нужные пакеты:

nano — консольный редактор. Обычно стоит изначально, но не всегда.

htop — консольный диспетчер задач.

openvpn — пакет openvpn. Нужно для поднятия OpenVPN.

easy-rsa — скрипты для легкой генерации ключей. Нужно для поднятия OpenVPN.

git — понадобится, если будете поднимать OpenVPN скриптом (далее в статье).

Еще можно поставить следующие пакеты, но не обязательно:

Далее, нам нужно создать пользователя:

useradd — команда, создающая пользователя.

-m — создает домашнюю папку пользователя (по пути /home/ /), по-умолчанию имеет такое же название, как и имя пользователя

-s — указывает, какой shell использовать

pp-ruloh — имя пользователя.

После создания юзера, вам ОБЯЗАТЕЛЬНО нужно создать ему пароль, потому что мы будем использовать этого юзера для коннекта по ssh, поэтому вводим команду:

Предложит дважды ввести пароль. При вводе не будет отображаться. Как вставлять в терминале я писал вышел.

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

Для того что бы посмотреть, какие сервисы запущены. На данном этапе в идеале должен быть запущен только sshd. Поскольку у меня установлена Debian-minimal, то у меня так и есть и команда

Выдает мне только

Но обычно может быть запущен какой-нибудь веб-сервер, mail-server, еще что-то. Не знаю, что запущено у вас, поэтому по-очереди вводите следующие команды:

Это должно отключить то, что обычно запущено уже при создании сервера.

Далее, можно настроить sshd. Из соображений безопасности поменяем порт со стандартного на нестандартный и запретим коннект от root.

Редактируем файл /etc/ssh/sshd_config при помощи nano:

Вкратце расскажу основные горячие клавиши при работе с консольным редактором nano.

nano — открываем файл в nano.

Ctrl+O — сохранить. Записать изменения в файл. Жмем Ctrl+O, потом Enter.

Ctrl+X — выйти из nano.

Ctrl+K — вырезать целую строку. Будет скопировано в буфер обмена.

Ctrl+U — вставить вырезанную строку, которая находится в буфере обмена.

Ctrl+W — поиск по файлу. Поиск в редаткоре, вводим че нужно -> жмем интер.

Если хотим скопировать часть текста, в самом редакторе выделяем мышкой нужный текст и жмем комбинацию Ctrl+Shift+C. Это скопировать.
Для того того чтобы вставить текст, который сейчас находится в буфере обмена, жмем комбинацию Ctrl+Shift+V.

Не забывайте вводить sudo nano если редактируете файл, к которому у вас нет прав на запись.

Ищем строку Port (будет где-то наверху), и меняем ее значение на другое, отличное от 22, в диапазоне от 1024 до 64000.

Далее, ищем строку PermitRootLogin и меняем ее значение с yes на no:

Ищем строку PermitEmptyPasswords и проверяем, чтобы там было no:

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

После AllowUsers имя юзера.

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

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

После всех манипуляций в файле /etc/ssh/sshd_config, перезапускаем:

Следующий ваш коннект по SSH будет выглядить следующим образом:

-p 1488 — порт SSH, который вы указывали в /etc/ssh/sshd_config
user — пользователь, отличный от root. Под рутом не получится подключиться.

Если у вас винда, то в PUTTY/KITTY тоже меняете порт. Теперь вы будете коннектиться по SSH на сервер через этого юзера. У него нет почти никаких прав, он даже не суперпользователь. Поэтому, для того чтобы производить какие-то манипуляции на сервера, нужно залогиниться под рутом. Для этого под обычным юзером вводим:

И вводим пароль от root. Все — можете делать что хотите. Чтобы выйти из-под рута, вводите exit.

Поднимаем OpenVPN вручную

Итак, собственно, поднимаем OpenVPN-server.

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

И три основных пакета:

После установки пакетов, разархивируем пример конфигурационного файла в папку /etc/openvpn/:

Файл /etc/openvpn/server.conf — основной серверный конфигурационный файл OpenVPN.

Теперь немного отредактируем его:

Файл длиный, с большим количесвом комментариев (все, что идет в строчке после символа # — комментарий). Строки, которые начинаются с символа ; в данном файле — тоже комментарии.

Частичный разбор конфига будет ниже в статье.

Редактируем. В самом верху сразу будет port:

Я поменяю порт на какой-нибудь совсем не стандартный:

(Диапазон от 0 до 65000), я выбрал рандомно. Не займите порт, который слушает другой сервис, например в моем случае sshd случает 1488.

Идем дальше. Выбираем протокол — пара строк ниже:

И видим, что она никак не закоментированная. Потому что по-умолчанию OpenVPN будет работать по UDP. Если вам нужен TCP, выше есть строчка proto tcp — раскоментируйте ее, удалите символ ; в нчале строки, а proto udp закоментируйте, добавив символ #. Оба нельзя, или то или другое. Я буду показывать на примере UDP, поэтому оставляю как есть.

Опускаемся ниже в конфиге и находим строку:

Меняем на dh3048.pem:

Идем ниже и находим закоментированную строку:

Еще чуть ниже находим две раскоментированные строки рядом:

Это то, какой DNS будет использоваться. По-умолчанию прописаны сервера OpenDNS, но можем прописать публичные сервера Google:

Можете оставить и OpenDNS.

Идем дальше и натыкаемся на строку

Листаем ниже и находим строку:

Это шифрование. Раскоментируем строку и переделаем на AES-256-CBC:

Еще чуть ниже в файле находим две закоментированные строки:

Далее, ниже находим строку, которая начинается со слова status и переделываем ее в следующий вид:

Еще чуть ниже, находим строку, которая начинается со слова log, и придаем ей такой вид:

Не закоментированная. Это логи. Отключить логирование OpenVPN нельзя в привычном понимании, поскольку если закоментировать строку, то по-умолчанию будет писаться в syslog файл (/var/log/syslog).

Еще чуть ниже, verb 3 меняем на:

Сохраняем, закрываем. Мы еще вернемся к этому файлу позже.

Теперь включаем перенаправление пакетов, вводим команду:

Если возвращает единицу, значит все ОК.

Теперь надо чтобы изменения были и при перезагрузке сервера, поэтому редактирум файл /etc/sysctl.conf:

Если такой строки в файле нет вообще, добавьте вручную.

Настроим Firewall

Ранее мы установили пакет ufw. Теперь нам нужно добавить некоторые правила. Во-первых, нам нужно дать разрешить траффик на SSH. Я ввожу:

Поскольку у меня sshd слушает порт 1488, если вы не меняли и у вас sshd слушает 22 порт, то вводите:

Далее, нам нужно разрешить траффик на порт, который будет слушать OpenVPN, в моем случае это port 16122, потому что я менял его в конфиг. файле (выше):

Поскольку OpenVPN будет слушать UDP порт, я в конце добавил /udp. Если у вас OpenVPN настроен не на UDP, а на TCP, без слеша на конце (или /tcp).

Если вы ничего не меняли в конфиге, то у вас слушает порт 1194 UDP, а значит:

Теперь нужно изменить Forward Policy, редактируем файл /etc/default/ufw:

И меняем ее значение на:

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

Команда выведет ваши интерфейсы. Там будет интерфейс lo и еще какой-нибудь, например eth0 или venet0. В моем случае интерфейс называется venet0 (ибо OpenVZ). У меня такой вывод:

Вам нужен интерфейс, который показывает ваш внешний IP. Из кода выше понятно, что venet0 показывает внешний IP. (inet МОЙ IP)

Далее, что нужно редактировать файл /etc/ufw/before.rules:

И куда-нибудь наверх, вставляем следующее:

где вместо пишем интерфейс, в моем случае это venet0 и получилось так:

После всего этого включаем ufw:

Cмотрим на наши правила:

Выводом покажет правила, которые вы создавали выше, у меня так:

где 1488 — для SSH и 16122 — UDP опенвпн.

Отключить ufw можно так:

Генерируем ключи для сервера. Ранее мы ставили пакет easy-rsa. Теперь копируем папку со скриптами easy-rsa в папку openvpn:

внутри папки easy-rsa создаем папку keys:

Теперь сгенерируем Diffie-Hellman длиной 2048 и поместим его в /etc/openvpn:

Еще сгенерируем файл ta.key в папку /etc/openvpn, для tls-auth:

Переходим в папку easy-rsa:

Тут лежит файл vars с какими-то переменными, редактируем его:

Крутим вниз пока не наткнемся на блок:

В первых 6 строках можете менять значения, можете оставить как есть. Я оставлю как есть. Пофиг. Главное нельзя оставлять их пустыми.

Но конкретно здесь нас интересует строка

Здесь значение меняем на server, что бы было вот так:

Можно поменять на любое другое, но не ебем мозг и меняем как я, потому что иначе вам придется менять значения в server.conf.

Если дали название отличное от server — запомните его.

Вот так. Сохраняем, закрываем файл.

Далее вводим следующее:

Будет предлогать вводить какие-то значения, но мы их меняли (или не меняли) в файле vars. Просто везде жмем Enter и все. При этом, дойдя до пункта Name, нажимая Enter будет то имя, которое вы указывали ранее в KEY_NAME у меня это server.

Следующим делом вводим:

где: — это то имя, которое вы давали в файле vars. Если ничего не давали, то по-умолчанию там было Easy-RSA. Я давал имя server, поэтому:

Точно таким же образом, везде жмем Enter. Даже там, где предложит ввести ‘A challenge password’, жмем enter.

Потом дважды вводим символ y, где попросит:

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

Теперь нам нужно переместить все сгенерированные ключи и сертификаты в папку /etc/openvpn.

Всё добро находится в папке /etc/oepnvpn/easy-rsa/keys. Нас интересуют 3 файла (исплючая dh3048.pem и ta.key, которые мы сгенерировали ранее) — ca.crt, server.crt, server.key,

где файлы server.crt и server.key — имеют название, которое вы указывали в KEY_NAME, я указывал server, помним да.

Перемещаем их следующим образом:

Идем обратно в папку openvpn:

Вводим к консоли ls и смотрим, какие файлы лежат. На данный момент должны быть следующие файлы: ca.crt, dh3048.pem (который мы генерировали ранее), server.conf (основной конфиг), server.crt, server.key и ta.key Еще может быть файл update-resolv-conf.

Теперь запускаем openvpn:

Проверяем, запустился ли:

Должно гореть зелененьким (лол), вы увидите надпись:

Проверяем, слушает ли порт:

Должно вывести один сервис, который слушает на порту, который вы указывали.

У меня вывод такой:

Все проверили, молодцы. Теперь остановим:

Делаем клиента, генерируем ключи.

Для начала нам нужно скопировать пример конфиг. файла для клиента.
Скопируем его в папочку /etc/openvpn/easy-rsa/keys и переименуем (даем расширение .ovpn):

Редактируем файл клиента:

Листаем файл вниз, натыкаемся на строку

где: my-server-1 — IP адрес вашего сервера. Тот, что пришел вам на почту или смотрите по команде ip addr | grep inet и ищите. 1194 — Порт, на котором слушает OpenVPN на вашем сервере, в моем случа это 16122.

Меняйте эту строку, я меняю:

Листаем ниже, находим строку:

стираем ее и меняем на:

Еще чуть ниже строка:

Меняем шифрование на то, которое вы указывали в server.conf. Я указывал AES-256-CBC:

Если вы в server.conf ничего не указывали, то эту строку не трогайте.

Все. Сохраняем и закрываем.

Теперь нужно сгенерировать ключи и серты для клиента.

Перейдем в папку easy-rsa:

где: client1 — название клиента. Может быть любым. Я сделал client1.

Таким же образом, как и с сервом, везде жмем Enter. И соглашаемся, нажимая y, там где это нужно.

Клиентский конфиг состоит из:

.ovpn файла. В моем случае это client.ovpn.

файла ca.crt — который общий для сервера и все клиентов.

файл ta.key — тоже общий для сервера и клиента. Это для tls-auth, что не обязательно.

файлов client1.crt и client1.key — которые индивидуальные для каждого клиента.

Дело в том, что все эти файлы нужны .ovpn конфигу, без них он не будет работать. Но не будем же мы их везде вместе таскать! Поэтому есть возможность все эти файлы строить в .ovpn конфиг, чтобы был один единый файл и все.

Нужно проделать кое-какие манипуляции, поэтому для удобства создаем папку client1:

Нужно скопировать туда конфиг.файл .ovpn и все серты и ключи,
по аналогии с сервером, файлы client1.crt и client1.key имеют названия специфические, в зависимости от того, какое вы указывали имя клиента, выполняя команду выше. Я назвал client1 поэтому у меня они называются именно так.

За одно копируем client.ovpn (называться может как угодно, хоть xuy.ovpn):

И не забываем про ta.key, которые лежит в папке openvpn:

Переходим в папку client1:

На данный момент там находится 5 файлов:

Теперь нужно быть внимательнее! В особенности с именами файлов.
Внедряем содержимое нужных файлов в наш конфиг .ovpn.

По очереди, в том порядке, в котором это у меня, выполняем следующие команды.

где client.ovpn название конфиг файла.

Теперь для client1.crt:

где client1.crt — серт. файл, которые генерировали выше.

Теперь для client1.key:

Теперь для ta.key, нужно для tls-auth:

Таким образом, все ключи и сертификаты теперь в одном файле .ovpn, и он может работать сам по себе.

Теперь нужно еще немного отредактировать файл client.ovpn:

Листаем, пока не наткнемся на блок:

Нам это не нужно, поэтому закоментируем их:

Собственно, конфиг клиента готов. Он будет работать, если вы запустите его на OpenVPN клиенте вашего устройства.

Можем запускать OpenVPN:

После любых манупуляций в файле server.conf, для того что бы применились изменения, нужно перезапускать OpenVPN:

Но я хочу еще проделать какие-то модификации на server.conf и client.ovpn

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

Сделать это легко. Но для начала, на всякий случай, сделаем backup:

теперь одной командой удаляем все комментарии (# и ; в начале строки) и пустые строки:

И оба наших конфига примут более читабельный вид.

И куда-нибудь в середину прихерачим следующее:

Куда-нибудь в конфиг, до начала сертификатов и ключей:

Таким образом, мой конфиг server.conf выглядит так:

А client.ovpn так (Безключей и сертификатов):

Можете использовать эти конфиги.

Разберем немного конфиг.

Какой протокол юзать, TCP или UDP?

UDP обычно работает быстрее.

TCP более надежный, стабильный, лучше обходит фаерволл — например можно повестить на порт 443.

UDP, также можно повесить на порт, который обычно не блокируют — 53.

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

На какой порт повесить? Лучше на нестандартный, как у меня. Или замаскировать под какой-то сервис — 443/ssl для tcp и 53/dns для udp

Какое шифрование использовать?

Используйте AES-256-CBC или AES-128-CBC. Если явно не задать, то по-умолчанию будет исопльзоваться Blowfish (cipher BF-CBC).
Этот параметр должен быть и на сервере и на клиенте. Если на сервере есть, на клиенте нет или они отличаются, может не законнектить.

Если не задавать, будет использоваться auth SHA1. Используйте auth SHA512 или auth SHA256. Этот параметр должен быть и на сервере и на клиенте. Если на сервере есть, на клиенте нет или они отличаются, может не законнектить.

По умолчанию будет записываться в файл какой-то, какие клиенты сейчас онлайн. Чтобы ничего не писало, нужно закомментировать строку. Я также ЗАЧЕМ то написал /dev/null 2>&1 .

Это то самое логирование OpenVPN которое для безопасности лучше выключить. Дело в том, что выключить его нельзя, а если закоментировать, то логи будут писаться в /var/log/syslog
Поэтому я раскоментировал и сказал писать в /dev/null.

Какие DNS юзать?

Юзайте паблик DNS от Google (8.8.8.8 и 8.8.4.4.) или от OpenDNS (208.67.222.222 и 208.67.220.220).

Утечка DNS под Windows и Linux

Если вы будете юзать этот конфиг на Windows, в конфиг добавляем следующую строку:

Да, вот так просто. Под MacOS с Tunnelblick все норм.

А под Linux есть файл update-resolv-conf, который находится в папке /etc/openvpn на клиентской машине. Файл может иметь название или update-resolv-conf или update-resolv-conf.sh. Поэтому на клиентском Линукс вводим в терминале:

И узнаем название файла.

Далее, в конфиг .ovpn нужно вставить следующие строки:

где update-resolv-conf — название файла, которое вы получили выше.

Перекидываем конфиг .ovpn с серва на клиент.

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

Если вы создавали пользователя и запрещали ssh коннект от рута, то первым делом нужно поместить .ovpn конфиг в домашнюю папку созданного пользователя. У меня это был pp-ruloh

Изменить права у файла:

Linux. Будем юзать sftp.

где 1488 — порт на котором слушает sshd.

Как законнектились, мы уже будем в домашней папке pp-ruloh. Можем посмотреть файлы — вводим ls.

Windows, linux, MacOS: скачиваем программу для работы по FTP — FileZilla
и подключаемся к серву по sftp. Нужено будет указать port sftp (у меня 1488), пользователя (pp-ruloh, ибо руту зарпетили). Копируем файл куда хотим и радуемся. Как пользоваться программой разберетесь сами.

Поднимаем OpenVPN скриптом

Поднять OpenVPN вручную вам не под силу? Не отчаивайтесь, у меня для вас хорошие новости!

На Github существует Open Source скрипт, который позволяет быстро и легко поднять OpenVPN сервер на вашем VPS. Скрипт называтся openvpn-install, и вот ссылка на Github . И этого скрипта есть куча форков, которые вы можете изучить.

Посмотреть исходный код можно здесь . Приступим. Работаем под пользователем root или суперпользователем.

Для начала, обновим систему:

Если вы уже пытались поднять OpenVPN вручную, но у вас ничего не получилось, то нужно сначала его полностью снести. Удаляем openvpn:

и установим нужные пакеты:

Скачиваем скрипт в домашнюю папку root:

И вы попадете в так называемый Инсталятор. Где нужно будет отвечать на вопросы или что-то вписывать. Для перехода на следующий этап установки жмите Enter.

Первый делом, предложит ввести внешний IP адрес, но вероятнее всего скрипт сам его определит:

Следующий этап, выбрать протокол. Я жму 1 и выбираю UDP. Далее, выбираете порт. Я поставлю, например 14000. После этого предложит выбрать DNS сервера. Выбор будет из Google, OpenDNS или текущих, которые на VPS и еще каких-то. Я выбираю OpenDNS, жму 3. После этого предложит ввести имя клиента. Я введу «pp-ruloh». Далее начнется скачивание-утановка пакетов, генерация ключей, сертификатов и конфигурационных файлов. когда все закончится, он поместит конфиг. в домашнюю папку юзера, от имени которого запсукался скрипт. То есть, сейчас конфиг лежит по адресу:

Собственно, на этом конфигурация OpenVPN скриптом завершается. Можно уже сейчас взять новый конфиг и использовать. Интересно, чего он там такого сгенерировал вам, посмотрим на конфиг pp-ruloh.ovpn:

(без ключей и сертификатов)

Все вроде бы нормально, да лучше auth SHA512 явно указать. Поэтому добавим

Обратите внимание, что скрипт уже запихнул фичу для предотвращения утечки DNS под клиент Windows:

Если у вас Linux или MacOS — эту строку лучше закомментировать.

Теперь посмотрим на серверный конфиг server.conf:

Здесь также добавляем auth SHA512 (а то работать не будет, если на клиенте указан а на серве нет), делаем verb 0. Также нужно проделать следующее. Нужно закомментировать строку.

Где-то выше писал, зачем он нужен. Получилось так:

Берем клиентский файл-конфиг и помещаем на ваше устройство. Об этом я писал выше.

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

Скрипт предложит создать нового клиент, удалить существующего (не сможет больше коннектиться) или удалить OpenVPN.

Клиенты OpenVPN под разные ОС

Поскольку OpenVPN не встроен по-умолчанию ни в одну популярную ОС, то требуется установить сторонее ПО — клиент OpenVPN.

Windows

Под Windows есть официальный клиент, называется OpenVPN GUI.
Скачать его можно на офф. сайте OpenVPN . Скачиваете, устанавливаете. Появится ярлык на раб. столе, после запуска — иконка в трее.

Далее, помещаете ваш .ovpn файл в папку config, в установленной папке OpenVPN. В общем, если устанавливать OpenVPN GUI по-умолчанию в папку Program Files, то адрес такой:

В эту папку кидаем конфиги .ovpn. Потом из трея можно запускать VPN. Все достаточно просто.

Linux

На Линукс в репозиориях вашего дистрибутива пакет скорее всего будет называется «openvpn» (еще может openvpn-client), и ставится следующим образом:

Если у вас Debian-подобные дистрибутивы (Debian, Ubuntu, Mint). Если у вас дистрибутив другой линейки — сами разберетесь как ставить.

Работает это следующим образом. У вас есть .ovpn файл, далее вы в терминале вводите команду:

где , собственно, путь до файла .ovpn.

Или можете скормить файл network-manager ‘ у.

MacOS

Под MacOS из клиентов OpenVPN я знаю только Tunnelblick. Скачать его можно здесь . Устанавливается просто, требует права суперпользователя. По-умолчанию будет отпрыать файлы с расширением .ovpn. Будет иконка в трее, там конектимся. Можно настроить, что бы коннектился к OpenVPN сразу при загрузке системы. Когда соеденение обрывается с VPN, интернет пропадает. В этом случае нужно вручную отсоеденяться от VPN.

Android

Официальный клиент OpenVPN Connect под Android доступен для скачивания на Google Play

iOS

Для iOS клиент скачиваем из AppStore .

Клиенты, предоставляемые провайдером VPN. Некоторые провайдеры предоставляеют свой собственный OpenVPN клиент под разные ОС и платформы. Использовать их или нет, решать вам. Но это потенциально не очень безопасно.

Запрещаем весь траффик не через OpenVPN на клиенте

Правила iptables. Только для адептов Луникса. Что делать если VPN внезапно отключился? Или вы забыли его включить вообще? Обычно, когда внезапно обнаруживаешь, что траффик идет не через VPN, и при этом ты не используешь Whonix, то через 3 секунды понимаешь что твои штаны полны говна. Что нужно делать чтобы явно ограничить весь траффик?

А вот и сами правила:

Было изменено на:

Есть у нас правила, че дальше? Теперь открываем терминал в вашем Линуксе

И создаем файл, который назовем vpn.rules:

Поместим туда все правила:

В самом верху файла пишем:

Далее, правила из кода выше. Копируете — вставляете, меняете

там где VPN_IP на IP вашего сервера (указан в .ovpn конфиге).

Запсукае скрипт из под рута или sudo:

Теперь у нас применились правила. Можете проверить — без VPN инет работать не будет. Этот скрипт можно запускать каждый раз. А можно сохранить правила:

И сделать сервис iptables автозапускающимся при загрузки системы:

Боремся с детектом OpenVPN

VPN может детектироваться конечным ресурсом (например сайт) какими-то хитро-выебанными способами. Для начала можете читануть статью на хабре

И смотрим строку «TCP/IP OS Fingerprinting»

Если у вас, как у меня, конфиг UDP, то можно проделать следующее. Мне помогает, если прописать

На клиенте .ovpn и сервере server.conf

6 КОММЕНТАРИИ

Полезная статья. Можно добавить, что key-direction стоит использовать в конфигах, ca.key не стоит хранить на сервере, а вместо гуглa поднять собственный или использовать dnscrypt.

Для избежания ситуации — впн отвалился и у вас полные штаны, хорошо справляется обычный виндовский firewall просто и надежно. Ну или можно установить и настроить comodo.

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

Источник: http://incashwetrust.biz/kak-podnyat-sobstvennyj-vpn-na-servere.html

Блог начинающего сисадмина

Здесь уже не будет ничего нового интересного, лучше загляните сюда: https://medium.com/@Amet13

суббота, 7 февраля 2015 г.

Настройка OpenVPN на VPS

Очередная миллионная заметка по настройке OpenVPN. В связи с санкциями в Крыму приходится пропускать трафик через VPS.

Если вы используете OpenVZ VPS, то скорее всего устройство TUN не включено.
Проверить это можно так:
[email protected]:

# ls /dev/tun
Если его нет, то нужно обратиться к хостеру VPS, они включат.

После того, как TUN вам включили, можно перейти к настройке.
Для примера использую Debian.

Обновляем пакеты, устанавливаем OpenVPN и переходим в рабочий каталог:
# apt-get update && apt-get upgrade
# apt-get install openvpn
# cd /usr/share/doc/openvpn/examples/easy-rsa/2.0/

Если хотите, то можно отредактировать переменные, я этого не делал:
# vim ./vars

Переходим в рабочий каталог, инициализируем переменные, чистим каталог keys и создаем сертификаты:
# . ./vars
# . ./clean-all
# ./build-ca
# ./build-key-server server
# ./build-dh

Переносим ключи в системный каталог:
# cp ./keys/ca.crt /etc/openvpn
# cp ./keys/server.crt /etc/openvpn
# cp ./keys/server.key /etc/openvpn
# cp ./keys/dh1024.pem /etc/openvpn

Создаем сертификат пользователя (можно несколько, но мне нужен был пока только один).
При генерации сертификата нужно будет ввести пароль, запомните его:
# ./build-key-pkcs12 vpn.home
# ls /usr/share/doc/openvpn/examples/easy-rsa/2.0/keys/vpn.home*

Правим настройки сервера:
# zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
# vim /etc/openvpn/server.conf
push «redirect-gateway def1 bypass-dhcp»
push «dhcp-option DNS 208.67.222.222»
push «dhcp-option DNS 208.67.220.220»
client-to-client

Добавляем правило IPTables в rc.local , где a.b.c.d — IP адрес сервера:
# vim /etc/rc.local
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT —to-source a.b.c.d
exit 0

Разрешаем форвардинг:
# vim /etc/sysctl.conf
net.ipv4.ip_forward=1

Перезагружаем VPS’ку:
# reboot

На этом настройка сервера окончена.
Далее необходимо заняться настройкой клиента. Я использую Linux Mint.

$ sudo apt-get install openvpn

Создаем рабочий каталог и скрипт запуска, заполняем его:
[email protected]

$ sudo vim /opt/openvpn/start_vpn.run
[email protected]

$ /usr/sbin/openvpn —config /opt/openvpn/myvpnconfig.ovpn

Создаем конфиг OpenVPN клиента и заполняем его:
[email protected]

$ sudo vim /opt/openvpn/myvpnconfig.ovpn
remote a.b.c.d 1194
client
dev tun
ping 10
comp-lzo
proto udp
tls-client
remote-cert-tls server
pkcs12 vpn.home.p12
verb 3
pull

Делаем скрипт запуска исполняемым и копируем ранее скачанные с сервера сертификаты в рабочий каталог:
[email protected]

$ sudo chmod +x /opt/openvpn/start_vpn.run
[email protected]

После этого VPN должен работать.

$ ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:1283132 errors:0 dropped:0 overruns:0 frame:0
TX packets:614443 errors:0 dropped:43 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:1752960275 (1.7 GB) TX bytes:97814022 (97.8 MB)

Источник: http://blog.amet13.name/2015/02/openvpn-vps.html