<?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>IT-совместимый сайт &#187; proxy</title>
	<atom:link href="http://www.itcomp.org.ua/tag/proxy/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.itcomp.org.ua</link>
	<description></description>
	<lastBuildDate>Wed, 02 Sep 2009 19:17:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Debian файрвол и прокси &#8211; 4 из 4. Рюшечки</title>
		<link>http://www.itcomp.org.ua/os/linux/debian-proxy-4/</link>
		<comments>http://www.itcomp.org.ua/os/linux/debian-proxy-4/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 15:42:57 +0000</pubDate>
		<dc:creator>Malefic</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[администрирование]]></category>

		<guid isPermaLink="false">http://www.itcomp.org.ua/?p=142</guid>
		<description><![CDATA[Ну что же, после выполненных в статьях 1, 2 и 3 операциях, у нас должен был получиться функционирующий сервер, выполняющий роль кеширующего прокси и файрвола одновременно.
В двух словах, что мы тут будум делать:

Запретим юзерам ходить на [список сайтов] в рабочее время;
Реализуем статистику посещений пользователями ресурсов;


Начнем с запретов. Для начала нам нужно будет создать файл, в [...]]]></description>
			<content:encoded><![CDATA[<p>Ну что же, после выполненных в статьях <a title="Debian файрвол и прокси - 1 из 4. Базовая настройка сети" href="http://www.itcomp.org.ua/os/linux/debian-proxy-1">1</a>, <a title="Debian файрвол и прокси - 2 из 4. Установка и настройка Squid" href="http://www.itcomp.org.ua/os/linux/debian-proxy-2">2</a> и <a title="Debian файрвол и прокси - 3 из 4. Настройка iptables" href="http://www.itcomp.org.ua/os/linux/debian-proxy-3">3</a> операциях, у нас <em>должен был</em> получиться функционирующий сервер, выполняющий роль кеширующего прокси и файрвола одновременно.</p>
<p>В двух словах, что мы тут будум делать:</p>
<ul>
<li>Запретим юзерам ходить на [список сайтов] в рабочее время;</li>
<li>Реализуем статистику посещений пользователями ресурсов;</li>
</ul>
<p><span id="more-142"></span><br />
Начнем с запретов. Для начала нам нужно будет создать файл, в котором будут перечислены в столбик слова, которые у нас запрещены в http-запросах. Возможно использование регулярных выражений, однако ваш покорный слуга пока только пытается в них разобраться. Гуглим, это интересно (=</p>
<p>У меня файл называется <em>deny_hosts_access</em> и лежит в <em>/etc/squid</em>. Вот его содержимое:</p>
<p><code>odnoklassniki<br />
vkontakte</code></p>
<p>Собственно, здесь может быть что угодно &#8211; вы хозяин!</p>
<p>Далее, в <em>squid.conf</em> после строчек, декларирующих безопасные порты (Safe_ports), добавляем строки</p>
<p><code>acl deny_hosts_access url_regex "/etc/squid/deny_hosts_access"<br />
acl morning time MTWHF 08:00-12:30<br />
acl evening time MTWHF 13:30-17:00</code></p>
<p>В первой строке мы указали путь к файлу, содержащему запрещенные строки. В следующих двух определили отрезки времени &laquo;morning&raquo; и &laquo;evening&raquo;, которые являются <em>&laquo;рабочим временем&raquo;</em>.</p>
<p>Теперь же нужно это самое рабочее время сделать наиболее продуктивным. (= Добавляем перед строчками</p>
<p><code>http_access allow full_access<br />
http_access allow lim_access</code></p>
<p>строки</p>
<p><code>http_access deny deny_hosts_access morning<br />
http_access deny deny_hosts_access evening</code></p>
<p>Итак, мы запретили лазить по одноклассникам и вконтакту утром (до обеда) и вечером (после обеда и до конца рабочего дня). Какие же мы злые ]:-&gt;</p>
<p>Однако, на этом мы не остановимся. Возможно следующее будет реализовано через Ж, однако оно работает. Итак, мы будем показывать нашим бедным пользователям определенную страницу/картинку если они лезут на запрещенные нами сайты. Сделаем эдакое перенаправление.</p>
<p>Что же нам для этого потребуется? А потребуется нам своя страничка ошибки!</p>
<p>Для начала, укажем какую папку с ошибками мы используем (разница в языках и кодировках). В <em>squid.conf</em> добавим строку</p>
<p><code>error_directory /usr/share/squid/errors/Ukrainian-utf8</code></p>
<p><em>(в самой папке </em>errors <em>можно посмотреть доступные Вам варианты)</em></p>
<p>Ну и в конце концов, отредактируем файл ошибки. Для начала бекапните его, потому что потому. В случае невыполнения правил http_access, вызывается ошибка ERR_ACCESS_DENIED. Заменим ее содержимое на перенаправление (или просто заменим стандартный текст; мне по душе первое)</p>
<p><code>$ sudo nano /usr/share/squid/errors/Ukrainian-utf8/ERR_ACCESS_DENIED</code></p>
<p>Перенаправление выглядит так:</p>
<p><code>&lt;meta HTTP-EQUIV="REFRESH" content="0; url=http://mysite.com.ua/image.gif"&gt;</code></p>
<p><em>(Ссылку укажите свою, желаемую)</em></p>
<p>Всё! Перезапускаем сквид!</p>
<p><code>$ sudo /etc/init.d/squid restart</code></p>
<p>Ждем немножко и наслаждаемся примененными правилами. Теперь НИКТО не лазит на одноклассников в рабочее время (=</p>
<p>Ну, и второй пункт нашей статьи &#8211; статистика посещений ресурсов. Для этого я использую программу <strong>sarg. </strong>Установим её:</p>
<p><code>$ sudo apt-get install sarg</code></p>
<p>Она потянет за собой целую братию пакетов, и немудрено, ибо для показа результатов ему необходим веб-сервер.</p>
<p>Подгоняем конфигурацию (<em>/etc/squid/sarg.conf</em>) под себя. Вот главные строчки, на которые следует обратить внимание:</p>
<p><code>access_log /var/log/squid/access.log<br />
...<br />
output_dir /var/www/squid-reports<br />
</code><br />
Создаем последний каталог, ежели его нет.</p>
<p>Запускаем сарж (неплохо б было его запуск пихануть в крон, здесь я не буду это описывать&#8230; пока что)</p>
<p><code>$ sudo sarg</code></p>
<p>Ура! Заходим изнутри сети на наш сервер, любуемся отчетами по адресу <em>http://server/squid-reports/</em></p>
<p><em>P.S. Всё вышеизложенное писалось почти по памяти, ибо проделывалось месяц назад. Если Вы найдете ошибки, или недописки &#8211; укажите, я исправлю и буду благодарен! Удачи Вам в администрировании!<br />
</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.itcomp.org.ua/os/linux/debian-proxy-4/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Debian файрвол и прокси &#8211; 3 из 4. Настройка iptables</title>
		<link>http://www.itcomp.org.ua/os/linux/debian-proxy-3/</link>
		<comments>http://www.itcomp.org.ua/os/linux/debian-proxy-3/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 16:03:08 +0000</pubDate>
		<dc:creator>Malefic</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[администрирование]]></category>

		<guid isPermaLink="false">http://www.itcomp.org.ua/?p=110</guid>
		<description><![CDATA[Итак, мы с вами успели ранее настроить сеть на нашем будущем сервере и сконфигурировать сквид.
Теперь приступим к файрволу.
Для ознакомления и изучения, рекомендую почитать здесь.  Тогда вы будете вносить осмысленные изменения в систему, а не повторять мои ошибки (=
Включим в системе форвардинг. В файле /etc/sysctl.conf раскомментируем строчку
net.ipv4.ip_forward=1
Итак, на текущий момент мы имеем полностью сброшенные настройки файрвола [...]]]></description>
			<content:encoded><![CDATA[<p>Итак, мы с вами успели ранее <a title="Debian файрвол и прокси - 1 из 4. Базовая настройка сети" href="http://www.itcomp.org.ua/os/linux/debian-proxy-1">настроить сеть</a> на нашем будущем сервере и <a title="Debian файрвол и прокси - 2 из 4. Установка и настройка Squid" href="http://www.itcomp.org.ua/os/linux/debian-proxy-2">сконфигурировать сквид</a>.</p>
<p>Теперь приступим к файрволу.<span id="more-110"></span></p>
<p>Для ознакомления и изучения, рекомендую почитать <a title="iptables" href="http://www.opennet.ru/docs/RUS/iptables/">здесь</a>.  Тогда вы будете вносить осмысленные изменения в систему, а не повторять мои ошибки (=</p>
<p>Включим в системе форвардинг. В файле <strong>/etc/sysctl.conf</strong> раскомментируем строчку<br />
<code>net.ipv4.ip_forward=1</code></p>
<p>Итак, на текущий момент мы имеем полностью сброшенные настройки файрвола (iptables).</p>
<p>Сбрасываем цепочки:<br />
<code>$ sudo iptables -F<br />
$ sudo iptables -F -t nat</code><br />
Запрещаем все входящие и разрешаем все исходящие и форвардинг:<br />
<code>$ sudo iptables -P INPUT DROP<br />
$ sudo iptables -P OUTPUT ACCEPT<br />
$ sudo iptables -P FORWARD ACCEPT</code><br />
Разрешаем принимать ответ на УЖЕ установленный соединени:<br />
<code>$ sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT</code><br />
Разрешаем loopback-трафик:<br />
<code>$ sudo iptables -A INPUT -i lo -j ACCEPT</code><br />
Разрешаем весь трафик с нашей внутренней сети (возьмем подсеть 222):<br />
<code>$ sudo iptables -A INPUT -s 192.168.222.0/24 -i eth1 -j ACCEPT</code><br />
И, залог прозрачности! Перенапрявляем весь исходящий http-трафик (на порт 80) на порт сквида 3128:<br />
<code>$ sudo iptables -t nat -A PREROUTING -s 192.168.222.0/24 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128<br />
$ sudo iptables -t nat -A POSTROUTING -s 192.168.222.0/24 -o eth0 -j SNAT --to-source 192.168.56.39</code><br />
Проверяем на клиенте интернет. Напомню, что если прокси указывать не обязательно, шлюз выставить необходимо!<br />
Однако, после первой же перезагрузки, мы поймем, что все наши старания ушли впустую.<br />
Научим же их выживанию!<br />
Итак, сохраним всё то, чем мы тут занимались:<br />
<code>$ sudo iptables-save &gt; /etc/firewall.conf</code><br />
<em>У меня с судо этот финт не получился (хотя в теории вроде должен&#8230;), потому можно сделать влогинившись в рута полностью (su) и запустив команду, но без sudo.</em><br />
А теперь создадим скрипт, заставляющий ifupdown воскрешать наш файрвол:<br />
<code>$ sudo nano /etc/network/if-up.d/00-iptables</code><br />
Впишем в него следующее:<br />
<code>#!/bin/sh<br />
iptables-restore &lt; /etc/firewall.conf</code><br />
Выставим права на исполнение:<br />
<code>$ sudo chmod +x /etc/network/if-up.d/00-iptables</code><br />
Не забываем перекреститься и перезапускаем сеть/перезагружаемся. Должно работать ^_^<br />
В принципе у нас есть рабочий файрвол с прозрачным прокси!<br />
В последней статье просто добавим пару фич (которыми я пользуюсь) в сквид&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.itcomp.org.ua/os/linux/debian-proxy-3/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Debian файрвол и прокси &#8211; 2 из 4. Установка и настройка Squid</title>
		<link>http://www.itcomp.org.ua/os/linux/debian-proxy-2/</link>
		<comments>http://www.itcomp.org.ua/os/linux/debian-proxy-2/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 12:56:08 +0000</pubDate>
		<dc:creator>Malefic</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[администрирование]]></category>

		<guid isPermaLink="false">http://www.itcomp.org.ua/?p=87</guid>
		<description><![CDATA[Итак, мы уже настроили наш будущий сервер на взаимодействие с сетями, в том числе и интернетом, в предыдущей статье.
Теперь приступим к установке и настройке кеширующего прокси-сервера Squid (в дальнейшем &#8211; сквид). Чтоб установить его, выполните команду
$ sudo apt-get install squid

и дождитесь пока программа установки скачает сквид и все его зависимости и установит их.
Примечание: установится сквид [...]]]></description>
			<content:encoded><![CDATA[<p>Итак, мы уже настроили наш будущий сервер на взаимодействие с сетями, в том числе и интернетом, в <a title="Debian файрвол и прокси - 1. Базовая настройка сети" href="http://www.itcomp.org.ua/os/linux/debian-proxy-1" target="_self">предыдущей статье</a>.</p>
<p>Теперь приступим к установке и настройке кеширующего прокси-сервера Squid (в дальнейшем &#8211; сквид). Чтоб установить его, выполните команду<br />
<code>$ sudo apt-get install squid</code><br />
<span id="more-87"></span><br />
и дождитесь пока программа установки скачает сквид и все его зависимости и установит их.</p>
<p><em>Примечание: установится сквид стабильной второй версии. Если вы хотите установить третий сквид, указывайте squid3. У меня были с ним некоторые проблемы, однако, полагаю, что дело было или в кривизне моих рук (чего у вас, возможно, нет), либо в криво собранном пакете (что вскоре могут исправить).</em></p>
<p>На этом этапе нам было бы очень полезно (читай &#8211; необходимо) иметь еще один компьютер, который можно бы было подключить к <em>внутреннему</em> интерфейсу сервера и на котором мы бы могли проверить соединение с интернетом.</p>
<p>После окончания установки, начинаем редактировать файл конфигурации сквида. Не знаю как вам, лично мне удобнее когда в файле конфига нет ничего лишнего, то есть присутствуют только непосредственно параметры конфигурации. Для этого бекапнем оригинальную конфигурацию сквида (чтоб было где искать описания всех параметров):<br />
<code>$ sudo cp /etc/squid/squid.conf  /etc/squid/squid.conf.original</code></p>
<p>и выжмем из оригинальной конфигурации всё, не закоментированное:<br />
<code>$ sudo cat /etc/squid/squid.conf.original | grep -v '^\(#\|$\)' &gt; /etc/squid/squid.conf</code></p>
<p>В итоге заимеем дефолтный конфигчик без ничего нишнего. Но всё же очень советую кинуть взор в оригинальный конфиг и почитать его на досуге &#8211; там очень много интересного!</p>
<p>Ну, наконец, приступим к редактированию:<br />
<code>$ sudo nano /etc/squid/squid.conf</code></p>
<p>Редактировать начинаем со строк с такими комментариями: <em># RFC1918 possible internal network</em></p>
<p>Заменяем указанные сети (сеть) на свои внутренние сети, которые мы будем выпускать. У меня это выглядит так:<br />
<code># обычные пользователи с ограниченной скоростью<br />
acl lim_access src 192.168.222.0-192.168.223.0/255.255.255.0<br />
# необычные пользователи =)<br />
acl full_access src 192.168.222.38/255.255.255.255</code></p>
<p>Теперь разрешим ходить им на http. Ищем <em>последнюю </em>строчку <strong>http_access deny all</strong> и добавляем перед ней такие строчки:<br />
<code>http_access allow full_access<br />
http_access allow lim_access</code></p>
<p>Не забываем сделать то же самое и для icmp_access. Меняем localnet на наши сети:<br />
<code>icmp_access allow full_access<br />
icmp_access allow full_access</code><br />
Следующим шагом будет установка порта прокси и указание его прозрачности. Редактируем строчку <strong>http_port 3128</strong> к следующему виду (порт можете указать и свой, но этот стандартен и желателен):<br />
<code>http_port 3128 transparent</code></p>
<p>Что такое <em>прозрачность</em> прокси? Это когда пользователи не обязаны явно указать прокси сервер в своих приложениях, чтоб выйти в интернет. То есть сервер сам перенаправляет запросы с 80 порта  (и других указанных) на свой 3128. Так вот, следует заметить, что прозрачность у нас появится не сразу, а только после того как мы соответствующим образом настроим файрвол. Пока что пускай будет так как есть &#8211; не прозрачно.</p>
<p>Затем, после &laquo;<strong>hierarchy_stoplist cgi-bin ?</strong>&raquo; добавляем настройки кеша (о параметрах почитайте оригинальный squid.conf, забекапленный нами ранее):<br />
<code>cache_mem 64 MB<br />
cache_dir ufs /var/spool/squid 1024 16 256<br />
cache_mgr admin@mail.ua</code></p>
<p>После строчек с refresh_pattern начинаем настраивать пулы (по сути ограничения на ранее созданные группы сетей; помните acl?):<br />
<code># указываем количество правил<br />
delay_pools 2<br />
# регистрируем 2 пула 3 класса (о классах читаем знаете где - в комментах исходного конфига)<br />
delay_class 1 3<br />
delay_class 2 3<br />
# указываем кто есть кто и указываем доступ<br />
delay_access 1 allow full_access<br />
delay_access 1 deny all<br />
delay_access 2 allow lim_access<br />
delay_access 2 deny all<br />
# указываем параметры скорости для первого пула (нет ограничений)<br />
delay_parameters 1 -1/-1 -1/-1 -1/-1<br />
#  второго пула (это у нас lim_access) - режем скорость примерно до 10 кбайт/с после первого Мб<br />
delay_parameters 2 -1/-1 -1/-1 10000/1024000</code></p>
<p>Всё! Сохраняем файл и перезапускаем сквид:<br />
<code>$ sudo /etc/init.d/squid restart</code></p>
<p>Однако, не спешим радоваться, ибо мы еще не <a title="Debian файрвол и прокси - 3 из 4. Настройка iptables" href="http://www.itcomp.org.ua/os/linux/debian-proxy-3">настроили файрвол</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.itcomp.org.ua/os/linux/debian-proxy-2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
