Описание скрипта: Скрипт не даёт зайти на хаб пользователям, использующим технологию http://mydc.ru/r/?https://ru.wikipedia.org/wiki/Tor.
Протестировано на Debian GNU/Linux 6.0.4, RusHub 2.3.9, LuaPlugin 2.8
Отличия этой версии:
1)http://mydc.ru/r/?https://ru.wikipedia.org/wiki/CURL теперь вызывается не из скрипта. Надо подумать зарание об обновлении бд через сторонний планировщик. Например http://mydc.ru/r/?https://ru.wikipedia.org/wiki/Cron. Под венду были сборки. Хотя там есть и куча других альтернатив. google://. Пример задачи для cron:
Вместо curl также можно использовать http://mydc.ru/r/?https://ru.wikipedia.org/wiki/Wget, http://mydc.ru/r/?http://www.opennet.ru/man.shtml?topic=fetch&category=1&russian=1, libwww-perl и т.п.
2) в Ban ныне она ExecuteOnTor (карательная функция для тех, кто лезет с tor'ом) добавлена возможность вызова iptables, ipfw, route, ipchains (Можно вписать вызов любых утилит). В комментариях показаны примеры некоторых правил к ним. Под венду: google://wipfw. Все вопросы о настройке утилит, sudo, fw, google:// пожалуйста.
3) Добавлена возможность блокировки чата/привата tor-юзерам, на случай если кто-то решит что лучше пускать всех подряд, но пусть они сидят молча. Из фич тут есть возможность тихой блокировки.
4) Добавлена проверка всех онлайн юзеров на подключение с Tor при старте скрипта и при обновления списка адресов.
5) Добавлена проверка OnMCTo. (Персональные сообщения в главном чате). Настройки такие же, как и для чата/лс.
а это по тому алгоритму что расписывал ты мне список прокси-серверов отлавливаем через ipset ?? P.S. жаль времени у тебя нет Коль
Автор: Saymon21 16.3.2012, 14:43
Пару фиксов. Не совсем правильно работала блокировка чата/привата. Скрипт обновлён в первом посте.
Для дисконнекта юзера без отправки сообщения "Этот хаб работает под управлением..." находим
Код
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
Автор: mariner 16.3.2012, 15:16
Цитата
а это по тому алгоритму что расписывал ты мне список прокси-серверов отлавливаем через ipset ??
Ага, именно так. Там же дел немного, но просто мне все лень.
Автор: Saymon21 16.3.2012, 18:42
Добавлена проверка всех онлайн юзеров на подключение с Tor при старте скрипта и при обновления списка адресов. Добавлена проверка на использование Tor в событии OnMCTo. (Персональные сообщения в главном чате). Настройки такие же, как и для чата/лс.
Скрипт обновлён в первом посте.
Автор: KT315 16.3.2012, 20:16
А что с таймером не так? Почему cron предлагаешь?
Автор: Saymon21 16.3.2012, 20:26
С таймером всё нормально. Просто не хотел вешать лишние задачи на хаб.
Автор: Saymon21 12.5.2012, 11:54
Мб кому будет полезно. Скрипт для блокирования 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