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

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


Боковая панель

Связь

socks

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.).

Поскольку SOCKS передает все данные от клиента серверу, ничего не добавляя от себя, то с точки зрения web-сервера socks proxy является клиентом. Поэтому анонимность этого типа proxy-серверов всегда является действительно полной.
HTTP прокси, в отличии от SOCKS прокси, умеет кэшировать данные и может более тщательно фильтровать содержимое передаваемых данных.

Настройка SOCKS5 через SSH

Оригинал: Создаём SOCKS5-прокси с помощью SSH- соединения через удалённый сервер в Linux

Настройка SOCKS5 через SSH.

Cоздать SOCKS5-прокси довольно просто. Достаточно выполнить команду по следующей схеме:

ssh -f -C2qTnN -D [bind_address:]<порт> <удаленный_пользователь>@<удаленный_сервер>
  • -f Запросит ssh перейти в фоновый режим только перед выполнением команды.
  • -C Включит сжатие всех данных (включая stdin, stdout, stderr и данные для перенаправленных Х11 и TCP/IP соединений).
  • -2 Принуждает ssh использовать только протокол версии 2.
  • -q Тихий режим. Подавляет все предупреждения и диагностические сообщения. Будут отображены только фатальные ошибки.
  • -T Отменить переназначение терминала.
  • -n Перенаправляет стандартный ввод из /dev/null (фактически, предотвращает чтение из стандартного ввода).
  • -N Не выполнять удаленную команду.
  • -D [локальный IP : ] порт

Например:

sudo ssh -f -C2qTnN -D 1080 roman@8.8.8.8

После введения пароля к удаленному серверу, SSH перейдёт в фоновый режим.

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

Для браузера Mozilla Firefox:

  1. Идём «Правка» → «Настройки» → вкладка «Дополнительно» → вкладка «Сеть» → раздел «Соединение» → кнопка «Настроить»
  2. Устанавливаем там пункт «Ручная настройка сервиса прокси», в поле «Узел SOCKS» пишем наш IP адрес (обычно 127.0.0.1), а в поле «Порт» — указанный порт (в примере 1080).
  3. Ставим ключ на пункт "SOCKS 5" и применяем настройки.

После чего идём на любой сайт для определение IP-адреса. Например: http://dieg.info и видим не свой IP, а IP удалённого сервера, к которому мы установили SSH - соединение.

SOCKS сервер Dante Server

Homepage: Dante - A free SOCKS server

Часть функционала в виде дополнительных модулей платная, например модуль Bandwidth control стоит 400 EUR (евро).

В репозиториях Ubuntu 14.04.5 LTS Trusty и Ubuntu 16.04.2 LTS установлена старая версия Dante Server 1.1.19 и к тому же она не может работать с логином и паролем (доступ к прокси можно регулировать только iptables). Баг этот известен давно, но так и не был исправлен(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.
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/

Компиляция Dante Server. Вначале установим необходимые утилиты и зависимости Dante для компиляции Ubuntu:

aptitude install gcc cc libwrap0 libwrap0-dev libpam0g-dev make

CentOS 6.6:

yum install gcc pam-devel tcp_wrappers-devel
mkdir /opt/dante
./configure --prefix=/opt/dante

К конце будет выведен статус конфигурации

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
make
make install

Проверим запускается ли собранный файл, посмотрим версию сервера:

/opt/dante/sbin/sockd -v
Dante v1.4.2.  Copyright (c) 1997 - 2014 Inferno Nettverk A/S, Norway

Рабочий конфигурационный файл (подставьте свой IP или название сетевого интерфейса). Скачать файл sockd.conf командой

wget -c http://wiki.dieg.info/_export/code/socks?codeblock=10 -O /etc/sockd.conf
sockd.conf
#logoutput: /var/log/socks.log
logoutput: stderr
 
internal: venet0:0 port = 1080
external: venet0:0
#internal: x.x.x.x port = 1080
#external: x.x.x.x
 
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
}

Запуск сервера Dante как сервиса

/opt/dante/sbin/sockd -D

Всё! Наслаждаемся работой.

start.sh
#!/bin/bash
 
/opt/dante/sbin/sockd -f /etc/sockd.conf -D
stop.sh
#!/bin/bash
 
/usr/bin/pkill sockd

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

sudo useradd -s /bin/false proxyuser && sudo passwd proxyuser

Разрешим TCP порт 1080 в фаерволе ufw (Uncomplicated Firewall)

sudo ufw allow proto tcp from any to any port 1080

Вывести все правила ufw можно командой

ufw status

SOCKS сервер 3proxy

SOCKS сервер SS5

socks.txt · Последние изменения: 2017/10/03 08:11 — darkfire