Как заблокировать TOR
За несколько десятилетий своего существования интернет из безусловно полезной и доброй субстанции превратился в коварного и злого хищника. Победоносное шествие интернета по планете привело к тому, что в нем оказались люди, чьи намерения и в реале-то никогда не отличались добротой, а уж интернет стал для них просто золотой жилой. Именно этим людям стоит сказать спасибо за обилие рекламы на современных сайтах и, конечно же, за еще большее обилие спама в современном электронно-почтовом обороте.
Но давайте сегодня отвлечемся от тех, кого иначе как преступниками не назовешь. Не секрет, что любой сервис, размещенный в интернете, собирает некоторую информацию о своих пользователях. Например, сервер, любезно предоставивший вам эту страницу, помимо выполнения основной своей задачи записал в логи массу интересной информации — точное время запроса страницы, ваш IP-адрес, ваш браузер, а также адрес страницы, с которой вы сюда попали. Возможно, что по некоторым причинам такое любопытство со стороны сервера может вам не понравиться, особенно в части IP-адреса. Вы можете воспользоваться различными недолго живущими прокси-серверами, но рано или поздно вам захочется стабильности и вы обратите внимание на TOR.
Конечно, TOR преследует благие цели анонимности в интернете. Но бывают ситуации, когда такая анонимность недопустима. Или же TOR используют с целью обхода каких-либо политик. В таких ситуациях требуется заблокировать использование TOR. Оказывается, это не такая сложная задача. Рассмотрим распространенный вариант. Есть шлюз с FreeBSD и ipfw на борту, через который в интернет выпускается небольшая контора — около двухсот сотрудников. Социальные сети им уже заблокировали, но особо продвинутые сотрудники прослышали про TOR, скачали специальный TOR-браузер и продолжают тратить рабочее время в развлекательных целях. Необходимо сделать TOR-браузеры неработоспособными.
Для начала пишем небольшой скрипт
#!/bin/sh # Определяем путь к списку TOR-серверов LST=http://torstatus.blutmagie.de/ip_list_all.php/Tor_ip_list_ALL.csv # Скачиваем актуальный список TOR-серверов /usr/local/bin/wget $LST -q -O — | sort | uniq > /tmp/tor.list # Если файл записался удачно — начинаем маньячить if [ -s /tmp/tor.list ]; then # Очищаем таблицу под номером 20 /sbin/ipfw table 20 flush # Читаем построчно список TOR-серверов /bin/cat /tmp/tor.list | while read ip; do # Добавляем все IP-адреса из списка в таблицу под номером 20 /sbin/ipfw table 20 add $ip done fi
Скрипт скачивает свежую версию TOR-серверов, после чего весь список записывает в таблицу фаервола. Остается только в подходящем месте добавить правило для блокирования трафика:
ipfw add 1000 deny ip from «table(20)» to any
Теперь воспользоваться сетью TOR будет значительно сложнее.
Чтобы список серверов всегда был в актуальном состоянии — необходимо добавить скрипт, обновляющий таблицу IP-адресов, в cron. Например, если вы сохранили скрипт в /etc/block_tor.sh — в файл /etc/crontab нужно добавить вот такую строчку:
40 3 * * * root /etc/block_tor.sh
Теперь каждую ночь в 3:40 список блокируемых серверов будет обновляться.