myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> AntiTor

Saymon21
сообщение 16.3.2012, 13:10
Сообщение #1


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Итак, выкладываю пока тока для тестирования. Чуть позже сделаю ещё несколько доработок. Прошу сообщать обо всех ошибках.

Название: AntiTor
Идея: RoLex
Автор: Tsd © 15.03.2012
Перевод под RusHub и доработка: Saymon21
Версия скрипта: 1.0.1
Оригинал: http://mydc.ru/topic5239.html
Для работы скрипта нужен модуль Ban.

Описание скрипта: Скрипт не даёт зайти на хаб пользователям, использующим технологию Tor.

Протестировано на Debian GNU/Linux 6.0.4, RusHub 2.3.9, LuaPlugin 2.8

Отличия этой версии:

1) curl теперь вызывается не из скрипта. Надо подумать зарание об обновлении бд через сторонний планировщик. Например cron. Под венду были сборки. Хотя там есть и куча других альтернатив. google://.
Пример задачи для cron:
Код
$ crontab -l |grep curl
*/50 * * * * /usr/bin/curl -L --retry 3 --connect-timeout 5 -m 15 -s -o "/usr/local/etc/rushub/scripts/AntiTor/torlist.txt" "http://torstatus.blutmagie.de/ip_list_all.php/Tor_ip_list_ALL.csv"

Вместо curl также можно использовать wget, fetch аля bsd, libwww-perl и т.п.

2) в Ban ныне она ExecuteOnTor (карательная функция для тех, кто лезет с tor'ом) добавлена возможность вызова iptables, ipfw, route, ipchains (Можно вписать вызов любых утилит). В комментариях показаны примеры некоторых правил к ним. Под венду: google://wipfw. Все вопросы о настройке утилит, sudo, fw, google:// пожалуйста.

3) Добавлена возможность блокировки чата/привата tor-юзерам, на случай если кто-то решит что лучше пускать всех подряд, но пусть они сидят молча.
Из фич тут есть возможность тихой блокировки.

4) Добавлена проверка всех онлайн юзеров на подключение с Tor при старте скрипта и при обновления списка адресов.

5) Добавлена проверка OnMCTo. (Персональные сообщения в главном чате). Настройки такие же, как и для чата/лс.

Сообщение отредактировал Saymon21 - 12.5.2012, 14:46
Прикрепленные файлы
Прикрепленный файл  AntiTor_1.0.lua ( 9.77 килобайт ) Кол-во скачиваний: 74
 


Спасибо сказали:
Go to the top of the page
+Quote Post
mariner
сообщение 16.3.2012, 13:23
Сообщение #2


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




Юзайте наконец ipset, йоба
Go to the top of the page
+Quote Post
Saymon21
сообщение 16.3.2012, 13:26
Сообщение #3


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




По желанию
Цитата
Можно вписать вызов любых утилит

Что мешает вписать?
Go to the top of the page
+Quote Post
ShadoWx
сообщение 16.3.2012, 14:10
Сообщение #4


Освоившийся участник
*****

Группа: Пользователи
Сообщений: 216
Регистрация: 23.10.2008
Из: Саратов
Пользователь №: 865
Спасибо сказали: 60 раз




Цитата(mariner @ 16.3.2012, 14:23) *
Юзайте наконец ipset, йоба

а это по тому алгоритму что расписывал ты мне список прокси-серверов отлавливаем через ipset ??
P.S. жаль времени у тебя нет Коль adore.gif
Go to the top of the page
+Quote Post
Saymon21
сообщение 16.3.2012, 14:43
Сообщение #5


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Пару фиксов. Не совсем правильно работала блокировка чата/привата. Скрипт обновлён в первом посте.

Для дисконнекта юзера без отправки сообщения "Этот хаб работает под управлением..." находим

Код
function OnUserEnter(UID)
    if is_tor_connection(UID.sIP) then
        ExecuteOnTor(UID)
    end
end

И заменяем на:
Код
function OnUserConnected(UID)
    if is_tor_connection(UID.sIP) then
        ExecuteOnTor(UID)
        return true
    end
end
Go to the top of the page
+Quote Post
mariner
сообщение 16.3.2012, 15:16
Сообщение #6


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




Цитата
а это по тому алгоритму что расписывал ты мне список прокси-серверов отлавливаем через ipset ??

Ага, именно так. Там же дел немного, но просто мне все лень.
Go to the top of the page
+Quote Post
Saymon21
сообщение 16.3.2012, 18:42
Сообщение #7


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Добавлена проверка всех онлайн юзеров на подключение с Tor при старте скрипта и при обновления списка адресов.
Добавлена проверка на использование Tor в событии OnMCTo. (Персональные сообщения в главном чате). Настройки такие же, как и для чата/лс.

Скрипт обновлён в первом посте.
Go to the top of the page
+Quote Post
KT315
сообщение 16.3.2012, 20:16
Сообщение #8


Продвинутый участник
****

Группа: Пользователи
Сообщений: 113
Регистрация: 20.1.2009
Из: г. Москва САО
Пользователь №: 1 889
Спасибо сказали: 37 раз




А что с таймером не так? Почему cron предлагаешь?
Go to the top of the page
+Quote Post
Saymon21
сообщение 16.3.2012, 20:26
Сообщение #9


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




С таймером всё нормально. Просто не хотел вешать лишние задачи на хаб.


Спасибо сказали:
Go to the top of the page
+Quote Post
Saymon21
сообщение 12.5.2012, 11:54
Сообщение #10


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Мб кому будет полезно. Скрипт для блокирования Tor адресов без участия хаба c использованием ipset & iptables:
Раскрывающийся текст
Код
#!/usr/bin/lua5.1
torlist="/home/ftp/lst/tor_ip_list.txt"
function add_ipset_lst()
    os.execute("/usr/sbin/ipset -N torips iphash")
end
function del_ipset_ips()
    os.execute("/usr/sbin/ipset -F torips")
end

function count()
    local c = 0
    for s in io.lines(torlist) do
        if string.find(s,"^%d+%.%d+%.%d+%.%d+$") then
            c = c +1
        end
    end
    return c
end

function load_base()
    for s in io.lines(torlist) do
        if string.find(s,"^%d+%.%d+%.%d+%.%d+$") then
            os.execute("/usr/sbin/ipset -A torips "..s)
        end
    end
    os.execute("/sbin/iptables -I INPUT -m set --set torips src -j DROP")
end
function run ()
    if count() > 0 then
     del_ipset_ips()
     os.execute("/sbin/iptables -D INPUT -m set --set torips src -j DROP")
     add_ipset_lst()
     load_base()
    end
end

run()

Понадобится интерпретатор языка lua.


Спасибо сказали:
Go to the top of the page
+Quote Post
mariner
сообщение 12.5.2012, 17:23
Сообщение #11


Местная ТехПоддержка
**********

Группа: Администраторы
Сообщений: 1 875
Регистрация: 18.7.2008
Из: Моск. Обл, г. королев, район Болшево
Пользователь №: 221
Спасибо сказали: 220 раз




блин big_smile.gif Луа то зачем при наличии sh
Go to the top of the page
+Quote Post
Saymon21
сообщение 12.5.2012, 17:26
Сообщение #12


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Кто как хочет, так и... ;)
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Сейчас: 28.3.2024, 23:59