<?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>Записки на полях &#187; soft</title>
	<atom:link href="http://snake.khd.ru/tag/soft/feed/" rel="self" type="application/rss+xml" />
	<link>http://snake.khd.ru</link>
	<description>Логи начинающего сисадмина</description>
	<lastBuildDate>Sun, 25 Jul 2010 00:55:23 +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>Зазеркалье: настраиваем локальное зеркало CVSUP</title>
		<link>http://snake.khd.ru/2009/10/zazerkale-nastraivaem-lokalnoe-zerkalo-cvsup/</link>
		<comments>http://snake.khd.ru/2009/10/zazerkale-nastraivaem-lokalnoe-zerkalo-cvsup/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 14:41:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[cvsup]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[зеркало]]></category>
		<category><![CDATA[порты]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=103</guid>
		<description><![CDATA[Если машин с FreeBSD в локалке больше одной, то встает вопрос &#8211; можно ли обновлять порты и исходные коды с одной выделенной машины? Во-первых, экономится трафик. Во-вторых, меньше загружается канал во внешний мир.

Для подобных целей в портах предусмотрена утилита cvsup-mirror:

snake@snake &#91;snake&#93;# cd /usr/ports/
snake@snake &#91;ports&#93;# make search name=cvsup-mirror
Port:   cvsup-mirror-1.3_8
Path:   /usr/ports/net/cvsup-mirror
Info:   [...]]]></description>
			<content:encoded><![CDATA[<p>Если машин с FreeBSD в локалке больше одной, то встает вопрос &#8211; можно ли обновлять порты и исходные коды с одной выделенной машины? Во-первых, экономится трафик. Во-вторых, меньше загружается канал во внешний мир.<br />
<span id="more-103"></span><br />
Для подобных целей в портах предусмотрена утилита cvsup-mirror:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake<span style="color: #000000; font-weight: bold;">@</span>snake <span style="color: #7a0874; font-weight: bold;">&#91;</span>snake<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># cd /usr/ports/</span>
snake<span style="color: #000000; font-weight: bold;">@</span>snake <span style="color: #7a0874; font-weight: bold;">&#91;</span>ports<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># make search name=cvsup-mirror</span>
Port:   cvsup-mirror-<span style="color: #000000;">1.3</span>_8
Path:   <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>ports<span style="color: #000000; font-weight: bold;">/</span>net<span style="color: #000000; font-weight: bold;">/</span>cvsup-mirror
Info:   A kit <span style="color: #000000; font-weight: bold;">for</span> easily setting up a FreeBSD mirror site using CVSup
Maint:  jdp<span style="color: #000000; font-weight: bold;">@</span>FreeBSD.org
B-deps:
R-deps: cvsup-without-gui-16.1h_4
WWW:    http:<span style="color: #000000; font-weight: bold;">//</span>www.cvsup.org<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
snake<span style="color: #000000; font-weight: bold;">@</span>snake <span style="color: #7a0874; font-weight: bold;">&#91;</span>ports<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># cd /usr/ports/net/cvsup-mirror</span>
snake<span style="color: #000000; font-weight: bold;">@</span>snake <span style="color: #7a0874; font-weight: bold;">&#91;</span>cvsup-mirror<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># make install clean</span></pre></div></div>

<p>Отвечаем на вопросы мастера:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Master site <span style="color: #000000; font-weight: bold;">for</span> your updates <span style="color: #7a0874; font-weight: bold;">&#91;</span>cvsup-master.freebsd.org<span style="color: #7a0874; font-weight: bold;">&#93;</span>? cvsup5.ru.FreeBSD.org
<span style="color: #666666; font-style: italic;"># Сервер обновлений, с которого будем качать обновления.</span>
How many hours between updates of your files <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>?
<span style="color: #666666; font-style: italic;"># как часто запускать обновление</span>
Do you wish to mirror the main <span style="color: #7a0874; font-weight: bold;">source</span> repository <span style="color: #7a0874; font-weight: bold;">&#91;</span>y<span style="color: #7a0874; font-weight: bold;">&#93;</span>?
<span style="color: #666666; font-style: italic;"># обновлять порты и исходники.</span>
Where would you like to put it <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>ncvs<span style="color: #7a0874; font-weight: bold;">&#93;</span>? <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>cvsupd
<span style="color: #666666; font-style: italic;"># папка, где будет лежать скаченное (порядка 3-4ГБ)</span>
Do you wish to mirror the installed World Wide Web data <span style="color: #7a0874; font-weight: bold;">&#91;</span>y<span style="color: #7a0874; font-weight: bold;">&#93;</span>? n
<span style="color: #666666; font-style: italic;"># сделать зеркало сайта http://www.freebsd.org</span>
Do you wish to mirror the GNATS bug tracking database <span style="color: #7a0874; font-weight: bold;">&#91;</span>y<span style="color: #7a0874; font-weight: bold;">&#93;</span>? n
<span style="color: #666666; font-style: italic;"># зеркало базы багов</span>
Do you wish to mirror the mailing list archive <span style="color: #7a0874; font-weight: bold;">&#91;</span>y<span style="color: #7a0874; font-weight: bold;">&#93;</span>? n
<span style="color: #666666; font-style: italic;"># e-mail рассылки</span></pre></div></div>

<p>Далее подтверждаем создание пользователей и групп, под которым будет работать cvsup-mirror, подвтерждаем внесение измений в crontab (для регулярного запуска обновлений) и в syslog.conf для настроек логирования.</p>
<p>Программа сконфигурирована и в дальнейшей настройке не нуждается.</p>
<p>пишем в rc.conf: cvsupd_enable=&#8221;YES&#8221;</p>
<p>Запускаем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake<span style="color: #000000; font-weight: bold;">@</span>snake <span style="color: #7a0874; font-weight: bold;">&#91;</span>snake<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># /usr/loca/etc/rc.d/cvsupd start</span></pre></div></div>

<p>Проверяем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake<span style="color: #000000; font-weight: bold;">@</span>snake <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#/usr/local/etc/rc.d/cvsupd status</span>
cvsupd is running <span style="color: #c20cb9; font-weight: bold;">as</span> pid 16512.
&nbsp;
snake<span style="color: #000000; font-weight: bold;">@</span>snake <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#sockstat -l4 | grep cvsup</span>
cvsup    cvsupd     <span style="color: #000000;">16512</span> <span style="color: #000000;">3</span>  tcp4   <span style="color: #000000; font-weight: bold;">*</span>:<span style="color: #000000;">5999</span>                <span style="color: #000000; font-weight: bold;">*</span>:<span style="color: #000000; font-weight: bold;">*</span></pre></div></div>

<p>Запускаем скрипт обновления:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake<span style="color: #000000; font-weight: bold;">@</span>snake <span style="color: #7a0874; font-weight: bold;">&#91;</span>snake<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># /usr/loca/etc/cvsup/update.sh</span></pre></div></div>

<p>Обязательно пишем полный путь, иначе скрипт не запустится</p>
<p>Идем пить кофе, потому что тянуть в первый раз программа будет очень много &#8211; порядка 3,5 гигабайт. При этом программа может выдать что-то типа такого:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>root<span style="color: #000000; font-weight: bold;">@</span>webdes cvsup<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># /usr/local/etc/cvsup/update.sh</span>
CVSup update begins at <span style="color: #000000;">2006</span>-<span style="color: #000000;">10</span>-<span style="color: #000000;">18</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">37</span>:<span style="color: #000000;">22</span>
lockf: <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>spool<span style="color: #000000; font-weight: bold;">/</span>lock<span style="color: #000000; font-weight: bold;">/</span>cvsup.lock: already locked
CVSup update ends at <span style="color: #000000;">2006</span>-<span style="color: #000000;">10</span>-<span style="color: #000000;">18</span> <span style="color: #000000;">18</span>:<span style="color: #000000;">37</span>:<span style="color: #000000;">22</span></pre></div></div>

<p>А может, как в моем случае, совсем ничего не выводить.</p>
<p>Настраиваем соотвествующим образом sup-файлы для утилиты cvsup:</p>
<p>ports-supfile</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">*</span>default <span style="color: #007800;">host</span>=localhost
<span style="color: #000000; font-weight: bold;">*</span>default <span style="color: #007800;">base</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>db
<span style="color: #000000; font-weight: bold;">*</span>default <span style="color: #007800;">prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>usr
<span style="color: #000000; font-weight: bold;">*</span>default <span style="color: #007800;">release</span>=<span style="color: #c20cb9; font-weight: bold;">cvs</span>
<span style="color: #000000; font-weight: bold;">*</span>default delete use-rel-suffix
<span style="color: #000000; font-weight: bold;">*</span>default compress
ports-all <span style="color: #007800;">tag</span>=.</pre></div></div>

<p>src-supfile</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">*</span>default <span style="color: #007800;">host</span>=localhost
<span style="color: #000000; font-weight: bold;">*</span>default <span style="color: #007800;">base</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>db
<span style="color: #000000; font-weight: bold;">*</span>default <span style="color: #007800;">prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>usr
<span style="color: #000000; font-weight: bold;">*</span>default <span style="color: #007800;">release</span>=<span style="color: #c20cb9; font-weight: bold;">cvs</span> <span style="color: #007800;">tag</span>=RELENG_7_2
<span style="color: #000000; font-weight: bold;">*</span>default delete use-rel-suffix
<span style="color: #000000; font-weight: bold;">*</span>default compress
src-all</pre></div></div>

<p>Настраиваем, кто может от нас обновляться: /usr/local/etc/cvsup/cvsupd.access</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">-0.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</span>      <span style="color: #000000;">8</span>         <span style="color: #666666; font-style: italic;"># Общее ограничение одновременных подключений</span>
-0.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">32</span>   <span style="color: #000000;">1</span>        <span style="color: #666666; font-style: italic;"># только одно подключение с хоста</span>
+10.12.5.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">24</span>   <span style="color: #000000;">8</span>       <span style="color: #666666; font-style: italic;"># Локалка</span>
+10.12.51.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">24</span>  <span style="color: #000000;">8</span>      <span style="color: #666666; font-style: italic;"># Локалка</span>
+10.12.4.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">24</span>   <span style="color: #000000;">8</span>       <span style="color: #666666; font-style: italic;"># Локалка</span>
+127.0.0.1<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">32</span>   <span style="color: #000000;">1</span>       <span style="color: #666666; font-style: italic;"># localhost</span></pre></div></div>

<p>И еще одно маленькое замечание: у меня при обновлении с серверов cvsup1.ru.freebsd.org-cvsup4.ru.freebsd.org программа полностью не обновляла репозиторий, и csup выдавал нечто вроде ports-all: unknown ports collection. В интернетах советуют использовать использовать утилиту cvsupdpasswd, чтобы сгенерировать пароль и отослать его в саппорт cvsup-серверов freebsd. Общение с этим самым саппортом убедило в обратном &#8211; для локальных серверов пароль не нужен :) достаточно сменить cvsup-сервер, с которого льем обновления на &#8220;менее престижный&#8221; (например, cvsup5.ru.freebsd.org).</p>
<p>Проверяем работу сервера, запустив утилиту csup:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake<span style="color: #000000; font-weight: bold;">@</span>snake <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#snake@snake [snake]#csup -g -L 2 /home/snake/local-supfile</span>
Parsing supfile <span style="color: #ff0000;">&quot;/home/snake/local-supfile&quot;</span>
Connecting to localhost
Connected to 127.0.0.1
Server software version: SNAP_16_1h
Negotiating <span style="color: #c20cb9; font-weight: bold;">file</span> attribute support
Exchanging collection information
Establishing multiplexed-mode data connection
Running
Updating collection src-all<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">cvs</span>
 Edit src<span style="color: #000000; font-weight: bold;">/</span>UPDATING
  Add delta 1.507.2.23.2.7 2009.10.02.18.09.56 simon
 Edit src<span style="color: #000000; font-weight: bold;">/</span>sys<span style="color: #000000; font-weight: bold;">/</span>conf<span style="color: #000000; font-weight: bold;">/</span>newvers.sh
  Add delta 1.72.2.11.2.8 2009.10.02.18.09.56 simon
 Edit src<span style="color: #000000; font-weight: bold;">/</span>sys<span style="color: #000000; font-weight: bold;">/</span>fs<span style="color: #000000; font-weight: bold;">/</span>devfs<span style="color: #000000; font-weight: bold;">/</span>devfs_vnops.c
  Add delta 1.149.2.8.2.2 2009.10.02.18.09.56 simon
 Edit src<span style="color: #000000; font-weight: bold;">/</span>sys<span style="color: #000000; font-weight: bold;">/</span>kern<span style="color: #000000; font-weight: bold;">/</span>kern_exec.c
  Add delta 1.308.2.8.2.2 2009.10.02.18.09.56 simon
Shutting down connection to server
Finished successfully</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2009/10/zazerkale-nastraivaem-lokalnoe-zerkalo-cvsup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Посчитаем все! Stargazer как биллинг для небольшой локалки</title>
		<link>http://snake.khd.ru/2009/10/poschitaem-vse-stargazer-kak-billing-dlya-nebolshoj-lokalki/</link>
		<comments>http://snake.khd.ru/2009/10/poschitaem-vse-stargazer-kak-billing-dlya-nebolshoj-lokalki/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 10:09:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[billng]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[stargazer]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=93</guid>
		<description><![CDATA[Имеется: сервер на freebsd 7.2, две безлимитных линии, две группы пользователей
Задача &#8211; контролировать платежи пользователей за интернет.

Для начала нам понадобится биллинг &#8211; программа, которая будет считать трафик пользователя, осуществлять авторизацию и считать абонку. В моем случае это Stargazer
Для установки нам потребуются оболочка bash и библиотека expat.
Распаковываем архив, идем в projects/stargazer.
Выполняем:

#./build
#gmake install

Если все прошло успешно, то [...]]]></description>
			<content:encoded><![CDATA[<p>Имеется: сервер на freebsd 7.2, две безлимитных линии, две группы пользователей<br />
Задача &#8211; контролировать платежи пользователей за интернет.<br />
<span id="more-93"></span><br />
Для начала нам понадобится биллинг &#8211; программа, которая будет считать трафик пользователя, осуществлять авторизацию и считать абонку. В моем случае это <a href="http://www.stargazer.dp.ua/download.php" target="_blank">Stargazer</a></p>
<p>Для установки нам потребуются оболочка bash и библиотека expat.<br />
Распаковываем архив, идем в projects/stargazer.<br />
Выполняем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#./build</span>
<span style="color: #666666; font-style: italic;">#gmake install</span></pre></div></div>

<p>Если все прошло успешно, то в /etc/stargazer появятся  файлы rules, stargazer.conf и скрипты пользователей</p>
<p>Начнем по порядку:<br />
<strong>rules</strong> содержит список подсетей и направлений. По каждому направлению может быть свой тариф и свои правила подсчета.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">ALL     192.168.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">16</span>  DIR1 <span style="color: #666666; font-style: italic;">#направление 1 - локалка</span>
ALL     10.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">8</span>      DIR2 <span style="color: #666666; font-style: italic;"># направление 2 - городская сеть</span>
ALL     0.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</span>       DIR0 <span style="color: #666666; font-style: italic;"># направление 3 - инет</span></pre></div></div>

<p><strong>stargazer.conf</strong> &#8211; основной конфигурационный файл</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">################################################################################</span>
<span style="color: #666666; font-style: italic;">#                        Файл настроек сервера stargazer                       #</span>
<span style="color: #666666; font-style: italic;">################################################################################</span>
<span style="color: #666666; font-style: italic;"># Имя лог-файла куда пишутся события</span>
LogFile = <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>stargazer.log
&nbsp;
<span style="color: #666666; font-style: italic;"># Имя PID-файла куда пишется идентификатор процесса</span>
<span style="color: #666666; font-style: italic;"># По умолчанию /var/run/pid</span>
<span style="color: #666666; font-style: italic;"># PIDFile = /var/run/stargazer.pid</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Имя файла в котором определяются правила подсчета трафика</span>
Rules = <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>stargazer<span style="color: #000000; font-weight: bold;">/</span>rules
&nbsp;
<span style="color: #666666; font-style: italic;"># Время через которое пишется d БД детальная статистика пользователя</span>
<span style="color: #666666; font-style: italic;"># Значения: 1, 1/2, 1/4, 1/6.</span>
<span style="color: #666666; font-style: italic;"># 1 - раз в чаc, 1/2 - раз в пол часа, 1/4 - раз в 15 мин, 1/6 - раз в 10 мин</span>
<span style="color: #007800;">DetailStatWritePeriod</span>=<span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">6</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Периодичность записи записи в БД информации о статистике пользователя (минуты)</span>
<span style="color: #666666; font-style: italic;"># При большом кол-ве пользователей эту величину стоит увеличить, т.к.</span>
<span style="color: #666666; font-style: italic;"># запись в БД может занимать длительное время.</span>
<span style="color: #666666; font-style: italic;"># Значения: 1...1440 (минуты)</span>
StatWritePeriod = <span style="color: #000000;">10</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># День снятия абонплаты</span>
<span style="color: #666666; font-style: italic;"># Значения: 0...31. 0 - Последний день месяца</span>
DayFee = <span style="color: #000000;">1</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Абонплата снимается в последний (yes) или первый (no) день учетного периода.</span>
<span style="color: #666666; font-style: italic;"># Это влияет на то, как будет снята абонплата (АП) при переходе на новый тариф.</span>
<span style="color: #666666; font-style: italic;"># Если у пользователя был тариф A с АП=100 и он хочет перейти на тариф B с АП=200,</span>
<span style="color: #666666; font-style: italic;"># то при переходе на новый тариф со счета пользователя снимется 100, если</span>
<span style="color: #666666; font-style: italic;"># DayFeeIsLastDay = yes и 200, если DayFeeIsLastDay = no</span>
DayFeeIsLastDay = <span style="color: #c20cb9; font-weight: bold;">yes</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># День сброса данных о трафике за месяц и день перехода пользователей на новые тарифы</span>
<span style="color: #666666; font-style: italic;"># Значения: 0...31. 0 - Последний день месяца</span>
DayResetTraff = <span style="color: #000000;">1</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># &quot;Размазанное&quot; снятие абонплаты. Снятие АП не раз в месяц, а каждый</span>
<span style="color: #666666; font-style: italic;"># день 1/30 или 1/31 части АП</span>
<span style="color: #666666; font-style: italic;"># Значения: yes, no</span>
SpreadFee = no
&nbsp;
<span style="color: #666666; font-style: italic;"># Данная опция определяет может ли пользователь получить доступ в интерент</span>
<span style="color: #666666; font-style: italic;"># если у него на счету нет денег, но остался предоплаченный трафик</span>
<span style="color: #666666; font-style: italic;"># Значения: yes, no</span>
FreeMbAllowInet = no
&nbsp;
<span style="color: #666666; font-style: italic;"># Эта опция определяет что будет писаться в стоимость трафика в detail_stat.</span>
<span style="color: #666666; font-style: italic;"># Если у пользователя еще есть предоплаченный трафик и WriteFreeMbTraffCost = no,</span>
<span style="color: #666666; font-style: italic;"># то в detail_stat стоимость будет 0. Если у пользователя уже нет</span>
<span style="color: #666666; font-style: italic;"># предоплаченного трафика и WriteFreeMbTraffCost = no, то в detail_stat</span>
<span style="color: #666666; font-style: italic;"># будет записана стоиость трафика. При WriteFreeMbTraffCost = yes стоимость</span>
<span style="color: #666666; font-style: italic;"># трафика будет записана в любом случае.</span>
WriteFreeMbTraffCost = no
&nbsp;
<span style="color: #666666; font-style: italic;"># Названия направлений. Направления без названий не будут отображаться в</span>
<span style="color: #666666; font-style: italic;"># авторизаторе и конфигураторе. Названия состоящие из нескольких слов должны</span>
<span style="color: #666666; font-style: italic;"># быть взяты в кавычки</span>
<span style="color: #666666; font-style: italic;"># Я использовал только одно направление - Интернет. (&lt;em&gt;прим. Snake&lt;/em&gt;)</span>
<span style="color: #000000; font-weight: bold;">&lt;</span>DirNames<span style="color: #000000; font-weight: bold;">&gt;</span>
    DirName0 = Internet
    <span style="color: #666666; font-style: italic;">#DirName1 = Город</span>
    <span style="color: #666666; font-style: italic;">#DirName2 = Локаль</span>
<span style="color: #000000; font-weight: bold;">&lt;/</span>DirNames<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Кол-во запускаемых процессов stg-exec.</span>
<span style="color: #666666; font-style: italic;"># Эти процессы отвечают за выполнение скриптов OnConnect, OnDisconnect, ...</span>
<span style="color: #666666; font-style: italic;"># Кол-во процессов означает сколько скриптов могут выполнятся одновременно.</span>
<span style="color: #666666; font-style: italic;"># Значения: 1...1024</span>
ExecutersNum = <span style="color: #000000;">1</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Message Key для stg-exec.</span>
<span style="color: #666666; font-style: italic;"># Идентификатор очереди сообщений для выполнятеля скриптов.</span>
<span style="color: #666666; font-style: italic;"># Его изменение может понадобится если есть необходимость запустить несколько</span>
<span style="color: #666666; font-style: italic;"># экземпляров stg. Если вы не понимаете, что это, не трогайте этот параметр!</span>
<span style="color: #666666; font-style: italic;"># Значения: 0...2^32</span>
<span style="color: #666666; font-style: italic;"># Значение по умолчанию: 5555</span>
<span style="color: #666666; font-style: italic;"># ExecMsgKey = 5555</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Путь к директории, в которой находятся модули сервера</span>
ModulesPath = <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>stg
&nbsp;
<span style="color: #666666; font-style: italic;"># Определяет директорию, в которой будут находится файлы &quot;монитора&quot;</span>
<span style="color: #666666; font-style: italic;"># работы сервера. В этой директории будут созданы пустые файлы, время </span>
<span style="color: #666666; font-style: italic;"># модификации которых будет меняться примерно раз в минуту. Если какой-то </span>
<span style="color: #666666; font-style: italic;"># компонент сервера зависнет, файл(ы) перестанет обновлятся, и по этому </span>
<span style="color: #666666; font-style: italic;"># признаку можно определить сбой в работе сервера и при надобности </span>
<span style="color: #666666; font-style: italic;"># перезапустить. Если параметр не указан или пустой, мониторинг производится </span>
<span style="color: #666666; font-style: italic;"># не будет. Параметр не является обязательным, по умолчанию пустой.</span>
<span style="color: #666666; font-style: italic;"># MonitorDir=/var/stargazer/monitor</span>
&nbsp;
<span style="color: #666666; font-style: italic;">################################################################################</span>
<span style="color: #666666; font-style: italic;"># Store module</span>
<span style="color: #666666; font-style: italic;"># Настройки плагина работающего с БД сервера</span>
<span style="color: #666666; font-style: italic;"># Выберите нужный модуль хранения статистики (БД или файлы). Должен быть активен только один модуль!</span>
<span style="color: #666666; font-style: italic;"># Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
<span style="color: #666666; font-style: italic;"># Т.е. полное имя модуля mod_store_files.so</span>
<span style="color: #000000; font-weight: bold;">&lt;</span>StoreModule store_files<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Рабочая директория сервера, тут содержатся данные о тарифах, пользователях,</span>
    <span style="color: #666666; font-style: italic;"># администраторах и т.д.</span>
    WorkDir = <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>stargazer
&nbsp;
&nbsp;
    <span style="color: #666666; font-style: italic;"># Владелец, группа и права доступа на файлы статистики (stat) пользователя</span>
    ConfOwner = root
    ConfGroup = wheel
    ConfMode = <span style="color: #000000;">600</span>
&nbsp;
&nbsp;
    <span style="color: #666666; font-style: italic;"># Владелец, группа и права доступа на файлы конфигурации (conf) пользователя</span>
    StatOwner = root
    StatGroup = wheel
    StatMode = <span style="color: #000000;">640</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Владелец, группа и права доступа на лог-файлы (log) пользователя</span>
    UserLogOwner = root
    UserLogGroup = wheel
    UserLogMode = <span style="color: #000000;">640</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Удалять резервные копии после успешной записи conf/stat</span>
    <span style="color: #666666; font-style: italic;"># Значения: yes, no</span>
    <span style="color: #666666; font-style: italic;"># По умолчанию: yes</span>
    <span style="color: #666666; font-style: italic;"># RemoveBak = yes</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Восстанавливать файлы conf/stat из резервных копий при ошибке чтения</span>
    <span style="color: #666666; font-style: italic;"># Значения: yes, no</span>
    <span style="color: #666666; font-style: italic;"># По умолчанию: no</span>
    <span style="color: #666666; font-style: italic;"># ReadBak = no</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;/</span>StoreModule<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#&lt;StoreModule store_firebird&gt;</span>
<span style="color: #666666; font-style: italic;">#    # Адрес сервера БД</span>
<span style="color: #666666; font-style: italic;">#    server=localhost</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Путь к БД на сервере или ее алиас</span>
<span style="color: #666666; font-style: italic;">#    database=/var/stg/stargazer.fdb</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Имя пользователя БД</span>
<span style="color: #666666; font-style: italic;">#    user=stg</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Пароль пользователя БД</span>
<span style="color: #666666; font-style: italic;">#    password=123456</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Уровень изоляции транзаций (не обязательно, по умолчанию oncurrency):</span>
<span style="color: #666666; font-style: italic;">#    #  concurrency</span>
<span style="color: #666666; font-style: italic;">#    #  dirtyRead</span>
<span style="color: #666666; font-style: italic;">#    #  readCommitted</span>
<span style="color: #666666; font-style: italic;">#    #  consistency</span>
<span style="color: #666666; font-style: italic;">#    isolationLevel=concurrency</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Действия при блокировках (не обязательно, по умолчанию wait):</span>
<span style="color: #666666; font-style: italic;">#    #  wait</span>
<span style="color: #666666; font-style: italic;">#    #  noWait</span>
<span style="color: #666666; font-style: italic;">#    lockResolution=wait</span>
<span style="color: #666666; font-style: italic;">#&lt;/StoreModule&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#&lt;StoreModule store_postgresql&gt;</span>
<span style="color: #666666; font-style: italic;">#    # Адрес сервера БД</span>
<span style="color: #666666; font-style: italic;">#    server=localhost</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Имя БД</span>
<span style="color: #666666; font-style: italic;">#    database=stargazer</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Имя пользователя БД</span>
<span style="color: #666666; font-style: italic;">#    user=stg</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Пароль пользователя БД</span>
<span style="color: #666666; font-style: italic;">#    password=123456</span>
<span style="color: #666666; font-style: italic;">#&lt;/StoreModule&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#&lt;StoreModule store_mysql&gt;</span>
<span style="color: #666666; font-style: italic;">#    # Имя пользователя БД</span>
<span style="color: #666666; font-style: italic;">#    dbuser = stg</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Пароль пользователя БД</span>
<span style="color: #666666; font-style: italic;">#    rootdbpass = 123456</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Имя БД на сервере</span>
<span style="color: #666666; font-style: italic;">#    dbname = stg</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    # Адрес сервера БД</span>
<span style="color: #666666; font-style: italic;">#    dbhost = localhost</span>
<span style="color: #666666; font-style: italic;">#&lt;/StoreModule&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">################################################################################</span>
<span style="color: #666666; font-style: italic;"># Прочие модули</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;</span>Modules<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Настройки плагина авторизации Always Online &quot;mod_auth_ao.so&quot;</span>
    <span style="color: #666666; font-style: italic;"># Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
    <span style="color: #666666; font-style: italic;"># Т.е. полное имя модуля mod_auth_ao.so</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>Module auth_ao<span style="color: #000000; font-weight: bold;">&gt;</span>
    <span style="color: #000000; font-weight: bold;">&lt;/</span>Module<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Настройки плагина авторизации InetAccess &quot;mod_auth_ia.so&quot;</span>
    <span style="color: #666666; font-style: italic;"># Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
    <span style="color: #666666; font-style: italic;"># Т.е. полное имя модуля mod_auth_ia.so</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>Module auth_ia<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Порт на котором принимаются обращения от авторизатора</span>
        <span style="color: #666666; font-style: italic;"># Значения: 1...65534</span>
        Port = <span style="color: #000000;">5555</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Время между посылками запроса пользователю жив ли он</span>
        <span style="color: #666666; font-style: italic;"># и обновлением данных статистики (секунды)</span>
        <span style="color: #666666; font-style: italic;"># Значения: 5...600</span>
        UserDelay = <span style="color: #000000;">15</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">#Таймаут для пользователя. Если в течение этого времени авторизатор</span>
        <span style="color: #666666; font-style: italic;">#не отвечает, пользователь будет отключен</span>
        <span style="color: #666666; font-style: italic;"># Значения: 15...1200</span>
        UserTimeout = <span style="color: #000000;">65</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Этот параметр определяет что будет передаваться программе InetAccess от сервера</span>
        <span style="color: #666666; font-style: italic;"># как отстаток предоплаченного трафика</span>
        <span style="color: #666666; font-style: italic;"># Значения:</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = 0 - кол-во бесплатных мегабайт в пресчете на цену нулевого направления</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = 1 - кол-во бесплатных мегабайт в пресчете на цену первого направления</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = 2 - кол-во бесплатных мегабайт в пресчете на цену второго направления</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = 3 - кол-во бесплатных мегабайт в пресчете на цену третьего направления</span>
        <span style="color: #666666; font-style: italic;"># ........................</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = 9 - кол-во бесплатных мегабайт в пресчете на цену девятого направления</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = cash - кол-во денег на которые юзер может бесплатно качать</span>
        <span style="color: #666666; font-style: italic;"># FreeMb = none - ничего не передавать</span>
        FreeMb = cash
    <span style="color: #000000; font-weight: bold;">&lt;/</span>Module<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Модули можно использовать несколько раз с разными параметрами</span>
    <span style="color: #666666; font-style: italic;">#&lt;Module auth_ia&gt;</span>
    <span style="color: #666666; font-style: italic;">#    Port = 7777</span>
    <span style="color: #666666; font-style: italic;">#    UserDelay = 15</span>
    <span style="color: #666666; font-style: italic;">#    UserTimeout = 65</span>
    <span style="color: #666666; font-style: italic;">#    FreeMb = 0</span>
    <span style="color: #666666; font-style: italic;">#&lt;/Module&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Настройки модуля конфигурации SgConfig &quot;mod_conf_sg.so&quot;</span>
    <span style="color: #666666; font-style: italic;"># Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>Module conf_sg<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Порт по которому сервер взаимодействует с конфигуратором</span>
        <span style="color: #666666; font-style: italic;"># Значения: 1...65535</span>
        Port = <span style="color: #000000;">5555</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">&lt;/</span>Module<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Модуль захвата трафика &quot;mod_cap_bpf.so&quot;</span>
    <span style="color: #666666; font-style: italic;"># Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
    <span style="color: #666666; font-style: italic;"># Без параметров. Только имя модуля.</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>Module cap_bpf<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #666666; font-style: italic;"># Интерфейс(ы) на котором нужно производить подсчет трафика</span>
        iface = rl0
        iface = rl1
        iface = dc0
    <span style="color: #000000; font-weight: bold;">&lt;/</span>Module<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Модуль захвата трафика &quot;mod_cap_nf.so&quot;</span>
    <span style="color: #666666; font-style: italic;"># Принимает информацию о трафике по протоколу NetFlow</span>
    <span style="color: #666666; font-style: italic;"># Второй параметер - это имя модуля без mod_ в начале и .so в конце</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>Module cap_nf<span style="color: #000000; font-weight: bold;">&gt;</span>
        <span style="color: #666666; font-style: italic;"># TCPPort - порт для TCP-соединений</span>
        TCPPort = <span style="color: #000000;">42111</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># UDPPort - порт для UDP-соединений</span>
        UDPPort = <span style="color: #000000;">42111</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Могут иметь совпадающие значения.</span>
        <span style="color: #666666; font-style: italic;"># Если параметр не указан - соответствующий порт не &quot;прослушивается&quot;.</span>
    <span style="color: #000000; font-weight: bold;">&lt;/</span>Module<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;"># Настройки модуля пингующего пользователей &quot;mod_ping.so&quot;</span>
    <span style="color: #666666; font-style: italic;"># Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
    <span style="color: #000000; font-weight: bold;">&lt;</span>Module <span style="color: #c20cb9; font-weight: bold;">ping</span><span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># Время, в секундах, между пингами одного и того же пользователя</span>
        <span style="color: #666666; font-style: italic;"># Значения: 10...3600</span>
        PingDelay = <span style="color: #000000;">15</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">&lt;/</span>Module<span style="color: #000000; font-weight: bold;">&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#    # Настройки модуля для удаленного выполнения скриптов OnCOnnect и</span>
<span style="color: #666666; font-style: italic;">#    # OnDisconnect &quot;mod_remote_script.so&quot;</span>
<span style="color: #666666; font-style: italic;">#    # Второй параметр - это имя модуля без mod_ в начале и .so в конце</span>
<span style="color: #666666; font-style: italic;">#    &lt;Module remote_script&gt;</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#        # Время, в секундах, между посылками подтверждений, того, что пользователь</span>
<span style="color: #666666; font-style: italic;">#        # всё еще онлайн</span>
<span style="color: #666666; font-style: italic;">#        # Значения: 10...600</span>
<span style="color: #666666; font-style: italic;">#        SendPeriod = 15</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#        # Соответствие подсетей, в которой находится пользователь и</span>
<span style="color: #666666; font-style: italic;">#        # соответствующего роутера. Первая часть строки - подслеть, заданная</span>
<span style="color: #666666; font-style: italic;">#        # как IP-адрес и маска, через пробел - IP-адрес роутера на котором</span>
<span style="color: #666666; font-style: italic;">#        # должны выполняться скрипты</span>
<span style="color: #666666; font-style: italic;">#        # Например эта запись &quot;192.168.1.0/24 192.168.1.1&quot; означает, что для</span>
<span style="color: #666666; font-style: italic;">#        # всех пользователей из подсети 192.168.1.0/24, скрипты будут</span>
<span style="color: #666666; font-style: italic;">#        # выполняться на роутере с адресом 192.168.1.1</span>
<span style="color: #666666; font-style: italic;">#        # Subnet0...Subnet100</span>
<span style="color: #666666; font-style: italic;">#        Subnet0 = 192.168.1.0/24 192.168.1.7</span>
<span style="color: #666666; font-style: italic;">#        Subnet1 = 192.168.2.0/24 192.168.2.5</span>
<span style="color: #666666; font-style: italic;">#        Subnet2 = 192.168.3.0/24 192.168.2.5</span>
<span style="color: #666666; font-style: italic;">#        Subnet3 = 192.168.4.0/24 192.168.2.5</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#        # Пароль для шифрования пакетов между stg-сервером и сервером,</span>
<span style="color: #666666; font-style: italic;">#        # выполняющим скрипты</span>
<span style="color: #666666; font-style: italic;">#        Password = 123456</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#        # Этот параметр определяет какие параметры пользователя передаются</span>
<span style="color: #666666; font-style: italic;">#        # на удаленный сервер</span>
<span style="color: #666666; font-style: italic;">#        # Cash, FreeMb, Passive, Disabled, AlwaysOnline, TariffName, NextTariff, Address,</span>
<span style="color: #666666; font-style: italic;">#        # Note, Group, Email, RealName, Credit, EnabledDirs, Userdata0...Userdata9</span>
<span style="color: #666666; font-style: italic;">#        UserParams=Cash Tariff EnabledDirs</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#        # Порт по которому сервер отсылает сообщения на роутер</span>
<span style="color: #666666; font-style: italic;">#        # Значения: 1...65535</span>
<span style="color: #666666; font-style: italic;">#        Port = 9999</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    &lt;/Module&gt;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#    &lt;Module radius&gt;</span>
<span style="color: #666666; font-style: italic;">#        Password = 123456</span>
<span style="color: #666666; font-style: italic;">#        ServerIP = 127.0.0.1</span>
<span style="color: #666666; font-style: italic;">#        Port = 6666</span>
<span style="color: #666666; font-style: italic;">#        AuthServices = Login-User</span>
<span style="color: #666666; font-style: italic;">#        AcctServices = Framed-User</span>
<span style="color: #666666; font-style: italic;">#    &lt;/Module&gt;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">&lt;/</span>Modules<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #666666; font-style: italic;">################################################################################</span></pre></div></div>

<p>Скрипты OnConnect, OnDisconnect и другие обрабатываются при наступлении соответствующего события. Например, при подключении пользователя ему должен открываться доступ к интернету. Соответственно, при отключении пользователя &#8220;окно&#8221; должно закрываться.<br />
Вот пример моих скриптов:<br />
<strong>OnConnect</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Login</span>
<span style="color: #007800;">LOGIN</span>=$<span style="color: #000000;">1</span>
<span style="color: #666666; font-style: italic;">#user IP</span>
<span style="color: #007800;">IP</span>=$<span style="color: #000000;">2</span>
<span style="color: #666666; font-style: italic;">#cash</span>
<span style="color: #007800;">CASH</span>=$<span style="color: #000000;">3</span>
<span style="color: #666666; font-style: italic;">#user ID</span>
<span style="color: #007800;">ID</span>=$<span style="color: #000000;">4</span>
<span style="color: #666666; font-style: italic;">#Selected dirs to connect</span>
<span style="color: #007800;">DIRS</span>=$<span style="color: #000000;">5</span>
<span style="color: #007800;">fw</span>=<span style="color: #ff0000;">&quot;/sbin/ipfw&quot;</span>
<span style="color: #800000;">${fw}</span> table <span style="color: #000000;">1</span> add <span style="color: #007800;">$IP</span></pre></div></div>

<p>При соединении IP пользователя добавляется в таблицу фаервола, и ему открывается доступ в инет. </p>
<p><strong>OnDisconnect</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Login</span>
<span style="color: #007800;">LOGIN</span>=$<span style="color: #000000;">1</span>
<span style="color: #666666; font-style: italic;">#user IP</span>
<span style="color: #007800;">IP</span>=$<span style="color: #000000;">2</span>
<span style="color: #666666; font-style: italic;">#cash</span>
<span style="color: #007800;">CASH</span>=$<span style="color: #000000;">3</span>
<span style="color: #666666; font-style: italic;">#user ID</span>
<span style="color: #007800;">ID</span>=$<span style="color: #000000;">4</span>
<span style="color: #666666; font-style: italic;">#Selected dirs to disconnect</span>
<span style="color: #007800;">DIRS</span>=$<span style="color: #000000;">4</span>
<span style="color: #007800;">fw</span>=<span style="color: #ff0000;">&quot;/sbin/ipfw&quot;</span>
<span style="color: #800000;">${fw}</span> table <span style="color: #000000;">1</span> del <span style="color: #007800;">$IP</span></pre></div></div>

<p>При отключении ип пользователя удаляется из таблицы, доступ закрывается.</p>
<p>Остальная настройка подробно описана в мануале, ничего сложного там нет. Трафик считается, деньги исправно списываются.</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2009/10/poschitaem-vse-stargazer-kak-billing-dlya-nebolshoj-lokalki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Нестандартное подключение. pptp в Linux</title>
		<link>http://snake.khd.ru/2009/09/nestandartnoe-podklyuchenie-pptp-v-linux/</link>
		<comments>http://snake.khd.ru/2009/09/nestandartnoe-podklyuchenie-pptp-v-linux/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 14:34:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ppp]]></category>
		<category><![CDATA[pptp]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=86</guid>
		<description><![CDATA[Имеется &#8211; компьютер в локальной сети с Ubuntu 9.04, подключаемый к интернету с помощью двух vpn-соединений. первое нужно для связи с vpn-сервером провайдера, второе &#8211; для непосредственно выхода в инетернет.

Перво-наперво ставим пакеты ppp и pptp.
Затем необходимо (в моем случае) прописать необходимые маршурты к первому vpn-серверу (да, вот такие извращения&#8230;):

#!/bin/sh
route add -net 10.12.5.0/24 gw 10.12.5.1
route add [...]]]></description>
			<content:encoded><![CDATA[<p>Имеется &#8211; компьютер в локальной сети с Ubuntu 9.04, подключаемый к интернету с помощью двух vpn-соединений. первое нужно для связи с vpn-сервером провайдера, второе &#8211; для непосредственно выхода в инетернет.<br />
<span id="more-86"></span><br />
Перво-наперво ставим пакеты ppp и pptp.<br />
Затем необходимо (в моем случае) прописать необходимые маршурты к первому vpn-серверу (да, вот такие извращения&#8230;):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
route add <span style="color: #660033;">-net</span> 10.12.5.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">24</span> gw 10.12.5.1
route add <span style="color: #660033;">-net</span> 10.12.51.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">24</span> gw 10.12.5.1
route add <span style="color: #660033;">-net</span> 10.12.4.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">24</span> gw 10.12.5.1
route add <span style="color: #660033;">-host</span> 10.10.10.10 gw 10.12.5.1
route add <span style="color: #660033;">-host</span> 10.10.10.78 gw 10.12.5.1</pre></div></div>

<p>Лучше всего будет прописать их в настройках ethernet соединения, чтобы вставали автоматически.</p>
<p>Затем создаем файлик /etc/ppp/peers/vpn</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">$sudo</span> <span style="color: #660033;">-i</span> <span style="color: #000000; font-weight: bold;">//</span>чтобы лишний раз не заморачиваться насчет прав
<span style="color: #666666; font-style: italic;">#cd /etc/ppp/peers</span>
<span style="color: #666666; font-style: italic;">#touch vpn</span>
<span style="color: #666666; font-style: italic;">#mcedit vpn</span></pre></div></div>

<p>Содержание файла:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pty <span style="color: #ff0000;">&quot;pptp 10.12.51.226 --nolaunchpppd&quot;</span> <span style="color: #000000; font-weight: bold;">//</span>ип сервера, с которым соединяемся
user yourlogin
password <span style="color: #ff0000;">&quot;YoUrPaSsWoRd&quot;</span> <span style="color: #000000; font-weight: bold;">//</span>обязательно в кавычках<span style="color: #000000; font-weight: bold;">!</span>
nodeflate
nobsdcomp
noauth
require-mppe-<span style="color: #000000;">128</span>
mtu <span style="color: #000000;">1460</span>
refuse-eap
refuse-chap
refuse-mschap</pre></div></div>

<p>Далее открываем файлик /etc/ppp/ip-up и добавляем в конец строки:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">route add <span style="color: #660033;">-net</span> 10.255.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">16</span> dev ppp0</pre></div></div>

<p>Этот маршрут необходим, чтобы связаться с сервером провайдера именно через это vpn-соединение</p>
<p>Пробуем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#pppd call vpn debug nodetach</span></pre></div></div>

<p>Последние две опции необходимы для отладки. Наблюдаем в консоли примерно такую картину:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">using channel <span style="color: #000000;">2</span>
Using interface ppp0
Connect: ppp0 <span style="color: #000000; font-weight: bold;">&lt;</span>--<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>pts<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</span>
sent <span style="color: #7a0874; font-weight: bold;">&#91;</span>LCP ConfReq <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x1 <span style="color: #000000; font-weight: bold;">&lt;</span>asyncmap 0x0<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span>magic 0x33368137<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span>pcomp<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span>accomp<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
rcvd <span style="color: #7a0874; font-weight: bold;">&#91;</span>LCP ConfReq <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x1 <span style="color: #000000; font-weight: bold;">&lt;</span>auth chap MD5<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span>magic 0x36da4966<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
sent <span style="color: #7a0874; font-weight: bold;">&#91;</span>LCP ConfAck <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x1 <span style="color: #000000; font-weight: bold;">&lt;</span>auth chap MD5<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span>magic 0x36da4966<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
sent <span style="color: #7a0874; font-weight: bold;">&#91;</span>LCP ConfReq <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x1 <span style="color: #000000; font-weight: bold;">&lt;</span>asyncmap 0x0<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span>magic 0x33368137<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span>pcomp<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span>accomp<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
rcvd <span style="color: #7a0874; font-weight: bold;">&#91;</span>LCP ConfAck <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x1 <span style="color: #000000; font-weight: bold;">&lt;</span>asyncmap 0x0<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span>magic 0x33368137<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span>pcomp<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span>accomp<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
sent <span style="color: #7a0874; font-weight: bold;">&#91;</span>LCP EchoReq <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x0 <span style="color: #007800;">magic</span>=0x33368137<span style="color: #7a0874; font-weight: bold;">&#93;</span>
rcvd <span style="color: #7a0874; font-weight: bold;">&#91;</span>CHAP Challenge <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x1 <span style="color: #000000; font-weight: bold;">&lt;</span>f872f6df5542429b46d6cf7e89a3386c<span style="color: #000000; font-weight: bold;">&gt;</span>, name = <span style="color: #ff0000;">&quot;bras8&quot;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
sent <span style="color: #7a0874; font-weight: bold;">&#91;</span>CHAP Response <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x1 <span style="color: #000000; font-weight: bold;">&lt;</span>ebb4965e871c49a07565b148dc2dbf29<span style="color: #000000; font-weight: bold;">&gt;</span>, name = <span style="color: #ff0000;">&quot;unicorn2&quot;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
rcvd <span style="color: #7a0874; font-weight: bold;">&#91;</span>LCP EchoRep <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x0 <span style="color: #007800;">magic</span>=0x36da4966<span style="color: #7a0874; font-weight: bold;">&#93;</span>
rcvd <span style="color: #7a0874; font-weight: bold;">&#91;</span>CHAP Success <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x1 <span style="color: #ff0000;">&quot;&quot;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
CHAP authentication succeeded
CHAP authentication succeeded
sent <span style="color: #7a0874; font-weight: bold;">&#91;</span>IPCP ConfReq <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x1 <span style="color: #000000; font-weight: bold;">&lt;</span>compress VJ 0f 01<span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">&lt;</span>addr 0.0.0.0<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
rcvd <span style="color: #7a0874; font-weight: bold;">&#91;</span>IPCP ConfReq <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x1 <span style="color: #000000; font-weight: bold;">&lt;</span>addr 195.14.38.8<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
sent <span style="color: #7a0874; font-weight: bold;">&#91;</span>IPCP ConfAck <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x1 <span style="color: #000000; font-weight: bold;">&lt;</span>addr 195.14.38.8<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
rcvd <span style="color: #7a0874; font-weight: bold;">&#91;</span>IPCP ConfRej <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x1 <span style="color: #000000; font-weight: bold;">&lt;</span>compress VJ 0f 01<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
sent <span style="color: #7a0874; font-weight: bold;">&#91;</span>IPCP ConfReq <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x2 <span style="color: #000000; font-weight: bold;">&lt;</span>addr 0.0.0.0<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
rcvd <span style="color: #7a0874; font-weight: bold;">&#91;</span>IPCP ConfNak <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x2 <span style="color: #000000; font-weight: bold;">&lt;</span>addr 89.178.77.182<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
sent <span style="color: #7a0874; font-weight: bold;">&#91;</span>IPCP ConfReq <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x3 <span style="color: #000000; font-weight: bold;">&lt;</span>addr 89.178.77.182<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
rcvd <span style="color: #7a0874; font-weight: bold;">&#91;</span>IPCP ConfAck <span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">id</span></span>=0x3 <span style="color: #000000; font-weight: bold;">&lt;</span>addr 89.178.77.182<span style="color: #000000; font-weight: bold;">&gt;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>
Cannot determine ethernet address <span style="color: #000000; font-weight: bold;">for</span> proxy ARP
<span style="color: #7a0874; font-weight: bold;">local</span>  IP address 89.178.77.182
remote IP address 195.14.38.8
Script <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>ppp<span style="color: #000000; font-weight: bold;">/</span>ip-up started <span style="color: #7a0874; font-weight: bold;">&#40;</span>pid <span style="color: #000000;">4072</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
Script <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>ppp<span style="color: #000000; font-weight: bold;">/</span>ip-up finished <span style="color: #7a0874; font-weight: bold;">&#40;</span>pid <span style="color: #000000;">4072</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>, status = 0x0</pre></div></div>

<p>У нас появилось новое сетевое устройство ppp0.</p>
<p>Пингуем vpn провайдера:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#ping 10.255.0.1</span></pre></div></div>

<p>Если ответ есть, значит все прекрасно. Если нет &#8211; проверяем маршруты и настройки соединения.</p>
<p>Далее создаем файлик /etc/ppp/peers/internet:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pty <span style="color: #ff0000;">&quot;pptp 10.255.0.2 --nolaunchpppd&quot;</span> <span style="color: #000000; font-weight: bold;">//</span>адрес vpn-сервера провайдера
user yourlogin
password <span style="color: #ff0000;">&quot;YoUrPaSsWorD&quot;</span>
nodeflate
nobsdcomp
noauth
require-mppe-<span style="color: #000000;">128</span>
mtu <span style="color: #000000;">1460</span>
refuse-eap
refuse-chap
refuse-mschap</pre></div></div>

<p>В конец файла /etc/ppp/ip-up дописываем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">route add default dev ppp1</pre></div></div>

<p>Соединяемся:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pppd call internet debug nodetach</pre></div></div>

<p>Если все прошло успешно, у нас должен появится инет. Если нет &#8211; курим маршруты и настройки соединения.</p>
<p>теперь vpn можно поднимать двумя командами:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pppd call vpn
pppd call internet</pre></div></div>

<p>Только прошу обратить внимание, что демон pppd требует рутовых прав :)</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2009/09/nestandartnoe-podklyuchenie-pptp-v-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Учимся читать ntfs</title>
		<link>http://snake.khd.ru/2009/09/uchimsya-chitat-ntfs/</link>
		<comments>http://snake.khd.ru/2009/09/uchimsya-chitat-ntfs/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 04:27:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[ntfs]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[файловые системы]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=38</guid>
		<description><![CDATA[Т.к. до перехода на FreeBSD на машине стояла Win2003 то соответственна вся немалая коллекция фильмов хранилась на ntfs-томах. Переводить все это дело под ufs не было никакого желания.

Для нормальной (чтение и запись) поддержки ntfs существует пакет ntfs-3g. Ставим из портов:

snake-hostel5# cd /usr/ports/
snake-hostel5# make search name='ntfs'
Port:   fusefs-ntfs-1.1004
Path:   /usr/ports/sysutils/fusefs-ntfs
Info:   Mount NTFS [...]]]></description>
			<content:encoded><![CDATA[<p>Т.к. до перехода на FreeBSD на машине стояла Win2003 то соответственна вся немалая коллекция фильмов хранилась на ntfs-томах. Переводить все это дело под ufs не было никакого желания.</p>
<p><span id="more-38"></span></p>
<p>Для нормальной (чтение и запись) поддержки ntfs существует пакет ntfs-3g. Ставим из портов:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake-hostel5<span style="color: #666666; font-style: italic;"># cd /usr/ports/</span>
snake-hostel5<span style="color: #666666; font-style: italic;"># make search name='ntfs'</span>
Port:   fusefs-ntfs-<span style="color: #000000;">1.1004</span>
Path:   <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>ports<span style="color: #000000; font-weight: bold;">/</span>sysutils<span style="color: #000000; font-weight: bold;">/</span>fusefs-ntfs
Info:   Mount NTFS partitions <span style="color: #7a0874; font-weight: bold;">&#40;</span>read<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">write</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> and disk images
Maint:  alepulver<span style="color: #000000; font-weight: bold;">@</span>FreeBSD.org
B-deps: fusefs-libs-2.7.0_1 libtool-1.5.24 libublio-<span style="color: #000000;">20070103</span> pkg-config-<span style="color: #000000;">0.22</span>_1
R-deps: fusefs-kmod-0.3.9.p1_2 fusefs-libs-2.7.0_1 libublio-<span style="color: #000000;">20070103</span> pkg-config-<span style="color: #000000;">0.22</span>_1
WWW:    http:<span style="color: #000000; font-weight: bold;">//</span>www.ntfs-3g.org<span style="color: #000000; font-weight: bold;">/</span>Port:   ntfsprogs-1.13.1_3
Path:   <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>ports<span style="color: #000000; font-weight: bold;">/</span>sysutils<span style="color: #000000; font-weight: bold;">/</span>ntfsprogs
Info:   Utilities and library to manipulate NTFS partitions
Maint:  farrokhi<span style="color: #000000; font-weight: bold;">@</span>FreeBSD.org
B-deps: libublio-<span style="color: #000000;">20070103</span>
R-deps: libublio-<span style="color: #000000;">20070103</span>
WWW:    http:<span style="color: #000000; font-weight: bold;">//</span>www.linux-ntfs.org<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
snake-hostel5<span style="color: #666666; font-style: italic;">#</span></pre></div></div>

<p>Нам нужен пакет от fuse. После установки прописываем его в автозагрузку:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake-hostel5<span style="color: #666666; font-style: italic;">#echo 'fusefs_enable=&quot;YES&quot;' &amp;gt;&amp;gt; /etc/rc.conf</span></pre></div></div>

<p>и запускаем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake-hostel5<span style="color: #666666; font-style: italic;"># /usr/local/etc/rc.d/fusefs start</span></pre></div></div>

<p>Монтируем том:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake-hostel5<span style="color: #666666; font-style: italic;">#ntfs-3g -o rw,locale=ru_RU.KOI8-R /dev/ad0s1 /media</span></pre></div></div>

<p>Наступаем на первые грабли &#8211; ntfs для именования использует utf-кодировку. А пакет ntfs-3g тоже работает только с utf-8.<br />
Значит, монтируем с utf:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake-hostel5<span style="color: #666666; font-style: italic;">#ntfs-3g -o rw,locale=ru_RU.UTF-8 /dev/ad0s1 /media</span></pre></div></div>

<p>В системной консоли по прежнему кракозябры :) Но т.к. 95% всего времени мы работаем по ssh или samba, то делаем следующее:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"> $ ee ~<span style="color: #000000; font-weight: bold;">/</span>.login_conf</pre></div></div>

<p>Добавляем/редактируем:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">me:snake:\
:<span style="color: #007800;">charset</span>=UTF-<span style="color: #000000;">8</span>:\
:<span style="color: #007800;">lang</span>=ru_RU.UTF-<span style="color: #000000;">8</span>:</pre></div></div>

<p>Сохраняемся, выходим. В параметрах PuTTY или другого ssh клиента выставляем кодировку по умолчанию: UTF-8.<br />
Коннектимся. Получаем нормально отображаемые русские буквы. (не забудьте при необходимости пересобрать mc с поддержкой utf-8).</p>
<p>Некоторые советуют пересобрать ядро со следующими опциями:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">options LIBICONV
options NTFS
options NTFS_ICONV</pre></div></div>

<p>Но как по мне, что с ними, что без них было одинаково приятно. На моей машине скорость записи на ntfs-том была примерно 20Мбайт/с, чтение &#8211; около 50Мбайт. Не ахти конечно, но пойдет :)</p>
<p>С добавлением в fstab так же есть небольшие проблемы, потому fuse стартует позже, чем проверяется fstab. Я вышел из положения, добавив в rc.local необходимые команды (синтаксис тот же, что и при монтировании в консоли):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
ntfs-3g <span style="color: #660033;">-o</span> rw,<span style="color: #007800;">locale</span>=ru_RU.UTF-<span style="color: #000000;">8</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>ad4s1<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>media0
ntfs-3g <span style="color: #660033;">-o</span> rw,<span style="color: #007800;">locale</span>=ru_RU.UTF-<span style="color: #000000;">8</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>ad1s5<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>media1
ntfs-3g <span style="color: #660033;">-o</span> rw,<span style="color: #007800;">locale</span>=ru_RU.UTF-<span style="color: #000000;">8</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>ad0s1<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>media2
ntfs-3g <span style="color: #660033;">-o</span> rw,<span style="color: #007800;">locale</span>=ru_RU.UTF-<span style="color: #000000;">8</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>ad3s5<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>media3</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2009/09/uchimsya-chitat-ntfs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Сервер точного времени</title>
		<link>http://snake.khd.ru/2009/09/signaly-tochnogo-vremeni/</link>
		<comments>http://snake.khd.ru/2009/09/signaly-tochnogo-vremeni/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 02:12:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[ntp]]></category>
		<category><![CDATA[soft]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=32</guid>
		<description><![CDATA[Итак, обновляем ntp из портов, если еще не стоит.

Создаем файл ntp.conf:

#touch /etc/ntp.conf

Содержание:

server 85.21.78.91 iburst burst prefer #Опция prefer обозначает предпочтительный сервер
server 85.21.78.6 iburst burst #Опция burst посылает не один, а несколько пакетов сразу для более надежной синхронизации
server 95.140.94.2 iburst burst #Лучше писать ip адреса серверов, с которых будете обновляться, особенно в рестриктах
&#160;
driftfile /etc/ntp.drift #Здесь будет [...]]]></description>
			<content:encoded><![CDATA[<p>Итак, обновляем ntp из портов, если еще не стоит.<br />
<span id="more-32"></span><br />
Создаем файл ntp.conf:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#touch /etc/ntp.conf</span></pre></div></div>

<p>Содержание:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">server 85.21.78.91 iburst burst prefer <span style="color: #666666; font-style: italic;">#Опция prefer обозначает предпочтительный сервер</span>
server 85.21.78.6 iburst burst <span style="color: #666666; font-style: italic;">#Опция burst посылает не один, а несколько пакетов сразу для более надежной синхронизации</span>
server 95.140.94.2 iburst burst <span style="color: #666666; font-style: italic;">#Лучше писать ip адреса серверов, с которых будете обновляться, особенно в рестриктах</span>
&nbsp;
driftfile <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>ntp.drift <span style="color: #666666; font-style: italic;">#Здесь будет хранится величина последней корректировки времени</span>
logfile <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>ntp.log
&nbsp;
restrict default ignore <span style="color: #666666; font-style: italic;">#Запрещаем всем</span>
restrict 127.0.0.1 <span style="color: #666666; font-style: italic;">#Разрешаем локалхосту</span>
restrict 85.21.78.91 noquery notrap <span style="color: #666666; font-style: italic;">#Сервера с которых обновляемся могут менять наше время</span>
restrict 85.21.78.6 noquery notrap
restrict 95.140.94.2 noquery notrap
restrict 10.12.51.0 mask 255.255.255.0 nomodify notrap <span style="color: #666666; font-style: italic;"># А локалка может только сверяться</span>
restrict 10.12.5.0 mask 255.255.255.0 nomodify notrap</pre></div></div>

<p>В более старых конфигах можно встретить опцию notrust, но в новых версиях сервиса от нее лучше отказаться, иначе с вами не смогут синхронизироваться клиенты.</p>
<p>И не забудьте открыть нужные порты в фаерволе</p>
<p>Работающий сервер выглядит так:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake-hostel5<span style="color: #666666; font-style: italic;"># ntpdate -q 10.12.51.11</span>
server 10.12.51.11, stratum <span style="color: #000000;">3</span>, offset -<span style="color: #000000;">0.032026</span>, delay <span style="color: #000000;">0.02582</span>
<span style="color: #000000;">23</span> Apr <span style="color: #000000;">21</span>:<span style="color: #000000;">49</span>:09 ntpdate<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">25758</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>: adjust <span style="color: #000000; font-weight: bold;">time</span> server 10.12.51.11 offset -<span style="color: #000000;">0.032026</span> sec</pre></div></div>

<p>А вот так неработающий:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake-hostel5<span style="color: #666666; font-style: italic;"># ntpdate -q 10.12.51.10</span>
server 10.12.51.10, stratum <span style="color: #000000;">0</span>, offset <span style="color: #000000;">0.000000</span>, delay <span style="color: #000000;">0.00000</span>
<span style="color: #000000;">23</span> Apr <span style="color: #000000;">21</span>:<span style="color: #000000;">51</span>:<span style="color: #000000;">17</span> ntpdate<span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #000000;">25768</span><span style="color: #7a0874; font-weight: bold;">&#93;</span>: no server suitable <span style="color: #000000; font-weight: bold;">for</span> synchronization found</pre></div></div>

<p>Лог пишется в /var/log/ntp.log.</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2009/09/signaly-tochnogo-vremeni/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Правильное питание: подключаем UPS</title>
		<link>http://snake.khd.ru/2009/09/pravilnoe-pitanie-podklyuchaem-ups/</link>
		<comments>http://snake.khd.ru/2009/09/pravilnoe-pitanie-podklyuchaem-ups/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 04:58:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[nut]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[ups]]></category>
		<category><![CDATA[мониторинг]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=25</guid>
		<description><![CDATA[Бесперебойное питание требуется всегда. Особенно для сервера. Ну а так как большинство бесперебойников сейчас как минимум мониторятся (заряд батареи и прочая), а как максимум &#8211; еще и управляются, то неплохо было бы подружить наш бесперебойник с ОС.

Если у вас бесперебойник от APC, то смотрим вполне неплохое руководство здесь. У меня же бесперебойник от Ippon, поэтому [...]]]></description>
			<content:encoded><![CDATA[<p>Бесперебойное питание требуется всегда. Особенно для сервера. Ну а так как большинство бесперебойников сейчас как минимум мониторятся (заряд батареи и прочая), а как максимум &#8211; еще и управляются, то неплохо было бы подружить наш бесперебойник с ОС.<br />
<span id="more-25"></span><br />
Если у вас бесперебойник от APC, то смотрим вполне неплохое руководство <a href="http://www.lissyara.su/?id=1079" target="_blank">здесь</a>. У меня же бесперебойник от Ippon, поэтому прога потребуется другая:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># cd /usr/ports</span>
<span style="color: #666666; font-style: italic;"># make search name='nut'</span>
Port:   nut-2.2.0
Path:   <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>ports<span style="color: #000000; font-weight: bold;">/</span>sysutils<span style="color: #000000; font-weight: bold;">/</span>nut
Info:   Network UPS Tools
Maint:  Joerg.Pulz<span style="color: #000000; font-weight: bold;">@</span>frm2.tum.de
B-deps: gettext-0.16.1_3 gmake-<span style="color: #000000;">3.81</span>_2 libiconv-<span style="color: #000000;">1.11</span>_1 libusb-0.1.12_1 net-snmp-5.3.1_7 perl-5.8.8_1
R-deps: libusb-0.1.12_1 net-snmp-5.3.1_7 perl-5.8.8_1
WWW:    http:<span style="color: #000000; font-weight: bold;">//</span>www.networkupstools.org<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>Ставим ее, затем правим /etc/rc.conf, добавляя вот такие строчки:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">nut_enable</span>=<span style="color: #ff0000;">&quot;YES&quot;</span>
<span style="color: #007800;">nut_upslog_enable</span>=<span style="color: #ff0000;">&quot;YES&quot;</span>
<span style="color: #007800;">nut_upsmon_enable</span>=<span style="color: #ff0000;">&quot;YES&quot;</span></pre></div></div>

<p>Далее идем в /usr/local/etc/nut и правим конфиги:<br />
<strong>ups.conf</strong> &#8211; настройки UPS драйвера<br />
<strong>upsd.conf</strong> &#8211; настройки для главного UPS демона<br />
<strong>upsd.users</strong> &#8211; файл контроля доступа для UPS демона<br />
<strong>upsmon.conf</strong>- настройки для UPS демона монитора</p>
<p><strong>ups.conf</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>myups<span style="color: #7a0874; font-weight: bold;">&#93;</span>
        driver = megatec <span style="color: #666666; font-style: italic;">#название драйвера для вашей модели смотрим в driver-list, который лежит там же</span>
        port = <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>cuad0 <span style="color: #666666; font-style: italic;">#в нашем случае COM-порт</span>
        desc = <span style="color: #ff0000;">&quot;Description&quot;</span> <span style="color: #666666; font-style: italic;">#описание</span></pre></div></div>

<p><strong>upsd.conf</strong><br />
Можно не менять, если не хотите использовать сетевые возможности демона</p>
<p><strong>upsd.users</strong> &#8211; в этом файле задается доступ к серверу upsd со стороны клиентов.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>upsmon<span style="color: #7a0874; font-weight: bold;">&#93;</span>
        password = paSSwoRD <span style="color: #666666; font-style: italic;">#Пароль, используется только в конфигах демона</span>
        upsmon master <span style="color: #666666; font-style: italic;">#настройка режима работы upsd. Обычно master</span></pre></div></div>

<p><strong>upsmon.conf</strong><br />
Добавляем (или изменяем) всего одну строчку:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">MONITOR myups<span style="color: #000000; font-weight: bold;">@</span>localhost <span style="color: #000000;">1</span> upsmon paSSwoRD master</pre></div></div>

<p>myups &#8211; имя бесперебойника из ups.conf<br />
upsmon paSSwoRD &#8211; соответственно имя и пароль из upsd.users</p>
<p>Поочередно запускаем демоны из rc.d: nut, nut_upsmon, nut_upslog. Проверяем командой:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ upsc myups<span style="color: #000000; font-weight: bold;">@</span>localhost</pre></div></div>

<p>Вывод должен быть примерно таким:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">battery.charge: <span style="color: #000000;">100.0</span>
battery.voltage: <span style="color: #000000;">27.80</span>
battery.voltage.nominal: <span style="color: #000000;">24.0</span>
driver.name: megatec
driver.parameter.pollinterval: <span style="color: #000000;">2</span>
driver.parameter.port: <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>cuad0
driver.version: 2.4.1
driver.version.internal: <span style="color: #000000;">1.6</span>
input.frequency: <span style="color: #000000;">50.0</span>
input.frequency.nominal: <span style="color: #000000;">50.0</span>
input.voltage: <span style="color: #000000;">228.1</span>
input.voltage.fault: <span style="color: #000000;">228.1</span>
input.voltage.maximum: <span style="color: #000000;">228.6</span>
input.voltage.minimum: <span style="color: #000000;">222.8</span>
input.voltage.nominal: <span style="color: #000000;">220.0</span>
output.voltage: <span style="color: #000000;">227.7</span>
ups.beeper.status: disabled
ups.delay.shutdown: <span style="color: #000000;">0</span>
ups.delay.start: <span style="color: #000000;">2</span>
ups.load: <span style="color: #000000;">24.0</span>
ups.mfr: unknown
ups.model: unknown
ups.serial: unknown
ups.status: OL
ups.temperature: <span style="color: #000000;">25.0</span>
ups.type: standby</pre></div></div>

<p>OL означает работу от сети (BL &#8211; батарея разряжена)</p>
<p>Собственно, все.</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2009/09/pravilnoe-pitanie-podklyuchaem-ups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rtorrent &#8211; консольный торрент-клиент</title>
		<link>http://snake.khd.ru/2009/09/rtorrent-konsolnyj-torrent-klient/</link>
		<comments>http://snake.khd.ru/2009/09/rtorrent-konsolnyj-torrent-klient/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 04:24:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[soft]]></category>
		<category><![CDATA[torrent]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=15</guid>
		<description><![CDATA[Итак, имеем сервер на freebsd и безлимитный интернет канал. Вполне естественно желание использовать канал на полную &#8211; т.е. для скачки и раздачи торрентов ;).
Выбор консольных торрент-клиентов мал до неприличия, и альтернатив rtorrent практически и нету.

Установка:

$ cd /usr/ports
$ make search name=&#34;rtorrent&#34;
Port:   rtorrent-0.7.7
Path:   /usr/ports/net-p2p/rtorrent
Info:   BitTorrent Client written in C++
Maint:  flz@FreeBSD.org
B-deps: [...]]]></description>
			<content:encoded><![CDATA[<p>Итак, имеем сервер на freebsd и безлимитный интернет канал. Вполне естественно желание использовать канал на полную &#8211; т.е. для скачки и раздачи торрентов ;).</p>
<p>Выбор консольных торрент-клиентов мал до неприличия, и альтернатив rtorrent практически и нету.<br />
<span id="more-15"></span><br />
<strong>Установка:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>ports
$ <span style="color: #c20cb9; font-weight: bold;">make</span> search <span style="color: #007800;">name</span>=<span style="color: #ff0000;">&quot;rtorrent&quot;</span>
Port:   rtorrent-0.7.7
Path:   <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>ports<span style="color: #000000; font-weight: bold;">/</span>net-p2p<span style="color: #000000; font-weight: bold;">/</span>rtorrent
Info:   BitTorrent Client written <span style="color: #000000; font-weight: bold;">in</span> C++
Maint:  flz<span style="color: #000000; font-weight: bold;">@</span>FreeBSD.org
B-deps: curl-7.16.3 libsigc++-2.0.18 libtorrent-0.11.7 pkg-config-<span style="color: #000000;">0.22</span>_1
R-deps: curl-7.16.3 libsigc++-2.0.18 libtorrent-0.11.7 pkg-config-<span style="color: #000000;">0.22</span>_1
WWW:    http:<span style="color: #000000; font-weight: bold;">//</span>libtorrent.rakshasa.no<span style="color: #000000; font-weight: bold;">/</span>Port:   rtorrent-devel-0.7.8
Path:   <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>ports<span style="color: #000000; font-weight: bold;">/</span>net-p2p<span style="color: #000000; font-weight: bold;">/</span>rtorrent-devel
Info:   BitTorrent Client written <span style="color: #000000; font-weight: bold;">in</span> C++ <span style="color: #7a0874; font-weight: bold;">&#40;</span>development version<span style="color: #7a0874; font-weight: bold;">&#41;</span>
Maint:  flz<span style="color: #000000; font-weight: bold;">@</span>FreeBSD.org
B-deps: curl-7.16.3 libsigc++-2.0.18 libtorrent-devel-0.11.8 pkg-config-<span style="color: #000000;">0.22</span>_1
R-deps: curl-7.16.3 libsigc++-2.0.18 libtorrent-devel-0.11.8 pkg-config-<span style="color: #000000;">0.22</span>_1
WWW:    http:<span style="color: #000000; font-weight: bold;">//</span>libtorrent.rakshasa.no<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
Port:   net<span style="color: #000000; font-weight: bold;">/</span>rtorrent
Moved:  net-p2p<span style="color: #000000; font-weight: bold;">/</span>rtorrent
Date:   <span style="color: #000000;">2006</span>-01-<span style="color: #000000;">30</span>
Reason: Moved to new category</pre></div></div>

<p>Программе в обязательном порядке требуется libtorrent, поэтому желательно обновить ee, если уже стоит.</p>
<p>Далее в домашнем каталоге пользователя, от которого собираемся запускать rtorrent создаем <strong>конфиг</strong>:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> ~
$ <span style="color: #c20cb9; font-weight: bold;">touch</span> .rtorrent.rc</pre></div></div>

<p>следующего содержания:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#Указываем кодировку, с которой будет работать программа. Можно выбрать и CP1251 и KOI8-R</span>
encoding_list = UTF-<span style="color: #000000;">8</span>
<span style="color: #666666; font-style: italic;">#Директория, куда будем качать</span>
directory = <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>media4<span style="color: #000000; font-weight: bold;">/</span>incomplete
<span style="color: #666666; font-style: italic;">#И папка для сессий</span>
session = <span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>media4<span style="color: #000000; font-weight: bold;">/</span>torrents<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #666666; font-style: italic;">#Стартовать все закачки при запуске</span>
load_start = <span style="color: #000000; font-weight: bold;">*</span>
<span style="color: #666666; font-style: italic;">##</span>
<span style="color: #666666; font-style: italic;">#Скорость отдачи/скачивания (В килоБАЙТАХ)</span>
upload_rate = <span style="color: #000000;">100</span>
download_rate = <span style="color: #000000;">500</span>
<span style="color: #666666; font-style: italic;">#Максимум одновременных отдач</span>
max_uploads = <span style="color: #000000;">15</span>
<span style="color: #666666; font-style: italic;">##</span>
enable_trackers = <span style="color: #c20cb9; font-weight: bold;">yes</span>
max_file_size = <span style="color: #660033;">-1</span>
<span style="color: #666666; font-style: italic;">#Элементы планировщика - мониторим указанную директорию на предмет появления новых торрентов. При появлении автоматически начинаем закачку</span>
schedule = watch_directory,<span style="color: #000000;">5</span>,<span style="color: #000000;">5</span>,<span style="color: #007800;">load_start</span>=<span style="color: #000000; font-weight: bold;">/</span>mnt<span style="color: #000000; font-weight: bold;">/</span>media4<span style="color: #000000; font-weight: bold;">/</span>auto<span style="color: #000000; font-weight: bold;">/*</span>.torrent
<span style="color: #666666; font-style: italic;">#После скачивания помещаем торрент в другую папку и меняем его destination folder, чтобы продолжить раздачу</span>
on_finished = move_complete,<span style="color: #ff0000;">&quot;execute=mv,-n,<span style="color: #007800;">$d</span>.get_base_path=,/mnt/media4/Download/ <span style="color: #007800;">$d</span>.set_directory=/mnt/media4/Download/&quot;</span>
<span style="color: #666666; font-style: italic;">#Порт, на котором будет висеть клиент (можно диапазон)</span>
port_range = <span style="color: #000000;">12553</span>-<span style="color: #000000;">12553</span>
<span style="color: #666666; font-style: italic;">#Не использовать случайный порт</span>
port_random = no
<span style="color: #666666; font-style: italic;">#Сохранять сессию при выходе</span>
session_save = <span style="color: #c20cb9; font-weight: bold;">yes</span>
<span style="color: #666666; font-style: italic;">#Использовать DHT</span>
dht = auto
<span style="color: #666666; font-style: italic;">#Указываем порт для DHT</span>
dht_port = <span style="color: #000000;">12554</span>
<span style="color: #666666; font-style: italic;">#Для WebGUI (wTorrent)</span>
scgi_port = localhost:<span style="color: #000000;">5000</span>
max_open_sockets = <span style="color: #000000;">1200</span>
<span style="color: #666666; font-style: italic;">#Лог(файл должен существовать и быть доступным на запись)</span>
execute_log = <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>rtorrent.log</pre></div></div>

<p>Теперь запускаем rtorrent. Используется навигация аля linx, т.е. клавиши вверх-вниз перемещают нас по списку, вправо-влево &#8211; внутри списка. </p>
<p><strong>Управляющие клавиши</strong>:<br />
^q &#8211; Выход<br />
up, down, left, right<br />
^P, ^N, ^B, ^F &#8211; Выбор опций, экранов</p>
<p>a, s, d &#8211; увеличить скорость отдачи на 1/5/50 KB.<br />
z, x, c &#8211; уменьшить скорость отдачи на 1/5/50 KB.<br />
A, S, D, Z, X, C &#8211; регулируют скорость закачки (download).</p>
<p>1 &#8211; 7 &#8211; сменить вид (все, сидируемые, скачиваемые, завершенные и т.д.)<br />
^s &#8211; начать загрузку<br />
^r &#8211; проверка торрента<br />
^d &#8211; остановить, повторное нажатие удалит торрент<br />
^o &#8211; изменить папку назначения<br />
^x &#8211; выполнить внутреннюю команду rtorrentа<br />
^q &#8211; выход из программы. двойное нажатие не оповещает трекер.<br />
+, &#8211; - приоритет загрузки<br />
пробел &#8211; регулировка приоритета файлов торрента (можно отключить закачку отдельного файла)<br />
backspace &#8211; добавить торрент для закачки<br />
l &#8211; лог<br />
U &#8211; удалить торрент<br />
u &#8211; показать информацию по загрузке<br />
o &#8211; показать трекеры. пробелом выбираем<br />
p &#8211; информация о пире<br />
t, T &#8211; запрос трекера<br />
k &#8211; дисконнект пира</p>
<p>На этом первичная настройка закончена. Торрент-клиент готов к работе. Рекомендую запускать через screen, чтобы не занимать консоль</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2009/09/rtorrent-konsolnyj-torrent-klient/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Настройка DNS-сервера PowerDNS</title>
		<link>http://snake.khd.ru/2009/09/nastrojka-dns-servera-powerdns/</link>
		<comments>http://snake.khd.ru/2009/09/nastrojka-dns-servera-powerdns/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 03:18:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[soft]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=10</guid>
		<description><![CDATA[Часть 0. Зачем?
Недостатков у BIND&#8217;a много &#8211; большое число уязвимостей, которые в нем регулярно находят (многие из них критические), неудобное хранение зон и просто некоторая глюкавость.
Что же мы имеем в случае PowerDNS? Работу с SQL(MySQL, PgSQL), Oracle, несколько удобных веб-шеллов.

Часть 1. Установка
Устанавливаем из портов:

snake-hostel5# make search name=&#34;powerdns&#34;
Port:   powerdns-2.9.21
Path:   /usr/ports/dns/powerdns
Info:   [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Часть 0. Зачем?</strong></em></p>
<p>Недостатков у BIND&#8217;a много &#8211; большое число уязвимостей, которые в нем регулярно находят (многие из них критические), неудобное хранение зон и просто некоторая глюкавость.<br />
Что же мы имеем в случае PowerDNS? Работу с SQL(MySQL, PgSQL), Oracle, несколько удобных веб-шеллов.<br />
<span id="more-10"></span><br />
<em><strong>Часть 1. Установка</strong></em></p>
<p>Устанавливаем из портов:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">snake-hostel5<span style="color: #666666; font-style: italic;"># make search name=&quot;powerdns&quot;</span>
Port:   powerdns-2.9.21
Path:   <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>ports<span style="color: #000000; font-weight: bold;">/</span>dns<span style="color: #000000; font-weight: bold;">/</span>powerdns
Info:   An advanced DNS server with multiple backends including SQL
Maint:  tremere<span style="color: #000000; font-weight: bold;">@</span>cainites.net
B-deps: boost-1.34.1 gettext-0.16.1_3 gmake-<span style="color: #000000;">3.81</span>_2 libiconv-<span style="color: #000000;">1.11</span>_1 libtool-1.5.24 postgresql-client-8.1.10
R-deps: gettext-0.16.1_3 libiconv-<span style="color: #000000;">1.11</span>_1 postgresql-client-8.1.10
WWW:    http:<span style="color: #000000; font-weight: bold;">//</span>www.powerdns.com<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
Port:   powerdns-recursor-3.1.4_6
Path:   <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>ports<span style="color: #000000; font-weight: bold;">/</span>dns<span style="color: #000000; font-weight: bold;">/</span>powerdns-recursor
Info:   An advanced DNS recursor
Maint:  sten<span style="color: #000000; font-weight: bold;">@</span>blinkenlights.nl
B-deps: boost-1.34.1 gettext-0.16.1_3 gmake-<span style="color: #000000;">3.81</span>_2 libiconv-<span style="color: #000000;">1.11</span>_1
R-deps:
WWW:    http:<span style="color: #000000; font-weight: bold;">//</span>www.powerdns.com</pre></div></div>

<p>Первое &#8211; сам сервер, второе &#8211; резольвер.</p>
<p><em><strong>Часть 2. Настройка</strong></em></p>
<p>Конфиг находится тут: <strong>/usr/local/etc/pdns/pdns.conf</strong><br />
Нам важны следующие строки:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Разрешить трансфер зон для</span>
allow-axfr-ips=0.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Разрешить запросы с</span>
allow-recursion=0.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Сколько секунд хранить записи в кеше PacketCache</span>
cache-ttl=<span style="color: #000000;">20</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Директория с конфигурационными файлами</span>
config-dir=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>etc
&nbsp;
<span style="color: #666666; font-style: italic;"># Консоль для отладки</span>
control-console=no
&nbsp;
<span style="color: #666666; font-style: italic;"># Режим демона (везде советуют отключать)</span>
<span style="color: #007800;">daemon</span>=no
&nbsp;
<span style="color: #666666; font-style: italic;"># SOA запись по умолчанию. Используется, если иное не указано в параметрах зоны.</span>
default-soa-name=ns1.hostel5.ru
&nbsp;
<span style="color: #666666; font-style: italic;"># TTL по умолчанию. Используется, если иное не указано в параметрах зоны.</span>
default-ttl=<span style="color: #000000;">3600</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Отключить TCP запросы.</span>
disable-tcp=no
&nbsp;
<span style="color: #666666; font-style: italic;"># Включить guardian, подробности: http://doc.powerdns.com/guardian.html</span>
<span style="color: #007800;">guardian</span>=no
&nbsp;
<span style="color: #666666; font-style: italic;"># Тип используемой базы данных и параметры для подключения</span>
<span style="color: #007800;">launch</span>=gmysql
gmysql-host=127.0.0.1
gmysql-port=<span style="color: #000000;">3306</span>
gmysql-user=powerdns
gmysql-dbname=powerdns
gmysql-password=mypass
&nbsp;
<span style="color: #666666; font-style: italic;"># Интерфейс, на котором будет висеть сервер.</span>
local-address= 10.12.51.11
&nbsp;
<span style="color: #666666; font-style: italic;"># Порт, на котором будет висеть сервер.</span>
local-port=<span style="color: #000000;">53</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Настройки логирования:</span>
<span style="color: #666666; font-style: italic;"># Расширенное логирование.</span>
log-dns-details=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>pdns<span style="color: #000000; font-weight: bold;">/</span>pdns-details.log
<span style="color: #666666; font-style: italic;"># Логировать неудачные апдейты зон.</span>
log-failed-updates=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>pdns<span style="color: #000000; font-weight: bold;">/</span>pdns-fail.log
<span style="color: #666666; font-style: italic;"># Файл, куда писать лог</span>
<span style="color: #007800;">logfile</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>pdns<span style="color: #000000; font-weight: bold;">/</span>pdns.log
<span style="color: #666666; font-style: italic;"># log-facility для логирования через syslog</span>
<span style="color: #666666; font-style: italic;"># logging-facility=</span>
<span style="color: #666666; font-style: italic;"># Уровень логирования от 0 до 9 (0 - не логировать ничего, 9 - логировать всё).</span>
<span style="color: #007800;">loglevel</span>=<span style="color: #000000;">9</span>
<span style="color: #666666; font-style: italic;"># Логировать все приходящие запросы</span>
query-logging=<span style="color: #c20cb9; font-weight: bold;">yes</span>
<span style="color: #666666; font-style: italic;"># Логировать в лог файл, указанный в директиве logfile (только для Windows систем)</span>
use-logfile=<span style="color: #c20cb9; font-weight: bold;">yes</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Работать в качестве master сервера</span>
<span style="color: #666666; font-style: italic;"># master=yes</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Максимальное количества запросов в очереди.</span>
max-queue-length=<span style="color: #000000;">5000</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Максимальное количество одновременных TCP соединений</span>
max-tcp-connections=<span style="color: #000000;">10</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Сколько (максимально) миллисекунд держать запрос в очереди</span>
queue-limit=<span style="color: #000000;">1500</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Сколько секунд хранить в кеше рекурсивные запросы</span>
recursive-cache-ttl=<span style="color: #000000;">10</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Если включено - рекурсивные запросы будут передваться на обработку рекурсору.</span>
<span style="color: #007800;">recursor</span>=127.0.0.1
<span style="color: #666666; font-style: italic;"># В качестве рекурсора можно указать сервера провайдера, тогда рекурсивные запросы поуйдут через них</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Запускать сервер от определенной группы </span>
<span style="color: #007800;">setgid</span>=pdns
&nbsp;
<span style="color: #666666; font-style: italic;"># Запускать сервер от определенного пользователя(нужно создать вручную)</span>
<span style="color: #007800;">setuid</span>=pdns
&nbsp;
<span style="color: #666666; font-style: italic;"># Разрешить использование slave-серверов</span>
<span style="color: #666666; font-style: italic;"># slave=no</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Интервал для проверки обновлений в зонах,</span>
<span style="color: #666666; font-style: italic;"># подробности: http://doc.powerdns.com/generic-mypgsql-backends.html#AEN5779</span>
<span style="color: #666666; font-style: italic;"># slave-cycle-interval=60</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># SOA expire по умолчанию. Используется, если иное не указано в параметрах зоны.</span>
soa-expire-default=<span style="color: #000000;">604800</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># SOA minimum TTL по умолчанию. Используется, если иное не указано в параметрах зоны.</span>
soa-minimum-ttl=<span style="color: #000000;">3600</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># SOA refresh по умолчанию. Используется, если иное не указано в параметрах зоны.</span>
soa-refresh-default=<span style="color: #000000;">10800</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># SOA retry по умолчанию. Используется, если иное не указано в параметрах зоны.</span>
soa-retry-default=<span style="color: #000000;">3600</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Директория с сокетом</span>
socket-dir=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run
&nbsp;
<span style="color: #666666; font-style: italic;"># Сообщать версию сервера клиентам (full - сообщать полную версию, anonymous - не сообщать, powerdns - сообщать “served by PowerDNS” без указания версии, custom - свой вариант)</span>
version-string=powerdns
&nbsp;
<span style="color: #666666; font-style: italic;"># Включить встроенный вебсервер, подробности: http://doc.powerdns.com/monitoring.html</span>
<span style="color: #007800;">webserver</span>=<span style="color: #c20cb9; font-weight: bold;">yes</span>
<span style="color: #666666; font-style: italic;"># Может оказаться полезным для просмотра статистики</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># IP адрес на котором будет слушать встроенный вебсервер</span>
webserver-address=10.12.51.11
&nbsp;
<span style="color: #666666; font-style: italic;"># Пароль для доступа к вебсерверу</span>
<span style="color: #666666; font-style: italic;"># webserver-password=</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Порт на котором будет слушать встроенный вебсервер</span>
webserver-port=<span style="color: #000000;">8081</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Показывать дополнительную информацию в мониторинге</span>
webserver-print-arguments=<span style="color: #c20cb9; font-weight: bold;">yes</span></pre></div></div>

<p>Настраиваем резольвер: (<strong>/usr/local/etc/pdns/recursor.conf</strong>)</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">allow-from=127.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">8</span>, 10.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">8</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>только своя локальная сеть<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Hint файл, его можно взять из BIND /var/named/etc/namedb /named.root,</span>
<span style="color: #666666; font-style: italic;"># или ftp://ftp.rs.internic.net/domain/root.zone.gz</span>
hint-file=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>pdns<span style="color: #000000; font-weight: bold;">/</span>root.zone
&nbsp;
<span style="color: #666666; font-style: italic;"># Адрес который надо слушать указываем только 127.0.0.1, и ничего лишнего</span>
local-address=127.0.0.1
&nbsp;
<span style="color: #666666; font-style: italic;"># Порт который надо слушать, по умолчанию 53</span>
local-port=<span style="color: #000000;">53</span>
&nbsp;
max-tcp-clients=<span style="color: #000000;">128</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Не забудьте создать юзера pdns_recursor в группе pdns</span>
<span style="color: #007800;">setgid</span>=pdns
<span style="color: #007800;">setuid</span>=pdns_recursor
&nbsp;
socket-dir=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
version-string=
       PowerDNS Recursor 3.1.7 <span style="color: #007800;">$Id</span>: pdns_recursor.cc <span style="color: #000000;">1200</span> <span style="color: #000000;">2008</span>-06-<span style="color: #000000;">14</span> <span style="color: #000000;">21</span>:<span style="color: #000000;">11</span>:33Z ahu $</pre></div></div>

<p>Теперь нужно создать базу в MySQL:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mysql <span style="color: #660033;">-u</span> root <span style="color: #660033;">-p</span>
<span style="color: #666666; font-style: italic;">#Создаем базу и привелегии</span>
    CREATE DATABASE powerdns;
    GRANT ALL ON powerdns.<span style="color: #000000; font-weight: bold;">*</span> TO <span style="color: #ff0000;">'powerdns'</span><span style="color: #000000; font-weight: bold;">@</span><span style="color: #ff0000;">'localhost'</span> IDENTIFIED BY <span style="color: #ff0000;">'mypass'</span>;
    GRANT ALL ON powerdns.<span style="color: #000000; font-weight: bold;">*</span> TO <span style="color: #ff0000;">'powerdns'</span><span style="color: #000000; font-weight: bold;">@</span><span style="color: #ff0000;">'localhost.localdomain'</span> IDENTIFIED BY <span style="color: #ff0000;">'mypass'</span>;
    FLUSH PRIVILEGES;
&nbsp;
    USE powerdns;
    <span style="color: #666666; font-style: italic;">#Таблица для доменов</span>
    CREATE TABLE domains <span style="color: #7a0874; font-weight: bold;">&#40;</span>
    <span style="color: #c20cb9; font-weight: bold;">id</span> INT auto_increment,
    name VARCHAR<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">255</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> NOT NULL,
    master VARCHAR<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">128</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> DEFAULT NULL,
    last_check INT DEFAULT NULL,
    <span style="color: #7a0874; font-weight: bold;">type</span> VARCHAR<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">6</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> NOT NULL,
    notified_serial INT DEFAULT NULL,
    account VARCHAR<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">40</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> DEFAULT NULL,
    primary key <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">id</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
    <span style="color: #7a0874; font-weight: bold;">&#41;</span>;
&nbsp;
    <span style="color: #666666; font-style: italic;">#Создаем индекс для таблицы</span>
    CREATE UNIQUE INDEX name_index ON domains<span style="color: #7a0874; font-weight: bold;">&#40;</span>name<span style="color: #7a0874; font-weight: bold;">&#41;</span>;
&nbsp;
    <span style="color: #666666; font-style: italic;">#Таблица записей</span>
    CREATE TABLE records <span style="color: #7a0874; font-weight: bold;">&#40;</span>
    <span style="color: #c20cb9; font-weight: bold;">id</span> INT auto_increment,
    domain_id INT DEFAULT NULL,
    name VARCHAR<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">255</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> DEFAULT NULL,
    <span style="color: #7a0874; font-weight: bold;">type</span> VARCHAR<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">6</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> DEFAULT NULL,
    content VARCHAR<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">255</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> DEFAULT NULL,
    ttl INT DEFAULT NULL,
    prio INT DEFAULT NULL,
    change_date INT DEFAULT NULL,
    primary key<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #c20cb9; font-weight: bold;">id</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
    <span style="color: #7a0874; font-weight: bold;">&#41;</span>;
&nbsp;
    <span style="color: #666666; font-style: italic;">#Создаем индексы для таблицы</span>
    CREATE INDEX rec_name_index ON records<span style="color: #7a0874; font-weight: bold;">&#40;</span>name<span style="color: #7a0874; font-weight: bold;">&#41;</span>;
    CREATE INDEX nametype_index ON records<span style="color: #7a0874; font-weight: bold;">&#40;</span>name,<span style="color: #7a0874; font-weight: bold;">type</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>;
    CREATE INDEX domain_id ON records<span style="color: #7a0874; font-weight: bold;">&#40;</span>domain_id<span style="color: #7a0874; font-weight: bold;">&#41;</span>;
&nbsp;
    <span style="color: #666666; font-style: italic;">#Таблица мастера зон</span>
    CREATE TABLE supermasters <span style="color: #7a0874; font-weight: bold;">&#40;</span>
    ip VARCHAR<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">25</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> NOT NULL,
    nameserver VARCHAR<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">255</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> NOT NULL,
    account VARCHAR<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000;">40</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> DEFAULT NULL
    <span style="color: #7a0874; font-weight: bold;">&#41;</span>;
    quit;</pre></div></div>

<p><strong><em>Часть 3. Запуск</em></strong></p>
<p>Скрипт для запуска лучше немного поправить (спасибо salimk):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># PROVIDE: pdns</span>
<span style="color: #666666; font-style: italic;"># REQUIRE: LOGIN</span>
&nbsp;
. <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>rc.subr
&nbsp;
<span style="color: #666666; font-style: italic;"># set defaults</span>
<span style="color: #007800;">pdns_enable</span>=<span style="color: #800000;">${pdns_enable:-&quot;NO&quot;}</span>
<span style="color: #666666; font-style: italic;">#UID и GID pdns из ВАШЕГО /etc/passwd</span>
<span style="color: #007800;">pdns_uid</span>=<span style="color: #000000;">1007</span>
<span style="color: #007800;">pdns_gid</span>=<span style="color: #000000;">1007</span>
&nbsp;
<span style="color: #007800;">name</span>=pdns
<span style="color: #007800;">rcvar</span>=<span style="color: #000000; font-weight: bold;">`</span>set_rcvar<span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">start_cmd</span>=<span style="color: #ff0000;">&quot;pdns_start&quot;</span>
<span style="color: #007800;">stop_cmd</span>=<span style="color: #ff0000;">&quot;pdns_stop&quot;</span>
&nbsp;
load_rc_config <span style="color: #800000;">${name}</span>
&nbsp;
pdns_start <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#123;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Starting PowerDNS server&quot;</span>
	<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>pdns_server <span style="color: #660033;">--setgid</span>=<span style="color: #800000;">${pdns_gid}</span> \
	<span style="color: #660033;">--setuid</span>=<span style="color: #800000;">${pdns_gid}</span> <span style="color: #660033;">--daemon</span>=no <span style="color: #660033;">--guardian</span>=no \
	<span style="color: #660033;">--control-console</span> <span style="color: #660033;">--loglevel</span>=<span style="color: #000000;">9</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000; font-weight: bold;">&amp;</span>amp;
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
pdns_stop <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #7a0874; font-weight: bold;">&#123;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Stopping PowerDNS server&quot;</span>
	<span style="color: #007800;">pidfile</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run<span style="color: #000000; font-weight: bold;">/</span>pdns.pid
	<span style="color: #c20cb9; font-weight: bold;">kill</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #007800;">$pidfile</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
&nbsp;
run_rc_command <span style="color: #ff0000;">&quot;$1&quot;</span></pre></div></div>

<p><em><strong>Часть 4. Управление</strong></em><br />
Удобней всего через веб-админку. Например через PowerAdmin. Найти можно в портах. Находим, ставим &#8211; админка готова к работе. (пароль/пользователь по умолчанию admin/admin). В ней добавляем прямые и обратные зоны и радуемся жизни.</p>
<p>P.S. Небольшая информация, &#8220;чтобы не забыть&#8221;</p>
<p>В PowerDNS есть такое понятие как supermaster. В общем случае нужно прописывать зону на мастере и слейве. Когда слейв получит от мастера notify, он запросит у мастера записи из этой зоны. Но если сервер, от которого пришел notify, будет обнаружен в списке supermasters, и такой зоны на слейве не будет описано, она создастся автоматически. И потом в нее будут добавлены записи с мастера. Это приятно упрощает жизнь  В табличке запись довольно простая – ip мастера, имя слейва (ns2.example.org), имя аккаунта (на работу никак не влияет – просто будет фигурировать в описании зоны; удобно для указания клиента, например). (с) <a href='http://dmitry.shaposhnik.name/2009/06/25/powerdns-master-and-slave/' target='_blank'>The WebDevil</a></p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2009/09/nastrojka-dns-servera-powerdns/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
