Как обойти блокировку Telegram в России с помощью протокола SOCKS5. Удаленный доступ через прокси Настроить свой socks5 прокси сервер

Приветствую! Сегодня мы будем настраивать socks5. Довольно таки часто задают такой вопрос -Как настроить socks5 прокси. Хотелось бы отметить что существенных отличий от настройки от http нет. Единственное отличие это немного видоизменён основной конфигуратор 3proxy.
Что же- начнём.
Для начала покупаем сервер. Я буду разбирать на примере хостинга с которым привык работать. Указываю реф ссылку, потому что именно тем, кто зарегистрировался по рефке я готов помочь в решении проблем, возникших при настройки прокси. А так же я предоставлю свой личный промо код, который даст вам 250 руб бонусом при пополнение баланса от 250 руб.

Теперь нам надо пополнить баланс (минимальный платёж 250 руб), но нам надо пополнить на 270 руб на всякий случай, чтобы воспользоваться промо-кодом и получить ещё + 250 руб бонусом. Переходим во вкладку баланс и пополняем счёт удобным для вас способом.

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

и вводим мой бонус код «proksik»

И получаем бонус))) Теперь у вас на счету должна появится цифра 516 руб, которой хватит вам на 133 дня

Дожидаемся активации сервера (сервер был заказан в момент регистрации).
Если сервер активен то он появится во вкладке «сервер» и ему будет при вязан ip

Она подгрузится моментально. Теперь нам надо переустановить ОС на нужную нам Ubuntu 16-04 x86-64

Переходим опять во вкладку «сеть» и жмём на «переустановка»

Выбираем Ubuntu 16-04 x86-64 и переустанавливаем ОС.

На почту придёт новое письмо с данными от сервера. Нас интересует пароль от SSH.

Подготовительные работы закончены. Приступим к настройки самих прокси. Как мы уже знаем у нас есть сервер и /64 ipv6 подсеть.

Нам потребуется ssh клиент. У кого нет качаем .

Устанавливаем его и запускаем. Вводим наш ip от сервера, пароль и логинимся.

Открываются консоль и ftp клиент. Сворачиваем лишнее и оставляем только чёрную консоль. Работать будем тут.
Всё что требуется от вас -это чётко повторять и не допускать маленьких ошибок и идти последовательно шаг за шагом.
Для того чтобы вставить команду в консоль-просто тапаем на консоль правой кнопкой мышки (ПКМ)

Приступаем. Копируем первую команду и вставляем в консоль. Жмём Enter.

apt-get -y install vim git gcc g++ make

Открываем конфигуратор sysctl.conf

И в конце документа (для перемещения используем стрелочки на клавиатуре) добавляем следующее

net.ipv6.ip_nonlocal_bind = 1

И сохраняем файл, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Применяем изменения, для этого вводим команду ниже и жмём Enter

Скачиваем и компилируем последнюю версию ndppd

cd ~ git clone https://anonscm.debian.org/cgit/collab-maint/ndppd.git cd ~/ndppd make all && make install

Создаем конфигурационный файл, для этого используем команду ниже

Вставляем содержимое, изменив подсеть на свою

route-ttl 30000 proxy eth0 { router no timeout 500 ttl 30000 rule 2a07:14c0:0:8198::/64 { static } }

Сохраняем конфиг, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Запускаем ndppd.conf

ndppd -d -c /root/ndppd/ndppd.conf

В консоли должны появится 3 строчки как на скрине ниже

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

Добавляем адрес на ens3, изменив свою подсеть в команде что написана ниже

ip -6 addr add 2a07:14c0:0:8198::2/64 dev eth0

На скрине ниже видно что мы берём свою подсеть и вставялем после двоеточия цифру 2

Добавляем маршрут по умолчанию на ens3

ip -6 route add default via 2a07:14c0:0:8198::1

Так же берётся просто подсеть (4 сектора) без /64, после двоеточия прописывается цифра 1

И прикрепляем нашу сеть к ens3

ip -6 route add local 2a07:14c0:0:8198::/64 dev eth0

Тут меняется только подсеть в таком виде как нам выдал хостинг.

Cкачиваем и устанавливаем 3proxy (можете копировать сразу 4 команды и после отработки 3 команд нажать enter)

cd ~ git clone https://github.com/z3APA3A/3proxy.git cd 3proxy/ make -f Makefile.Linux

Создаем файл ip.list с нужным количеством ipv6 адресов сгенерированных в случайном порядке.
Для этого скачиваем c моего сайта скрипт генерации файла ip.list

wget http://сайт/random-ipv6_64-address-generator.sh

Сменим права на скрипт

chmod +x random-ipv6_64-address-generator.sh

Правим скрипт

nano random-ipv6_64-address-generator.sh

Нам надо поменять 2 значения
MAXCOUNT=500
network=2a07:14c0:0:8198

MAXCOUNT это число ip которые мы хотим сгенерить а network- это наша подсеть (4 сектора)

Редактируем и сохраняем файл, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Сгенерируем ip и запишем их в ip.list

./random-ipv6_64-address-generator.sh > ip.list

Проверим пинг 1 из адреса. Для этого посмотрим ip которые только что сгенерили

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

После замените в команде ниже ip на ваш

ping6 -I 2a07:14c0:0:8198:4a50:b855:570a:6ac7 ipv6.google.com

И вставьте в консоль, нажмите enter. Должны пойти пинги как на скрине ниже

Чтобы остановить пинг, нажмите ctrl+C

Скачиваем скрипт 3proxy.sh на сервер

wget http://сайт/skript/3proxy.sh

Поменяем права использования на скрипт

Отредактируем его

После редактирования сохраняем файл, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Запускаем скрипт

Увеличиваем лимиты

ulimit -n 600000 ulimit -u 600000

Запускаем прокси

/root/3proxy/src/3proxy /root/3proxy/3proxy.cfg

Чистим файл автозагрузки и открываем его

echo "" > /etc/rc.local nano /etc/rc.local

Приведём его к виду (4,5,6 строчки мы уже редактировали, когда настраивали сеть, можете скопировать от туда и вставить оставив впереди /sbin/)

#!/bin/bash ulimit -n 600000 ulimit -u 600000 /sbin/ip -6 addr add 2a07:14c0:0:8198::2/64 dev eth0 /sbin/ip -6 route add default via 2a07:14c0:0:8198::1 /sbin/ip -6 route add local 2a07:14c0:0:8198::/64 dev eth0 /root/ndppd/ndppd -d -c /root/ndppd/ndppd.conf /root/3proxy/src/3proxy /root/3proxy/3proxy.cfg exit 0

Сохраняем файл, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Наши прокси готовы, осталось нам сформировать полный прокси лист. Для этого я использую обычный xlsx файл. Прокси будут состоять из нашего ip сервера, порта (начальный порт 30000) , логина и пароля, которые мы уже указывали с вами в скрипте. Меняться будет только порт, Остальное будет неизменно. На выходе у нас будут разные ipv6 адреса.

В то время как стандартный HTTP прокси отлично подходит для просмотра web-страниц, SOCKS прокси ориентированы на другое программное обеспечение, такое как электронная почта, мессенджеры и даже интернет-телефония, добавляя в них еще один уровень безопасности. David Koblas изобрел SOCKS прокси пока работал над MIPS Computer Systems, предшественнике Silicon Graphics. Koblas представил архитектуру SOCKS в 1992 году и использования нового типа прокси очень быстро распространилось.

Инструкция по использованию SOKCS прокси

1. Получите доступ к списку SOCKS прокси-серверов. Есть два способа поиска. Первый это поиск сайтов, таких ка Public Proxy Servers для получения информации о бесплатных прокси-серверах. Другой способ - подписаться на частную службу прокси-сервера, к примеру Unique Internet Services, которая предоставляет доступ к тысячам частных SOCKS прокси.

2. Загрузите и установите бесплатную копию Proxy Firewall. Перейдите к proxyfirewall.org, в нижней части страницы нажмите на ссылку "Download". Выберите команду "Run" в открывшемся окне. Когда программа установки завершится, вам будет предложено перезагрузить компьютер. Сохраните все открытые файлы и перезагрузите компьютер.

3. Откройте Proxy Firewall и добавьте ваши прокси в список. Перейдите к вкладке "Private Proxies", если вы являетесь участником Unique Internet Services, а затем введите имя пользователя и пароль для автоматического импорта тысячи прокси-серверов. Если же вы не являетесь участником Unique Internet Services, вы можете использовать приложение, нажав "Add Proxies" в левом нижнем углу, а затем вручную введя IP-адрес и номер порта для каждого SOCKS прокси-сервера.

4. Задайте разрешение для ваших программ. Первый раз при открытии каждой программы после установки Proxy Firewall, программа обнаружит Proxy Firewall и спросит вас, как действовать дальше. Вы можете выбрать прямой доступ к интернету или выбрать подключение через SOCKS прокси . Proxy Firewall будет помнить настройки для каждой программы на вашем компьютере, но их можно будет поменять в любое время, нажав на вкладку "Rules" в Proxy Firewall.

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

SOCKS - сетевой протокол, который позволяет клиент-серверным приложениям прозрачно (незаметно для них) использовать сервисы за межсетевыми экранами (фаерволами). Опция уже доступна в Telegram Desktop и Mac, а мобильные клиенты получат её в ближайшем обновлении.

Совет: включите в настройках опцию автоматического обновления.

В первую очередь включите SOCKS5 до начала блокировки.

Если вы по каким-то причинам не успеете это сделать, то придётся туго, т.к. из российских Google Play и AppStore, клиенты Telegram, скорее всего, исчезнут. Здесь помогут Vpn и Tor, через которые можно будет скачать Telegram в американских магазинах. Но не обольщайтесь - впереди закон по запрету средств обхода блокировок, принятый в первом чтении в Госдуме РФ.

Совет: в настройках Android разрешите скачивание обновлений не из официального магазина, и скачайте обновление Telegram с сайта мессенджера telegram.org .

Настройка SOCKS 5

Приводим инструкцию на русском языке:

1) Зайдите в настройки настольного Telegram и нажмите «По умолчанию (сейчас:TCP)».

2) Переключите в меню «Тип соединения» на «TCP socks5-прокси»

3) Введите адрес прокси сервера (например, 192.254.68.37), соответствующий порт (1080). Лучше использовать прокси-адреса Америки, Германии, Швеции или Англии. Затем ставите галочку «Использовать IPv6» и сохраняете.

Как найти прокси-сервера?

Просто перейдите по следующим ссылкам:

Только берите сервер для SOCKS5, не перепутайте с HTTP.

Возможна настройка из этого бесплатного списка (socks - sockslist.net).

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

Дополнение: Если возникнут проблемы с подключением, нужно настроить брандмауэр Windows - добавить в разрешенные приложения Telegram. Сделать это просто, но у вас должны быть права администратора.

  • Войдите в «Панель управления» и перейдите в «Брандмауэр Windows».
  • Нажмите на пункт «Разрешения взаимодействия с приложениями или компонентами...». Откроется окно с большим количеством программ, но вряд ли вы там найдете Telegram. Поэтому нужно будет его туда добавить.
  • Нажмите на «Изменить параметры», а затем на нижнюю кнопку «Разрешить другое приложение».
  • Во всплывающем окне «Добавление приложение» через Обзор добавьте Telegram.
  • Всё. Снова настраивайте соединение с прокси-сервером.

Носки бывают чрезвычайно полезны. Сейчас мы расскажем, как правильно настроить их на роутере MikroTik. Итак, поговорим о SOCKS ?

Предисловие

SOCKS (SOCKet Secure) – это сетевой протокол, с помощью которого можно обеспечивать прохождение TCP пакетов в обход блокирующих правил Firewall’а. Это реализуется за счёт proxy-сервера (также называют SOCKS-сервер), который контролирует подключение внутренних клиентов и их права на доступ к внешним ресурсам или же наоборот – внешних клиентов, к ресурсам внутри сети. SOCKS работает на сеансовом уровне, поэтому с помощью него можно проксировать FTP, HTTP, Telnet и другие верхнеуровневые протоколы. В то время как HTTP-прокси, как правило, позволяет проксировать только GET и POST запросы.

Установление соединения

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

  1. Клиент подключается к proxy-серверу (обычно используется TCP порт 1080);
  2. Сервер проверяет список доступа и выясняет, есть ли у клиента права на доступ к внешним ресурсам;
  3. Если клиент имеет такие права, то proxy-сервер пересылает пакет на внешний ресурс, к которому хочет получить доступ клиент;
  4. Сервер создаёт сессию между клиентом и внешним ресурсом и между ними начинается обмен пакетами верхнеуровневых протоколов. После установления соединения можно передавать и UDP пакеты.

В настоящее время, MikroTik поддерживает SOCKS версии 4 при указании внешнего ресурса он понимает только IP-адрес. Версия SOCKS4a – может резолвить доменные имена внешних ресурсов. Более поздняя версия протокола – SOCKS5 включает расширенную поддержку аутентификации, подключение по UDP и IPv6.

На сегодняшний день, протокол SOCKS5 пока не поддерживается на устройствах MikroTik. Хотя пользователи очень просят разработчиков включить поддержку SOCKS5 в новые релизы RouterOS вот уже 8 лет. Поэтому при работе с SOCKS совместно с MikroTik, клиент также должен иметь 4 версию.

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

Перейдём к настройкам SOCKS-сервера на MikroTik:

Параметры настройки через WinBox

Параметры настройки SOCKS сервера в WinBox находятся в IP Socks :

Как только вы поставите галочку напротив Enabled сервер станет активным. Далее, необходимо настроить списки доступа, для этого нажимаем на кнопку Access :


Активные SOCKS сессии, проходящие через сервер можно отслеживать на вкладке Connections

Параметры настройки через Termial

Для того, чтобы настроить SOCKS через терминал нужно также сначала настроить параметры сервера. Настройка проводится через команду ip socks set , доступы следующие параметры:

  • enabled - включает функционал SOCKS proxy-сервера (yes - включен, no - выключен);
  • port - номер порта, на котором сервер будет слушать SOCKS запросы. По умолчанию - 1080
  • connection-idle-timeout - время, через которое будут сброшены неактивные сессии (по умолчанию – 2 минуты (2m ));
  • max-connections - максимальное число одновременных подключений (по умолчанию - 200 )

Посмотреть текущие или настроенные параметры можно командой:

  • action - действие, которое будет предпринято при соответствии критериев данного правила:
    • allow - разрешить прохождение трафика по данному правилу;
    • deny - запретить прохождение трафика по данному правилу.
  • dst-address - адрес сервера назначения;
  • dst-port - TCP порт назначения, на котором удаленный сервер слушает SOCKS
  • src-address - адрес источника пакетов (клиент);
  • src-port - TCP порт источника
Практическое применение

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


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


В качестве адреса клиента указывается IP адрес компьютера сотрудника, которому нужно открыть доступ (в нашем случае 192.168.11.48 ), в качестве порта источника – любой TCP порт от 1024 до 65535..

Та же самая настройка через терминал выглядит следующим образом:

Ip socks> set enabled=yes ip socks access> add src-address=192.168.11.48 src-port=1024-65535 dst-address=212.193.249.136 dst-port=80 \ \... action=allow

Готово, теперь дело за клиентом, который должен настроить сотрудник. Покажем настройку на примере браузера Google Chrome . Открываем Settings Advanced Confidentiality and Security , крутим в самый низ до пункта System и выбираем Proxy settings . В появившемся окне выбираем LAN settings → ставим галку напротив Use a proxy server for your LAN и заходим в Advanced . В появившемся окне вбиваем параметры нашего SOCKS сервера в строку Socks (в нашем случае 192.168.11.1 и порт 1080 ) и применяем настройки:


Теперь обновляем страничку сайт и ву-а-ля, всё заработало! В окне Connections видны соединения с нашего компьютера до IP адреса сайт.



Послесловие

Данная статья носит исключительно образовательный характер и не ставит своей целью научить кого-либо обходить правила Firewall. Протокол SOCKS 4 устарел, не поддерживает аутентификацию и не может резолвить доменные адреса. В целях безопасности, мы не рекомендуем использовать этот протокол вообще и в том числе – настраивать его на MikroTik.

По умолчанию – сервер SOCKS на роутерах MikroTik отключен. Если Вы обнаружили, что он активирован, то это может быть признаком того, что Ваш роутер был скомпрометирован злоумышленниками. Об этом мы подробнее расскажем в следующих статьях.

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас:(Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Потребовалось мне как-то запустить игру, которая запускается под wine, через прокси. Поднял ssh-туннель, запустил игру через proxychains, и… игра не смогла соединиться с сервером, хотя chromium без проблем работал и показывал ip прокси. Попробовал tsocks - игра вообще не запустилась. Можно, конечно, было настроить VPN-туннель с помощью того же ssh, но сервер - VPS, под OpenVZ, у которого по умолчанию выключен TUN, что привело бы к письму в техподдержку и ожиданию.
Итак, пятиминутное гугление привело меня к заброшенному проекту Transocks, который, в отличие от proxychains и tsocks, которые подгружают свои библиотеки и перехватывают сетевые вызовы, слушает определенный порт и перенаправляет все, что в него пришло, через socks4 прокси. К сожалению, transocks у меня не собрался, и я начал гуглить дальше. Оказывается, у проекта есть два форка: transocks_ev на c и transocks_em на ruby. Первый поддерживает Socks5, не поддерживает авторизацию и UDP. Второй же поддерживает Socks5, UDP, *BSD, но тоже, вроде бы, не поддерживает авторизацию(не нашел в коде, а документации нет). Так как UDP мне не нужно, я остановился на transocks_ev.

Сборка

Собрать transocks_ev очень просто: достаточно скачать Makefile и transocks_ev.c со страницы проекта, установить libevent и выполнить
make
У нас появился бинарник transocks_ev
tranSOCKS-ev - libevent-based transparent SOCKS5-Proxy
Usage: ./transocks_ev [-f] [-p Port] [-H IP-Address] [-s port] [-S IP-Address]

F Do not fork into background upon execution
-p Bind our server-socket to this port
-H Listen on this IP-Address for incomming connections
-s Expect SOCKS5-Server on this Port
-S Expect SOCKS5-Server on this IP-Address

Так как я поднимал ssh-туннель на порту 4441, запускаю transocks_ev с такими параметрами:
./transocks_ev -p 4445 -H 127.0.0.1 -s 4441 -S 127.0.0.1
Теперь у нас на порту 4445 висит сервер, который будет пускать все запросы через наш socks5. Немного похоже на NAT, только на определенном порту.

Настройка

Перенаправлять пакеты будем с помощью iptables. Я решил сделать подобие proxychains, чтобы можно было запустить любое приложения через прокси, а не просто проксирование по адресу или порту(хотя для игры сгодится и оно).
Создаем новую группу proxified:
sudo groupadd proxified
Редактируем /etc/sudoers так, чтобы мы могли запускать приложения под этой группой. Должно быть что-то вроде этого:
valdikss ALL=(ALL:ALL) ALL

Теперь перейдем к настройкам iptables.
sudo iptables -t nat -I OUTPUT -m owner --gid-owner proxified -p tcp -j REDIRECT --to-ports 4445
Эта команда будет перенаправлять все пакеты от приложений с группой proxified на transocks сервер.

Запуск

Запускаем приложение с группой proxified
sudo -g proxified chromium-browser

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