<?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>powered by leo blog ...</title>
	<atom:link href="http://maxidrom.net/feed" rel="self" type="application/rss+xml" />
	<link>http://maxidrom.net</link>
	<description>Сборник всего того, чем я занимаюсь ...</description>
	<lastBuildDate>Thu, 26 Apr 2012 19:01:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>[Полноценный сервер - Часть6] Установка BIND9 на Ubuntu server 10.10 – 11.04</title>
		<link>http://maxidrom.net/archives/657</link>
		<comments>http://maxidrom.net/archives/657#comments</comments>
		<pubDate>Sun, 15 Apr 2012 14:42:57 +0000</pubDate>
		<dc:creator>p.b.Leo</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Главная]]></category>
		<category><![CDATA[10.04 "Lucid Lynx" LTS]]></category>
		<category><![CDATA[10.10 "Maverick Meerkat"]]></category>
		<category><![CDATA[BIND9]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[Настройка сервера]]></category>

		<guid isPermaLink="false">http://maxidrom.net/?p=657</guid>
		<description><![CDATA[ В данной статье я расскажу, как настроить DNS сервер и зоны для вашего сайта. Так же тут будет приведен пример подключения &#8220;почты для домена&#8221;, которые предоставляет и google и yandex.  DNS (англ. Domain Name System — система доменных имён) — компьютерная распределенная система для получения информации о доменах. Чаще всего используется для получения IP-адреса по имени хоста (компьютера или устройства), получения информации о маршрутизации [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-medium wp-image-658" title="BIND9" src="http://maxidrom.net/wp-content/uploads/2012/04/bind9_debian-300x249.jpg" alt="" width="300" height="249" /> В данной статье я расскажу, как настроить DNS сервер и зоны для вашего сайта. Так же тут будет приведен пример подключения &#8220;почты для домена&#8221;, которые предоставляет и google и yandex.</p>
<p style="text-align: justify;"><strong> <a title="Wiki" href="http://ru.wikipedia.org/wiki/DNS" target="_blank">DNS</a></strong> (англ. <em>Domain Name System</em> — система доменных имён) — компьютерная распределенная система для получения информации о доменах. Чаще всего используется для получения IP-адреса по имени хоста (компьютера или устройства), получения информации о маршрутизации почты, обслуживающих узлах для протоколов в домене (<a title="SRV-запись" href="http://ru.wikipedia.org/wiki/SRV-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C">SRV-запись</a>).</p>
<p style="text-align: justify;"><strong> <a title="Wiki" href="http://ru.wikipedia.org/wiki/BIND" target="_blank">BIND</a></strong> (<em>Berkeley Internet Name Domain</em>, до этого: <em>Berkeley Internet Name Daemon</em>) — открытая и наиболее распространённая реализация DNS-сервера, обеспечивающая выполнение преобразования DNS-имени в IP-адрес и наоборот.</p>
<p style="text-align: justify;"><strong> <a href="http://www.google.com/apps/intl/ru/group/index.html" target="_blank">Google Apps</a></strong> — это среда, которая предоставляет следующие средства совместной работы: уже ставший популярным почтовый сервис <a href="http://gmail.com/">GMail</a>, клиент обмена мгновенными сообщениями <a href="http://talk.google.com/">Google Talk</a> (фактически сервис полностью пригоден для общения с любым jabber-пользователем), календарь <a href="http://www.google.com/calendar/">Google Calendar</a>, средства для работы с документами и электронными таблицами <a href="http://docs.google.com/">Google Docs &amp; Spreadsheets</a>, «центральную страницу» — место для удобного размещения той информации, которая будет общей для всех пользователей, редактор страниц от Google, который позволяет быстро создать и опубликовать нужную информацию.</p>
<p style="text-align: justify;"><strong> <a href="https://pdd.yandex.ru" target="_blank">Яндекс.Почта для домена</a></strong> &#8211; это бесплатный сервис, который даёт возможность иметь адрес вида name@yourdomain.ru (где name — любое выбранное вами имя, а yourdomain.ru — имя вашего домена), используя при этом удобный веб-интерфейс и другие преимущества <a href="https://mail.yandex.ru/">Яндекс.Почты</a> (фильтрация спама, автоматическая проверка писем на вирусы и др.).<span id="more-657"></span></p>
<p style="text-align: justify;">С теорией покончили. Приступим к установке.</p>
<pre style="padding-left: 30px;">sudo apt-get install bind9</pre>
<p>Теперь останавливаем bind9:</p>
<pre style="padding-left: 30px;">sudo /etc/init.d/bind9 stop</pre>
<p>Из соображений безопасности лучше запускать Bind в chroot среде. Для этого мы отредактируем файл /etc/default/bind9 (добавляем строку о среде chroot которая будет находится  в /var/lib/named)&#8230;</p>
<pre style="padding-left: 30px;">sudo vim /etc/default/bind9</pre>
<p>приводим файл к виду:</p>
<pre style="padding-left: 30px;">OPTIONS="-u bind -t /var/lib/named"
# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes</pre>
<p>Далее создаем все необходимые директории для корректной работы</p>
<pre style="padding-left: 30px;">sudo mkdir -p /var/lib/named/etc
sudo mkdir /var/lib/named/dev
sudo mkdir -p /var/lib/named/var/cache/bind
sudo mkdir -p /var/lib/named/var/run/bind/run</pre>
<p>Переместим директорию с конфигурацией bind9 из /etc в /var/lib/named/etc</p>
<pre style="padding-left: 30px;">sudo mv /etc/bind /var/lib/named/etc</pre>
<p>Создадим символическую ссылку на новую директорию с конфигами bind, чтобы мы могли обновляться без проблем.</p>
<pre style="padding-left: 30px;">sudo ln -s /var/lib/named/etc/bind /etc/bind</pre>
<p>Теперь создаем null и random девайсы и выставим правильные права на директории:</p>
<pre style="padding-left: 30px;">sudo mknod /var/lib/named/dev/null c 1 3
sudo mknod /var/lib/named/dev/random c 1 8
sudo chmod 666 /var/lib/named/dev/null /var/lib/named/dev/random
sudo chown -R bind:bind /var/lib/named/var/*
sudo chown -R bind:bind /var/lib/named/etc/bind</pre>
<p>Для старых версий LINUX, где используется sysklogd изменяем стартовый скрипт демона sysklogd, для того чтобы сообщения от bind попадали в syslog. Для этого редактируем файл:</p>
<pre style="padding-left: 30px;">sudo vim /etc/init.d/sysklogd</pre>
<p>Изменим там строчку SYSLOGD=”-u syslog” на SYSLOGD=”-u syslog -a /var/lib/named/dev/log”</p>
<pre style="padding-left: 30px;">SYSLOGD="-u syslog -a /var/lib/named/dev/log"</pre>
<p>и перезагрузим демон sysklogd</p>
<pre style="padding-left: 30px;">sudo /etc/init.d/sysklogd restart</pre>
<p>На этом настройка BIND9 окончена. Запускаем и смотрим нет ли ошибок:</p>
<pre style="padding-left: 30px;">sudo /etc/init.d/bind9 start</pre>
<p>Если возникнет ошибка Bind: loading from master file managed-keys.bind failed, необходимо создать файл managed-keys.bind</p>
<pre style="padding-left: 30px;">touch /etc/namedb/managed-keys.bind</pre>
<p>Если возникнет ошибка named[9410]: network unreachable resolving ‘NS1.SITE.RU/A/IN’: 2001:7fe::53#53, необходимо добавить строчку OPTIONS=&#8221;-4&#8243; в файл /etc/init.d/bind9</p>
<pre style="padding-left: 30px;">sudo vim /etc/init.d/bind9</pre>
<p>Если BIND9 вовсе не запускается, а в логе есть ошибка open: /etc/bind/named.conf: permission denied, необходимо убрать apparmor из автозагрузки&#8230;</p>
<pre style="padding-left: 30px;">sudo /etc/init.d/apparmor stop
sudo update-rc.d -f apparmor remove</pre>
<p>Если все запустилось, то приступаем к настройке зон. Допустим у нас есть 2 домена (site.ru и site2.ru). Для начала создадим файл конфигурации для наших будущих зон:</p>
<pre style="padding-left: 30px;">sudo touch /var/lib/named/etc/bind/sites-zones.conf  
chown bind:bind /var/lib/named/etc/bind/sites-zones.conf</pre>
<p>В файле конфигурации зон укажем путь до файла зон&#8230;</p>
<pre style="padding-left: 30px;">vim /var/lib/named/etc/bind/named.conf</pre>
<p>приведя файл к следующему виду:</p>
<pre style="padding-left: 30px;">include "/etc/bind/named.conf.local";
include "/etc/bind/sites-zones.conf";</pre>
<p>Теперь открываем файл наших зон:</p>
<pre style="padding-left: 30px;">sudo vim /var/lib/named/etc/bind/named.conf.local</pre>
<p>и приводим к следующему виду (не забываем, у нас 2 домена):</p>
<pre style="padding-left: 30px;">zone "example.com" {
     type master;
     file "site1.ru";
};</pre>
<pre style="padding-left: 30px;">zone "example.com" {
     type master;
     file "site2.ru";
};</pre>
<p>теперь создадим директорию и файл с нашими зонами:</p>
<pre style="padding-left: 30px;">sudo mkdir/var/lib/named/etc/bind/sites-zones/
sudo touch /var/lib/named/etc/bind/sites-zones/site1.ru
sudo touch /var/lib/named/etc/bind/sites-zones/site2.ru
sudo chown bind:bind /var/lib/named/etc/bind/sites-zones/example.com</pre>
<p>Далее отредактируем зоны для домена site1.ru:</p>
<pre style="padding-left: 30px;">sudo vim /var/lib/named/etc/bind/sites-zones/site1.ru</pre>
<p>И приведем его к следующему виду, с примером подключенного сервиса pdd.yandex.ru:</p>
<pre style="padding-left: 30px;">$ORIGIN site1.ru.
$TTL 86400 ; 1 day
@ IN SOA site1.ru. master.site1.ru. (
     2008291104 ; serial
     10800 ; refresh (3 hours)
     3600 ; retry (15 minutes)
     3600000 ; expire (1 week)
     86400 ; minimum (1 day)
)
@      IN   NS      ns1.site1.ru.
@      IN   NS      ns2.site1.ru.</pre>
<pre style="padding-left: 30px;">ns1    IN    A      172.16.0.1
ns     IN    A      172.16.0.2</pre>
<pre style="padding-left: 30px;">@      IN    A      10.10.10.110
www    IN    A      10.10.10.110
*      IN    A      10.10.10.110
forum  IN    A      10.10.10.112</pre>
<pre style="padding-left: 30px;">site1.ru. IN MX 10 mx.yandex.ru.
@ IN TXT "v=spf1 redirect=_spf.yandex.ru"</pre>
<pre style="padding-left: 30px;">yamail-всякиесимвылы IN CNAME mail.yandex.ru.
mail IN CNAME domain.mail.yandex.net.</pre>
<pre style="padding-left: 30px;">_xmpp-client._tcp  IN   SRV    20   0   5222   site1-xmpp.ya.ru.
_xmpp-server._tcp  IN   SRV    20   0   5269   site1-xmpp.ya.ru.</pre>
<p>Теперь отредактируем зону для site2.ru, с использованием сервиса Google Apps:</p>
<pre style="padding-left: 30px;">$ORIGIN site2.ru.
$TTL 86400 ; 1 day
@ IN SOA site2.ru. master.site2.ru. (
     2008291104 ; serial
     10800 ; refresh (3 hours)
     3600 ; retry (15 minutes)
     3600000 ; expire (1 week)
     86400 ; minimum (1 day)
)
@      IN   NS      ns1.site1.ru.
@      IN   NS      ns2.site1.ru.</pre>
<pre style="padding-left: 30px;">ns1    IN    A      172.16.0.1
ns     IN    A      172.16.0.2</pre>
<pre style="padding-left: 30px;">@      IN    A      10.10.10.111
www    IN    A      10.10.10.111
*      IN    A      10.10.10.111
forum  IN    A      10.10.10.114</pre>
<pre style="padding-left: 30px;">site2.ru. IN  TXT "v=spf1 a mx a:site2.ru ip4:216.38.22.109 include:aspmx.googlemail.com ~all"
site2.ru. IN MX 1 aspmx.l.google.com.
site2.ru. IN MX 5 alt1.aspmx.l.google.com.
site2.ru. IN MX 5 alt2.aspmx.l.google.com.
site2.ru. IN MX 10 aspmx2.googlemail.com.
site2.ru. IN MX 10 aspmx3.googlemail.com.
siyte2.ru. IN MX 10 aspmx4.googlemail.com.
site2.ru. IN MX 10 aspmx5.googlemail.com.
mail.site2.ru. IN CNAME ghs.google.com.
calendar.site2.ru. IN CNAME ghs.google.com.
docs.site2.ru. IN CNAME ghs.google.com.
start.site2.ru. IN CNAME ghs.google.com.</pre>
<pre style="padding-left: 30px;"><strong>(Конфиг взял в инете, так как данный сервис не испольую, могут быть косяки)</strong></pre>
<p>Далее обновляем конфигурацию</p>
<p>rndc reload</p>
<p>и проверяем</p>
<pre style="padding-left: 30px;">nslookup   site1.ru   127.0.0.1</pre>
<p>Должен выдать в ответ:</p>
<pre style="padding-left: 30px;">Server: 127.0.0.1
Address: 127.0.0.1#53
Name: site1.ru
Address: 10.10.10.111</pre>
<p>Проверим другую зону:</p>
<pre style="padding-left: 30px;">nslookup forum.site1.ru 127.0.0.1</pre>
<p>должен выдать в ответ:</p>
<pre style="padding-left: 30px;">Server: 127.0.0.1
Address: 127.0.0.1#53
Name: site1.ru
Address: 10.10.10.114</pre>
<p>Проверим еще одну зону:</p>
<pre style="padding-left: 30px;">nslookup   site2.ru   127.0.0.1</pre>
<p>должен выдать в ответ:</p>
<pre style="padding-left: 30px;">Server: 127.0.0.1
Address: 127.0.0.1#53
Name: site1.ru
Address: 10.10.10.111</pre>
<p>и далее проверяем так все свои зоны.</p>
<p>На этом настройка сервера завершена.</p>
<p><strong>Материалы, которые использовались для написания данного поста:</strong></p>
<ul>
<li><a href="http://sudouser.com/ustanovka-i-nastrojka-dns-servera-bind9-ubuntu-debian-howto.html">http://sudouser.com/ustanovka-i-nastrojka-dns-servera-bind9-ubuntu-debian-howto.html</a></li>
<li><a href="http://habrahabr.ru/post/45921/">http://habrahabr.ru/post/45921/</a></li>
<li><a href="http://aizaro.ru/services/bind/managed-keys.html">http://aizaro.ru/services/bind/managed-keys.html</a></li>
<li><a href="http://xgu.ru/wiki/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_DNS-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_BIND">http://xgu.ru/wiki/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_DNS-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0_BIND</a></li>
<li><a href="http://www.howtoforge.com/two_in_one_dns_bind9_views">http://www.howtoforge.com/two_in_one_dns_bind9_views</a></li>
<li><a href="http://veseloff.net/21.html" target="_blank">http://veseloff.net/21.html</a></li>
<li><a href="http://flex-plex.ru/?p=45" target="_blank">http://flex-plex.ru/?p=45</a></li>
<li><a href="http://www.virtualmin.com/node/14904">http://www.virtualmin.com/node/14904</a></li>
<li><a href="http://xpoint.ru/forums/computers/os/unix/thread/44539.xhtml">http://xpoint.ru/forums/computers/os/unix/thread/44539.xhtml</a></li>
<li><a href="http://www.cyberciti.biz/tips/linux-iptables-12-how-to-block-or-open-dnsbind-service-port-53.html">http://www.cyberciti.biz/tips/linux-iptables-12-how-to-block-or-open-dnsbind-service-port-53.html</a></li>
<li><a href="http://forum.asplinux.ru/read.php?3,107131">http://forum.asplinux.ru/read.php?3,107131</a></li>
</ul>
<div class="thanks_button_div" 
                  style="float: right; margin-right: 10px;"><div id="thanksButtonDiv_657_2" style="background-image:url(http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/thanks_compact_black.png); background-repeat:no-repeat; float: left; display: inline;"
                onmouseover="javascript:thankYouChangeButtonImage('thanksButtonDiv_657_2', true);" 
                onmouseout="javascript:thankYouChangeButtonImage('thanksButtonDiv_657_2', false);"
                onclick="javascript:thankYouChangeButtonImage('thanksButtonDiv_657_2', false);" >
                <input type="button" onclick="thankYouButtonClick(657, 'Вы уже оставили благодарность за эту статью')" value="Спасибо 0"
                  class="thanks_button thanks_compact thanks_black"
                  style="  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#ffffff;"
                  id="thanksButton_657_2" title="Щелкните мышью, чтобы оставить благодарность за эту статью"/>
             </div><div id="ajax_loader_657_2" style="display:inline;visibility: hidden;"><img alt="ajax loader" src="http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/ajax-loader.gif" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://maxidrom.net/archives/657/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>[Полноценный сервер - Часть5] Установка ProFTPd на Ubuntu server 10.10 &#8211; 11.04</title>
		<link>http://maxidrom.net/archives/655</link>
		<comments>http://maxidrom.net/archives/655#comments</comments>
		<pubDate>Sat, 14 Apr 2012 14:07:25 +0000</pubDate>
		<dc:creator>p.b.Leo</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[proftpd]]></category>
		<category><![CDATA[Настройка сервера]]></category>

		<guid isPermaLink="false">http://maxidrom.net/?p=655</guid>
		<description><![CDATA[  Так получилось, что я так и не дописал серию своих статей в срок, так как нужда в сервере на тот момент отпала. Но сейчас, учитывая, что сервер снова понадобился и он немного был обновлен я продолжу выкладывать подобные статьи. Для начала будут исправлены небольшие пробелы / косяки в существующих постах, ну а поле описана [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-656" title="proftpd00" src="http://maxidrom.net/wp-content/uploads/2012/04/proftpd00-300x182.jpg" alt="" width="300" height="182" />  Так получилось, что я так и не дописал серию своих статей в срок, так как нужда в сервере на тот момент отпала. Но сейчас, учитывая, что сервер снова понадобился и он немного был обновлен я продолжу выкладывать <a title="Настройка сервера" href="http://maxidrom.net/archives/tag/nastrojka-servera" target="_blank">подобные статьи</a>.</p>
<p>Для начала будут исправлены небольшие пробелы / косяки в существующих постах, ну а поле описана установка других, необходимых в работе программ.</p>
<p>Так же хотелось бы заметить, что существующая ОС на сервере была обновлена до версии 11.04, но существенных изменений в настройках нет.</p>
<p><strong><a title="Wiki" href="http://ru.wikipedia.org/wiki/ProFTPd" target="_blank">ProFTPd</a></strong> — FTP-сервер для Linux и UNIX-подобных операционных систем. Почему был выбран именно он? Ну потому что об достаточно стабилен и прост в установке.</p>
<p>Хотелось бы предупредить, что сервер ставится без поддержки квоты, анонимных пользователей и прочих настроек, та как оно особо не нужно. Но, думаю, в ближайшее время я уделю этому время, и обязательно расскажу, как я это сделал.</p>
<p><span id="more-655"></span>Приступим к установке.</p>
<p>Для начала установим сервер:</p>
<pre style="padding-left: 30px;">sudo apt-get install proftpd</pre>
<p>Во время установки выбираем тип запуска &#8220;standalone&#8221; (самостоятельно).</p>
<p>Далее переходим к настройке самого сервера. Для начала откроем файл конфигурации сервера,</p>
<pre style="padding-left: 30px;">sudo vim /etc/proftpd/proftpd.conf</pre>
<p>и приведем его к следующему виду (то что выделено красным, как раз таки и изменяем) :</p>
<pre style="padding-left: 30px;">#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes, reload proftpd after modifications, if
# it runs in daemon mode. It is not required in inetd/xinetd mode.
#</pre>
<pre style="padding-left: 30px;"># Includes DSO modules
Include /etc/proftpd/modules.conf</pre>
<pre style="padding-left: 30px;"># Set off to disable IPv6 support which is annoying on IPv4 only boxes.
#seIPv6 on
# If set on you can experience a longer connection delay in many cases.
IdentLookups off</pre>
<pre style="padding-left: 30px;"><span style="color: #ff0000;">ServerName "srv2.site.ru"</span>
ServerType standalone
DeferWelcome off</pre>
<pre style="padding-left: 30px;">MultilineRFC2228 on
DefaultServer on
ShowSymlinks on</pre>
<pre style="padding-left: 30px;">TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200</pre>
<pre style="padding-left: 30px;">DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"</pre>
<pre style="padding-left: 30px;">DenyFilter \*.*/</pre>
<pre style="padding-left: 30px;"># Use this to jail all users in their homes
 <span style="color: #ff0000;">DefaultRoot ~</span></pre>
<pre style="padding-left: 30px;"># Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
<span style="color: #ff0000;"> RequireValidShell off</span></pre>
<pre style="padding-left: 30px;"># Port 21 is the standard FTP port.
Port 21</pre>
<pre style="padding-left: 30px;"># In some cases you have to specify passive ports range to by-pass
# firewall limitations. Ephemeral ports can be used for that, but
# feel free to use a more narrow range.
# PassivePorts 49152 65534</pre>
<pre style="padding-left: 30px;"># If your host was NATted, this option is useful in order to
# allow passive tranfers to work. You have to use your public
# address and opening the passive ports used on your firewall as well.
# MasqueradeAddress 1.2.3.4</pre>
<pre style="padding-left: 30px;"># This is useful for masquerading address with dynamic IPs:
# refresh any configured MasqueradeAddress directives every 8 hours
&lt;IfModule mod_dynmasq.c&gt;
# DynMasqRefresh 28800
&lt;/IfModule&gt;</pre>
<pre style="padding-left: 30px;"># To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
<span style="color: #ff0000;">MaxInstances 175</span></pre>
<pre style="padding-left: 30px;"># Set the user and group that the server normally runs at.
User proftpd
Group users</pre>
<pre style="padding-left: 30px;"># Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.</pre>
<pre style="padding-left: 30px;"><span style="color: #ff0000;">Umask 002 002</span>
# Normally, we want files to be overwriteable.
AllowOverwrite on</pre>
<pre style="padding-left: 30px;"># Uncomment this if you are using NIS or LDAP via NSS to retrieve passwords:
# PersistentPasswd off</pre>
<pre style="padding-left: 30px;"># This is required to use both PAM-based authentication and local passwords
# AuthOrder mod_auth_pam.c* mod_auth_unix.c</pre>
<pre style="padding-left: 30px;"># Be warned: use of this directive impacts CPU average load!
# Uncomment this if you like to see progress and transfer rate with ftpwho
# in downloads. That is not needed for uploads rates.
#
# UseSendFile off</pre>
<pre style="padding-left: 30px;">TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log</pre>
<pre style="padding-left: 30px;"># Logging onto /var/log/lastlog is enabled but set to off by default
#UseLastlog on</pre>
<pre style="padding-left: 30px;"># In order to keep log file dates consistent after chroot, use timezone info
# from /etc/localtime. If this is not set, and proftpd is configured to
# chroot (e.g. DefaultRoot or &lt;Anonymous&gt;), it will use the non-daylight
# savings timezone regardless of whether DST is in effect.
#SetEnv TZ :/etc/localtime</pre>
<pre style="padding-left: 30px;">&lt;IfModule mod_quotatab.c&gt;
QuotaEngine off
&lt;/IfModule&gt;</pre>
<pre style="padding-left: 30px;">&lt;IfModule mod_ratio.c&gt;
Ratios off
&lt;/IfModule&gt;</pre>
<pre style="padding-left: 30px;"># Delay engine reduces impact of the so-called Timing Attack described in
# http://www.securityfocus.com/bid/11430/discuss
# It is on by default.
&lt;IfModule mod_delay.c&gt;
DelayEngine on
&lt;/IfModule&gt;</pre>
<pre style="padding-left: 30px;">&lt;IfModule mod_ctrls.c&gt;
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
&lt;/IfModule&gt;</pre>
<pre style="padding-left: 30px;">&lt;IfModule mod_ctrls_admin.c&gt;
AdminControlsEngine off
&lt;/IfModule&gt;</pre>
<pre style="padding-left: 30px;">#
# Alternative authentication frameworks
#
#Include /etc/proftpd/ldap.conf
#Include /etc/proftpd/sql.conf</pre>
<pre style="padding-left: 30px;">#
# This is used for FTPS connections
#
#Include /etc/proftpd/tls.conf</pre>
<pre style="padding-left: 30px;">#
# Useful to keep VirtualHost/VirtualRoot directives separated
#
#Include /etc/proftpd/virtuals.con</pre>
<pre style="padding-left: 30px;"># A basic anonymous configuration, no upload directories.</pre>
<pre style="padding-left: 30px;"># &lt;Anonymous ~ftp&gt;
# User ftp
# Group nogroup
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# RequireValidShell off
#
# # Limit the maximum number of anonymous logins
# MaxClients 10
#
# # We want 'welcome.msg' displayed at login, and '.message' displayed
# # in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayChdir .message
#
# # Limit WRITE everywhere in the anonymous chroot
# &lt;Directory *&gt;
# &lt;Limit WRITE&gt;
# DenyAll
# &lt;/Limit&gt;
# &lt;/Directory&gt;
#
# # Uncomment this if you're brave.
# # &lt;Directory incoming&gt;
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# # &lt;Limit READ WRITE&gt;
# # DenyAll
# # &lt;/Limit&gt;
# # &lt;Limit STOR&gt;
# # AllowAll
# # &lt;/Limit&gt;
# # &lt;/Directory&gt;
#
# &lt;/Anonymous&gt;</pre>
<pre style="padding-left: 30px;"># Include other custom configuration files
Include /etc/proftpd/conf.d/</pre>
<p>На этом настройка окончена. Перезагружаем сервер:</p>
<pre style="padding-left: 30px;">sudo /etc/init.d/proftpd restart</pre>
<p>и пользуемся!</p>
<p>Для настройки доступа достаточно лишь создать пользователя в системе, после чего у него появится возможность заходить на FTP сервер.</p>
<p><strong>Для написания этой статьи использовались следующие материалы:</strong></p>
<ul>
<li><a href="http://linuxportal.vrn.ru/?q=node/8">http://linuxportal.vrn.ru/?q=node/8</a></li>
<li><a href="http://ru.wikipedia.org/wiki/ProFTPd">http://ru.wikipedia.org/wiki/ProFTPd</a></li>
<li><a href="http://www.artcom-ufa.ru/posts/2011/05/19/ustanovka-i-nastroika-proftpd">http://www.artcom-ufa.ru/posts/2011/05/19/ustanovka-i-nastroika-proftpd</a></li>
<li><a href="http://www.opennet.ru/openforum/vsluhforumID1/80415.html">http://www.opennet.ru/openforum/vsluhforumID1/80415.html</a></li>
</ul>
<div class="thanks_button_div" 
                  style="float: right; margin-right: 10px;"><div id="thanksButtonDiv_655_2" style="background-image:url(http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/thanks_compact_black.png); background-repeat:no-repeat; float: left; display: inline;"
                onmouseover="javascript:thankYouChangeButtonImage('thanksButtonDiv_655_2', true);" 
                onmouseout="javascript:thankYouChangeButtonImage('thanksButtonDiv_655_2', false);"
                onclick="javascript:thankYouChangeButtonImage('thanksButtonDiv_655_2', false);" >
                <input type="button" onclick="thankYouButtonClick(655, 'Вы уже оставили благодарность за эту статью')" value="Спасибо 0"
                  class="thanks_button thanks_compact thanks_black"
                  style="  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#ffffff;"
                  id="thanksButton_655_2" title="Щелкните мышью, чтобы оставить благодарность за эту статью"/>
             </div><div id="ajax_loader_655_2" style="display:inline;visibility: hidden;"><img alt="ajax loader" src="http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/ajax-loader.gif" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://maxidrom.net/archives/655/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>Стили CSS – Создаем Кликабельный DIV</title>
		<link>http://maxidrom.net/archives/650</link>
		<comments>http://maxidrom.net/archives/650#comments</comments>
		<pubDate>Thu, 10 Nov 2011 04:22:25 +0000</pubDate>
		<dc:creator>p.b.Leo</dc:creator>
				<category><![CDATA[HTML and CSS]]></category>
		<category><![CDATA[WEB]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[div]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://maxidrom.net/?p=650</guid>
		<description><![CDATA[Автор: Крис Койер Перевод: Всеволод Козлов Вы, наверняка, хоть раз сталкивались с задачей сделать блок контента, заключенный в DIV, кликабельным. Эта затея отлично реализована на сайте веб-компании StudioForYou – этим приемом обеспечена кликабельность разноцветных блоков! Итак, как же это делается? HTML-код трюка: &#60;div onclick="location.href='Гиперссылка';" style="cursor: pointer;"&#62;&#60;/div&#62; Style-параметр превращает курсор мыши в привычный для гиперссылок «пальчик» при наведении на кликабельный [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Автор:</strong> Крис Койер<br />
<strong>Перевод:</strong> Всеволод Козлов</p>
<p>Вы, наверняка, хоть раз сталкивались с задачей сделать блок контента, заключенный в DIV, кликабельным. Эта затея отлично реализована на сайте <a href="http://www.studioforyou.ru/">веб-компании StudioForYou</a> – этим приемом обеспечена кликабельность разноцветных блоков!</p>
<p>Итак, как же это делается?<span id="more-650"></span></p>
<p><strong><acronym title="HyperText Markup Language">HTML</acronym>-код трюка:</strong></p>
<p><code>&lt;div onclick="location.href='Гиперссылка';" style="cursor: pointer;"&gt;&lt;/div&gt;</code></p>
<p><strong>Style</strong>-параметр превращает курсор мыши в привычный для гиперссылок «пальчик» при наведении на кликабельный DIV.</p>
<p><strong>Оригинал статьи:</strong> <a title="Creating Clickable DIVs" href="http://css-tricks.com/creating-clickable-divs/">Creating Clickable DIVs</a></p>
<p>Источник: <a href="http://www.w3school.ru/blog/css/creating-clickable-divs.html">http://www.w3school.ru/blog/css/creating-clickable-divs.html</a></p>
<div class="thanks_button_div" 
                  style="float: right; margin-right: 10px;"><div id="thanksButtonDiv_650_2" style="background-image:url(http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/thanks_compact_black.png); background-repeat:no-repeat; float: left; display: inline;"
                onmouseover="javascript:thankYouChangeButtonImage('thanksButtonDiv_650_2', true);" 
                onmouseout="javascript:thankYouChangeButtonImage('thanksButtonDiv_650_2', false);"
                onclick="javascript:thankYouChangeButtonImage('thanksButtonDiv_650_2', false);" >
                <input type="button" onclick="thankYouButtonClick(650, 'Вы уже оставили благодарность за эту статью')" value="Спасибо 2"
                  class="thanks_button thanks_compact thanks_black"
                  style="  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#ffffff;"
                  id="thanksButton_650_2" title="Щелкните мышью, чтобы оставить благодарность за эту статью"/>
             </div><div id="ajax_loader_650_2" style="display:inline;visibility: hidden;"><img alt="ajax loader" src="http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/ajax-loader.gif" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://maxidrom.net/archives/650/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>Комментарии в моем блоге&#8230;</title>
		<link>http://maxidrom.net/archives/648</link>
		<comments>http://maxidrom.net/archives/648#comments</comments>
		<pubDate>Sat, 08 Oct 2011 14:34:34 +0000</pubDate>
		<dc:creator>p.b.Leo</dc:creator>
				<category><![CDATA[WordPress CMS]]></category>
		<category><![CDATA[Главная]]></category>

		<guid isPermaLink="false">http://maxidrom.net/?p=648</guid>
		<description><![CDATA[Пришел тот час, когда мне уже достал этот WordPress с его спамом, а точнее достали личности которые активно комментируют мои (и не только) записи с ссылками всякого говна. Теперь, если вы зарегистрированы вконтакте вы можете оставлять комментарии и пожелания на сайте без проверки. Enjoy!]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Пришел тот час, когда мне уже достал этот WordPress с его спамом, а точнее достали личности которые активно комментируют мои (и не только) записи с ссылками всякого говна. Теперь, если вы зарегистрированы вконтакте вы можете оставлять комментарии и пожелания на сайте без проверки.</p>
<p style="text-align: justify;">Enjoy!</p>
<div class="thanks_button_div" 
                  style="float: right; margin-right: 10px;"><div id="thanksButtonDiv_648_2" style="background-image:url(http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/thanks_compact_black.png); background-repeat:no-repeat; float: left; display: inline;"
                onmouseover="javascript:thankYouChangeButtonImage('thanksButtonDiv_648_2', true);" 
                onmouseout="javascript:thankYouChangeButtonImage('thanksButtonDiv_648_2', false);"
                onclick="javascript:thankYouChangeButtonImage('thanksButtonDiv_648_2', false);" >
                <input type="button" onclick="thankYouButtonClick(648, 'Вы уже оставили благодарность за эту статью')" value="Спасибо 0"
                  class="thanks_button thanks_compact thanks_black"
                  style="  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#ffffff;"
                  id="thanksButton_648_2" title="Щелкните мышью, чтобы оставить благодарность за эту статью"/>
             </div><div id="ajax_loader_648_2" style="display:inline;visibility: hidden;"><img alt="ajax loader" src="http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/ajax-loader.gif" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://maxidrom.net/archives/648/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>Установка LibreOffice на Ubuntu 10.10 или Ubuntu 10.04</title>
		<link>http://maxidrom.net/archives/642</link>
		<comments>http://maxidrom.net/archives/642#comments</comments>
		<pubDate>Sun, 04 Sep 2011 11:47:29 +0000</pubDate>
		<dc:creator>p.b.Leo</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[10.04 "Lucid Lynx" LTS]]></category>
		<category><![CDATA[10.10 "Maverick Meerkat"]]></category>
		<category><![CDATA[Office]]></category>

		<guid isPermaLink="false">http://maxidrom.net/?p=642</guid>
		<description><![CDATA[В 11.04 данный офис уже установлен, но так как я обновляться на нее буду только после выхода 11.10 у меня еще стоит openoffice. Сказать что лучше - LibreOffice или OpenOffice я пока не могу, поэтому его и поставлю. Для установки необходимо сделать следующее &#8230; Для начала удалим OpenOffice: sudo apt-get purge "openoffice*.*" теперь подключим репозиторий LibreOffice: gksu add-apt-repository [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"><img class="alignleft size-medium wp-image-653" title="libreoffice-vs-word" src="http://maxidrom.net/wp-content/uploads/2011/09/libreoffice-vs-word-300x150.jpg" alt="" width="300" height="150" />В 11.04 данный офис уже установлен, но так как я обновляться на нее буду только после выхода 11.10 у меня еще стоит openoffice. Сказать что лучше - LibreOffice или OpenOffice я пока не могу, поэтому его и поставлю.</p>
<p style="text-align: justify;">Для установки необходимо сделать следующее &#8230;<span id="more-642"></span></p>
<p>Для начала удалим OpenOffice:</p>
<pre style="padding-left: 30px;">sudo apt-get purge "openoffice*.*"</pre>
<p>теперь подключим репозиторий LibreOffice:</p>
<pre style="padding-left: 30px;">gksu add-apt-repository ppa:libreoffice/ppa</pre>
<p>Обновим список пакетов:</p>
<pre style="padding-left: 30px;">gksu apt-get update</pre>
<p>Ну и наконец устанавливаем LibreOffice:</p>
<pre style="padding-left: 30px;">sudo apt-get install libreoffice language-support-ru libreoffice-gnome libreoffice-l10n-ru</pre>
<p style="text-align: center;"><strong>Все! Enjoy!</strong></p>
<div class="thanks_button_div" 
                  style="float: right; margin-right: 10px;"><div id="thanksButtonDiv_642_2" style="background-image:url(http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/thanks_compact_black.png); background-repeat:no-repeat; float: left; display: inline;"
                onmouseover="javascript:thankYouChangeButtonImage('thanksButtonDiv_642_2', true);" 
                onmouseout="javascript:thankYouChangeButtonImage('thanksButtonDiv_642_2', false);"
                onclick="javascript:thankYouChangeButtonImage('thanksButtonDiv_642_2', false);" >
                <input type="button" onclick="thankYouButtonClick(642, 'Вы уже оставили благодарность за эту статью')" value="Спасибо 8"
                  class="thanks_button thanks_compact thanks_black"
                  style="  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#ffffff;"
                  id="thanksButton_642_2" title="Щелкните мышью, чтобы оставить благодарность за эту статью"/>
             </div><div id="ajax_loader_642_2" style="display:inline;visibility: hidden;"><img alt="ajax loader" src="http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/ajax-loader.gif" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://maxidrom.net/archives/642/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>ipfw</title>
		<link>http://maxidrom.net/archives/566</link>
		<comments>http://maxidrom.net/archives/566#comments</comments>
		<pubDate>Thu, 14 Jul 2011 09:47:33 +0000</pubDate>
		<dc:creator>to6ka</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Главная]]></category>

		<guid isPermaLink="false">http://maxidrom.net/?p=566</guid>
		<description><![CDATA[ipfw &#8211; это утилита для управления встроенным в систему файерволлом. Файерволл &#8211; часть системы, часть сетевого стека, часть ядра и без него управление трафиком было бы невозможно. В статье пойдет речь о том, какими возможностями он обладает и как их использовать. Скучный мануал такой скучный, поэтому я его написал, но он будет в конце специально [...]]]></description>
			<content:encoded><![CDATA[<p>ipfw &#8211; это утилита для управления встроенным в систему файерволлом.</p>
<p>Файерволл &#8211; часть системы, часть сетевого стека, часть ядра и без него управление трафиком было бы невозможно.</p>
<p>В статье пойдет речь о том, какими возможностями он обладает и как их использовать.</p>
<p><span id="more-566"></span></p>
<p>Скучный мануал такой скучный, поэтому я его написал, но он будет в конце специально для того, чтобы желающие могли разобраться как все устроено и как все работает, сейчас же я приведу пример не очень сложного рабочего скрипта с шейпером для настройки:</p>
<blockquote><p>#!/bin/sh</p>
<p>#Хороший тон при написании скриптов &#8211; использовать переменные, в противном случае при изменении скрипта/конфигурации #системы/обновлении/любом случайном стечении обстоятельств вы рискуете переписывать весь свой огромный скрипт, да и #ошибиться несложно.<br />
wan_if=&#8221;re0&#8243;<br />
lan_if=&#8221;re1&#8243;<br />
localnet=&#8221;192.168.0.0/24&#8243;</p>
<p>#сброс предыдущих настроек<br />
ipfw -fq flush</p>
<p>#разрешаем локальный обмен<br />
ipfw -q add 130 allow all from $localnet to $localnet via $lan_if</p>
<p>#задаем каналы, для протокола udp чуть уже<br />
ipfw -q pipe 3 config bw 14000Kbit/s queue 20<br />
ipfw -q pipe 4 config bw 14000Kbit/s queue 20<br />
ipfw -q pipe 5 config bw 17000Kbit/s queue 20<br />
ipfw -q pipe 6 config bw 17000Kbit/s queue 20</p>
<p>#конфигурируем очереди для равномерного распределения трафика<br />
ipfw -q queue 30 config pipe 3 weight 10 queue 20 mask dst-ip 0xffffffff<br />
ipfw -q queue 40 config pipe 4 weight 10 queue 20 mask src-ip 0xffffffff<br />
ipfw -q queue 50 config pipe 5 weight 1 queue 20 mask dst-ip 0xffffffff<br />
ipfw -q queue 60 config pipe 6 weight 1 queue 20 mask src-ip 0xffffffff</p>
<p>#добавляем очереди для udp в правила, обрабатываем их отдельно<br />
ipfw -q add 230 queue 30 udp from not $localnet to $localnet out via $lan_if<br />
ipfw -q add 240 queue 40 udp from $localnet to not $localnet in via $lan_if</p>
<p>#пакеты udp уходят из файервола</p>
<p>ipfw -q add 250 allow udp from not $localnet to $localnet out via $lan_if<br />
ipfw -q add 260 allow udp from $localnet to not $localnet in via $lan_if</p>
<p>#добавляем очереди для оставшихся пакетов в правила, обрабатываем их отдельно<br />
ipfw -q add 350 queue 50 all from not $localnet to $localnet out via $lan_if<br />
ipfw -q add 360 queue 60 all from $localnet to not $localnet in via $lan_if</p>
<p>#остальные пакеты уходят из файервола</p>
<p>ipfw -q add 370 allow all from not $localnet to $localnet out via $lan_if<br />
ipfw -q add 380 allow all from $localnet to not $localnet in via $lan_if</p>
<p>#добавляем НАТ</p>
<p>ipfw -q nat 1 config if $wan_if log redirect_port tcp 192.168.0.2:40001-41000 40001-41000 redirect_port udp 192.168.0.2:40001-41000</p>
<p>#оставшиеся правила нужны, чтобы пакеты нормально проходили через НАТ</p>
<p>ipfw -q add 410 nat 1 all from any to any via $wan_if</p>
<p>ipfw -q add 510 allow all from me to not $localnet out via $wan_if<br />
ipfw -q add 520 allow all from not $localnet to me in via $wan_if<br />
ipfw -q add 540 allow all from any to $localnet via $wan_if</p></blockquote>
<p>Скрипт проверял, работает =)</p>
<p>&nbsp;</p>
<p>Сразу оговорюсь, есть ряд мелких, но важных деталей:</p>
<p>1. переменная ядра net.inet.ip.fw.one_pass должна быть установлена в ноль, т.е. занесите &#8220;net.inet.ip.fw.one_pass=0&#8243; в sysctl.conf, это дает возможность более гибкой настройки файервола: пакеты будут покидать файервол только в случае попадания в правило allow/deny, т.о. вы можете сделать так, чтобы пакет проходил несколько правил и обрабатывался ими, а затем уже покидал файервол по вашему желанию.</p>
<p>2. опция -q, стоящая после каждой команды ipfw означает режим quite, т.е. файервол не будет писать никаких сообщений для отчетности, это необходимо для удаленного администрирования, иначе ipfw будет пытаться отослать сообщение и обнаружив, что соединения нет &#8211; прекратит выполнение скрипта. Старые правила сбросятся, а новые не установятся.</p>
<p>3. а команда ipfw -f flush выполняет предварительный сброс настроек файервола, иначе вы можете получить непредсказуемые результаты при изменении скрипта =)</p>
<p>&nbsp;</p>
<p>Мануал:</p>
<p>По сути файерволл управляется списком правил, если вы не настраивали его до этого, то введя команду</p>
<p>ipfw show</p>
<p>вы должны увидеть</p>
<p>65536 allow ip from any to any</p>
<p>Это правило, создаваемое системой по умолчанию и зависящее от опции, с которой скомпилировано ядро(FIREWALL_DEFAULT_TO_DENY или FIREWALL_DEFAULT_TO_ALLOW), оно имеет последний порядковый номер в системе и не может быть удалено или перезаписано.</p>
<p>Всего правил, как вы поняли, может быть 65535, начиная с нуля, также правила могут иметь один и тот же порядковый номер, если (!) они не мешают друг другу (исключают друг друга, т.е. например одно правило касается только протокола tcp, а другое только udp). При обработке поступившего пакета файерволл проверяет пакет на соответствие правилам по порядку, начиная с нулевогого правила и заканчивая 65535м. По умолчанию, если пакет соответствует правилу, то к нему применяется действие, описанное там и пакет покидает файерволл. Также важно помнить, что пакет, проходя каждый раз через интерфейс, в случае попадания на интерфейс извне обрабатывается файерволлом сразу по прибытию, в случае отправки пакета обрабатывается заранее, до попадания на интерфейс, т.е. если задача компьютера состоит в шлюзовании(т.е. пропускании пакетов через себя), то пакет проходит файерволл дважды: при принятии пакета и до отправки пакета.</p>
<p>&nbsp;</p>
<p>Чтобы добавлять правила необходимо использовать команду</p>
<p>ipfw add [порядковый номер правила] [действие] [протокол] from [отправитель] to [получатель]</p>
<p>а команда ipfw delete [порядковый номер правила] удаляет правило с указанным номером</p>
<p>Рассмотрим по порядку</p>
<p>1. порядковый номер правила &#8211; число от 1 до 65535, обозначающее, каким по счету будет рассматриваться правило(зачастую порядок следования правил имеет ключевое значение);</p>
<p>2. действие &#8211; действие, которое нужно применить к пакету, основные варианты:</p>
<p>- allow &#8211; разрешить пакету пройти, т.е. пакет сразу покидает файерволл и отправляется дальше;</p>
<p>- deny &#8211; разрешить пакету пройти, т.е. пакет отбрасывается и дальше не проходит;</p>
<p>- [divert название программы] &#8211; передать пакет на обработку сторонней программе(например natd), пакет передается и покидает файерволл, далее программа в соответствии с собственной конфигурацией обработает пакет, на выходе пакет вновь будет обработан;</p>
<p>- [nat название НАТа] &#8211; совершить преобразование адресов с пакетом;</p>
<p>- [pipe название пайпа] &#8211; поместить пакет в пайп(по-русски трубу);</p>
<p>- [queue название очереди] &#8211; поместить пакет в очередь;</p>
<p>3. протокол &#8211; основные варианты:</p>
<p>- all &#8211; пакеты любых типов протоколов соответствуют;</p>
<p>- tcp &#8211; соответствуют пакеты tcp;</p>
<p>- udp &#8211; соответствуют пакеты udp;</p>
<p>4. отправитель и получатель &#8211; это адреса, возможные варианты:</p>
<p>- any &#8211; любой адрес соответствует этому значению;</p>
<p>- xxx.xxx.xxx.xxx/yy &#8211; где xxx.xxx.xxx.xxx &#8211; ip-адрес, yy &#8211; маска подсети;</p>
<p>Некоторые действия, такие как nat, pipe и queue необходимо еще и сконфигурировать до или после добавления правил в файерволл, делается это следующим образом:</p>
<p>ipfw [действие] [название действия] config [опции]</p>
<p>Конфигурируемыми действиями являются nat, pipe, queue и другие (менее интересные нам), единственным нераскрытым пунктом в данном случае являются опции, и для разных действий они, естественно, разные. Рассмотрим самое распространенное:</p>
<p>- для nat:</p>
<p>ipfw nat [название НАТа] config if [внешний интерфейс] log redirect_port [protocol] [ip]:[ports]  [ports]</p>
<p>Распространенный случай: поднятие НАТа на внешнем интерфейсе &#8211; опция if задает этот интерфейс, log &#8211; включает логирование, опция redirect_port делает возможным перенаправление пакетов с портов внешнего интерфейса на порты внутреннего локального адреса(вопреки распространенному мнению, будто бы этим занимается функция port_forward). На тот момент, что я настраивал эту функцию, для протоколов были возможны только 2 варианта: tcp и udp, т.е. приходилось отдельно указывать перенаправление для этих 2х протоколов. [ports] в конце обозначает порт или диапазон портов на внешнем интерфейсе, где НАТ будет ждать пакеты для перенаправления(диапазон указывается через знак минуса xxxxx-yyyyy). Надо сказать, что диапазоны могут быть разными =), но должны быть одинаковыми по размеру, т.е. допустимы записи</p>
<p>xxx.xxx.xxx.xxx:aaaaa-bbbbb ccccc-ddddd, но при этом при вычитании должно выполняться: bbbbb &#8211; aaaaa = ddddd &#8211; ccccc</p>
<p>т.е. при поступлении пакета на внешний интерфейс на порт ccccc файервол передаст его на порт aaaaa локального айпи xxx.xxx.xxx.xxx и сделает так же соответственно с каждым пакетом из диапазона.</p>
<p>Действие forward я не затрону в этом мануале, могу единственно сказать, что оно выполняет свою задачу, оно передает пакет, но никак не меняет его блок адресации сетевого уровня, т.е. оно меняет MAC-адрес получателя, но не ip-адрес получателя, соответственно указанный хост получит пакет, но в получателях будет значиться айпи внешнего интерфейса, а внешний интерфейс хоста будет иметь локальный айпи, и, естественно, в стандартном случае, хост отбросит этот пакет, как не адресованный ему.</p>
<p>- для pipe:</p>
<p>ipfw pipe [название ПАЙПа] config bw [пропускная способность] queue [количество пакетов]</p>
<p>опция bw (bandwidth, англ. &#8211; пропускная способность) указывает в различных единицах измерения ширину создаваемого канала, приемлимые единицы bit/s, Kbit/s, Mbit/s. queue (англ. &#8211; очереди) &#8211; указывает число пакетов, помещаемых в очередь, в большинстве случаев достаточно 10-20 пакетов. Нужно заметить, что действие pipe не обладает никакими особыми свойствами и кроме ограничения канала заданными границами ничего не умеет. Для расширения возможностей контроля трафика как раз нужно действие queue.</p>
<p>- для queue:</p>
<p>ipfw queue [название очереди] config [название ПАЙПа] weight [приоритет пакета] queue [размер очереди] mask [маска (я кэп <img src='http://maxidrom.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ]<br />
Очереди создаются внутри канала (ПАЙПа), пакеты в этих очередях могут иметь различный приоритет (число от 0 до 100, чем меньше число, тем выше приоритет) и приоритет присваивается этим пакетам в соответствии с заданной маской. Я использую эту возможность для того, чтобы создавать много одинаковых очередей с одинаковым приоритетом, но для разных айпи, это позволяет равномерно делить канал между всеми хостами. Очереди динамически создаются и удаляются, что позволяет не бояться того, что часть канала будет неиспользована, занята хостом, который уже отключился. Приоритет задается числом от 1 до 100, размер очереди определяется числом пакетов, которые туда могут поместиться. Самый интересный параметр mask, я использовал 2 типа маски: src-ip и dst-ip со значением 0xffffffff, которое означает, что для любого нового айпи в этом пайпе будет создаваться новая очередь (синтаксис: mask src-ip 0xffffffff), с маской src-ip будет проверяться адрес отправителя, а с маской dst-ip &#8211; соответственно адрес получателя.</p>
<div class="thanks_button_div" 
                  style="float: right; margin-right: 10px;"><div id="thanksButtonDiv_566_2" style="background-image:url(http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/thanks_compact_black.png); background-repeat:no-repeat; float: left; display: inline;"
                onmouseover="javascript:thankYouChangeButtonImage('thanksButtonDiv_566_2', true);" 
                onmouseout="javascript:thankYouChangeButtonImage('thanksButtonDiv_566_2', false);"
                onclick="javascript:thankYouChangeButtonImage('thanksButtonDiv_566_2', false);" >
                <input type="button" onclick="thankYouButtonClick(566, 'Вы уже оставили благодарность за эту статью')" value="Спасибо 0"
                  class="thanks_button thanks_compact thanks_black"
                  style="  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#ffffff;"
                  id="thanksButton_566_2" title="Щелкните мышью, чтобы оставить благодарность за эту статью"/>
             </div><div id="ajax_loader_566_2" style="display:inline;visibility: hidden;"><img alt="ajax loader" src="http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/ajax-loader.gif" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://maxidrom.net/archives/566/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>Сборка прошивки wive-rtnl от sfstudio для asus rt-g32 rev. b1 под ubuntu</title>
		<link>http://maxidrom.net/archives/581</link>
		<comments>http://maxidrom.net/archives/581#comments</comments>
		<pubDate>Fri, 01 Jul 2011 19:01:44 +0000</pubDate>
		<dc:creator>to6ka</dc:creator>
				<category><![CDATA[asus rt-g32 rev. b1]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[routers]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[10.10 "Maverick Meerkat"]]></category>
		<category><![CDATA[Asus]]></category>
		<category><![CDATA[Routers]]></category>

		<guid isPermaLink="false">http://maxidrom.net/?p=581</guid>
		<description><![CDATA[&#160; Под капотом вы увидите описание сборки прошивки wive-rtnl от sfstudio для Asus rt-g32 rev. b1 при использовании ОС ubuntu 10.10. upd: 11.04 тоже подходит, равно как и 10.04. &#160; С нулевой системой Ubuntu вам понадобятся следующие пакеты и библиотеки: git, gcc, g++, cpp, texinfo, libmpc-dev, libgmp-dev, libmpfr-dev, zlib-dev, ncurses &#160; Для сборки прошивки выполняем следующие действия: - заходим в папку /opt/ cd [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://maxidrom.net/wp-content/uploads/2011/07/Asus-RT-G32-RU-B1-150M.jpg"><img class="alignleft size-medium wp-image-614" title="Asus-RT-G32-RU-B1-150M" src="http://maxidrom.net/wp-content/uploads/2011/07/Asus-RT-G32-RU-B1-150M-300x244.jpg" alt="" width="210" height="171" /></a></p>
<p>&nbsp;</p>
<p>Под капотом вы увидите описание сборки прошивки wive-rtnl от sfstudio для Asus rt-g32 rev. b1 при использовании ОС ubuntu 10.10.</p>
<p>upd: 11.04 тоже подходит, равно как и 10.04.</p>
<p><span id="more-581"></span></p>
<p>&nbsp;</p>
<p>С нулевой системой Ubuntu вам понадобятся следующие пакеты и библиотеки:</p>
<p>git, gcc, g++, cpp, texinfo, libmpc-dev, libgmp-dev, libmpfr-dev, zlib-dev, ncurses</p>
<p>&nbsp;</p>
<p>Для сборки прошивки выполняем следующие действия:</p>
<p>- заходим в папку /opt/</p>
<p>cd /opt</p>
<p>- копируем ветку кода из git-репозитория</p>
<p>sudo git clone git://gitorious.org/wive-rtnl-ralink-rt305x-routers-firmware/wive-rtnl-ralink-rt305x-routers-firmware.git Wive-RTNL/</p>
<p>&nbsp;</p>
<p>Затем необходимо определиться, какую версию прошивки мы хотим собрать. Допустим, нам нужно собрать версию 1.8.2, для этого смотрим лог коммитов:</p>
<p>git log</p>
<p>- ищем в логе запись &#8220;version 1.8.2 released&#8221;, типа такой:</p>
<p>commit 1fc9fe1feb04b61866a777ac1df4c3b4f4ac9e79<br />
Author: sfstudio &lt;sfstudio@mail.ru&gt;<br />
Date:   Wed Jul 13 19:49:08 2011 +0700</p>
<p>1.8.2 Released.</p>
<p>- Теперь нужно откатиться к этому коммиту, для  этого копируем первые 6-7 знаков из номера коммита(у нас &#8220;1fc9fe&#8221;) и вставляем в конец команды для отката (&#8220;git reset &#8211;hard&#8221;):</p>
<p>sudo git reset &#8211;hard 1fc9fe</p>
<p>- Мы увидим следующее сообщение</p>
<p>HEAD is now at 1fc9fe1 1.8.2 Released.</p>
<p>&nbsp;</p>
<p>Теперь можно собрать тулчейн и образы:</p>
<p>- заходим в папку /opt/Wive-RTNL/toolchain/</p>
<p>cd Wive-RTNL/toolchain/</p>
<p>- собираем toolchain</p>
<p>sudo ./build_toolchain.sh</p>
<p>- заходим в папку /opt/Wive-RTNL/</p>
<p>cd ..</p>
<p>- собираем прошивку с минимумом потребления памяти</p>
<p>sudo ./compile 1T1R YES</p>
<p>- Следуя логике, можно предположить, что используя один аргумент, мы соберем обычную прошивку, а используя аргумент 2T2R &#8211; соберем прошивку для чипа 3052, но нам этого не нужно =D</p>
<p>&nbsp;</p>
<p>Если вам потребуется обновиться до современной ветки кода, нужно зайти в каталог с нашей веткой</p>
<p>cd /opt/Wive-RTNL</p>
<p>- и набрать команду:</p>
<p>sudo git pull origin</p>
<p>- если будет ругаться, возможно перед этим потребуется выполнить следующую команду:</p>
<p>sudo git stash</p>
<p>sudo git pull origin</p>
<p>&nbsp;</p>
<p>Скачать прошивку можно тут:</p>
<p><a href="http://maxidrom.net/wp-content/uploads/2011/07/Acorp_WR-150N-1T1R-savemem.1.8.0.RU_.01072011.bin_.zip">Acorp_WR-150N-1T1R-savemem.1.8.0.RU.01072011.bin</a></p>
<p>Образы на народе:</p>
<p><a href="http://narod.ru/disk/17805069001/Acorp_WR-150N-1T1R-savemem.1.8.0.RU.01072011.bin.zip.html">Acorp_WR-150N-1T1R-savemem.1.8.0.RU.01072011.bin.zip</a></p>
<p><a href="http://narod.ru/disk/18318286001/Acorp_WR-150N-1T1R-savemem.1.8.1.RU.06072011.bin.zip.html">Acorp_WR-150N-1T1R-savemem.1.8.1.RU.06072011.bin.zip</a></p>
<p><a href="http://narod.ru/disk/19022729001/Acorp_WR-150N-1T1R-savemem.1.8.2.RU.14072011.bin.zip.html">Acorp_WR-150N-1T1R-savemem.1.8.2.RU.14072011.bin.zip</a></p>
<p><a href="http://narod.ru/disk/19023419001/Acorp_WR-150N-1T1R-savemem.1.8.3.RU.14072011.bin.zip.html">Acorp_WR-150N-1T1R-savemem.1.8.3.RU.14072011.bin.zip</a></p>
<p><a href="http://narod.ru/disk/19356149001/Acorp_WR-150N-1T1R-savemem.1.8.4.RU.18072011.bin.zip.html">Acorp_WR-150N-1T1R-savemem.1.8.4.RU.18072011.bin.zip</a></p>
<p><a href="http://narod.ru/disk/19356206001/Acorp_WR-150N-1T1R-savemem.1.8.5.RU.18072011.bin.zip.html">Acorp_WR-150N-1T1R-savemem.1.8.5.RU.18072011.bin.zip</a></p>
<p>&nbsp;</p>
<div class="thanks_button_div" 
                  style="float: right; margin-right: 10px;"><div id="thanksButtonDiv_581_2" style="background-image:url(http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/thanks_compact_black.png); background-repeat:no-repeat; float: left; display: inline;"
                onmouseover="javascript:thankYouChangeButtonImage('thanksButtonDiv_581_2', true);" 
                onmouseout="javascript:thankYouChangeButtonImage('thanksButtonDiv_581_2', false);"
                onclick="javascript:thankYouChangeButtonImage('thanksButtonDiv_581_2', false);" >
                <input type="button" onclick="thankYouButtonClick(581, 'Вы уже оставили благодарность за эту статью')" value="Спасибо 19"
                  class="thanks_button thanks_compact thanks_black"
                  style="  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#ffffff;"
                  id="thanksButton_581_2" title="Щелкните мышью, чтобы оставить благодарность за эту статью"/>
             </div><div id="ajax_loader_581_2" style="display:inline;visibility: hidden;"><img alt="ajax loader" src="http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/ajax-loader.gif" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://maxidrom.net/archives/581/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>Linux world map large</title>
		<link>http://maxidrom.net/archives/558</link>
		<comments>http://maxidrom.net/archives/558#comments</comments>
		<pubDate>Sat, 21 May 2011 13:27:24 +0000</pubDate>
		<dc:creator>p.b.Leo</dc:creator>
				<category><![CDATA[*nix]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://maxidrom.net/?p=558</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://maxidrom.net/wp-content/uploads/2011/05/linux-world-map-large.png"><img class="aligncenter size-large wp-image-559" title="Linux world map large" src="http://maxidrom.net/wp-content/uploads/2011/05/linux-world-map-large-1024x571.png" alt="" width="819" height="457" /></a></p>
<div class="thanks_button_div" 
                  style="float: right; margin-right: 10px;"><div id="thanksButtonDiv_558_2" style="background-image:url(http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/thanks_compact_black.png); background-repeat:no-repeat; float: left; display: inline;"
                onmouseover="javascript:thankYouChangeButtonImage('thanksButtonDiv_558_2', true);" 
                onmouseout="javascript:thankYouChangeButtonImage('thanksButtonDiv_558_2', false);"
                onclick="javascript:thankYouChangeButtonImage('thanksButtonDiv_558_2', false);" >
                <input type="button" onclick="thankYouButtonClick(558, 'Вы уже оставили благодарность за эту статью')" value="Спасибо 0"
                  class="thanks_button thanks_compact thanks_black"
                  style="  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#ffffff;"
                  id="thanksButton_558_2" title="Щелкните мышью, чтобы оставить благодарность за эту статью"/>
             </div><div id="ajax_loader_558_2" style="display:inline;visibility: hidden;"><img alt="ajax loader" src="http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/ajax-loader.gif" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://maxidrom.net/archives/558/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>Простой и быстрый глюк с иксами своими руками</title>
		<link>http://maxidrom.net/archives/535</link>
		<comments>http://maxidrom.net/archives/535#comments</comments>
		<pubDate>Wed, 04 May 2011 21:46:00 +0000</pubDate>
		<dc:creator>telkomrwt</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Cannot connect to X]]></category>
		<category><![CDATA[hostname]]></category>
		<category><![CDATA[Волшебные ручки]]></category>

		<guid isPermaLink="false">http://maxidrom.net/?p=535</guid>
		<description><![CDATA[Недавно обнаружил довольно забавный баг: ни одно иксовое приложение на рабочей машине (debian 6) запускаться в один прекрасный момент не захотело, ругаясь в консоль на ошибку невозможности коннекта к X при запущенных иксах. Начал думать, df сказал, что места на разделах полно, после рестарта X автоматически запустились только ранее запущенные приложения, изображение рабочего стола (среда [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Недавно обнаружил довольно забавный баг: ни одно иксовое приложение на рабочей машине (debian 6) запускаться в один прекрасный момент не захотело, ругаясь в консоль на ошибку невозможности коннекта к X при запущенных иксах.<span id="more-535"></span></p>
<p style="text-align: justify;">Начал думать, df сказал, что места на разделах полно, после рестарта X автоматически запустились только ранее запущенные приложения, изображение рабочего стола (среда gnome2) отсутствовало, на прозрачных гномовских панелях кусочки оного всё же имели место быть. Полный рестарт машины не помог, симптомы аналогичны.</p>
<p style="text-align: justify;">Причина проста: на роутере во время настройки присваивания ip по dhcp также был указан хостнейм, который не совпадал с текущим хостнеймом на пк, автоматически прописанным в /etc/hostname. Иксовые приложения, не видя этой смены после установки связи по wi-fi через networkmanager, пытались подключиться в ранее занятую пустоту, в результате чего никакого запуска программы не происходило. Возврат к оригинальному хостнейму в текущей сессии решает проблему.<br />
Не повторяйте чужих ошибок.</p>
<div class="thanks_button_div" 
                  style="float: right; margin-right: 10px;"><div id="thanksButtonDiv_535_2" style="background-image:url(http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/thanks_compact_black.png); background-repeat:no-repeat; float: left; display: inline;"
                onmouseover="javascript:thankYouChangeButtonImage('thanksButtonDiv_535_2', true);" 
                onmouseout="javascript:thankYouChangeButtonImage('thanksButtonDiv_535_2', false);"
                onclick="javascript:thankYouChangeButtonImage('thanksButtonDiv_535_2', false);" >
                <input type="button" onclick="thankYouButtonClick(535, 'Вы уже оставили благодарность за эту статью')" value="Спасибо 1"
                  class="thanks_button thanks_compact thanks_black"
                  style="  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#ffffff;"
                  id="thanksButton_535_2" title="Щелкните мышью, чтобы оставить благодарность за эту статью"/>
             </div><div id="ajax_loader_535_2" style="display:inline;visibility: hidden;"><img alt="ajax loader" src="http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/ajax-loader.gif" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://maxidrom.net/archives/535/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
		<item>
		<title>Смена темы &#8230;</title>
		<link>http://maxidrom.net/archives/499</link>
		<comments>http://maxidrom.net/archives/499#comments</comments>
		<pubDate>Sat, 30 Apr 2011 09:14:29 +0000</pubDate>
		<dc:creator>p.b.Leo</dc:creator>
				<category><![CDATA[Всякое из жизни]]></category>
		<category><![CDATA[Главная]]></category>

		<guid isPermaLink="false">http://maxidrom.net/?p=499</guid>
		<description><![CDATA[На данный момент изменена тема на данном сайте. Связанно это с тем, что были неприятные косяки при просмотре статей, причем половину символов попросту не было видно. Учитывая что мне лень редактировать тему и править всякие косяки &#8211; я загрузил самую классическую из них. Но скоро, когда я победю свою лень и найду время &#8211; я замучу [...]]]></description>
			<content:encoded><![CDATA[<p>На данный момент изменена тема на данном сайте. Связанно это с тем, что были неприятные косяки при просмотре статей, причем половину символов попросту не было видно. Учитывая что мне лень редактировать тему и править всякие косяки &#8211; я загрузил самую классическую из них. Но скоро, когда я победю свою лень и найду время &#8211; я замучу свой любимый шаблон &#8230;</p>
<div class="thanks_button_div" 
                  style="float: right; margin-right: 10px;"><div id="thanksButtonDiv_499_2" style="background-image:url(http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/thanks_compact_black.png); background-repeat:no-repeat; float: left; display: inline;"
                onmouseover="javascript:thankYouChangeButtonImage('thanksButtonDiv_499_2', true);" 
                onmouseout="javascript:thankYouChangeButtonImage('thanksButtonDiv_499_2', false);"
                onclick="javascript:thankYouChangeButtonImage('thanksButtonDiv_499_2', false);" >
                <input type="button" onclick="thankYouButtonClick(499, 'Вы уже оставили благодарность за эту статью')" value="Спасибо 0"
                  class="thanks_button thanks_compact thanks_black"
                  style="  font-family: Verdana, Arial, Sans-Serif; font-size: 14px; font-weight: normal;; color:#ffffff;"
                  id="thanksButton_499_2" title="Щелкните мышью, чтобы оставить благодарность за эту статью"/>
             </div><div id="ajax_loader_499_2" style="display:inline;visibility: hidden;"><img alt="ajax loader" src="http://maxidrom.net/wp-content/plugins/thanks-you-counter-button/images/ajax-loader.gif" /></div></div>]]></content:encoded>
			<wfw:commentRss>http://maxidrom.net/archives/499/feed</wfw:commentRss>
		<slash:comments></slash:comments>
		</item>
	</channel>
</rss>

