Инструменты пользователя

Инструменты сайта


socks

Различия

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

Ссылка на это сравнение

socks [2018/06/09 17:02] (текущий)
Строка 1: Строка 1:
 +====== SOCKS ======
  
 +~~Title: SOCKS сервер на примере прокси сервера Dante Server ~~
 +{{htmlmetatags>​
 +metatag-keywords=(SOCKS,​ SOCKS5)
 +metatag-description=(SOCKS proxy передает данные от клиента к серверу,​ не вникая в содержимое самих ​ данных. ​ Протокол SOCKS позволяет клиент-серверным приложениям прозрачно использовать сервисы за фаерволами.)
 +}}
 +
 +
 +**SOCKS** - сетевой протокол,​ который позволяет клиент-серверным приложениям прозрачно использовать сервисы за межсетевыми экранами (фаерволами). SOCKS — это сокращение от "​SOCKet Secure"​. SOCKS не зависит от конкретных протоколов уровня приложений (7-го уровня модели [[OSI]]) и базируется на стандарте TCP/IP — протоколе 4-го уровня.
 +  * **Что такое SOCKS proxy server?**
 +Хотя этот протокол разработан достаточно давно, он является относительно новым (по сравнению с [[HTTP]] proxy). SOCKS позволяет работать с любыми (версия Socks 4 - с TCP, Socks 5 - с [[TCP]] и [[UDP]]) протоколами. SOCKS proxy просто передает данные от клиента к серверу,​ не вникая в содержимое самих ​ данных (поэтому он может работать с [[HTTP]], [[FTP]], [[SMTP]], [[POP3]], NNTP, etc.).
 +
 +<note important>​Поскольку SOCKS передает все данные от клиента серверу,​ ничего не добавляя от себя, то с точки зрения web-сервера socks proxy является клиентом. Поэтому анонимность этого типа proxy-серверов всегда является **действительно полной**.</​note>​
 +
 +<note tip>HTTP прокси,​ в отличии от SOCKS прокси,​ умеет кэшировать данные и может более тщательно фильтровать содержимое передаваемых данных.</​note>​
 +===== Как обойти блокировку Telegram =====
 +
 +Универсальный способ обхода блокировки Telegram, сервисов Яндекс и любых блокировок в интернете - это настроить собственный socks прокси на выделенном сервере или купить [[VPN]]. Отличие VPN от прокси в том, что он работает для всего устройства в целом, а не только для Телеграма.
 +
 +**Что можно сделать прямо сейчас?​**
 +Блокировку можно обойти с помощью прокси — специального сервера,​ через который ваши запросы к Telegram будут идти «в обход». Это абсолютно безопасно — прокси не смогут расшифровать или прослушать ваш трафик.
 +
 +В приложении для ПК также может помочь включение IPv6:
 +
 +**Как включить прокси?​** Для подключения просто нажмите на одну из кнопок ниже, а затем в приложении Telegram согласитесь на включение прокси.
 +
 +  - [[tg://​proxy?​server=proxy.digitalresistance.dog&​port=443&​secret=d41d8cd98f00b204e9800998ecf8427e|Прокси от Vee]]
 +  - [[tg://​socks?​server=tg.airpush.com&​port=1883|Прокси от Airpush]]
 +  - [[tg://​proxy?​server=vamos.teleproxy.me&​port=993&​secret=b32fd9470baa2ae8807221aec4bf6696|Прокси от TgVPN]]
 +Вы можете добавить сразу несколько прокси – Telegram сам выберет среди них самый быстрый и стабильный и подключится к нему.
 +====== Настройка SOCKS5 через SSH ======
 +
 +Оригинал:​ [[http://​romantelychko.com/​blog/​1058/​|Создаём SOCKS5-прокси с помощью SSH- соединения через удалённый сервер в Linux]]
 +
 +Настройка SOCKS5 через [[SSH]].
 +
 +Cоздать SOCKS5-прокси довольно просто. Достаточно выполнить команду по следующей схеме:
 +
 +<​file>​
 +ssh -f -C2qTnN -D [bind_address:​]<​порт>​ <​удаленный_пользователь>​@<​удаленный_сервер>​
 +</​file>​
 +
 +  * -f Запросит ssh перейти в фоновый режим только перед выполнением команды.
 +  * -C Включит сжатие всех данных (включая stdin, stdout, stderr и данные для перенаправленных Х11 и TCP/IP соединений).
 +  * -2 Принуждает ssh использовать только протокол версии 2.
 +  * -q Тихий режим. Подавляет все предупреждения и диагностические сообщения. Будут отображены только фатальные ошибки.
 +  * -T Отменить переназначение терминала.
 +  * -n Перенаправляет стандартный ввод из /dev/null (фактически,​ предотвращает чтение из стандартного ввода).
 +  * -N Не выполнять удаленную команду.
 +  * -D [локальный IP : ] порт
 +
 +Например:<​file>​
 +sudo ssh -f -C2qTnN -D 1080 roman@8.8.8.8
 +</​file>​
 +
 +После введения пароля к удаленному серверу,​ SSH перейдёт в фоновый режим.
 +
 +Далее вам следует открыть любой браузер,​ в котором прописать адрес SOCKS5 прокси в параметрах соединения.
 +
 +Для браузера [[Firefox]]:​
 +  - Идём «Правка» → «Настройки» → вкладка «Дополнительно» → вкладка «Сеть» → раздел «Соединение» → кнопка «Настроить»
 +  - Устанавливаем там пункт «Ручная настройка сервиса прокси»,​ в поле «Узел SOCKS» пишем наш IP адрес (обычно 127.0.0.1), а в поле «Порт» — указанный порт (в примере 1080).
 +  - Ставим ключ на пункт "SOCKS 5" и применяем настройки.
 +{{:​firefox_socks5.png|}}
 +
 +После чего идём на любой сайт для определение IP-адреса. Например:​ http://​dieg.info и видим не свой IP, а IP 
 +удалённого сервера,​ к которому мы установили SSH - соединение.
 +
 +====== SOCKS сервер Dante Server ======
 +
 +Homepage: [[http://​www.inet.no/​dante/​|Dante - A free SOCKS server]]
 +
 +<​note>​Часть функционала в виде дополнительных модулей платная,​ например модуль Bandwidth control стоит 400 EUR (евро).</​note>​
 +
 +В репозиториях Ubuntu 14.04.5 LTS Trusty и Ubuntu 16.04.2 LTS установлена старая версия Dante Server 1.1.19 и к тому же она не может работать с логином и паролем (доступ к прокси можно регулировать только [[iptables]]). Баг этот известен давно, но так и не был исправлен([[https://​tech.tiq.cc/​2015/​10/​how-to-set-up-danted-dante-server-socks-proxy-on-ubuntu-14-04-with-authentication/​|how to set up danted (dante-server) SOCKS proxy on Ubuntu 14.04 with authentication]]).
 +
 +  * **Инсталляция и настройка** SOCKS сервера **Dante Server** из исходных кодов в [[Ubuntu]] 14.04.5 LTS Trusty в контейнере [[OpenVZ]].
 +<file bash>
 +cd /opt
 +wget http://​www.inet.no/​dante/​files/​dante-1.4.2.tar.gz
 +tar -xvf dante-1.4.2.tar.gz
 +cd dante-1.4.2/​
 +</​file>​Компиляция Dante Server. Вначале установим необходимые утилиты и зависимости Dante для компиляции Ubuntu:<​file bash>
 +aptitude install gcc cc libwrap0 libwrap0-dev libpam0g-dev make</​file>​CentOS 6.6:<​file bash>
 +yum install gcc pam-devel tcp_wrappers-devel
 +</​file>​
 +<file bash>
 +mkdir /opt/dante
 +./configure --prefix=/​opt/​dante
 +</​file>​К конце будет выведен статус конфигурации<​file>​
 +Client: ​           Enabled
 +Server: ​           Enabled
 +Preloading: ​       Enabled
 +Libwrap: ​          ​Enabled
 +BSD Auth:          Disabled, usable bsd_auth.h not found
 +PAM:               ​Enabled
 +GSSAPI: ​           Not found/​disabled
 +KRB5:              Not found/​disabled
 +SASL:              Not found/​disabled
 +UPNP:              Not found/​disabled
 +Compatability: ​    ​issetugid setproctitle strlcpy strvis
 +
 +                     ​Modules:​
 +
 +redirect: ​         Not found
 +bandwidth: ​        Not found
 +ldap:              Not found
 +</​file><​file bash>
 +make
 +make install
 +</​file>​Проверим запускается ли собранный файл, посмотрим версию сервера:​
 +<file bash>
 +/​opt/​dante/​sbin/​sockd -v
 +Dante v1.4.2. ​ Copyright (c) 1997 - 2014 Inferno Nettverk A/S, Norway
 +</​file>​Рабочий конфигурационный файл (подставьте свой IP или название сетевого интерфейса). Скачать файл sockd.conf командой<​file bash>
 +wget -c http://​wiki.dieg.info/​_export/​code/​socks?​codeblock=10 -O /​etc/​sockd.conf
 +</​file>​
 +<file bash sockd.conf>​
 +#logoutput: /​var/​log/​socks.log
 +logoutput: stderr
 +
 +# На каком сетевом интерфейсе и порту обслуживаем socks клиентов
 +internal: venet0:0 port = 1080
 +# С какого IP или интерфейса выходим во внешний мир
 +external: venet0:0
 +#internal: x.x.x.x port = 1080
 +#external: x.x.x.x
 +
 +# Используемый метод авторизации клиентов. none - без авторизации.
 +socksmethod:​ username
 +#​socksmethod:​ username none
 +user.privileged:​ root
 +user.notprivileged:​ nobody
 +
 +client pass {
 +        from: 0.0.0.0/0 to: 0.0.0.0/0
 +        log: error connect disconnect
 +}
 +
 +client block {
 +        from: 0.0.0.0/0 to: 0.0.0.0/0
 +        log: connect error
 +}
 +
 +socks pass {
 +        from: 0.0.0.0/0 to: 0.0.0.0/0
 +        log: error connect disconnect
 +}
 +
 +socks block {
 +        from: 0.0.0.0/0 to: 0.0.0.0/0
 +        log: connect error
 +}
 +</​file>​Запуск сервера Dante как сервиса<​file bash>
 +/​opt/​dante/​sbin/​sockd -D
 +</​file>​**Всё! Наслаждаемся работой.**
 +
 +
 +<file bash start.sh>​
 +
 +#!/bin/bash
 +
 +/​opt/​dante/​sbin/​sockd -f /​etc/​sockd.conf -D
 +</​file><​file bash stop.sh>
 +#!/bin/bash
 +
 +/​usr/​bin/​pkill sockd
 +</​file>​Добавим пользователя,​ который будет пользоваться нашим SOCKS сервером<​file bash>
 +sudo useradd -s /bin/false proxyuser && sudo passwd proxyuser
 +</​file>​
 +
 +Разрешим TCP порт 1080 в фаерволе [[ufw]]<​file bash>
 +sudo ufw allow proto tcp from any to any port 1080
 +</​file>​Вывести все правила ufw можно командой<​file>​
 +ufw status
 +</​file>​
 +  * Разрешаем клиенту 192.168.0.2 выход через socks.
 +<​file>​
 +client pass {
 +       from: 192.168.0.2/​32 to: 0.0.0.0/0
 +       log: connect disconnect iooperation
 +}
 +</​file>​
 +====== SOCKS сервер 3proxy ======
 +
 +
 +====== SOCKS сервер SS5 ======
 +
 +  * http://​ss5.sourceforge.net/​ SS5 is a socks server that implements the SOCKS v4 and v5 protocol для CENT OS 
загрузка...
socks.txt · Последние изменения: 2018/06/09 17:02 (внешнее изменение)