Поднимаем свой socks5 proxy-сервер

Вводятся постоянные блокировки, и может возникнуть потребность в бюджетном способе их обхода, например, использование socks5. Как это сделать? Рассказываем в нашем материале.

Если у вас нет своей VDS

Берем, регистрируемся на digitalocean.com, за регистрацию по реферальной ссылке получаем 10$.

Простой способ поднятия VPN

  1. Создайте аккаунт на Digital Ocean и добавьте свои платежные данные.
  2. Заходим сюда.
  3. Нажимаем кнопку Digital Ocean.
  4. Скрипт собирает droplet c vpn после установки отдаёт настройки с vpn и все, пользуетесь на здоровье.

И того, всего нужно сделать 3 клика.

Правда это будет стоить $5 в месяц, но можно легко разделить на друзей.

Если кто тестировал VPN в три клика на DigitalOcean и не получалось подключить клиента с Win 10 и в «диспетчере событий» (eventvwr.msc) появляется error 720, то в «Диспетчере устройств» (devmgmt.msc) удалите все сетевые адаптеры начинающиеся с «WAN Miniport» и обновите конфигурацию оборудования. После всё будет работать.

Не очень простой способ поднятия socks5

  • Выберете самый дешевый тариф как описано ниже (у вас будут списывать деньги за час, а не сразу за весь месяц)
  • Создаем новый droplet любой конфигурации, минимальный стоит 5$/месяц, трафик 1TB, чуть дороже 10$/месяц — трафик 2TB, 20$ — 4TB. Операционная система ubuntu 16.04.4 x64 подойдет идеально.

socks5
Просто создайте дроплет. Меню может изменится в будущем, но все будет понятно

socks5
Выберете Ubuntu 16.04.

socks5
Выберите самый дешевый тариф. Провайдеры типа Vulture или Hetzner дешевле, но у DO отличнейший сервис

 

socks5
Выберите регион, который ближе всего к вашему

Вы можете заметить, что у вас нет ssh ключа в вашем аккаунте. Если так, то вот чуть про ssh ключи и как их настроить

Если вы пользователь Windows — не беспокойтесь, я расскажу как легко работать с ssh ключами в Windows.

Доступ до вашего VDS

socks5

Если вы Linux или Mac пользователь, то вы скорее всего уже знаете как сгенерировать ssh ключи и как использовать их. В этом случае, просто загрузите приватный ключ на ваш аккаунт Digital Ocean и проследуйте дальше.

Также — включение двухфакторной аутентификации добавит безопасности и избавит от головной боли в случае чего.
socks5
Это меню находит в разделе Settings -> Security tab

socks5
Загрузка вашего ключа это просто копирование и вставка вашего публичного ключа

Есть один момент — DO ожидает формат вашего ключа как если бы он был сгенерирован Linux ssh генератором. Это выглядит вот так:

ssh-rsa AAAAB3NzaC ...7QpNuybOgF root@proglib-ubuntu

Теперь часть для windows пользователей

Я лично использую Putty и PuttyGen. SSH ключи — это базовый метод контроля Linux серверов и защищенного доступа. Можно прочитать про это на википедии. Если вы Windows пользователь ssh консоль это тоже самое как и cmd.exe.

Не беспокойтесь об этом, на самом деле это довольно просто.

Но если вы сгенерировали ключи через Putty, ваш публичный ключ будет выглядеть как то так и в таком виде он не будет работать с Ubuntu:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20180413"
AAAAB3NzaC1yc2EAAAABJQAAAQEAuBflEQeTW9xfNI8N3krfFzxo8iU/NV/3cgxR
d2dkWZwYTaPaJsAoJFPtWhmsRuFuw7naZZOo/VFiqCuuYGaQcYRLrDqvfFjAusJg
B1ZK2YY57kz/ulzO9LqiVta+Fql4jL5244z9FNHF10YXbBZsmYQikAWJCItCxvZh
goY74Sfa5lPRfGojfC0xwayObJjqRcI9PS7z66ixRqO05vPMBekt/7fKoXQ+pUCP
LOVeH8AAWdaRWkvT6waCFSmjVBwfkHoghtR9pp/PZihAxpS5dM8H7AJXlvLEhNSp
6smFlkkz+XU3d3Z2FqSLV9K6pBNlNCRn+G/60xVtTqGDAsdPNw==
---- END SSH2 PUBLIC KEY ----

Убедиться, что ваш ключ будет работать с DO можно следуя этим указаниям

  • Создать ключ используя Linux как описано здесь. Вы будете использовать этот ключ на сервере DO.
  • Сохраните новые созданные публичный и приватные ключи где нибудь на своем компьютере
  • Загрузите приватный ключ в PuttyGen через Conversion -> Import Key
  • Затем нажмите "save private key" — вы будете использовать этот ключ с Putty позже

socks5Конвертирование ключа в PuttyGen

Если вы не имеет доступа до Linux консоли, вы можете сгенерировать ключи используя следующие действия**:

  • Создайте дроплет в DO, сбросьте root пароль (смотрите картинку), откройте в онлайн консоли. Создайте ключи там и используйте команду cat для вывода ключа
  • Создайте дроплет в DO, сбросьте root пароль, откройте Putty и введите логин, пароль
  • В обоих случаях — будет проще создать новый дроплет после того, как нужные ключи будут установлены

 

socks5
Это меню позволяет сбросить пароли и запустить онлайн консоль

Наконец-то получить доступ до своего дроплета используя Putty и ключи

  • Создайте новое соединение в Putty
  • Введите ваш IP адрес и порт (обычно 22)
  • Введите имя для вашего соединения и нажмите сохранить
  • Пойдите в data -> Auto-login username и введите root
  • Пойдите в data -> SSH -> Auth и выберет приватный ключ, который вы сохранили с помощью PuttyGen;
  • Не забудьте вернуться обратно в сессию после всех настроек

socks5
socks5
socks5

Настройка вашего VDS и прокси сервера

Теперь у вас есть ваш собственный VDS и ssh терминал с root доступом до него. Отлично!

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

socks5

Поднятие socks5 через Docker

Выбираем при создании Droplet в разделе One-click Apps образ Docker:
socks5

Логинимся на сервер через ssh и загружаем готовый Docker-образ и запускаем его:


docker pull dijedodol/simple-socks5-server
docker run -it --rm -p 1080:1080 -e 'SSS_USERNAME=your_username' -e 'SSS_PASSWORD=your_password' dijedodol/simple-socks5-server

Таким образом, вы создали прокси сервер с логином your_username и паролем your_password c портом 1080. См. секцию Использование socks5 для добавления настроек в приложение Telegram.

Если хочется сделать свой велосипед

После создания авторизуемся как root, используя ssh и выполняем следующие команды (должны работать):

apt-get update
apt-get upgrade
apt-get install build-essential libwrap0-dev libpam0g-dev libkrb5-dev libsasl2-dev
wget https://www.inet.no/dante/files/dante-1.4.1.tar.gz
tar -xvf dante-1.4.1.tar.gz
cd dante-1.4.1

apt-get install libwrap0 libwrap0-dev
apt-get install gcc make

mkdir /home/dante
./configure --prefix=/home/dante
make
make install

echo '
logoutput: syslog /var/log/danted.log
internal: eth0 port = 1080
external: eth0
 
socksmethod: username
user.privileged: root
user.unprivileged: nobody
 
client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    log: error
}
 
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    command: connect
    log: error
    method: username
}' > /home/dante/danted.conf

# не забудьте создать пользователя
sudo useradd --shell /usr/sbin/nologin -m soksuser && sudo passwd soksuser
# нужно добавить ip, login, password, port (в вашем случае 1080) в ваш клиент socks5
# установливаем ufw 
sudo apt-get install ufw
sudo ufw status

# https://wiki.dieg.info/socks
sudo ufw allow ssh
sudo ufw allow proto tcp from any to any port 1080
sudo ufw status numbered
sudo ufw enable

# нам нужно удостовериться, что сервис запустится при перезагрузке

sudo apt-get install cron
crontab -e
# вставьте в crontab
# взято из anacron
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=your_email@some_mail.com
# 
# запуск сервера как демона
/home/dante/sbin/sockd -f /home/dante/danted.conf -D

 

Можно из под ssh это сделать используя vim, либо подключитесь по ftp/sftp и отредактруйте файл текстовым редактором
Важный момент — юзера стоит создавать с флагом --shell /usr/sbin/nologin
Таким образом, этот юзер не сможет шариться по VPS через ssh. Особенно учитывая что пасс от него летает по сети в открытом виде.
Теперь создаем пользователя для прокси

sudo useradd --shell /usr/sbin/nologin -m sockduser && sudo passwd sockduser

вводим ему пароль дважды и запоминаем

Использование socks5

socks5Hostname это IP адрес вашего дроплета. Порт из конфига данте. Логин и пароль, тот который вы выбрали

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

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

 

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Контент-менеджер
по итогам собеседования
Data Scientist (стажер)
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ