Список точек выхода сети Tor, с которых инициируются исходящие соединения, можно загрузить на официальном сайте проекта Tor:https://check.torproject.org/cgi-bin/TorBulkExitList.py
или используя неофициальный архив:
https://www.dan.me.uk/torlist/
По указанным адресам выдаются списки IP-адресов, которые можно использовать для блокирования межсетевым экраном/HTTP-сервером или привязки метки через модуль geo_ip.Пример блокирования через ipfw:
ipfw table 1 flush
curl https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=8... | grep -v "^#" | while read cnt ip; do
/sbin/ipfw table 1 add $ip 1
done
ipfw add deny all from "table(1)" to any via em1Для выставления флага через модуль ngx_http_geo_module в nginx:
curl https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=8... |
grep -v "^#" | sed 's/$/ tor;/' > /usr/local/etc/nginx/tor.confв nginx.conf:
geo $country {
include /usr/local/etc/nginx/tor.conf
}далее для блокировки можно добавить проверку:
if ($country = 'tor') {
...
}URL:
Обсуждается: http://www.opennet.me/tips/info/2817.shtml
> заблокировать вход пользователей, работающих через сеть TorА какой в этом смысл?
Смысл в том, что сейчас большое количество атака и вирусов которые ломятся и исходят из tor-сети.
> Смысл в том, что сейчас большое количество атака и вирусов которые ломятся
> и исходят из tor-сети.Явно не больше чем из обычного интернета. У него фиг отберешь пальму первенства в этом вопросе. Так что ждем когда админы выключат себе интернет.
> Смысл в том, что сейчас большое количество атака и вирусов которые ломятся и исходят из tor-сети.Можете предоставить ссылочку на хоть какую-нибудь аналитику в этом вопросе? Я по прежнему убежден что большое количество атак и вирусов идут от уже зараженных машин, и им плевать на неанонимность.
Любой трафик потенциально чего-то стоит, и уж если человек заходит на ваш публичный ресурс, то на мой взгляд надо радоваться даже людям у которых есть причины сохранять анонимность (конечно, если только целью вашего сервиса не является отслеживание действий пользователей). К тому же такая мера как ограничение доступа с определенных хостов к вашему сервису не является сколько-нибудь значимым повышением уровня безопасности, преодолеть этот заслон под силу школьнику, читающему журнал кулхацкер (даже если он двоечник).
Т.е. делать ничего не надо?! Ок, ок )
> Т.е. делать ничего не надо?! Ок, ок )Я не говорил, что делать ничего не надо. Я лишь говорил что не следует делать бесполезные и вредные дела.
>> Т.е. делать ничего не надо?! Ок, ок )
> Я не говорил, что делать ничего не надо. Я лишь говорил что
> не следует делать бесполезные и вредные дела.Почему ты думаешь, что это бесполезное и вредное дело? Мне кажется, ненадо говорить за всех, это решение задачи и скорее всего для кого-то это является хорошим решением, а для остальных - хотите пользуйтесь, не хотите - не пользуйтесь.
Чтобы якобы доказать несостоятельность предложенного, вы предлагаете какие-то дикие крайности. Imago по Чапеку.1) Сеть Тор - медленная, оттуда реально возможно только взлом. От ддоса это не спасёт никоим образом
2) Единственное, что может обеспечить Тор - анонимность, для которой будет достаточно найденной открытой вай-фай сети или одного взломанного хоста из ботнета.Вам пытаются обьяснить основополагающие вещи, из-за которых подобные меры являются лишь успокоением администратора, и ничуть не повышают безопасность сервера.
Да нет, просто когда товарищу сержанту надо отчитаться перед товарищем майором о проделанной работе - он может предъявить такую вот нехитрую хрень. :)
Через Tor Browser нормально смотрятся видео в HD, не надо тут. Всё просто леает.
Я бы сказал, что есть некая защита от троллей. Самые жирные сидят с тора.
Лучшая защита от троллей - это не кормить их.
чтоб не ломали
Пффф. Тоже мне защита. Ломанут через 1 хост из многотысячного ботнета. Легче будет?
Вообще можно перекрыть всем доступ, кроме родной страны. А то вдруг негры сомалийские сломают.
Нормальную защиту надо делать, чтобы случайно залетевший воробей не положил всё. Запрещая Тор Вы сильно ограничиваете потенциальную аудиторию, если это не кулинарный сайт с 5 посетителями в неделю.
> Пффф. Тоже мне защита. Ломанут через 1 хост из многотысячного ботнета. Легче
> будет?Блокирование Tor является очень хорошей защитой от дурака. Tor ставится в один клик и пакостники этип с радостью пользуются. В 90% случаях у подобных индивидов не хватит ни ума, ни желания лишний раз пошевелить задницей для использования открытых проксей и прочих анонимайзеров, а светить реальный IP они побоятся.
Глупости.
Покажи че взять ценного и возьмут, оставив номер паспорта.
> Покажи че взять ценного и возьмут, оставив номер паспорта.Что характерно, номер паспорта будет взят с ближайшего лоха которому "нечего скрывать". Вместе со сканом в лучшем случае. А вот лох потом "в случае чего" будет очень долго доказывать в ментуре что не верблюд...
Эксперименты показали что нынче бывает проще взять открытый сокс5 чем тор :). Особенно в случае IRC, где банхаммерами махать умеют.Наиболее культурно в этом плане поступили Freenode. Они не только не стали блочить тор, но и hidden service поставили.
Хинт: hidden service отличается от обычного сайта тем что его довольно сложно изъять и забанить. А хацкеров надо держать на расстоянии путем патчинга дыр вовремя, а не надеждой что все хацкеры глупые. Это не работает.
Расскажи про своевременное латание дыр тем, кто пострадал от 0day, эксперт.
Если у атакующего есть 0day, то блокировка тора вряд ли поможет.
> Расскажи про своевременное латание дыр тем, кто пострадал от 0day, эксперт.При наличии 0day блочить только Tor? Это напоминает "windows XP with firewall.jpg"
Какие-то вредные советы пошли: то как прикрутить роскомцензурный списки, то теперь как тор забанить.
> Какие-то вредные советы пошли: то как прикрутить роскомцензурный списки, то теперь как тор забанить."прикрутить роскомцензурные списки" -- это совет интернет-провайдеру.
"как тор забанить" -- это совет хостингу для web-сайта.
осталось дать ещё какой-нибудь совет самому пользователю.. типа:
"как на друга заявить в полицую, если на его компьютере вы случайно заметили пирацкий фильм Михалкова?"
> "прикрутить роскомцензурные списки" -- это совет интернет-провайдеру.Самый смак в этом совете интернет-провайдеру еще был в том, что там описывалась настройка ssl bump-а.
> описывалась настройка ssl bump-а.Кулсисопы дорвались до интернета. И все бы ничего, но вот где была башня аппруверов - загадка природы.
>> Какие-то вредные советы пошли: то как прикрутить роскомцензурный списки, то теперь как тор забанить.
> "прикрутить роскомцензурные списки" -- это совет интернет-провайдеру.
> "как тор забанить" -- это совет хостингу для web-сайта.
> осталось дать ещё какой-нибудь совет самому пользователю.. типа:
> "как на друга заявить в полицую, если на его компьютере вы случайно
> заметили пирацкий фильм Михалкова?"Когда-то мне довелось работать рядышком с главным офисом одного оператора-монополиста. По доброй советской традиции еще одним соседним зданием был главный офис областного экс-КГБ. Внутренние дворы обеих контор разделяла только стена высотой метра 4, с колючкой и камерой (еще советской, не твердотельной) наверху.
Фасады зданий выходили (и до сих пор выходят) на весьма оживлённый проспект. В частности, как раз на этот проспект смотрели (и смотрят) окна автозалов ОПТС и АМТС оператора. Кабельная шахта здания тоже находилась со стороны проспекта.
С тыльной стороны обоих контор находилась территория городского СИЗО, три общих корпуса и небольшой изолятор КГБ, построенный буквально за год или два до развала совка. Забор, колючая проволока, вышки, надписи "стой, запретная зона" на заборе (и пара менее официальных). А дальше, отделенный от СИЗО только несколькими рядами деревьев и улочкой начинался жилой микрорайон. Улочка располагалась перпендикулярно забору, отделявшему экс-КГБ от "дворца связи", как его обозвали сами связисты. Аккурат напротив этой точки, только на другой стороне улицы находилась обычная трансформаторная будка, а у ее стены стоял неприметный серый металлический ящик. На ящике было написано "мудаки, к этому ящику есть проход". Самое интересное, что проход действительно был.
В чем соль истории? Шпионы, читая надпись на ящике, думали все эти заборы с колючей проволокой именно ради защиты ящика?
Чувак, не лезь в ящик у трансформатора, там бо-бо и искры!
> Какие-то вредные советы пошли:Здесь скорее реализация выглядит плохим советом:
| while read cnt ip; do /sbin/ipfw table 1 add $ip 1может преподнести сюрприз при аккуратно подобранных данных специального вида (либо особо удачном мусоре) с той стороны. Например, незакавыченный $ip вида "; rm -rf; echo".
начнём с того что было совершенно дурацкой идеей -- писать всё это на SHELL.взяли бы Python или Perl
> взяли бы Python или PerlЗачем?
Чтобы было больше) А то вот в C еще можно с памятью накосячить - тоже вариант "хозяйке на заметку".
> Чтобы было больше) А то вот в C еще можно с
> памятью накосячить - тоже вариант "хозяйке на заметку".Ждем когда бидонисты перепишут айпитаблес на бидоне.
>А то вот в C еще можно с памятью накосячить - тоже вариант "хозяйке на заметку".Гад. Зачем ты Шигорину это разрешил?! Теперь всё пропало! //><//Магнитофон импортный, три.
>>А то вот в C еще можно с памятью накосячить - тоже вариант "хозяйке на заметку".
> Гад. Зачем ты Шигорину это разрешил?!Не, я последний раз косячил с fd, так что не надо грязи. :]
Модно, чо.
> взяли бы Python или PerlАвторы moinmoin делом доказали что настоящий джедай дыростроения без проблем пишет дырявый код на любом ЯП. В том числе и на питоне.
> начнём с того что было совершенно дурацкой идеей -- писать всё это
> на SHELL.
> взяли бы Python или PerlТы, чтобы карандаш очинить, тоже мельничный жернов попросишь? Потому что на шелле это пишется на раз. Через 15 минут максимум неспешной писанины с двумя перекурами и забиванием в кронтаб задача решена. Аминь.
Скриптег для iptables
IPTABLES=$(which iptables)
ADDRESS="8.8.4.4"
#
function AntiTOR() {LIST=$(lynx -dump https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=$ADDRESS | grep -v '^#');
for node in $LIST
do
echo $IPTABLES -A INPUT -p tcp -s $node -j REJECT --reject-with tcp-reset;
done
}
да, норм..только писать правила нужно не в INPUT цепочку, а в какую-нибудь кастумную цепочку..
например в INPUT_TOR_A и в INPUT_TOR_B -- поочереди.
а внутри цепочке INPUT -- лишь ссылаться на INPUT_TOR_A и INPUT_TOR_B
А чего не через ipset? Недостаточно большие таблицы в файерволе глаз не радуют?
> большие таблицы в файерволе глаз не радуют?ды без разницы уже :).. через несколько недель выйдет в стабильный релиз -- nftables
так что обсуждение костылей вокруг iptables -- какая то не особо актуальная тема :-)
так как -- теперь уже iptables сам по себе станет костылём вокруг nftables :)
ipset полезен, когда адреса и правила более-менее постоянны,
этот же скрипт и правила желательно генерить и обновлять раз в час.
IPTABLES=$(which iptables)# А вдруг мы за НАТом!
ADDRESS=$(dig +short myip.opendns.com @resolver1.opendns.com)
# Список Шындлера
LIST=$(lynx -dump https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=$ADDRESS | grep -v '^#' | sort -u)# [cmd] [name] [type]
ipset create TOR_NODES hash:ip;for node in $LIST
do
echo ipset -A TOR_NODES $node;
done$IPTABLES -A INPUT -m set --match-set TOR_NODES src -j REJECT;
$IPTABLES -A INPUT -m set --match-set TOR_NODES dst -j REJECT;Принимаются варианты на bpf и nf
Зачем каждый раз добавляются правила для reject-а? Для чего весь список засовывается в массив вместо того, чтобы сразу через xargs скармливать хосты ipset-у? Зачем сортировка, если ipset все равно внутри себя все засунет в хэш-таблицу? Где очистка старых адресов, которые больше нет в списке?
> Для чего весь список засовывается в массив вместо того,
> чтобы сразу через xargs скармливать хосты ipset-у?Примеры в студию!
> Зачем сортировка, если ipset все равно внутри себя все засунет в хэш-таблицу?
Пару миллисекунд жалко?
> Где очистка старых адресов, которые больше нет в списке?
Ща за веником сбегаю.
---
... а багу не заметили dst должно быть в OUTPUT
$IPTABLES -A INPUT -m set --match-set TOR_NODES src -j REJECT;
$IPTABLES -A OUTPUT -m set --match-set TOR_NODES dst -j REJECT;
>Ща за веником сбегаю.не добежал чтоль?..
ipset create TOR_NODES hash:ip -exist
ipset flush TOR_NODES( ipset flush TOR_NODES;
curl -s https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=$(dig +short myip.opendns.com @resolver1.opendns.com) | grep -v '^#' | xargs -L1 ipset -A TOR_NODES )&iptables -F NOTOR
iptables -A NOTOR -m set --match-set TOR_NODES src -j REJECT
iptables -A NOTOR -m set --match-set TOR_NODES dst -j REJECT
iptables -A NOTOR -j RETURN
Пофикшенный вариантipset create TOR_NODES hash:ip -exist
( ipset flush TOR_NODES;
curl -s https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=$(dig +short myip.opendns.com @resolver1.opendns.com) | grep -v '^#' | xargs -L1 ipset -A TOR_NODES )&iptables -F NOTOR
iptables -A NOTOR -m set --match-set TOR_NODES src -j REJECT
iptables -A NOTOR -m set --match-set TOR_NODES dst -j REJECT
iptables -A NOTOR -j RETURNwait
> ipset create TOR_NODES hash:ip -exist
> ( ipset flush TOR_NODES;
> curl -s https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=$(dig +short
> myip.opendns.com @resolver1.opendns.com) | grep -v '^#' | xargs -L1 ipset -A
> TOR_NODES )&
> iptables -F NOTOR
> iptables -A NOTOR -m set --match-set TOR_NODES src -j REJECT
> iptables -A NOTOR -m set --match-set TOR_NODES dst -j REJECT
> iptables -A NOTOR -j RETURN
--- a 2013-12-22 23:52:08.763948000 +0400
+++ b 2013-12-22 23:52:27.286948000 +0400
@@ -3,6 +3,7 @@
( ipset flush TOR_NODES;
curl -s https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=$(dig +short myip.opendns.com @resolver1.opendns.com) | grep -v '^#' | xargs -L1 ipset -A TOR_NODES )&
+iptables -N NOTOR
iptables -F NOTOR
iptables -A NOTOR -m set --match-set TOR_NODES src -j REJECT
iptables -A NOTOR -m set --match-set TOR_NODES dst -j REJECT
ADDR=$(dig +short myip.opendns.com @resolver1.opendns.com)Без sort -u
# time (curl -s https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=$ADDR | grep -v '^#' | xargs -L1 ipset -A TOR_NODES)real 0m7.241s
user 0m1.941s
sys 0m3.056s---
# time (curl -s https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=$ADDR | grep -v '^#' | sort -u | xargs -L1 ipset -A TOR_NODES)real 0m6.596s C утилью uniq на 0.1 сек. дольше.
user 0m1.645s
sys 0m2.695sПол секунды профита :)
# ipset -L | wc -l
2779
Ты померял работу с сетью и работу с нетлинком, но никак не влияние сортировки на производительность.
> но никак не влияние сортировки на производительность.Пичалька
ipset create TOR_NODES hash:ip -existADDR=$(dig +short myip.opendns.com @resolver1.opendns.com)
curl -s https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=$ADDR > RAW.txt;# ipset flush TOR_NODES;
# time (cat RAW.txt | grep -v '^#' | xargs -L1 ipset -A TOR_NODES)
real 0m4.194s
user 0m1.212s
sys 0m2.325s# ipset flush TOR_NODES;
# time (cat RAW.txt | grep -v '^#' | sort -u | xargs -L1 ipset -A TOR_NODES)
real 0m3.974s
user 0m1.157s
sys 0m2.228s
Теперь ты меряешь работу только с нетлинком, но опять не сортировку.
> Теперь ты меряешь работу только с нетлинком, но опять не сортировку.Ты ваще разницу видишь?
1. cat | grep | sort | xargs ipset
2. cat | grep | xargs ipsetТормоза в ipset при заносе всего подряд.
Это доказывает, то, что ipset тормознутее ищет и сравнивает свои хэши,
чем текстовая сортировка с устранением дубликатов!Если это не так, напиши в багтрекер coreutils.
> +iptables -N NOTORСкрипт рассчитан на то, что цепочки фаервола, как и прочие статические вещи, создаются из /etc/sysconfig/iptables, а сам скрипт занимается только динамикой. Тем более, что, если тупо добавлять цепочку при каждом вызове, то скрипт будет гадить ошибкой в stderr при каждом запуске, кроме первого, что нехорошо.
>> +iptables -N NOTOR
> Скрипт рассчитан на то, что цепочки фаервола, как и прочие статические вещи,
> создаются из /etc/sysconfig/iptables, а сам скрипт занимается только динамикой. Тем более,
> что, если тупо добавлять цепочку при каждом вызове, то скрипт будет
> гадить ошибкой в stderr при каждом запуске, кроме первого, что нехорошо.А посаны-то и не знали! Тема про tor и примеры одного скрипта.
Чо и куда пихать каждый разберётся сам.
>>> +iptables -N NOTOR
>> Скрипт рассчитан на то, что цепочки фаервола, как и прочие статические вещи,
>> создаются из /etc/sysconfig/iptables, а сам скрипт занимается только динамикой. Тем более,
>> что, если тупо добавлять цепочку при каждом вызове, то скрипт будет
>> гадить ошибкой в stderr при каждом запуске, кроме первого, что нехорошо.
> А посаны-то и не знали! Тема про tor и примеры одного скрипта.
> Чо и куда пихать каждый разберётся сам.Я тебе говорю, на что скрипт, написанный мной рассчитан и почему iptables -N там осознанно не был написан.
$ cat /etc/sysconfig/iptables
cat: /etc/sysconfig/iptables: Нет такого файла или каталога
$ cat /etc/debian_version
6.0.8
$ iptables -V
iptables v1.4.8Как жить, профэссор?
apt-get install iptables-persistentА потом смотреть в /etc/iptables/rules
У кого-то butthurt :).Аренда ботнета не так дорога если действительно нужно что-то сделать.
А так почти "неуловимый джо" :D.
> У кого-то butthurt :).С учетом деятельности роскомпозора и прочих анб и призм - ныне в пору наоборот поднимать hidden service в Tor для своего сайта, чтоб сайт не отжали по простому, "на дypaка".
>> У кого-то butthurt :).
> С учетом деятельности роскомпозора и прочих анб и призм - ныне в
> пору наоборот поднимать hidden service в Tor для своего сайта, чтоб
> сайт не отжали по простому, "на дypaка".Мужик, а 1 Гбит трафа ты тоже через тор пропустишь входящего, м?
>>> У кого-то butthurt :).
>> С учетом деятельности роскомпозора и прочих анб и призм - ныне в
>> пору наоборот поднимать hidden service в Tor для своего сайта, чтоб
>> сайт не отжали по простому, "на дypaка".
> Мужик, а 1 Гбит трафа ты тоже через тор пропустишь входящего, м?И вот именно поэтому пора бы кому-то уже озаботиться пиаром тор-серверов в РФ. Чтобы у каждого юзера, со Зверем ставились, как анонимайзер интернета. В роутеры линуксовые зашивались вирусней.
Когда у тебя сервак тора (или хаб/нода, как её там), то можно откреститься от любых запросов. Я вот сейчас перешел на поисковик duckduckgo, нигме и яндексам не доверяю после последних законов. А то придут дяди в погонах: с твоего ип был запрос "сменить продукт кей хп", ты что п*дла, опять за старое взялся? И мордой об стол.
А так: поток шифрованного трафика и на вход и на выход. Ещё и вай-фай без пароля поставить. Кто входил - ни бубу, что качал - не знаю ))
> А так: поток шифрованного трафика и на вход и на выход. Ещё
> и вай-фай без пароля поставить. Кто входил - ни бубу, что
> качал - не знаю ))Есть подозрение, что тогда просто заметут и будет еще хуже.
>> А так: поток шифрованного трафика и на вход и на выход. Ещё
>> и вай-фай без пароля поставить. Кто входил - ни бубу, что
>> качал - не знаю ))
> Есть подозрение, что тогда просто заметут и будет еще хуже.Не, wifi без пароля соседи засрут торрентами за милую душу - сам не рад будешь.
> Мужик, а 1 Гбит трафа ты тоже через тор пропустишь входящего, м?1Гбит - думаю пропустится, особенно если шифрование по несольким процессорам распихать.
>> Мужик, а 1 Гбит трафа ты тоже через тор пропустишь входящего, м?
> 1Гбит - думаю пропустится, особенно если шифрование по несольким процессорам распихать.WAT?!
> WAT?!То самое. Если вы укажете Tor что он может использовать несколько процов под крипто - думаю что он гигабит таки обмолотит. А т.к. соединение идет через распределенную сеть, гигабит опять же вполне можно пропихнуть: нагрузка размажется на 100500 узлов.
>> WAT?!
> То самое. Если вы укажете Tor что он может использовать несколько процов
> под крипто - думаю что он гигабит таки обмолотит. А т.к.
> соединение идет через распределенную сеть, гигабит опять же вполне можно пропихнуть:
> нагрузка размажется на 100500 узлов.У тя из компа 100500 проводов выходит?
> У тя из компа 100500 проводов выходит?Добрые дяди волшебники^W инженеры давно придумали, как через один кабель общаться с более чем одним хостом. ;)
Заблокировать Tor - плюнуть в лицо пользователю.
> Пример блокирования через ipfw:
> ipfw table 1 flush
> curl https://check.torproject.org/cgi-bin/TorBulkExitList.py?ip=8... | grep -v "^#" while read cnt ip; do
> /sbin/ipfw table 1 add $ip 1
> done
> ipfw add deny all from "table(1)" to any via em1это называется паранойя на грани маразма ...
меня вопрос мучает - а если выполнение загрузки списка затянется минут на дцать? у вас так и будет ipfw флашнутый висеть? и закроет все или наоборот откроет ?
Для iptables можно установить модуль ipset, который при больших списках хостов создает меньше нагрузки на проц.