Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Скрыть истинный IP

Оформил: DeeCo

версия 3.0

SocksChain - программа, позволяющая работать через цепочку SOCKS или HTTP-проксей для того чтобы скрыть истинный IP-адрес. SocksChain может работать как обычный SOCKS-сервер, транслируя запросы по цепочке проксей. SocksChain может быть использован с клиентскими программами, которые не поддерживают протокол SOCKS, но работают с одним TCP-соединением. например TELNET, HTTP, IRC... (FTP использует 2 соединения). При этом ваш IP-адрес не будет появляться  в логах сервера или заголовках почтовы сообщений.

Что нового в версии 3.0
  • Поддержка HTTP-проксей с поддержкой HTTP-tunneling
  • Функция тестирования проксей на работоспособность
  • Настройка типа подключения к Internet (т.е. можно указать фиксированный прокси, который всегда будет присутствовать во всех соединениях первым)
  • Большая база данных по проксям (несколько сотен адресов)
Принцип работы

SocksChain так транслирует TCP-обращение клиентской программы, что оно последовательно проходит через цепочку проксей. Сам SocksChain соединяется только с первым элементом этой цепочки. В свою очередь тот соединяется со вторым и т.д...

При этом возможность отследить откуда инициировался запрос исходя из логов на сервере очень сложно. Для этого нужно будет последовательно анализировать логи всех промежуточных звеньев цепи в обратном порядке. Если где-то логов не ведется, то нить будет потеряна. Это теоретически дает очень высокую степень анонимности. Но в ущерб скорости передачи данных, так как она обратно пропорциональна длине цепочки.

Подсистемы программы SocksChain Менеджер проксей Что такое прокси

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

  • Как Firewall - для защиты локальной сети организации от доступа извне
  • Как мультиплексор IP-адресов, что позволяет подключить много компьюетеров к Internet, имея в распоряжении только один IP-адрес.

В качестве прокси часто используется программа WinGate.

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

Из всего разнообразия проксей существует 2 основных вида универсальных сервиса, т.е. позволяющих транслировать любые TCP-соединения (а не только например HTTP и FTP). Только они позволяют создавать цепочку и следовательно полезны для SocksChain:

  • SOCK4 и SOCKS5 сервисы. По уволчанию им назначается порт 1080. SOCKS5 - является наиболее универсальным сервисом, так как позволяет не только устанавливать TCP-соединения но и открывать порт для входящих TCP-соединений (операция BIND) и передавать/принимать UDP-датаграммы.
  • HTTP-прокси с возможностью SSL-tunneling. Порт по умолчанию 8080. Это менее универсальный сервис, чем SOCKS5, но зато гораздо более распространенный.

Менеджер проксей занимается всей работой по поддержанию базы данных по проксям. Его можно вызвать через меню Options|Proxy Manager. В функции менеджера входит:

  • Хранение списка в виде XML-файла
  • Обновление списка с сервера (кнопка Download
  • Тестирование на работоспособность (кнопка Test All). (по умолчанию тестируется соединение с сервером www.microsoft.com порт 80, как наиболее мощном и доступном отовсюду).
  • Оповещение сервера о степени работоспособности используемых проксей

Таким образом список проксей ведется распределенным образом. Скрипт на сервере собирает статистику о наиболее часто используемых проксях. Это важно так как часто свободный доступ к прокси закрывают.

Формат XML-файла SocksChain.xml

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

<SocksChain>	
	<Proxies>
		<Proxy IP="12.1.68.100" SOCKSPORT="1080" SOCKS4="" SOCKS5="" />
		<Proxy IP="12.2.81.50" HTTPPORT="8080" HTTPTUNNEL=""/>
	</Proxies>	
</SocksChain>

Присутсвие параметра IP обязательно. Присутсвие остальных параметров необязательно и означает:

  • SOCKSPORT - порт для использования сервисов SOCKS4/5 (по умолчанию 1080)
  • HTTPPORT - порт для использования HTTP-tunneling (по умолчанию 8080)
  • SOCKS4, SOCKS5, HTTPTUNNEL - параметры без указания значения. Их присутствие означает что данный IP-адрес проверен на функционирования соответствующего сервиса.

Если для одного IP-адреса проверено сразу несколько видов проксей то приоритет имеет SOCKS5, затем SOCKS и HTTP.

Сервер

Сервер занимается обслуживание запросов от Internet-клиентов. Его задачей является перенаправление TCP- и UDP-соединений по определенному маршруту из проксей. Маршрут может задаваться вручную или составляться автоматически (при этом задается его длина) из имеющегося списка проксей.

Сервер позволяет навесить несколько Сервисов на разные порты. У каждого сервиса может быть индивидуальный маршрут и сервер назначения. Сервер назначения (Target server) нужен только если клиентская программа не поддерживает непосредсвенно SOCKS-протокол.

Вот примерный список популярных программ, поддерживающих SOCKS (для них поле TargetServer заполнять не нужно):

  • mIRC
  • ICQ
  • InternetExplorer
  • AdvancedDirectRemailer - ремейлер со встроеным SMTP сервером, поддерживающий списки рассылки, плагины и SOCKS-5 прокси
  • WinGate

Программы, не поддерживающие SOCKS но позволяющие работать через SocksChain:

  • MS Outlook & OutlookExpress
  • Telnet
  • MS TerminalClient

К сожалению большинство FTP-клиентов не могут работать через SOCKS. А так как FTP использует не только исходящие TCP-потоки их перенаправление через SocksChain невозможно.

По умолчанию при установке создается сервис на порту 1081 (не 1080 потому, что часто порт 1080 занят каким то стандартным прокси, например WinGate). Вы можете поменять номер порта на любой свободный на вашей машине. Соответсвенно в клиентской программе вы указываете 127.0.0.1:1081 как адрес сервера. То есть надо соединить вашу клиентскую программу, SocksChain, промежуточные прокси и сервер назначения в логическую цепочку.

При обращении клиентов к сервисам, в правой панели клавного окна отображается процесс последовательного подключения к елементам цепочки.

При добавлении нового или модификации сервиса открывается окно его настроек. Основные элементы:

  • Name - имя сервиса, никакого функционального назначения не несет, просто должно быть уникальным.
  • Accept on port - порт на вашей машине, не занятый никаким другим сервисом. Может назначаться произвольно. Именно это число нужно указывать в настройках клиентских программ в качестве порта сервера или прокси. Если например мы выбрали порт 1081 то в почтовом клиенте пишем SMTP-server:  127.0.0.1 порт 1081 (127.0.0.1 всегда обозначает ту же машину на которой запущен клиент)
  • Auto-creating chain - автоматическое создание цепочки. Если выбрана эта опция надо очистить list-box "Chain".
  • Length of chain - длина цепочки, которая должна быть создана автоматически. Рекомендуемые значения: 2-5. Большая длина - это меньшая вероятность обнаружения но и меньшая скорость.
  • Chain list-box - список проксей через которые транслировать соединение
  • Target Host - пара вида host:port, которая служит целью клиентов, не поддерживающих соединение через прокси. Например для телнета:  somehost.com:23. Этот адрес не обязан быть прокси.
  • ProxyList - таблица известных проксей. не все из них постоянно работают. Поэтому рекомендуется время от времени проводить их тестирование через менеджер проксей.

Если оставить список и Target пустыми и отключить авто-создание то SocksChain будет функционировать как обычный SOCKS4/5 прокси. Этот режим может помочь, если вы создаете цепочку вручную, то это можно делать шаг за шагом, настров клиента сначала работать просто через SocksChain без проксей а затем добавляя те по одному.

Общие настройки

В меню Tools|Options настраиваются следующие параметры:

  • Number of threads - число одновременно работающих потоков. (задает только порядок этого числа, т.е. реально потоков может быть и больше раза в 2, в зависимости от конкретно выполняемых операций). Рекомендуемые значения: от 1 до 20.
  • Run As Service - автозапуск программы при старте Windows. Для Windows NT/2000 программа запустится в режиме сервиса.
  • Connect to Internet through - задает первый прокси через который производятся все действия программы, в том числе тестирование проксей. Это бывает необходимо если у вас не глобально-доступный IP-адрес а внутренний Intranet-овский.
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay