Перейти к содержимому
Калькуляторы

#358. Торренты. Приручение.

Чего делать? :(
удалить libecap и попробовать поставить по новой squid.

посмотреть config.log

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Смотреть в config.log насчет подробностей :)
В сущности, вот последние строки в сообщении они и есть :)

 

 

удалить libecap и попробовать поставить по новой squid.
А squid-то тут при чём? Он с ecap нормально собирается, осталось собрать только сам модифицирующий adapter к ecap.

Удалил libecap и squid, нифига, естественно, не помогло. :(

Может, кто-то через ICAP делал?

 

Update: config.log

Изменено пользователем Dyr

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы бы на внешний хостинг конфиг клалли, а то как-то не аккуратненько.

Вот сюда, хотя бы - http://pastie.org/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня с eCap проблема была с путями - он при сборке ищет либы в /usr/lib, а они лежат в /usr/local/lib, тоже и с include. Решил тупо созданием симлинков.

Но есть и другая проблема - Squid 3.1.0.13 (версия из портов) при загрузке вываливается, что называется "в корку" при подключенном ecap. Но вроде как нормально заводится на 3.1.0.7, но там другие проблемы - он тоже падает, только не сразу.

Вот и хотелось бы узнать, у кого на каких версиях работает, если работает ;)

Изменено пользователем lexius

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот сюда, хотя бы - http://pastie.org/
Ого, спасибо, отличный сервис. Поправил исходное сообщение.

 

lexius, а можете прислать ваш собранный ecap? Под 7.2 делали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

При запуске squid 3.1.0.13 с включённым debug такая вот проблема:

2009/10/28 14:35:21| loading Squid module from '/usr/local/lib/ecap_adapter_modifying.so'
2009/10/28 14:35:21| Squid modules loaded: 1
2009/10/28 14:35:21| Adaptation support is on
Assertion failed: (false), function start, file adapter.cc, line 17.

Изменено пользователем lexius

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А вот и описание проблемы https://bugs.launchpad.net/ecap/+bug/408091 и возможные пути решения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

могу добавить к ним любого провайдера, пишите в этом топике свой адрес анонса и диапазоны внешних ip адресов

Если предложение еще актуально, буду крайне признателен.

 

77.247.112.0/20

http://retrecker.amberium.net/announce.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В общем, поделюсь своим опытом.

Двухнедельное усиленное google'ние привело нас к следующим результатом:

1. Что icap, что ecap, жутко сырые и глючные протоколы.

2.1 Подменять пользователям файлы на лету с помощью прокси нужно в режиме full-transparent. Существует путаница в понятиях, из-за того что под transparent proxy ранее понимали прозрачное для пользователя проксирование, когда за счёт принудительного заворачивания http-трафика на прокси-сервер пользователь мог не вводить у себя никаких настроек. На самом деле это intercept proxy (собственно, в Squid 3.1 соответствующая опция также поменяла название), а вот (full) transparent proxy это когда прокси идёт в интернет не от своего ip, а от spoofed ip пользователя, оставляя тем самым полностью прозрачным соединение для конечных серверов.

2.2 В настоящий момент поддержка такого проксирования реализована только для squid с патчем TPROXY под Linux.

2.3 Под FreeBSD аналогичное поведение реализовано только в бете форка Squid - Cacheboy. Но у него отсутствуют возможности выполнять произвольные операции с файлами, поскольку ecap/icap в нём отсутствует и добавлен не будет.

 

Таким образом, я для себя решил вопрос просто - пока нет желания сделать на squid'е, делаю через обычный прокси с фильтрацией. В качестве такового выступает Middleman, взятый за небольшой размер, возможность отдачи контента на внешний скрипт и удобный интерфейс управления.

Предварительно накидал perl-скрипт, который через pcap слушает 80 порт и собирает информацию о запросах с Content-Type: application/x-bittorrent, на выходе скрипта дата и ip-адреса. Затем путём нехитрых манипуляций эти ip-адреса заносятся в таблицу ipfw, через которую определяется форвард на прокси (ipfw add fwd 127.0.0.1,3128 tcp from 10.54.0.0/16 to table(15) dst-port 80 in via vlan3050).

 

В конфиге mman.xml отключены все фильтры, кроме external и caching, в external:

        <external>
                <enabled>true</enabled>
                <item>
                        <enabled>true</enabled>
                        <comment>torrent</comment>
                        <mime>application\/x-bittorrent</mime>
                        <exec>/home/torrents/mypatcher.pl</exec>
                        <type>file</type>
                </item>
        </external>

 

Скрипту /home/torrents/mypatcher.pl тем самым передаются файлы с mime-типом "application/x-bittorrent", он добавляет в него запись локального трекера http://retracker.smart (убирая при этом retracker.local, если он там есть. Ибо нефиг) и передаёт содержимое обратно прокси, сохраняя ещё и в файл с созданием директории под именем исходного сервера, то есть примерно вот так:

ls -lh /home/torrents/patched/
total 152
drwxr-xr-x   2 root  wheel    13K 16 ноя 12:35 dl.torrents.ru
drwxr-xr-x   2 root  wheel   512B 15 ноя 21:27 down.puretna.com
drwxr-xr-x   2 root  wheel   2,0K 15 ноя 23:59 fast-torrent.ru
drwxr-xr-x   2 root  wheel   1,0K 14 ноя 01:31 free-torrents.org
drwxr-xr-x   2 root  wheel   4,5K 16 ноя 00:50 kinozal.tv
drwxr-xr-x   2 root  wheel   512B 15 ноя 21:06 lostfilm.tv
drwxr-xr-x   2 root  wheel   512B 16 ноя 09:26 megashara.com
drwxr-xr-x   2 root  wheel   512B 14 ноя 23:49 nnm-club.ru
drwxr-xr-x   2 root  wheel   512B 13 ноя 19:58 opensharing.org
drwxr-xr-x   2 root  wheel   5,0K 15 ноя 22:56 pornolab.net
drwxr-xr-x   2 root  wheel   1,0K 15 ноя 14:57 pornoshara.com
drwxr-xr-x   2 root  wheel   512B 15 ноя 23:36 rutor.org
drwxr-xr-x   2 root  wheel   512B 13 ноя 22:18 tapochek.net
drwxr-xr-x   2 root  wheel   1,5K 16 ноя 12:30 tfile.ru
drwxr-xr-x   2 root  wheel   2,5K 16 ноя 11:00 torrents.thepiratebay.org
drwxr-xr-x   2 root  wheel   3,0K 16 ноя 02:30 www.fast-torrent.ru
drwxr-xr-x   2 root  wheel   512B 15 ноя 21:39 www.kinokopilka.ru
drwxr-xr-x   2 root  wheel   512B 15 ноя 19:37 www.lostfilm.tv
drwxr-xr-x   2 root  wheel   512B 15 ноя 22:31 www.mininova.org
drwxr-xr-x   2 root  wheel   512B 13 ноя 18:20 www.nnm-club.ru
drwxr-xr-x   2 root  wheel   1,5K 15 ноя 19:44 www.tfile.ru
drwxr-xr-x   2 root  wheel   512B 15 ноя 19:17 www.torrent-polska.info
drwxr-xr-x   2 root  wheel   512B 13 ноя 20:28 www.torrentino.ru
drwxr-xr-x   2 root  wheel   512B 16 ноя 00:14 x-torrents.ru

 

Естественно, что дорабатывать все компоненты можно и нужно (хотя бы передавать данные с middeman не через файл, а через пайп), но пока работает и так. Народ доволен, мы тоже.

 

За четыре дня скачивание торрентов зарегистрировали со следующих ip:

   2 188.40.68.102
   2 188.40.92.78
   2 194.71.11.73
   2 212.85.147.122
   2 67.15.228.30
   2 78.107.232.56
   2 78.140.146.75
   2 89.108.104.34
   2 90.156.212.56
   2 94.246.126.252
   4 173.45.88.50
   4 188.40.45.82
   4 193.93.161.34
   4 95.211.6.16
   6 194.54.81.126
   6 83.222.96.82
   6 92.61.248.110
   6 94.103.92.62
   8 85.17.92.39
   8 93.158.65.201
   9 87.233.147.140
  12 77.120.117.204
  12 97.74.144.172
  14 82.80.248.58
  14 85.159.232.5
  14 95.168.186.70
  14 95.169.190.128
  34 80.93.53.99
  40 83.143.134.33
  44 91.213.117.65
  44 95.211.1.9
  46 88.80.28.218
  82 91.189.80.95
  86 81.29.134.150
124 89.108.82.15
144 91.189.80.96
192 95.211.81.80
193 194.71.107.19
202 94.198.53.151
286 89.188.109.206
290 195.82.147.147
852 195.82.146.115

 

А жадинам, которые ничего не рассказывают про то, как и откуда они переписывают торренты, наше дружное бее! ;)

Изменено пользователем Dyr

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

тянет как минимум на статью, что на наг ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обновил скрипт mypatcher.pl: добавлено ещё одно условие для извлечения имени файла, пофиксена ошибка при пустом списке трекеров в announce_list.

 

Ещё из важного - модуль Net::Bittorrent::File был мною подкорректирован с целью работы с отсутствовавшим в нём announce_list несложным патчем. Вообще говоря, mypatcher.pl можно (и даже, пожалуй, нужно) модифицировать так, чтобы он работал с данными через pipe напрямую и без Net::Bittorrent::File...но мне лень %)

И последнее - поскольку прокси работает от своего ip, а не от клиентского, возможны проблемы с частными трекерами, которые авторизуют по ip. Авторизующие по cookies должны работать нормально, если только домен, с которого они получены, входят в список кешируемых этим proxy.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот именно что "этим говном" и живём, все каналы в нём :)

А на гиков с Kad и Tor внимания не обращаем, живите безмятежно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо за развёрнутое описание... но получается, что Middleman работает в таком же режиме, как и squid?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

lexius, смотря что называть "в таком же режиме" :-) Squid, сцуко, большой, режимов имеет много.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нет, увы, в обычном intercept режиме :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Обновил патчер.

Изменения:

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

- Добавлен вывод в syslog сообщений об ошибках/предупреждениях (по умолчанию в LOG_EMERG, чтобы видеть ошибки на консоли).

 

Продолжить выкладывать изменения и описание процесса, или оно так, никому не интересно?..

Изменено пользователем Dyr

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Продолжить, интересно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тогда продолжаем клепать баги версии ;-)

Версия 1.3.

Изменения:

- Добавлен код для корректной регистрации анонса в трекере от re-tracker.ru (в статистике появляются размер, комментарии и имя файла).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Список dst адресов, при обращении на которые запросы форвардятся на прокси (было зарегистрировано более 4 скачиваний торрент-файлов):

67.15.228.30/32 0
77.120.117.204/32 0
78.107.232.56/32 0
80.93.53.99/32 0
81.29.134.150/32 0
82.80.248.58/32 0
83.143.134.33/32 0
83.222.96.82/32 0
85.17.92.39/32 0
85.159.232.5/32 0
87.118.119.60/32 0
87.233.147.140/32 0
88.80.28.218/32 0
88.212.202.8/32 0
89.108.74.190/32 0
89.108.82.15/32 0
89.108.104.34/32 0
89.188.109.206/32 0
90.156.212.56/32 0
91.189.80.95/32 0
91.189.80.96/32 0
91.213.117.65/32 0
92.61.248.110/32 0
93.158.65.201/32 0
94.103.92.62/32 0
94.198.53.151/32 0
94.246.126.252/32 0
95.168.186.70/32 0
95.169.187.34/32 0
95.169.190.128/32 0
95.211.1.9/32 0
95.211.81.80/32 0
97.74.144.172/32 0
173.45.88.50/32 0
188.40.45.82/32 0
188.40.68.102/32 0
188.40.92.78/32 0
194.54.81.126/32 0
194.71.11.73/32 0
194.71.107.19/32 0
195.82.146.115/32 0
195.82.147.147/32 0
212.85.147.122/32 0
213.248.47.9/32 0

 

Кусок конфига monit, следящего за доступностью прокси-сервера (по хорошему, нуждается в доработке условий и action'a):

check process middleman with pidfile /var/run/mman.pid
    start program = "/usr/local/etc/rc.d/mman.sh start"
    stop program  = "/usr/local/etc/rc.d/mman.sh stop"
    if cpu > 60% for 2 cycles then alert
    if totalmem > 200.0 MB for 5 cycles then alert
    if loadavg(5min) greater than 3 for 8 cycles then alert
    if failed host 10.78.77.35 port 3128 with timeout 5 seconds then restart
    if 3 restarts within 5 cycles then timeout

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

- Добавлен код для корректной регистрации анонса в трекере от re-tracker.ru (в статистике появляются размер, комментарии и имя файла).

Можешь пояснить, как работает этот ретрекер? Поставил его вместо xbtt, а он бестолковый какой-то, список локальных пиров не ведет, зачем-то в своей базе держит кучу инетовских пиров, а также вытягивает список ретрекеров из инета, хотя сам по идее должен являться ретрекером. Перерыл их форум, но не нашел конкретную технологию его работы. В результате получить список местных сидов с этого ретрекера так и не удалось, хотя они есть в его статистике. Бред какой-то.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пояснить не смогу, поскольку сам ретрекер прикручивали ребята из другого отдела. Но могу спросить у них.

 

P.S. Кто-нибудь ещё рискнул запустить в продакшн мой вариант у себя? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Dyr, рискнули, запустили, все работает! Спасибо за отличное решение! Гораздо лучше падучего сквида. А можно у тебя периодически по http или как-нибудь еще забирать список dst-адресов? А то у нас скрипт для их выдирания жрет 50-60% cpu.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

http://l7-filter.sourceforge.net/protocols

говорят торренты и скайп ловят, ктонить пробовал в продакшине?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

vladd, на здоровье. :) Список настраивать на отдачу просто лень, честно говоря... Сейчас список состоит из следующих ip:

67.15.228.30/32 0
77.120.117.204/32 0
78.107.232.56/32 0
80.93.53.99/32 0
81.29.134.150/32 0
82.80.248.58/32 0
83.143.134.33/32 0
83.222.96.82/32 0
85.17.92.39/32 0
85.159.232.5/32 0
87.118.119.60/32 0
87.233.147.140/32 0
88.80.28.218/32 0
88.212.202.8/32 0
89.108.74.190/32 0
89.108.82.15/32 0
89.108.104.34/32 0
89.188.109.206/32 0
90.156.212.56/32 0
91.189.80.95/32 0
91.189.80.96/32 0
91.213.117.65/32 0
92.61.248.110/32 0
93.158.65.201/32 0
94.103.92.62/32 0
94.198.53.151/32 0
94.246.126.252/32 0
95.168.186.70/32 0
95.169.187.34/32 0
95.169.190.128/32 0
95.211.1.9/32 0
95.211.81.80/32 0
97.74.144.172/32 0
173.45.88.50/32 0
188.40.45.82/32 0
188.40.68.102/32 0
188.40.92.78/32 0
194.54.81.126/32 0
194.71.11.73/32 0
194.71.107.19/32 0
195.82.146.115/32 0
195.82.147.147/32 0
212.85.147.122/32 0
213.248.47.9/32 0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.