Поднимаем свой VPN за 10 баксов в месяц в течении 20 минут. Пошаговый мануал.

CUK77

Professional
Messages
1,193
Reputation
3
Reaction score
386
Points
83
Установка и настройка OpenVPN версии 2.1.3 на арендованном VDS/VPS с CentOS 5. Пошаговый мануал.

UPD: Исправил ман под разные архитектуры серверов.

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

Что нам понадобится?
- Арендованый VPS/VDS с root доступом.
Список провайдеров и организаций, предоставляющих такие сервера, можно найти на любом сайте, посвященному обзору хостинга, например тут
- Установленная на сервере CentOS 5.
Зачастую при заказе VPS/VDS провайдеры и организации предлогают сразу выбрать предустановленную ОС. Выбираем CentOS 5.
- Для полной анонимности - платежный метод, по которому невозможно узнать ваши личные данные.
Это может быть, например, виртуалка, купленная на plati.ru или платежная система типа w1.ru, персонализация в которой ПОКА не нужна и кошелек в которой можно пополнить через терминалы или обменом другой валюты. Списки обменников ищем на bestchange.ru или любом другом мониторинге обменников.
- Клиент для удаленного доступа на сервер по SSH под названием PuTTY
- Клиент для передчи данных по SFTP (Secret FTP) WinSCP
- OpenVPN GUI клиент для Windows, с помощью которого мы и будем подключаться к нашему VPN-у.

Что мы получим в итоге?
Как минимум:
- Сокрытие реального IP адреса.
- Сжатие траффика благодаря установленному алгоритму сжатия данных имени Лемпеля-Зива-Оберхеймера (LZO). Актуально для тех кто сидит на 3G.
- Собственноручный контроль над логами, как следствие - спокойный сон и крепкое здоровье.
- Небольшой опыт в собственноручном администрировании сервера, работающего на nix-ах =)

Итак, поехали

После оплаты VPD/VDS вам выдадут IP-адрес сервера и пароль для пользователя root.
Нам нужно зайти на сервер как root.
Запускаем PuTTY и вводим в строку Host Name (or IP address) IP нашего сервера, порт оставляем 22 (это порт SSH), жмем Open.
Для примера я буду использовать IP-адресс 156.156.156.156

Вводим root и жмакаем Enter.

Копируем наш пароль на сервер из тектовичка/админки хостера, в окне PuTTY жмем правую кнопку мыши (нажатие на правую кнопку мыши в PuTTY аналогично комманде Ctrl+V), жмакаем Enter.

Поздравляю, вы на зашли на сервер как root. Если получаем ответ Access denied - неправильно введен пароль.

Все комманды, указаные ниже, нужно просто копировать, вставлять в PuTTY и жмакать Enter ))

Для начала проверим наличие драйвера TAP\TUN такой коммандой:
Если комманда выведет что-то похожее на
то все в порядке.

Если же нет -
1) нужно пересобрать ядро дистрибутива самостоятельно
Это не так страшно как звучит и занимает 5 минут времени.
Подробный мануал тут.
2) нужно написать в саппорт хостера следующее "Пожалуйста, активируйте TUN/TAP устройства".

Итак, TAP\TUN на месте, устанавливаем пакеты, необходимые для OpenVPN.

Проверяем версию Centos и архитектуру сервера с командами.

Скачиваем необходимые пакеты:

Для архитектуры i386

Для архитектуры x86_64

Устанавливаем rpm-пакеты и добавляем репозитории:

Для Centos 5.x и i386
(для x86_64 архитектуры меняем "i386" на "x86_64")

Для Centos 6.x и i386 устанавливаем следующие rpm-пакеты и добавляем репозитории
(для x86_64 архитектуры меняем "i386" на "x86_64")

Копируем файлы OpenVPN в новую директорию.

Переходим к генерации ключей.

Загружаем переменные из vars в оболочку:
Удаляем из папки keys старые ключи и сертификаты:
Начинаем генерацию Master CA (Certificate Authority):
Во время генерации сертификата везде жмем Enter, кроме строки
Common Name (eg, your name or your server's hostname)
Сюда вписываем - это будет у нас имя ключа.

Дальше генерируем сертификат для сервера:
Во время генерации сертификата везде жмем Enter
На вопросы, требующие выбора Y/N везде отвечаем Y.

Сгенерируем сертификат клиента:
Во время генерации сертификата везде жмем Enter\
На вопросы, требуещие выбора Y/N везде отвечаем Y.

Сгенерируем ключ DH (Diffie Hellman):
Создадим ключ для TLS-аутентификации:
Все, мы сгенерировали все что нужно.
После проделаных действий в каталоге /etc/openvpn/2.0/keys появятся все наши ключи.
Файл ta.key будет в каталоге /etc/openvpn/2.0, скопируем его к ключам.

Создаем конфигурационный файл server.conf и открываем его на редактирование.
Если выдается ошибка о том что текстовый редактор Nano не установлен - устанавливаем его =)
И опять пробуем открыть файл конфига:
Помещаем в него следующие строки:
Выходим и сохраняемся- комбинация кнопок Ctrl+х , дальше буква Y и Enter.

Хочу прокомментировать некоторые параметры, указаные в конфиге.

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
Это DNS-ы принадлежащие opendns.com. При желании их можно заменить любыми Free DNS серверами, список прикреплен в самом низу статьи.

max-clients 2
Здесь указано максимальное кол-во одновременных подключений к серверу, в данном случае два клиента.

duplicate-cn
Строка указывает на то, что может быть использован один сертификат для нескольких клиентов.
Это если вы хотите дать попользоваться VPN-ом другу/брату/свату.
Если будете пользоваться только вы один - можете вообще убрать эту строку, а в max-clients указать 1.

verb 0
Строка указывает, как подробно нужно вести логи, значение от 0 до 3.
0 - логи не ведуться, 3 - логи ведуться подробно.

log /dev/null
status /dev/null
log-append /dev/null
Строки указывают, куда мы пишем/шлем логи =) А шлем мы их в нулл, другими словами (не вдаваясь в подробности) - удаляем.

Вернемся к нашим баранам и настроим сетевые параметры сервера.
Разрешим ip-fowrwarding:
Изменяем в файле значение net.ipv4.ip_forward на 1.
Выходим и сохраняемся.
Для применения параметров выполняем комманду:
Теперь нам нужно открыть порт 1194 (его мы прописали в конфиге, в файле openvpn.conf).
Для этого выполняем команду.
Если получаем сообщение об отсутствии утилиты, инсталируем ее:
И опять запускаем:
В появившимся окошке, похожем на старый-добрый Norton Commander, выбираем кнопку "Customize".

Дальше жмем ОК, потом еще раз ОК.

Теперь добавим правила в фаервол, включающие трансляцию адресов (NAT), дабы пакеты от клиента попадая на сервак могли уйти в инет и также вернуться назад:
ХХХ.ХХХ.ХХХ.ХХХ - IP-адрес вашего сервера.

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

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

Тепрь можно вернуться в любимую винду, инсталируем OpenVPN GUI.

После инсталяции не выключая PuTTY запускаем WinSCP.
В графу Host name вводим IP-адрес нашего сервера, Port number: 22, User name: root

Подключаемся, вводим пароль на сервер, видим каталоги и файлы на сервере в знакомом графическом формате =)

Переходим в папку /etc/openvpn/2.0/keys/
Копируем себе на винт в папку C:\Program Files(x86)\OpenVPN\config\ файлы и создаем тут же файл openvpn.ovpn, открываем его на редактирование блокнотом.
В него пишем следующее:
ХХХ.ХХХ.ХХХ.ХХХ - IP-адрес вашего сервера.

Ну и последний шаг - запускаем OpenVPN GUI, в трее на иконке правой кнопкой мыши -- Connect.

Если иконка в трее загорелась зеленым - радуемся и гордимся собой.

Идем на Whoer.net/Ip-Score, проверяем IP адрес.
Должен быть IP вашего VPS/VDS.

Если по Whoer светятся ваши родные DNS:
1) Ставим плагин для FireFox под названием DNS Cache, перезагружаем браузер, на иконке плагина (внизу справа) - правая кнопка мыши -- Flush DNS Cache.
Если не юзаем FireFox - жмем Win+R (Выполнить), вписываем ipconfig /flushdns
2) Если не помогла - заходим в настройки подключения (для основного адаптера + TAP-Win32 адаптера) и в свойствах IP4 прописываем DNS-ы от opendns.com (208.67.222.222 и 208.67.220.220) или любые другие Free DNS.

Для проверки входящего/ исходящего канала на сервере можно воспользоваться утилитой tcpdump.
Инсталируем ее на клиенте, т.е. на своем компе запускаем cmd -- ping mail.ru -t

На сервере запускаем tcpdump для прослушивания интерфейса tap0 и сниффинга уходящих с сервера пакетов:
Видим, что пакеты с сервера уходят не шифрованые =)

Для прослушивания канала между клиентом (компом) и сервером по интерфейсу eth0:
Видим абракадабру - все шифруется. Не видим абракадабру - что-то не так настроено, нужно разбираться.

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

Основная проблема с которой можно столкнуться:
При подключении к серверу в статусе OpenVPN GUI

В таком случае пишем письмо/тикет хостеру с просьбой включить TUN/TAP устройство или же пробуем пересобрать ядро дистрибутива самостоятельно.

Список Free DNS, которые можно юзать в настройках
http://clip2net.com/s/1PCld

Когда работаем со своим одним VPN-сервером каждый день, защиту от засвета IP при падении сервака можно настроить простым способом:

1. Узнаем свой основной шлюз: cmd >-> ipconfig /all
2. Предположим шлюз 192.168.0.1, а IP VPN-сервера 777.777.777.777
настраиваем маршрутизацию:
cmd >-> # route delete 0.0.0.0 >-> # route add 777.777.777.777 192.168.0.1

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

Для возврата значений по дефолту: cmd >-> # route add 0.0.0.0 192.168.0.1
 
Last edited by a moderator:

Carding

Professional
Messages
2,831
Reputation
17
Reaction score
2,017
Points
113

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


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

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

Итак для нас потребуется выделенный сервер с установленной операционной системой CentOS 5.

Установка и настройка своего vpn сервера.

Создавать впн сервер будем на базе исходников openvpn.net.
Поднимать сервер буду на базе оси centos 5.

итак идем на сайт и скачиваем дистрибутив серверного клиента.
https://openvpn.net/vpn-software-packages/
выбираем Centos или другую ось которая стоит на серваке

Тут выбираем конкретную версию оси которая установлена на нашем серваке. В нашем случае это Centos 5 32 бита

Скачиваем пакет.

Далее с помощью фтп менеджера заливаем дистрибутив на сервер. Советую использовать менеджер winscp - он бесплатен и обладает практически всем необходимым функционалом.

Подлючаемся к серваку, выбираем директорию куда закачиваем файл, я например закачиваю в директорию /home/ и начинаем копирование.

Как только копирование завершилось, подключаемся к серверу по ssh используя популярный клиент putty

Вводим логин, пароль, затем выполняем команды:

cd /home/
rpm -i openvpn-as-1.8.3-CentOS5.i386.rpm

Далее нам должно выдать:

The Access Server has been successfully installed in /usr/local/openvpn_as
Configuration log file has been written to /usr/local/openvpn_as/init.log
Please enter "passwd openvpn" to set the initial
administrative password, then login as "openvpn" to continue
configuration here: https://ip сервера:943/admin
To reconfigure manually, use the /usr/local/openvpn_as/bin/ovpn-init tool.

Access Server web UIs are available here:
Admin UI: https://ip сервера:943/admin
Client UI: https://ip сервера:943/

Далее конфигурируем созданного дефолтного пользователя для админки, устанавливаем ему пароль командой
passwd openvpn

Далее идем по адресу:

https://ip сервера:943/admin

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

Это вид админ панели нашего сервера.

Впринципе все дефолтные настройки нас вполне устраивают, на сайте openvpn.net кому интересно могут почитать о них более подробно, там все расписано досконально.

Я остановлюсь на нескольких моментах:

По дефолту на нашем сервере доступно создание только 2х пользователей нашего сервиса. Если хотите увеличить количество - то необходимо докупить лицензии на дополнительных пользователей. Сделать это можно на сайте openvpn.net

По ссылке user permission мы можем конфигуриировать пользователей нашего сервера. Давать им админ права, запрещать доступ временно или постоянно, удалять добавлять пользователей.

Добавление юзера.

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

adduser user1
passwd user1

Далее нажимаем кнопку start the server на главной странице,
все сервер готов к работе.

Для непосредственного подключения к впн необходимо:

Пройти по адресу

https://ip сервера:943/

Вводим тут логин и пасс нашего пользователя впн

На данной странице скачиваем клиент, устанавливаем его на своей рабочей машине.

После чего нажимаем кнопку Connect и принимаем все необходимые сертификаты.

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

Мы подключены к сети впн.

Дополнительные рекомендации по поводу впн, необходимые с моей точки зрения:
1) впн - это лишь один из многих способов обеспечения своей безопасности, не стоит считать что если вы работаете через впн - то этого достаточно.
2) для впн необходимо брать именно выделенный сервер. Не vds или vps. Это более относится к безопасности чем к работоспособности клиента.
3) моё мнение - нет особой разницы какой впн вы используете - дабл квадро или сингл. При желании вас найти - вас не спасут никакие дабл. Потому при выборе точки базирования впн сервера следует обратить внимание не на хороший пинг иили канал этого сервера, а на законы страны в которой сервер расположен, а так же на то как хорошо сотрудничают правоохранительные органы рекомой страны с тем регионом где мы собираемся работать.
Потому имхо дебилизм брать даблвпн юк-де и работать по еу - элементарный запрос вас вычислит. Старайтесь для сервера найти локации со слабым законодательством с сфере высоких технологий в сочетании с плохими отношениями с мировым сообществом.

Ну и не стоит работать в том регионе где вы находитесь физически и где расположен сервер вашего впн.
 
Last edited by a moderator:

Carding

Professional
Messages
2,831
Reputation
17
Reaction score
2,017
Points
113

Самоподнятый VPN / Поднимаем свой VPN​

8563e55cbddedef01b67e.png

Приветствую всех участников нашего официального канала форума Skynetzone.pw . По многочисленным просьбам, я выкладываю эту тему с подробной пошиговой инструкцией по созданию самаподнятого vpn.

Напоминаю! Администрация не несёт ответственности за контент, выложенный на канале. Данная статья создана исключительно для ознакомления и не призывает к действиям!

Поднимаем свой VPN Покупаем самые дешевый VPS на https://www.ramnode.com/vps.php

Обязательно KVM виртуализацию Тариф за 3.5$ с 256 MB ОЗУ [Premium] KVM SSD

256 MB ОЗУ нам хватит вполне для 5 устройств минимум.

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

Заходим по SSH(что такое SSH и т.д. узнаем в гугле, софт для подключения к SSH Putty):

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

Code:
apt-get upgrade

После запускаем автоматический установщик\настройщик VPN:

Code:
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

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

После установки в директории root будет конфиг нашего VPN

Скачиваем его например через FileZilla.

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

Code:
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

И введите имя нового конфига, конфиг так же появится в папке root

Настройка openVPN на Windows(скрытие IP):

Скачиваем и устанавливаем openVPN https://openvpn.net/index.php/open-source/downloads.html

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

Подключаемся.

Настройка openVPN на ubuntu(скрытие IP):

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

Устанавливаем openVPN

Code:
sudo apt-get install openvpn

Создаем файл конфига

Устанавливаем редактор nano(вы можете использовать любой):

Code:
sudo apt-get install nano

- во время установки подтверждаем "y"[/CODE]

Создаем и редактируем конфиг:

Code:
sudo nano /etc/openvpn/config.conf

Открываем текстовым редактором конфиг скачанный с сервера VPS,копируем все что там есть и вставляем в терминал в созданный файл config.conf

Жмем ctrl+o для сохранения и ctrl+x для выхода

Запускаем:

Code:
sudo openvpn --config /etc/openvpn/config.conf

Если хотим запускать VPN автоматом после каждой перезагрузки системы:

Code:
sudo openvpn --config /etc/openvpn/config.conf

Анонимность данного способа:

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

Такой VPN отлично подойдет для повседневного использования везде если вы хотите:
  • Скрыть свой реальный IP
  • Скрыть свою дятельность от провайдера
  • Использовать в различных кафе и колхозных вайфай сетях
  • Использовать что бы обойти блокировки на различных ресурсах
Лично я создал 2 конфига себе, и использую постоянно. На ноуте и на телефоне.

У кого после настройки нет подключения к серверу через openVPN, пробуйте при выполнении команды:

Code:
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

Выбрать протокол TCP а не UDP

Решение ошибки:

Code:
ERROR: The certificate of `raw.githubusercontent.com' is not trusted.
ERROR: The certificate of `raw.githubusercontent.com' hasn't got a known issuer.

Выполнить команду:

Code:
sudo apt-get install ca-certificates

Определение туннеля (двусторонний пинг часто на 2ip.ru при проверке показывает). Вырубаем используя iptables:

Code:
# iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP
# iptables -A INPUT -p icmp --icmp-type echo-reply -j DRO
# iptables -A INPUT -p icmp --icmp-type echo-request -j REJECT

Эти команды заблокируют ICMP пакеты без каких-либо сообщений об ошибках от сервера.

При использовании VPN советую повысить свою анонимность используя DNS от CloudFlare(при установки скрипта на VPS выбирайте DNS 1.1.1.1) или уже в системе смените:

Code:
1.1.1.1
1.0.0.1
2606:4700:4700::1111
2606:4700:4700::1001

И вот что я полчил для повседневной работы:

9d3652adaa.jpg

bb091d0d29.jpg


Поднимаем свой openvpn​

Всем доброго времени суток.

В данном мини-гайде я расскажу как можно поднять свой vpn сервер для анонимного просмотра прона, а также для самокеков чего либо. Погнали.

bef8ca19-2da5-4196-a497-ad7bce64c2d8.png

Для начала нам нужен VDS , либо VPS.

Перед арендой VDS/VPS поинтересуйтесь, поддерживается ли драйвер TUN/TAP. Некоторые провайдеры требуют дополнительной оплаты для подключения TUN/TAP.

После того как мы приобрели сервер подключаемся по SSH, я использую Putty

Для начала снесем rsyslog дабы отключить все логи.

Code:
cd /var/log
rm -r *
apt-get remove rsyslog

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

Code:
apt-get update
apt-get install git
cd /root
git clone https://github.com/Nyr/openvpn-install.git
cd openvpn-install
chmod +x openvpn-install.sh
./openvpn-install.sh

288af2d2-d9ce-4b07-afce-46c4c2db1e41.png

Видим приветствие, и возможность указать ip на котором будет работать OpenVPN

В нашем случаем просто жмем enter, и продолжаем

332bf6e1493fae2d22a42.png

Тут ставим цифру 2, тем самым указываем серверу что работать нужно по tcp

45c0d6a76bc302dc4cf5d.png

Тут указываем порт который будет прослушивать openvpn

Либо оставляем стандартный либо меняем, я сменю на 55822

2c862b4e158f6c92af5e7.png

Тут выбираем днс который будет использовать vpn сервер

Я возьму от гугла

45c3a863e7a63d62b8b5a.png

Тут пишем что хотим, без спецсимволов

Дальше скрипт нам предложит установить OpenVPN если в нас его нет.

Затем сгенерируются ключи, после нам сообщат что все готово.

Переходим в домашнюю директорию

Code:
cd /root

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

В моем случае на винде ищем возле putty файл pscp.exe, открываем консоль, переходим в папку с указанным выше файлом.

набираем

Code:
scp ваш_логин@ip впс:/root/client.ovpn C:\client.ovpn

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

89dbcc7c86605c43ef6bb.png

собственно наш кофиг в нас

Теперь отключим логи openvpn, перейдем в папку с конфигом сервера.

Code:
cd /etc/openvp

откроем редактором server.conf

Code:
nano server.conf

переходим в конец файла, видим данную строку

23d8bc70aa34448aa4f93.png

удаляем ее

Теперь в конец добавляем 2 строки

Code:
log /dev/null
status /dev/null

этим самым мы отключаем запись логов в файл.

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

service openvpn restart

все готово

качаем впн клиент под винду

https://swupdate.openvpn.org/community/releases/openvpn-install-2.4.3-I601.exe

Устанавливаем, наш конфиг кидаем в папку (путь к openvpn)\config

Теперь запускаем OpenVPN GUI, идем в трей, пкм по иконке openvpn->Соединить

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

d7dd396c0fb9e779ffaf3.png

Если хотим меняем часовой пояс.

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

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

Code:
cd /root/openvpn-install
./openvpn-install.sh
./root/openvpn-admin/сukiepяo-hues-os/install
d8bec6bfa0a2a96090bde.png

Мы можем добавить юзера, удалить юзера, удалить openvpn
 
Last edited:

Carding 4 Carders

Professional
Messages
2,731
Reputation
12
Reaction score
1,302
Points
113

Создание своего VPN с помощью Shadowsocks и обфускация трафика​

К написанию этой статьи привело размышление: "А так ли эффективны сервисы VPN и Tor в частности?" И вот, после недолгого гугления всплыли неутешительные факты:
  • Провайдеры детектят любой подозрительный трафик и намеренно занижают скорость интернет-соединения
  • Они же (и те, кто держат сервера с VPN) идут на поводу у РосКомНадзора/Федеральной комисси по связи/etc., и при надобности могут выдать последним ключи шифрования
  • Некоторые провайдеры VPN вообще не шифруют трафик
  • Как правило, на серверах VPN используют OpenVPN, либо же его модифицированную версию (минус ли это - решать вам)
  • Провайдеры VPN ограничивают количество устройств на тарифе, или режут определённый вид трафика (например, торренты)
  • Tor, хоть и шифрует трафик, не обеспечивает полную анонимность - на выходной ноде вполне возможно перехватывать трафик, да и на многие сайты с ним невозможно зайти
Возникает закономерный вопрос - так чем, черт возьми, пользоваться? Тут ответ приходит, внезапно, из Китая - Shadowsocks.

Что это такое?​

Как говорит нам англоязычная Википедия: "Shadowsocks - это бесплатный проект протокола шифрования с открытым исходным кодом, широко используемый в материковом Китае для обхода цензуры в Интернете". Действительно, он там используется для обхода знаменитого "Золотого щита", которым так гордится китайское правительство, и делает это весьма успешно.

Работает он в связке "Сервер-клиент" - трафик шифруется у клиента, пересылается на сервер, там расшифровывается и выпускается в Интернет. Причём и сервер, и клиент вы настраиваете сами - никакой утечки информации или попадании её не в те руки, плюс вы сами вольны выбирать алгоритм шифрования.

Более подробную информацию можно получить на сайте проекта

Подготовительный этап​

Для начала нам потребуется сервер. Где его брать я вам говорить не буду, т.к. в интернете много компаний предоставляют облачные сервера. Для Shadowsocks достаточно самого дешёвого - мой крутится на сервере с 1 ядром, 400 мегабайтами оперативной памяти и 5 гигабайтами дискового пространства, и этого вполне хватает. Главный же критерий тут - скорость соединения и место расположения сервера - для обхода блокировок лучше брать в Америке, Франции или Италии. Главное - безлимитный трафик (но если вы пользуетесь интернетом не так активно, то можно и ограниченный)

Далее переходим к выбору серверной ОС - тут желательно выбрать Ubuntu 64x, но можно либо Debian, либо CentOS. В этой же статье будет описываться сервер с Ubuntu 18.04

Если вы желаете полной анонимности, то платить за такой сервер следует биткойнами, и нигде не указывать свои данные (но это уже для незаконных действий, благо мы с вами не такие)

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

Сервер арендован, ОС поставлена, можно приступать к настройке самого Shadowsocks

Сначала обновимся

Code:
apt update && apt upgrade

Затем поставим сам Shadowsocks

Code:
apt install shadowsocks-libev

Тут нужно небольшое пояснение: shadowsocks-libev - Shadowsocks, переписанный на чистом Си

Затем откроем конфигурационный файл редактором nano

Code:
nano /etc/shadowsocks-libev/config.json

Следует рассказать о назначении некоторых параметров:
  • server - адрес вашего сервера, следует заменить на реальный адрес вашего сервера
  • server_port - порт, на котором будет открыт ваш сервер, можно поменять на любой, кроме тех, которые уже заняты
  • local_port - порт для связи внутри сервера, оставьте дефолтным
  • password - пароль от вашего соединения, поменяйте на более заковыристый
  • timeout - время, после которого сервер разрывает соединение, если не поступило никаких данных. Вместо 60 секунд лучше ввести 10, т.к. больше многие клиенты не поддерживают
  • method - метод шифрования трафика, лучше оставить дефолтным, либо поменять на предпочтительный
Остальных параметров нет в оригинальном файле, но в дальнейшем мы их введём.

Сохраняем файл при помощи Ctrl-O, Enter, а затем выходим с помощью Ctrl-X. Советую вам где-нибудь записать или сфотографировать всё то, что мы ввели.

Теперь добавим Shadowsocks в автозапуск:

Code:
systemctl enable shadowsocks-libev

systemctl restart shadowsocks-libev

Ну вот и всё! Базовый сервер настроен, перейдём к настройке клиента

Настройка клиента​

Windows

Идём на официальный сайт и качаем клиент для Windows

Затем распаковываем в удобное для нас место (Я распаковывал в корень C), запускаем, и видим следующее:

ff7618282f7e1aa026e11.png

Заполняем все пункты так же, как и в конфигурационном файле, порт прокси не трогаем, нажимаем "Применить", и всё!

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

Android

В Google Play ищем приложение Shadowsocks, устанавливаем, и настраиваем по аналогии с Windows

(Совет: Дабы не мучаться с вводом длинного пароля, можно выбрать в приложении пункт "Сканировать QR-код", а на Windows (где клиент уже настроен) выбрать пункт меню "Серверы -> Поделиться конфигурацией сервера")

Linux

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

Затем открываем с помощью nano конфигурационный файл:

Code:
nano /etc/shadowsocks-libev/config.json

И заполняем аналогично тому, как мы заполняли его на сервере

Затем вводим следующее для запуска:

Code:
sudo ss-local -c /etc/shadowsocks-libev/config.json

Чтобы соединение было и после перезапуска клиента, добавляем сервис, создав файл ss-local.service:

Code:
sudo nano /etc/systemd/system/ss-local.service

В него вставляем следующее:

Code:
[Unit]
Description=Daemon to start Shadowsocks Client
Wants=network-online.target
After=network.target

[Service]
Type=simple
ExecStart=/usr/bin/ss-local -c /etc/shadowsocks/config.json

[Install]
WantedBy=multi-user.target

Выходим, и прописываем последнюю команду:

Code:
sudo systemctl daemon-reload && sudo systemctl enable ss-local.service && sudo systemctl start ss-local.service

Теперь перейдём к обфускации трафика

Обфускация трафика​

Для чего она нужна? Ну, прежде всего, это дополнительная защита вашего трафика от прослушивания: тот, кто попытается отследить ваши посещения, будет путаться - то ли вы На Ютуб зашли, то ли вы картинки с котиками смотрите

Хватит болтовни, приступим к делу.

Для начала скачиваем плагин:

Code:
apt install simple-obfs

Затем нам потребуется отредактировать конфиг:

Code:
nano /etc/shadowsocks-libev/config.json

В нём мы добавляем в самый конец две строчки, которые мы пропустили во время первоначальной настройки:
  • plugin - активирует этот самый плагин, туда вставляем "obfs-server"
  • plugin_opts - задаёт параметры запуска плагина, в данном случае вводим как на картинке, подставляя вместо www.vk.com любой сайт
Перезапускаем всё это добро:

Код:Скопировать в буфер обмена

systemctl restart shadowsocks-libev

Перейдём к настройке клиентов:
  • в Windows - скачиваем плагин с данного сайта, и распаковываем в директорию Shadowsocks. Затем, в Редактировании серверов в поле Плагин вставляем obfs-local, а в поле Опции плагина - всё то же самое, что мы вставляли в конфиг
  • на Android - скачиваем в Google Play Simple Obfuscation, и в настройках конфига сервера Shadowsocks, в графе Плагины, выбираем данное приложение и вводим всё так же, как на Windows
  • в Linux - скачиваем плагин (та же команда, что и для сервера), редактируем конфиг, добавляя эти два параметра, и перезагружаем клиент
Ну, вот и всё! Персональный сервер с VPN и обфускацией трафика готов!

Далее будет рассмотрен плагин v2ray, пришедший на замену simple-obfs (который уже устарел), и то, как создать подобие сети Tor с входными и выходными нодами.

Вы спросите: "Ну, насчёт первого понятно, а зачем второе?"

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

Ну что, приступим!

Начнём с настройки сервера с плагином v2ray.

v2ray

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

Ну, начнём с очевидного - вам нужен сервер. Как его выбрать - смотрите в первой статье. ОС, которая использовалась на сервере для написания данной статьи - Ubuntu 18.04 64x.

Сначала обновимся:

Code:
sudo apt update && sudo apt upgrade

Затем установим сам shadowsocks:

Code:
sudo apt install shadowsocks-libev

Затем идём на данную страницу https://github.com/shadowsocks/v2ray-plugin/releases, копируем ссылку на последний релиз для нашего сервера и скачиваем его командой wget:

Code:
wget https://github.com/shadowsocks/v2ray-plugin/releases

Распаковываем скачанный архив (название может отличатся):

Code:
sudo tar -xf v2ray-plugin-linux-amd64-v1.3.0.tar.gz

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

Code:
sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin

Теперь разрешим плагину и Shadowsocks использовать привилегированные порты:

Code:
sudo setcap 'cap_net_bind_service=+eip' /etc/shadowsocks-libev/v2ray-plugin

sudo setcap 'cap_net_bind_service=+eip' /usr/bin/ss-server

Создаём файл конфигурации, с которым будет работать Shadowsocks, в nano:

Code:
sudo nano /etc/shadowsocks-libev/v2ray.json

и вставляем следующее:

Code:
JSON:Скопировать в буфер обмена

{
    "server":"0.0.0.0",
    "server_port":443,
    "password":"ваш пароль",
    "local_port":1080,
    "timeout":300,
    "method":"chacha20-ietf-poly1305",
    "fast_open":true,
    "reuse_port":true,
    "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
    "plugin_opts":"server",
    "nameserver":"ваш DNS сервер"
}

В поля password и nameserver вставляем ваши пароль и адрес DNS сервера соответственно. Также вы можете изменить метод шифрования, если вас не устраивает этот. Сохраняемся (Ctrl-O, Enter) и выходим (Ctrl-X)

Теперь создадим сервис ss-v2ray.service:

Code:
sudo nano /etc/systemd/system/ss-v2ray.service

И вставим в него следующее:

Code:
[Unit]
Description=Shadowsocks-libev with V2RAY-websocket obfuscation
Documentation=man:shadowsocks-libev(8)
After=network.target

[Service]
Type=simple
User=nobody
Group=nogroup
LimitNOFILE=51200
ExecStart=/usr/bin/ss-server -c /etc/shadowsocks-libev/v2ray.json

[Install]
WantedBy=multi-user.target

Сохраняемся и выходим.

Затем включаем и рестартуем сервис:

Code:
sudo systemctl enable ss-v2ray.service && sudo systemctl restart ss-v2ray.service

Настройка сервера завершена!

Настройка клиента​

Пара нюансов:

1. В Windows вам нужно скачать версию под вашу архитектуру, и переименовать её в v2ray.exe, а в настойках Shadowsocks, в Опциях плагина указать параметр host=example.com, где example.com - тот сайт, куда "идёт" трафик

2. В Linux - скачиваем плагин, перемещаем туда же, куда перемещали и на сервере. Затем в config.json указываем всё то же, что указывали в v2ray.json, меняя 0.0.0.0 в строке "server" на адрес сервера, и "server" на "host=example.com" в строке "plugin_opts"

3. На Android - просто скачиваем v2ray plugin в Google Play и указываем в настройках плагина, в опции host, любой сайт

Настройка клиента завершена!

Теперь перейдём к созданию подобия сети Tor

ShadowTor (да, я решил это так назвать, и не спрашивайте зачем)

ВНИМАНИЕ! Здесь требуется уже 2 сервера

Настройка выходной ноды​

Выходная нода настраивается точно также, как и просто сервер с Shadowsocks (советую поставить на него v2ray или simple-obfs)

Настройка входной ноды

На неё мы ставим Shadowsocks, и настраиваем как клиент, чтобы он подключался к нашей выходной ноде

Затем ставим HAProxy:

Code:
sudo apt install haproxy

Потом нам нужно отредактировать файл настроек HAProxy:

Code:
nano /etc/haproxy/haproxy.cfg

В котором заменим строку в секции default:

Code:
mode     http

на

Code:
mode    tcp

Затем, в самый конец файла, мы вставим следующее:

Code:
frontend ss-in
        bind *:80
        default_backend ss-out
backend ss-out
        server server1 127.0.0.1:1080

И всё!

Перейдём к настройке клиента

Настройка клиента​

Здесь нет ничего сложного - просто настраиваем использование интернета программами через SOCKS5 прокси, который теперь находится по адресу ip_входной_ноды:80

Теперь весь трафик сначала будет идти на входную ноду, затем от неё на выходную, а только лишь потом - в интернет.
 
Top