среда, 31 октября 2012 г.

Sapienti Sat

Вообще, должен заметить, что полностью заблокировать Tor довольно сложно технически. Решения типа GoldenShit требуют ресурсов слегка другого масштаба, нежели обычно имеются в распоряжении админов заведений.

Если блокировка выходных нод Tor делается сравнительно дешево и сравнительно сердито, со  входными ситуация несколько хуже.

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

Однако нам сугубо не нравится, что, в общем-то, благое средство используется для обхода наложенных нами ограничений на посещение мест, которые на рабочем месте, тащемта, посещать не след.

Ну, для начала, в помощь государству, можно сильно затруднить соединение клиентов Tor в локальной сети с точками входа средствами Squid:

acl numeric_IPs url_regex ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+ 
http_access deny CONNECT numeric_IPs all

Сервер уже запустить в локалке с таким ограничением влегкую не получится. Да и клиент уже не сможет соединиться играючи, а в большинстве случаев практически совсем не сможет.

Однако, Tor не та вещь, которую легко удержать в наморднике. В сети Tor как раз на подобный случай существует такая штука, как бриджи:






Как видим, для сапиенса, оборудованного мозгом, нет ничего невозможного. :) Сервер вы, конечно, в правильно построенной сети не создадите, однако выйти клиентом вполне сможете при почти любой политике LAN или ISP.

Пользователи, желающие воспользоваться данным методом. Хочу заметить специально для вас - ваш поход за свободой под Tor незамеченным системными администраторами не останется. ISA фиксирует соединения с сетью Tor, другие системы проксирования также видят факт установления соединения с сетью Tor и запуск клиента по весьма характерным первым соединениям. Поэтому шалить можно только в том случае, если вам категорически за это ничего не будет. Поскольку то, что вы творите внутри Tor, видеть можно лишь с реально большим трудом (это чрезвычайно затруднительно, хотя и не могу сказать, что абсолютно невозможно), презумпция виновности будет действовать практически во всех случаях.

Нет, спасибо мне говорить не надо. Лучше сделайте небольшое пожертвование за ценную идею:
Have fun! ;)

понедельник, 29 октября 2012 г.

Новый протокол zINSTREAM в ClamAV и редиректоры Squid

Так получилось, что я достаточно долго не подходил к своим прокси-серверам. А когда, наконец, подошел, то обнаружил, что мир изменился - и разработчики ClamAV поменяли протокол взаимодействия с демоном, вследствие чего проверка "на лету" перестала работать.

Строго говоря, протокол изменен давно. На SPARC у меня проверка с редиректором SquidClamav не работала с весны, причем редиректор вылетал с дампом.

Неоднократное вскрытие показало, что проблема зарыта в редиректоре. Который не мог связаться с демоном Clam из-за того, что в том сменился протокол - был STREAM, стал zINSTREAM.

Поскольку проверка файлов "на лету" нам по-прежнему нужна, решаем проблему. Большое спасибо автору SquidClamav Gilles Darold, который отреагировал на уведомление молниеносно и собрал новые версии SquidClamav (Обе ветви - и 5.x и 6.x).

Для Squid 3 протокол zINSTREAM поддерживается в версии 6.10, для Squid 2 в версии 5.11.

Собирается обычным образом, конфигурационные файлы править не нужно.

Стоит отметить, что, на субъективный взгляд, новый протокол выполняет передачу файлов  на проверку ощутимо быстрее, и время отклика сервера стало меньше.

среда, 17 октября 2012 г.

Как почистить кэш Squid

Нет, не целиком удалить. А вычистить оттуда лишнее, то, что не нравится или нужно освежить.

Задача, в общем-то, тривиальная для того, кто оборудован мозгом. Не все, однако им оборудованы - это во-первых, а во-вторых, лично мне влом вспоминать команду каждый раз, когда такая задача встает. 

Напишем красивый ленивчик, не содержащий лишних и ненужных движений:


#!/bin/sh
# Purge object(s) from Squid cache
AWK=`which awk`
GREP=`which grep`
XARGS=`which xargs`
SQUIDCLIENT="/usr/local/squid/bin/squidclient"

SQUID_LOG="/data/cache/log/access.log"

$GREP "$1" $SQUID_LOG | $AWK '{print $7}' | $XARGS $SQUIDCLIENT -m PURGE

Порядок. Положить в /usr/local/bin, дать права на выполнение и пользоваться на здоровье. Аргументом можно задавать домен, маску имени, расширение файлов.

Если не хочется на отсутствующий объект получать ругань клиента - добавьте опцию -s.