

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yaroshenko @blog &#187; Proxy</title>
	<atom:link href="http://yaroshenko.biz/archives/tag/proxy/feed" rel="self" type="application/rss+xml" />
	<link>http://yaroshenko.biz</link>
	<description>I would change the world, but the God does not give source codes...</description>
	<lastBuildDate>Sun, 24 Oct 2010 20:37:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Squid3+SAMS+Samsredirector +C-ICAP+CLAMAV на Ubuntu-server 7.10</title>
		<link>http://yaroshenko.biz/archives/112</link>
		<comments>http://yaroshenko.biz/archives/112#comments</comments>
		<pubDate>Thu, 06 Mar 2008 18:40:25 +0000</pubDate>
		<dc:creator>raider</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[C-ICAP]]></category>
		<category><![CDATA[Clamav]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Proxy]]></category>
		<category><![CDATA[SAMS]]></category>
		<category><![CDATA[Squid]]></category>
		<category><![CDATA[Squid3]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://yaroshenko.biz/archives/112</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>В предыдущей статье я писал как сделать связку <a href="http://yaroshenko.biz/archives/101#more-101">SQUID3+SAMS+SAMSREDIRECTOR</a><br />
Теперь давайте воспользуемся возможностями squid3  в полной мере<br />
и добавим C-ICAP+CLAMAV, получив тем самым возможность фильтрации http трафика.<br />
<span id="more-112"></span></p>
<p><strong>Ставим антивирус:</strong><br />
apt-get install clamav libclamav-dev<br />
Добавляем задание для обновления антивирусных баз<br />
crontab -u root -e<br />
* */2 * * * /usr/bin/freshclam &gt; /dev/null 2&gt;&amp;1</p>
<p><strong>c-icap &#8211; демон ICAP</strong><br />
Адрес проекта: <a href="http://sourceforge.net/projects/c-icap">http://sourceforge.net/projects/c-icap</a><br />
Работать он будет под пользователем proxy в группе nobody<br />
groupadd -g 65535 nobody<br />
cd /usr/src/<br />
wget http://kent.dl.sourceforge.net/sourceforge/c-icap/c_icap-180407.tar.gz<br />
tar -xzpf c_icap-180407.tar.gz &amp;&amp; rm c_icap-180407.tar.gz<br />
cd c_icap-180407</p>
<p>Конфигурим:<br />
./configure &#8211;enable-static &#8211;with-clamav &#8211;prefix=/opt/c_icap<br />
(при копировании исправьте  &#8212;  на  &#8211; -)<br />
make<br />
make install<br />
Получил ошибку:<br />
mkdir: cannot create directory `/opt/c_icap/var/log/&#8217;: File exists<br />
Разбираться не стал, просто полечил:<br />
chmod 0775 /opt/c_icap/var/log/<br />
make install<br />
Все отработало нормально.</p>
<p>Теперь пиведем все к удобному и привычному виду:<br />
mv /opt/c_icap/var/log /var/log/c_icap<br />
ln -fs /var/log/c_icap /opt/c_icap/var/log<br />
mv /opt/c_icap/etc /etc/c_icap<br />
ln -s /etc/c_icap /opt/c_icap/etc</p>
<p><strong>Редактируем конфиг:</strong><br />
vim /etc/c_icap/c-icap.conf<br />
Что меняем:</p>
<p>CommandsSocket /var/log/c_icap/c-icap.ctl<br />
&#8230;<br />
User proxy<br />
Group nobody<br />
&#8230;<br />
ServerLog /var/log/c_icap/icap-server.log<br />
AccessLog /var/log/c_icap/icap-access.log<br />
&#8230;<br />
#Acl Controllers default_acl<br />
acl localsquid_respmod src 127.0.0.1 type respmod<br />
acl localsquid src 127.0.0.1<br />
acl externalnet src 0.0.0.0/0.0.0.0<br />
icap_access allow localsquid_respmod<br />
icap_access allow localsquid<br />
icap_access deny externalnet<br />
&#8230;<br />
# And here the viralator-like mode.<br />
# where to save documents<br />
srv_clamav.VirSaveDir /var/www/downloads/<br />
-может быть задана несколько раз, таким образом, инфицированные файлы будут<br />
сохраняться во множестве мест.<br />
&#8230;<br />
# from where the documents can be retrieved (you can find the get_file.pl script in contrib dir)<br />
srv_clamav.VirHTTPServer “http://192.168.0.99/cgi-bin/get_file.pl?usename=%f&amp;remove=1&amp;file=”<br />
- ссылка, которая выдаст пользователю уведомление о попытке доступа к инфицированному объекту.<br />
&#8230;<br />
srv_clamav.VirUpdateTime время реинициализация антивирусных баз,<br />
по умолчанию &#8211; 15 минут<br />
&#8230;<br />
srv_clamav.ScanFileTypes определяет группы и типы файлов для проверки<br />
(EXECUTABLE и ARCHIVE по умолчанию)</p>
<p><strong>Следующий конфиг файл /etc/c_icap/c-icap.magic</strong><br />
(описание найдено на <a href="http://www.opennet.ru">opennet</a> и не проверялось, добавлено как есть для информации &#8230;)<br />
Представляет собой описание форматов различных групп-типов файлов<br />
(TEXT, DATA, EXECUTABLE, ARCHIVE, GRAPHICS, STREAM, DOCUMENT &#8211; определённые<br />
группы в c-icap.magic по умолчанию).</p>
<p>Антивирусная проверка строиться по типам файлов, проходящих через<br />
проски-сервер, некоторые типы, например, можно исключить или добавить<br />
свои типы.</p>
<p>Формат записи строки, для определения файла по его magic-числу (последовательности):<br />
offset:Magic:Type:Group:Desc<br />
Offset &#8211; смещение, с которого начинаеться Magic-последовательность.<br />
Type и Group &#8211; тип и группа, к которой следует относить файл с данной<br />
magic-последовательностью.<br />
Desc &#8211; кратное описание, технической нагрузки не несёт.<br />
Для примера загляните в c-icap.magic.</p>
<p><strong>Создаем директорию для хранения инфицированного хлама:</strong><br />
mkdir /var/www/downloads/<br />
chmod 775 /var/www/downloads/<br />
chown proxy:nobody /var/www/downloads/</p>
<p><strong>Скрипт get_file.pl:</strong><br />
cp -p ./contrib/get_file.pl /usr/lib/cgi-bin/<br />
vim /usr/lib/cgi-bin/get_file.pl<br />
Заменить<br />
$filename=&#8221;/srv/www/htdocs/downloads/&#8221;.$args{&#8220;file&#8221;};<br />
на<br />
$filename=”/var/www/downloads/”.$args{”file”};<br />
<strong>Теперь качаем и копируем файл запуска:</strong><br />
cd /etc/init.d/<br />
wget http://yaroshenko.biz/wp-content/uploads/2008/03/icap<br />
chmod +x /etc/init.d/icap<br />
update-rc.d icap defaults</p>
<p><strong>Стартуем:</strong><br />
root@proxy:/# /etc/init.d/icap start<br />
Starting c-icap:<br />
Initialization of echo module&#8230;&#8230;<br />
Initialization of url_check module&#8230;&#8230;</p>
<p><strong>Проверяем:</strong><br />
root@proxy:/# /etc/init.d/icap status<br />
Status process i-cap:<br />
COMMAND   PID  USER   FD   TYPE DEVICE SIZE NODE NAME<br />
c-icap  16918 proxy    5u  IPv4  26769       TCP *:1344 (LISTEN)<br />
c-icap  16919 proxy    5u  IPv4  26769       TCP *:1344 (LISTEN)<br />
c-icap  16922 proxy    5u  IPv4  26769       TCP *:1344 (LISTEN)<br />
c-icap  16926 proxy    5u  IPv4  26769       TCP *:1344 (LISTEN)</p>
<p>16984 pts/0    R+     0:00                  \_ /bin/sh -e /etc/init.d/icap status<br />
16918 pts/0    S      0:00 /opt/c_icap/bin/c-icap -d 3 -f /etc/c_icap/c-icap.conf<br />
16919 pts/0    Sl     0:00  \_ /opt/c_icap/bin/c-icap -d 3 -f /etc/c_icap/c-icap.conf<br />
16922 pts/0    Sl     0:00  \_ /opt/c_icap/bin/c-icap -d 3 -f /etc/c_icap/c-icap.conf<br />
16926 pts/0    Sl     0:00  \_ /opt/c_icap/bin/c-icap -d 3 -f /etc/c_icap/c-icap.conf</p>
<p><strong>Идем править конфиг сквида</strong><br />
Находим в конце конфига секцию ICAP OPTIONS<br />
и приводим ее к следующему виду:</p>
<p>icap_enable on<br />
icap_preview_enable on<br />
icap_preview_size 128<br />
icap_send_client_ip on<br />
icap_send_auth_username on</p>
<p>icap_service service_avi_req reqmod_precache 0 icap://localhost:1344/srv_clamav<br />
icap_service service_avi respmod_precache 1 icap://localhost:1344/srv_clamav</p>
<p>icap_class class_antivirus service_avi<br />
icap_access class_antivirus allow all</p>
<p>icap_class class_antivirus_req service_avi_req<br />
icap_access class_antivirus_req allow all</p>
<p>Все, теперь <strong>reboot</strong> и смотрим как все стартует и работает</p>
<p><strong>Протестируем:</strong></p>
<p>http://www.eicar.org/anti_virus_test_file.htm</p>
<p>Идем в секцию Download area using the standard protocol http<br />
и качаем файло, в результате должны получить такое:</p>
<p><a href="http://yaroshenko.biz/wp-content/uploads/2008/03/icap.png" rel="lightbox[pics112]" title="icap.png"><img src="http://yaroshenko.biz/wp-content/uploads/2008/03/icap.thumbnail.png" alt="icap.png" class="imageframe imgalignleft" height="102" width="128" /></a></p>
<p>После попыток скачать зараженные файлы, идем в консоль:<br />
ls -la /var/www/downloads/<br />
drwxrwxr-x 2 proxy root   4096 2008-03-07 00:18 .<br />
drwxr-xr-x 4 root  root   4096 2008-03-06 21:47 ..<br />
-rw&#8212;&#8212;- 1 proxy nobody  308 2008-03-07 00:18 CI_TMP_vjR6BV<br />
-rw-r&#8211;r&#8211; 1 proxy nobody  308 2008-03-07 00:18 eicarcom2.zip<br />
-rw-r&#8211;r&#8211; 1 proxy nobody  184 2008-03-07 00:18 eicar_com.zip</p>
<p>Все четко, все инфицированные в палате &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://yaroshenko.biz/archives/112/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Squid3+SAMS+Samsredirector на Ubuntu-server 7.10</title>
		<link>http://yaroshenko.biz/archives/101</link>
		<comments>http://yaroshenko.biz/archives/101#comments</comments>
		<pubDate>Sat, 01 Mar 2008 05:06:25 +0000</pubDate>
		<dc:creator>raider</dc:creator>
				<category><![CDATA[Howto]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Proxy]]></category>
		<category><![CDATA[SAMS]]></category>
		<category><![CDATA[Squid]]></category>
		<category><![CDATA[Squid3]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://yaroshenko.biz/archives/101</guid>
		<description><![CDATA[ Итак, необходимо поднять на Ubuntu-server 7.10 связку
SQUID3 + SAMS + Samsredirector 
Реализация этого на обычном squid вопросов уже не вызывает почти ни у кого,
так как все описано на много раз &#8230;. а вот squid3 почему-то многих ставит в тупик, хотя непонятно &#8230;.

Итак начнем.
Исходные данные для установки:
Будущий сервер proxy.workgroup
ip 192.168.0.99 gt:192.168.0.77 dns:192.168.0.77
Установка: 
При установке выбираем [...]]]></description>
			<content:encoded><![CDATA[<p> Итак, необходимо поднять на Ubuntu-server 7.10 связку<br />
<strong>SQUID3 + SAMS + Samsredirector </strong><br />
Реализация этого на обычном squid вопросов уже не вызывает почти ни у кого,<br />
так как все описано на много раз &#8230;. а вот squid3 почему-то многих ставит в тупик, хотя непонятно &#8230;.<br />
<span id="more-101"></span></p>
<p>Итак начнем.</p>
<p><strong>Исходные данные для установки:</strong><br />
Будущий сервер proxy.workgroup<br />
ip 192.168.0.99 gt:192.168.0.77 dns:192.168.0.77</p>
<p><strong>Установка: </strong><br />
При установке выбираем конфигурацию LAMP и OPENSSH-Server<br />
В процессе установки вас спросят пароль для root mysql<br />
После установки проверяем  имя хоста в /ets/hostname -&gt;&gt; proxy.workgroup<br />
и записи в /etc/hosts<br />
127.0.0.1       localhost proxy<br />
192.168.0.99    proxy.workgroup proxy<br />
Записи, относящиеся к ipv6 можно удалить &#8230;</p>
<p>Проверяем установки времени:<br />
date<br />
Если нужно изменить -&gt; man date</p>
<p>Редактируем список репозитариев в /etc/apt/sources.list<br />
и обновляем систему<br />
apt-get update<br />
apt-get upgrade</p>
<p><strong> Установка SQUID3 и SAMS</strong><br />
Ставим необходимые пакеты для сборки и работы sams:<br />
apt-get install mc libpcre3 libpcre3-dev libmysqlclient15-dev php5-ldap php-fpdf squid3 squidguard gcc make php5-gd<br />
(если нужна стабильность, ставим squid)</p>
<p>Итак, нам необходимы исходники sams<br />
Идем на http://sams.irc.perm.ru/ и качаем Current Stable Release: sams-1.0.1.tar.bz2<br />
cd /usr/src/<br />
wget http://sams.perm.ru/downloads/sams-1.0.1.tar.bz2<br />
bunzip2 sams-1.0.1.tar.bz2 &amp;&amp; tar -xpf sams-1.0.1.tar &amp;&amp; rm sams-1.0.1.tar<br />
cd sams-1.0.1/</p>
<p>В файле samsdaemon.c<br />
ищем строку squid  -k reconfigure<br />
и меняем на squid3  -k reconfigure<br />
Кто плохо знаком с консольными редакторами, пользуйтесь mc<br />
или после сборки sams делаем симлинк (но думаю это не правильно&#8230;)<br />
ln -s /usr/sbin/squid3 /usr/sbin/squid<br />
иначе демон samsdaemon<br />
будет пытаться при реконфигурировании запустить /usr/sbin/squid вместо squid3</p>
<p>Теперь непосредственно конфигурирование:<br />
./configure &#8211; -with-httpd-locations=/var/www<br />
make<br />
make install</p>
<p>Копируем файл запуска демона  конфигурации<br />
cp ./etc/samsd.debian /etc/init.d/samsd<br />
update-rc.d samsd defaults</p>
<p>Займемся доступом к mysql<br />
mysql -u root -p     (тут спросят пароль root для mysql)<br />
GRANT ALL ON squidctrl.* TO sams@localhost IDENTIFIED BY &#8220;sams&#8221;;<br />
(вместо &#8220;sams&#8221; вписываем свой пароль для юзера sams)<br />
GRANT ALL ON squidlog.* TO sams@localhost IDENTIFIED BY &#8220;sams&#8221;;<br />
exit</p>
<p>Теперь отредактируем в конфиге пароли, логины и пути к squid3<br />
vim /etc/sams.conf<br />
Учтите, что в строке<br />
SHUTDOWNCOMMAND=shutdown -h now<br />
прописана команда на полный останов прокси!</p>
<p>Собственно редактируем следующие строки:<br />
MYSQLPASSWORD=sams<br />
SQUIDROOTDIR=/etc/squid3<br />
SQUIDLOGDIR=/var/log/squid3<br />
SQUIDCACHEDIR=/var/spool/squid3<br />
(для обычного сквида правим только пароль)</p>
<p>Теперь импортируем таблицы в mysql<br />
cd ./mysql<br />
mysql -u root -p &lt; sams_db.sql<br />
mysql -u root -p &lt; squid_db.sql</p>
<p><strong>И идем редактировать конфиг сквида под свои нужды:</strong><br />
vim /etc/squid3/squid.conf<br />
(vim /etc/squid/squid.conf все по аналогии)</p>
<p><em><strong>Внимание! Ни в коем случае не менять структуру файла и не удалять каменты !</strong></em><br />
sams ориентируется в конфиге по его дефолтной структуре и тегам в коментариях.<br />
Итак, поехали:</p>
<p>указываем адрес, который будет слушать/обслуживать наш прокси<br />
http_port 192.168.0.99:3128</p>
<p>раскоментариваем  (редактруем по своему вкусу)<br />
сache_dir ufs /var/spool/squid3 100 16 256<br />
а так же другие опции работы с кешем</p>
<p>раскоментарить:<br />
access_log /var/log/squid3/access.log<br />
pid_filename /var/run/squid3.pid</p>
<p>Ищем соответствующие секции и вставляем/раскоментариваем :<br />
url_rewrite_program /usr/local/bin/samsredir<br />
url_rewrite_children 5<br />
auth_param basic program /usr/lib/squid3/ncsa_auth /etc/squid3/ncsa.sams<br />
auth_param basic children 5<br />
auth_param basic realm Squid proxy-caching web server<br />
auth_param basic credentialsttl 2 hours</p>
<p>Все, необходимый минимум получен, остальное сами изучите <img src='http://yaroshenko.biz/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Теперь займемся обработчиком логов squid3 (access.log) &#8211; собственно непосредственный подсчет трафика<br />
Обработчик логов sams может быть запущен samdaemon автоматически или из cron</p>
<p>Мы берем для простоты вариант работы с cron, создайте демону cron задание в файле /etc/crontab:<br />
*/1 * * * * /usr/local/bin/sams<br />
Согласно этому правилу обработка логов будет осуществляться раз в минуту<br />
crontab -u root -e<br />
и вставить строку что выше<br />
Должно получиться вот так:<br />
# m h  dom mon dow   command<br />
*/1 * * * * /usr/local/bin/sams</p>
<p><strong>Теперь перезапустим squid и займемся настройкой</strong><br />
/etc/init.d/squid3 restart</p>
<p>Открываем в мазиле</p>
<p>http://192.168.0.99/sams/</p>
<p>Админ:<br />
admin/qwerty<br />
Статистика:<br />
auditor/audit</p>
<p><strong>Настройка WEB интерфейса:</strong><br />
ставим язык russian utf-8<br />
Показывать графики в отчетах<br />
Создавать PDF отчеты с помощью fpdf</p>
<p><a href="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-1.png" rel="lightbox[pics101]" title="sams-1.png"><img src="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-1.thumbnail.png" alt="sams-1.png" class="imageframe imgalignleft" height="102" width="128" /></a></p>
<p><strong>Администрирование SAMS:</strong><br />
авторизация в NCSA<br />
файл перенаправления запроса http://192.168.0.99/sams/icon/classic/blank.gif<br />
Путь к каталогу, где лежат файлы запрета запроса http://192.168.0.99/sams/messages<br />
Редиректор встроенный SAMS<br />
Сохранять данные о трафике в базе за последние 12 месяцев</p>
<p><a href="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-3.png" rel="lightbox[pics101]" title="sams-3.png"><img src="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-3.thumbnail.png" alt="sams-3.png" class="imageframe imgalignleft" height="102" width="128" /></a></p>
<p><strong>Удалить все существующие группы пользователей и шаблоны пользователей<br />
</strong>удаляем все безжалостно&#8230;</p>
<p><strong>Регулярные выражения</strong> :<br />
создать список ban и поместить туда к примеру vkontakte.ru<br />
<strong>Локальные домены:</strong><br />
добавить workgroup и 192.168.0.99</p>
<p><strong>Создаем шаблон пользователей users:</strong><br />
Запрет доступа по регулярным выражениям<br />
ban<br />
Авторизация NCSA</p>
<p><a href="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-4.png" rel="lightbox[pics101]" title="sams-4.png"><img src="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-4.thumbnail.png" alt="sams-4.png" class="imageframe imgalignleft" height="102" width="128" /></a></p>
<p>Теперь добавим группу Users<br />
и первого юзера<br />
(не забудьте поставить галку в поле &#8211; Пользователь активен)</p>
<p><a href="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-5.png" rel="lightbox[pics101]" title="sams-5.png"><img src="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-5.thumbnail.png" alt="sams-5.png" class="imageframe imgalignleft" height="102" width="128" /></a></p>
<p><strong>Запускаем демона</strong><br />
/etc/init.d/samsd start<br />
Идем в меню SQUID &#8211; реконфигурировать<br />
после того, как убедились, что команда демоном получена &#8211; смотрим в консоли:<br />
ps -auxw|grep proxy</p>
<p><a href="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-7.png" rel="lightbox[pics101]" title="sams-7.png"><img src="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-7.thumbnail.png" alt="sams-7.png" class="imageframe imgalignleft" height="102" width="128" /></a></p>
<p>Теперь для проверки reboot и будем смотреть как это все работает,<br />
В браузере  прописываем настройки прокси  192.168.0.99 порт  3128<br />
Все должно работать, а при попытке  входа на запрещенный URL должны получить:</p>
<p><a href="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-61.png" rel="lightbox[pics101]" title="sams-61.png"><img src="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-61.thumbnail.png" alt="sams-61.png" class="imageframe imgalignleft" height="102" width="128" /></a></p>
<p>Ну и конечно красивые графики в статистике &#8230;</p>
<p><a href="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-8.png" rel="lightbox[pics101]" title="sams-8.png"><img src="http://yaroshenko.biz/wp-content/uploads/2008/03/sams-8.thumbnail.png" alt="sams-8.png" class="imageframe imgalignleft" height="102" width="128" /></a></p>
<p>Ну вот кажется и все, ждите продолжения &#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://yaroshenko.biz/archives/101/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

