<?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; FreeBSD</title>
	<atom:link href="http://snake.khd.ru/category/rabota/freebsd/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>Шаманы в зазеркалье: поднимаем зеркало Ubuntu под FreeBSD</title>
		<link>http://snake.khd.ru/2010/04/shamany-v-zazerkale-podnimaem-zerkalo-ubuntu-pod-freebsd/</link>
		<comments>http://snake.khd.ru/2010/04/shamany-v-zazerkale-podnimaem-zerkalo-ubuntu-pod-freebsd/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 07:29:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[debmirror]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[зеркало]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=320</guid>
		<description><![CDATA[Имея небольшую локалку, некоторое количество пользователей-линуксоидов и довольно тощий канал в инет, разумно было бы поднять свое зеркало репозитария Убунты, чтобы пользователи лишний раз не лазили куда не надо. Удобнее всего зеркало умеет делать сам линукс &#8211; буквально в пару команд. Но из серверов в наличии имеется только FreeBSD версии 7.2 &#8211; не смертельно конечно, [...]]]></description>
			<content:encoded><![CDATA[<p>Имея небольшую локалку, некоторое количество пользователей-линуксоидов и довольно тощий канал в инет, разумно было бы поднять свое зеркало репозитария Убунты, чтобы пользователи лишний раз не лазили куда не надо. Удобнее всего зеркало умеет делать сам линукс &#8211; буквально в пару команд. Но из серверов в наличии имеется только FreeBSD версии 7.2 &#8211; не смертельно конечно, но повозиться придется чуть дольше.<br />
<span id="more-320"></span><br />
Перво-наперво определяемся с местом &#8211; у меня зеркало для двух версий (9.04 и 9.10) заняло около 80 гигов. Затем ставим нужные пакеты:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><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>www<span style="color: #000000; font-weight: bold;">/</span>p5-libwww
<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>devel<span style="color: #000000; font-weight: bold;">/</span>p5-LockFile-Simple
<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>archivers<span style="color: #000000; font-weight: bold;">/</span>p5-IO-Compress-Base
<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>archivers<span style="color: #000000; font-weight: bold;">/</span>p5-Compress-Zlib<span style="color: #000000; font-weight: bold;">/</span>
<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>archivers<span style="color: #000000; font-weight: bold;">/</span>p5-Compress-Raw-Zlib<span style="color: #000000; font-weight: bold;">/</span>
<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>archivers<span style="color: #000000; font-weight: bold;">/</span>p5-IO-Compress-Zlib
<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>security<span style="color: #000000; font-weight: bold;">/</span>p5-Digest-SHA1
<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>security<span style="color: #000000; font-weight: bold;">/</span>p5-MD5
<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>p5-URI
<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>security<span style="color: #000000; font-weight: bold;">/</span>gnupg</pre></div></div>

<p>После это качаем исходники скрипта debmirror <a href="http://archive.ubuntu.com/ubuntu/pool/universe/d/debmirror/debmirror_20070123ubuntu3.tar.gz">отсюда</a>. </p>
<p>Качаем, распаковываем &#8211; в линуксе его можно установить, у меня он работает и без этого &#8211; достаточно просто знать, куда мы его распаковали. После этого готовим специальный скрипт:</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: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>snake<span style="color: #000000; font-weight: bold;">/</span>debmirror <span style="color: #660033;">--progress</span> <span style="color: #660033;">--verbose</span> \
<span style="color: #660033;">--cleanup</span> <span style="color: #660033;">--nosource</span> <span style="color: #660033;">--md5sums</span> <span style="color: #660033;">--host</span>=mirror.yandex.ru \
<span style="color: #660033;">--root</span>=ubuntu <span style="color: #660033;">--ignore-release-gpg</span> \
<span style="color: #660033;">--dist</span>=jaunty,jaunty-security,jaunty-updates,jaunty-backports, \
karmic,karmic-security,karmic-updates,karmic-backports 
<span style="color: #660033;">--section</span>=main,restricted,universe,multiverse <span style="color: #660033;">--method</span>=http \ 
<span style="color: #660033;">--arch</span>=i386,amd64  <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>ubuntu</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;"># --arch         #Архитектура. Может быть i386, powerpc или amd64.</span>
<span style="color: #666666; font-style: italic;"># --section=    # Секция (main/restricted/universe/multiverse). Как минимум main, restricted</span>
<span style="color: #666666; font-style: italic;"># --dist=        # Релиз (кодовое название, а так же опции security, updates, backports</span>
<span style="color: #666666; font-style: italic;"># --host=       # Имя сервера</span>
<span style="color: #666666; font-style: italic;"># --root=       # Папка на сервере (обычно /ubuntu)</span>
<span style="color: #666666; font-style: italic;"># --method=   # Протокол для передачи (http, ftp, hftp, rsync)</span>
<span style="color: #666666; font-style: italic;"># /mnt/media4/ubuntu      # Директория с зеркалом</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># --nosource      #не качает deb-src пакеты, существенно экономит место</span>
<span style="color: #666666; font-style: italic;"># --progress       #показывает процесс скачивания</span>
<span style="color: #666666; font-style: italic;"># --cleanup        #удаляет устаревшие пакеты</span>
<span style="color: #666666; font-style: italic;"># --verbose        #показывает подробные ошибки</span>
<span style="color: #666666; font-style: italic;"># --ignore-release-gpg  # не проверять gpg подпись скачиваемых пакетов. </span>
<span style="color: #666666; font-style: italic;"># Почему-то не отключается, и получать gpg ключ все равно приходится. </span>
<span style="color: #666666; font-style: italic;"># Как получить - написано ниже.</span>
<span style="color: #666666; font-style: italic;"># --md5sums          # Проверять md5 хэши скачиваемых пакетов</span></pre></div></div>

<p>Если при запуске скрипта вываливается вот такая ошибка:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">gpgv: keyblock resource <span style="color: #000000; font-weight: bold;">`/</span>root<span style="color: #000000; font-weight: bold;">/</span>.gnupg<span style="color: #000000; font-weight: bold;">/</span>trustedkeys.gpg<span style="color: #ff0000;">': general error
gpgv: Signature made Срд 22 Апр 2009 21:35:26 UTC using DSA key ID 437D05B5
[GNUPG:] ERRSIG 40976EAF437D05B5 17 2 00 1240436126 9
[GNUPG:] NO_PUBKEY 40976EAF437D05B5
gpgv: Can'</span>t check signature: public key not found</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>.gnupg<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;"># gpg --keyserver keyserver.ubuntu.com -a --no-default-keyring </span>
<span style="color: #660033;">--keyring</span> trustedkeys.gpg <span style="color: #660033;">--recv-keys</span> <span style="color: #000000; font-weight: bold;">&lt;</span>key ID<span style="color: #000000; font-weight: bold;">&gt;</span></pre></div></div>

<p>Где <key ID> берем из ошибки. Получившийся файлик копируем в папку ~/.gnupg/</p>
<p>Когда все файлы обновлений скачаются, следует открыть доступ к папке с зеркалом через http и/или ftp, например так:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</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>ubuntu <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>ubuntu</pre></div></div>

<p>Добавим наш скрипт в cron. Для этого в файл /etc/crontab добавим:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000;">30</span>      <span style="color: #000000;">4</span>       <span style="color: #000000; font-weight: bold;">*</span>       <span style="color: #000000; font-weight: bold;">*</span>       <span style="color: #000000;">7</span>       root    <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>snake<span style="color: #000000; font-weight: bold;">/</span>umirror.sh</pre></div></div>

<p>Наше зеркало будет обновлять раз в неделю в 4.30 утра &#8211; пакеты обновляются не так уж часто, а в случае чего-то критического никто не мешает запустить обновление вручную.</p>
<p>Далее остаются сущие мелочи &#8211; настроить клиента:</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>etc<span style="color: #000000; font-weight: bold;">/</span>apt
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">mv</span> sources.list sources.list.orig
<span style="color: #c20cb9; font-weight: bold;">sudo</span> mcedit sources.list
deb http:<span style="color: #000000; font-weight: bold;">//</span>snake.khd.ru<span style="color: #000000; font-weight: bold;">/</span>ubuntu karmic main restricted universe multiverse
deb http:<span style="color: #000000; font-weight: bold;">//</span>snake.khd.ru<span style="color: #000000; font-weight: bold;">/</span>ubuntu karmic-updates main restricted universe multiverse
deb http:<span style="color: #000000; font-weight: bold;">//</span>snake.khd.ru<span style="color: #000000; font-weight: bold;">/</span>ubuntu karmic-security main restricted universe multiverse
deb http:<span style="color: #000000; font-weight: bold;">//</span>snake.khd.ru<span style="color: #000000; font-weight: bold;">/</span>ubuntu karmic-backports main restricted universe multiverse</pre></div></div>

<p>После этого пользователи должны вообще забыть о существовании удаленных репозиториев &#8211; разве что для какой-то экзотики.</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2010/04/shamany-v-zazerkale-podnimaem-zerkalo-ubuntu-pod-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Симлинк с подвывертом</title>
		<link>http://snake.khd.ru/2010/04/simlink-s-podvyvertom/</link>
		<comments>http://snake.khd.ru/2010/04/simlink-s-podvyvertom/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 14:24:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[мелочи]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=317</guid>
		<description><![CDATA[Понадобилось намедни прицепить папочку с обновлениями антивируса к домашней папке фтп-анонимуса. Обычно это делается симлинком &#8211; просто и понятно. Но ProFTPd симлинки не понимает в упор, и переходить по ним отказывается. Вывод? Нужно заставить фтп-демон думать что перед ним &#8211; обычная папка, а не какая-нибудь там ссылка. После десяти минут гугления нашел способ, гарантированно работающий [...]]]></description>
			<content:encoded><![CDATA[<p>Понадобилось намедни прицепить папочку с обновлениями антивируса к домашней папке фтп-анонимуса. Обычно это делается симлинком &#8211; просто и понятно. Но ProFTPd симлинки не понимает в упор, и переходить по ним отказывается. Вывод? Нужно заставить фтп-демон думать что перед ним &#8211; обычная папка, а не какая-нибудь там ссылка. После десяти минут гугления нашел способ, гарантированно работающий под freebsd (через пять минут находится метод для Linux):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">mount_nullfs <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>data<span style="color: #000000; font-weight: bold;">/</span>updates <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>ftp<span style="color: #000000; font-weight: bold;">/</span>updates</pre></div></div>

<p>не забудьте только прописать это в fstab, чтобы после перезагрузки не чесать лысину &#8220;а куда оно делось?&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2010/04/simlink-s-podvyvertom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Делаем по-взрослому (изучаем vlan`ы)</title>
		<link>http://snake.khd.ru/2010/03/delaem-po-vzroslomu-izuchaem-vlany/</link>
		<comments>http://snake.khd.ru/2010/03/delaem-po-vzroslomu-izuchaem-vlany/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 08:00:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[vlan]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=272</guid>
		<description><![CDATA[Первый раз с самим понятием вланов (virtual LAN, VLAN) я столкнулся, проживая в студенческом общежитии (как будто я там сейчас не живу &#8211; прим. авт). Универ после ремонта разродился на нормальную ЛВС &#8211; с розетками в каждой комнате, коммутационными шкафами на лестничных клетках и 48-портовыми д-линками на этаж. На каждое общежитие студгородка было выделено по [...]]]></description>
			<content:encoded><![CDATA[<p>Первый раз с самим понятием вланов (virtual LAN, <a href="http://xgu.ru/wiki/Vlan">VLAN</a>) я столкнулся, проживая в студенческом общежитии (как будто я там сейчас не живу &#8211; <em>прим. авт</em>). Универ после ремонта разродился на нормальную ЛВС &#8211; с розетками в каждой комнате, коммутационными шкафами на лестничных клетках и 48-портовыми д-линками на этаж. На каждое общежитие студгородка было выделено по 2 влана, что добавило геморроя в настройке, но позволило избавиться от лишних бродкастов (с другой стороны, всякие VypressChat уже не работали). Сама идея очень даже неплоха &#8211; пользователи отделяются друг от друга на канальном уровне, можно крутить разные подсети на одном коммутаторе и прочие плюшки.<br />
<span id="more-272"></span><br />
Интернет в общаге раздается весьма своеобразно &#8211; через два сервера. На одном крутится две дсл, на другом &#8211; еще три. Модемы подключены напрямую, т.е. в одном сервере стоит три сетевушки, во втором &#8211; четыре. Это накладывает существенные ограничения во-первых на железо (найти плату с 3 и более PCI-разъемами сложновато), а во-вторых на масштабируемость &#8211; добавлять новые сетевухи это не наш метод :). Т.к. под рукой совершенно случайно оказался управляемый DES-1226G с поддержкой вланов, решено было через этот самый коммутатор подключать модемы, оставив на серверах по две сетевушки &#8211; на вход и на выход. На &#8220;входящей&#8221;, соответственно висели интерфейсы общежитских сетей, на &#8220;выходящей&#8221; &#8211; вланы модемов.<br />
Создается влан-интерфейс чрезвычайно просто:</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;">#ifconfig vlan1692 create vlan 1692 vlandev em1 inet 192.169.2.2 netmask 255.255.255.0</span></pre></div></div>

<p>Здесь:<br />
vlan1692 &#8211; имя интерфейса<br />
vlan 1692 &#8211; так называемый тэг влана (если мы собираемся принимать на этом интерфейсе только тэгированный трафик, что и требуется)<br />
vlandev em1 &#8211; указывает родительский интерфейс (транк) на котором и будет висеть влан<br />
далее идет обычная настройка &#8211; ip, маска и т.д.<br />
Чтобы изменения сохранились после перезагрузки, в rc.conf нужно добавить следующие строки:</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;">#cat /etc/rc.conf</span>
<span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">hostname</span></span>=<span style="color: #ff0000;">&quot;snake.hostel5.ru&quot;</span>
<span style="color: #007800;">ifconfig_em0</span>=<span style="color: #ff0000;">&quot;inet 10.1.0.1 netmask 255.255.255.0&quot;</span>
<span style="color: #007800;">cloned_interfaces</span>=<span style="color: #ff0000;">&quot;vlan1205 vlan1690 vlan1691 vlan1692 vlan1693 vlan1694 vlan1695&quot;</span>
<span style="color: #007800;">ifconfig_vlan1205</span>=<span style="color: #ff0000;">&quot;inet 10.12.5.254 netmask 255.255.255.0 vlan 1205 vlandev em0&quot;</span>
<span style="color: #007800;">ifconfig_vlan1690</span>=<span style="color: #ff0000;">&quot;inet 192.169.0.2 netmask 255.255.255.0 vlan 1690 vlandev em1&quot;</span>
<span style="color: #007800;">ifconfig_vlan1691</span>=<span style="color: #ff0000;">&quot;inet 192.169.1.2 netmask 255.255.255.0 vlan 1691 vlandev em1&quot;</span>
<span style="color: #007800;">ifconfig_vlan1692</span>=<span style="color: #ff0000;">&quot;inet 192.169.2.2 netmask 255.255.255.0 vlan 1692 vlandev em1&quot;</span>
<span style="color: #007800;">ifconfig_vlan1693</span>=<span style="color: #ff0000;">&quot;inet 192.169.3.2 netmask 255.255.255.0 vlan 1693 vlandev em1&quot;</span>
<span style="color: #007800;">ifconfig_vlan1694</span>=<span style="color: #ff0000;">&quot;inet 192.169.4.2 netmask 255.255.255.0 vlan 1694 vlandev em1&quot;</span>
<span style="color: #007800;">ifconfig_vlan1695</span>=<span style="color: #ff0000;">&quot;inet 192.169.5.2 netmask 255.255.255.0 vlan 1695 vlandev em1&quot;</span></pre></div></div>

<p>В нашем случае создается 7 vlan-интерфейсов &#8211; один на &#8220;входящей&#8221; сетевушке &#8211; для общежитской сети, и еще 6 на &#8220;выходящей&#8221; &#8211; часть из них используется для связи с модемами, часть &#8211; просто для мониторинга и управления.</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;">#ifconfig vlan1692 destroy</span></pre></div></div>

<p>Не забываем настроить соответствующим образом порты коммутатора &#8211; порт, к которому подключается &#8220;выходящая&#8221; сетевая карта сервера, должен пропускать только тэгированный трафик, порты, к которым подключены модемы &#8211; нетэгированный (потому как модемы в большинстве своем про всякую экзотику типа vlan слыхом не слыхивали), причем PVID порта должен совпадать с номером нужного влана (а у нас длинк, к слову. у других производителей все может быть совсем по другому).<br />
Приведу простой пример &#8211; &#8220;выход&#8221; сервера подключен к 10 порту коммутатора. Модемы &#8211; соответственно к 11,12 и 13 портам. На 10 порту прописываются соответствующие вланы (для каждого модема отдельный, как мы помним) &#8211; все тэгированные, PVID не столь важен, потому что трафик будет пропускаться только тэгированный (от сервера либо с другого порта коммутатора).<br />
На портах, к которым подключены модемы (11,12 и 13) прописываем по влану с опцией untag, и назначаем этим портам PVID, соответствующий номеру влана &#8211; таким образом весь нетэгированный трафик на этом порту будет считаться трафиком данного влана.<br />
Если все настроено правильно &#8211; модемы должны пинговаться (если правильно настроены ип), и pppoe должен нормально подниматься. Если нет &#8211; смотрим, где и что недонастроили (например, интерфейс в настройках mpd).</p>
<p>Всяческие замечания, предложения и критика приветствуются.</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2010/03/delaem-po-vzroslomu-izuchaem-vlany/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Редирект почты на удаленный адрес</title>
		<link>http://snake.khd.ru/2010/03/redirekt-pochty-na-udalennyj-adres/</link>
		<comments>http://snake.khd.ru/2010/03/redirekt-pochty-na-udalennyj-adres/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 02:42:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[mail]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=265</guid>
		<description><![CDATA[Смотреть почту локально жутко неудобно, но все уведомления сыплются именно в почтовый ящик пользователя root. Чтобы настроить пересылку почты на нужный нам email выполняем следующее:

snake@snake &#91;/etc&#93;#ee /etc/aliases

в самом конце дописываем:
root: yourmail@domain.com
Закрываем файл, обновляем алиасы:

snake@snake &#91;/etc&#93;#newaliases
/etc/mail/aliases: 29 aliases, longest 18 bytes, 306 bytes total

Все, пересылка настроена. Можно проверить следюущей командой:

snake@snake &#91;/etc&#93;#echo &#34;Test mail&#34; &#124; mail -s [...]]]></description>
			<content:encoded><![CDATA[<p>Смотреть почту локально жутко неудобно, но все уведомления сыплются именно в почтовый ящик пользователя root. Чтобы настроить пересылку почты на нужный нам email выполняем следующее:</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;">#ee /etc/aliases</span></pre></div></div>

<p>в самом конце дописываем:<br />
root: yourmail@domain.com<br />
Закрываем файл, обновляем алиасы:</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;">#newaliases</span>
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>mail<span style="color: #000000; font-weight: bold;">/</span>aliases: <span style="color: #000000;">29</span> aliases, longest <span style="color: #000000;">18</span> bytes, <span style="color: #000000;">306</span> bytes total</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;">#echo &quot;Test mail&quot; | mail -s Test root</span></pre></div></div>

<p>На указанную выше почту придет письмо с темой Test и телом Test mail</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2010/03/redirekt-pochty-na-udalennyj-adres/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Контора пишет (Logwatch, newsyslog и другие)</title>
		<link>http://snake.khd.ru/2010/03/kontora-pishet-logwatch-newsyslog-i-drugie/</link>
		<comments>http://snake.khd.ru/2010/03/kontora-pishet-logwatch-newsyslog-i-drugie/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 02:19:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[logwatch]]></category>
		<category><![CDATA[newsyslog]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=257</guid>
		<description><![CDATA[Каждый раз лезть на сервер, чтобы посмотреть логи быстро надоедает. Да и не всегда есть возможность зайти по ssh, а параноидальная админская душа требует хлеба и зрелищ получать отчеты минимум раз в сутки.


snake@snake &#91;/etc&#93;#cd /usr/ports/
snake@snake &#91;ports&#93;#make search name=logwatch
Port:   fwlogwatch-1.1_1
Path:   /usr/ports/security/fwlogwatch
Info:   A packet filter and firewall log analyzer
Maint:  michael@ranner.eu
B-deps: [...]]]></description>
			<content:encoded><![CDATA[<p>Каждый раз лезть на сервер, чтобы посмотреть логи быстро надоедает. Да и не всегда есть возможность зайти по ssh, а параноидальная админская душа требует <s>хлеба и зрелищ</s> получать отчеты минимум раз в сутки.<br />
<span id="more-257"></span></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;">#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=logwatch</span>
Port:   fwlogwatch-<span style="color: #000000;">1.1</span>_1
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>security<span style="color: #000000; font-weight: bold;">/</span>fwlogwatch
Info:   A packet filter and firewall log analyzer
Maint:  michael<span style="color: #000000; font-weight: bold;">@</span>ranner.eu
B-deps: gettext-<span style="color: #000000;">0.17</span>_1 libiconv-1.13.1
R-deps: gettext-<span style="color: #000000;">0.17</span>_1 libiconv-1.13.1
WWW:    http:<span style="color: #000000; font-weight: bold;">//</span>fwlogwatch.inside-security.de<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
Port:   logwatch-7.3.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>sysutils<span style="color: #000000; font-weight: bold;">/</span>logwatch
Info:   A log <span style="color: #c20cb9; font-weight: bold;">file</span> analysis program
Maint:  trix<span style="color: #000000; font-weight: bold;">@</span>basement.net
B-deps:
R-deps: p5-MIME-Base64-<span style="color: #000000;">3.08</span> perl-5.8.9_3
WWW:    http:<span style="color: #000000; font-weight: bold;">//</span>www2.logwatch.org:<span style="color: #000000;">81</span><span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>Первая утилита анализирует логи Cisco, Ipfilter и других фаерволов и IDS типа Snort, но про IPFW она похоже не знает, а потому толку от нее для меня немного. Вторая же утилита куда как интересней &#8211; это перловый скрипт, который анализирует логи и отсылает на почту админу суммарную информацию &#8211; эдакий куммулятивный лог-файл за день. Анализирует она не что попало, а лишь те сервисы, которые указаны в настройках. Более того, можно и самому писать модули для анализа нужных логов. В общем &#8211; вещь, как мне кажется, архиполезная.</p>
<p>Настройки лежат в /usr/local/etc/logwatch/defaults:</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>ports<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#cd /usr/local/etc/logwatch/</span>
snake<span style="color: #000000; font-weight: bold;">@</span>snake <span style="color: #7a0874; font-weight: bold;">&#91;</span>logwatch<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#ls</span>
total <span style="color: #000000;">18</span>
drwxr-xr-x   <span style="color: #000000;">6</span> root  wheel   <span style="color: #000000;">512</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">11</span>:06 .
drwxr-xr-x  <span style="color: #000000;">29</span> root  wheel  <span style="color: #000000;">1536</span>  <span style="color: #000000;">3</span> мар <span style="color: #000000;">14</span>:<span style="color: #000000;">46</span> ..
drwxr-xr-x   <span style="color: #000000;">5</span> root  wheel   <span style="color: #000000;">512</span>  <span style="color: #000000;">2</span> мар <span style="color: #000000;">16</span>:<span style="color: #000000;">31</span> defaults
drwxr-xr-x   <span style="color: #000000;">2</span> root  wheel   <span style="color: #000000;">512</span>  <span style="color: #000000;">1</span> мар <span style="color: #000000;">17</span>:<span style="color: #000000;">11</span> html
drwxr-xr-x   <span style="color: #000000;">2</span> root  wheel   <span style="color: #000000;">512</span>  <span style="color: #000000;">1</span> мар <span style="color: #000000;">17</span>:<span style="color: #000000;">11</span> logfiles
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root  wheel  <span style="color: #000000;">4991</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">11</span>:06 logwatch.conf
drwxr-xr-x   <span style="color: #000000;">2</span> root  wheel   <span style="color: #000000;">512</span>  <span style="color: #000000;">1</span> мар <span style="color: #000000;">17</span>:<span style="color: #000000;">11</span> services</pre></div></div>

<p>В папке defaults находятся умолчальные конфиги, которые никто не мешает поправить и переместить для удобства в соответствующую папку &#8211; наисвысший приоритет имеют опции, непосредственно передаваемые скрипту при запуске, затем &#8211; файлы и папок services и logfiles, а уж в последнюю очередь смотрится папка defaults. </p>
<p>Файл настроек снабжен подробными комментариями, но некоторые пояснения все-таки нужно сделать:</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;"># This was written and is maintained by:</span>
<span style="color: #666666; font-style: italic;">#    Kirk Bauer &lt;kirk@kaybee.org&gt;</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;"># Please send all comments, suggestions, bug reports,</span>
<span style="color: #666666; font-style: italic;">#    etc, to kirk@kaybee.org.</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">########################################################</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># NOTE:</span>
<span style="color: #666666; font-style: italic;">#   All these options are the defaults if you run logwatch with no</span>
<span style="color: #666666; font-style: italic;">#   command-line arguments.  You can override all of these on the</span>
<span style="color: #666666; font-style: italic;">#   command-line.</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># You can put comments anywhere you want to.  They are effective for the</span>
<span style="color: #666666; font-style: italic;"># rest of the line.</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># this is in the format of &lt;name&gt; = &lt;value&gt;.  Whitespace at the beginning</span>
<span style="color: #666666; font-style: italic;"># and end of the lines is removed.  Whitespace before and after the = sign</span>
<span style="color: #666666; font-style: italic;"># is removed.  Everything is case *insensitive*.</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Yes = True  = On  = 1</span>
<span style="color: #666666; font-style: italic;"># No  = False = Off = 0</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Default Log Directory</span>
<span style="color: #666666; font-style: italic;"># Папка с логами по умолчанию</span>
LogDir = <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>
&nbsp;
<span style="color: #666666; font-style: italic;"># Папка для временных файлов</span>
TmpDir = <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>logwatch
&nbsp;
<span style="color: #666666; font-style: italic;"># Кому будем отсылать уведомление. Можно указать локального</span>
<span style="color: #666666; font-style: italic;"># пользователя, можно просто e-mail адрес</span>
MailTo = root
<span style="color: #666666; font-style: italic;"># Здесь можно указать дополнительные адреса, на которые будут</span>
<span style="color: #666666; font-style: italic;"># отсылаться уведомления</span>
Mailto_host1 = snake<span style="color: #000000; font-weight: bold;">@</span>localhost
&nbsp;
<span style="color: #666666; font-style: italic;"># Имя отправителя, от которого будем получать письма</span>
MailFrom = snake
&nbsp;
<span style="color: #666666; font-style: italic;"># Выводить ли отчет в консоль. Полезно при отладке и проверке</span>
Print = No
&nbsp;
<span style="color: #666666; font-style: italic;"># Можно сохранить отчет файл, на всякий случай</span>
Save = <span style="color: #000000; font-weight: bold;">/</span>tmp<span style="color: #000000; font-weight: bold;">/</span>logwatch-mail
&nbsp;
<span style="color: #666666; font-style: italic;"># Использовать ли архивы </span>
<span style="color: #666666; font-style: italic;"># (к примеру /var/log/messages.1 или /var/log/messages.1.gz)</span>
<span style="color: #666666; font-style: italic;"># newsyslog позволяет производить ротацию логов и паковать старые </span>
<span style="color: #666666; font-style: italic;"># логи в архивы, допустим, раз в сутки. Нехило экономит место и </span>
<span style="color: #666666; font-style: italic;"># повышает наглядность.</span>
<span style="color: #666666; font-style: italic;">#Archives = No</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Читать ли файлы .yesterday - тоже вид ротации логов</span>
Range = yesterday
&nbsp;
<span style="color: #666666; font-style: italic;"># Здесь все просто - уровень детализации отчетов</span>
<span style="color: #666666; font-style: italic;"># Low = 0</span>
<span style="color: #666666; font-style: italic;"># Med = 5</span>
<span style="color: #666666; font-style: italic;"># High = 10</span>
Detail = High
&nbsp;
&nbsp;
<span style="color: #666666; font-style: italic;"># Собирать ли информацию в всех сервисах, данные о которых</span>
<span style="color: #666666; font-style: italic;"># лежат в папке services или только по определенному (например ftpd)</span>
Service = All
&nbsp;
<span style="color: #666666; font-style: italic;"># Можно выключить определенные сервисы</span>
Service = <span style="color: #ff0000;">&quot;-zz-network&quot;</span>     <span style="color: #666666; font-style: italic;"># Prevents execution of zz-network service, which</span>
                            <span style="color: #666666; font-style: italic;"># prints useful network configuration info.</span>
Service = <span style="color: #ff0000;">&quot;-zz-sys&quot;</span>         <span style="color: #666666; font-style: italic;"># Prevents execution of zz-sys service, which</span>
                            <span style="color: #666666; font-style: italic;"># prints useful system configuration info.</span>
Service = <span style="color: #ff0000;">&quot;-eximstats&quot;</span>      <span style="color: #666666; font-style: italic;"># Prevents execution of eximstats service, which</span>
                            <span style="color: #666666; font-style: italic;"># is a wrapper for the eximstats program.</span>
<span style="color: #666666; font-style: italic;"># If you only cared about FTP messages, you could use these 2 lines</span>
<span style="color: #666666; font-style: italic;"># instead of the above:</span>
<span style="color: #666666; font-style: italic;">#Service = ftpd-messages   # Processes ftpd messages in /var/log/messages</span>
<span style="color: #666666; font-style: italic;">#Service = ftpd-xferlog    # Processes ftpd messages in /var/log/xferlog</span>
<span style="color: #666666; font-style: italic;"># Maybe you only wanted reports on PAM messages, then you would use:</span>
<span style="color: #666666; font-style: italic;">#Service = pam_pwdb        # PAM_pwdb messages - usually quite a bit</span>
<span style="color: #666666; font-style: italic;">#Service = pam             # General PAM messages... usually not many</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Аналогично, можно читать только определенные лог-файлы</span>
<span style="color: #666666; font-style: italic;">#LogFile = messages</span>
<span style="color: #666666; font-style: italic;"># например только /var/log/messages.</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Почтовая программа по умолчанию. Обычно используется</span>
<span style="color: #666666; font-style: italic;"># sendmail или просто mail</span>
mailer = <span style="color: #ff0000;">&quot;/usr/bin/mail&quot;</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;">#HostLimit = Yes</span></pre></div></div>

<p>После чего в crontab добавляется строчка:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000;">30</span>      <span style="color: #000000;">4</span>       <span style="color: #000000; font-weight: bold;">*</span>       <span style="color: #000000; font-weight: bold;">*</span>       <span style="color: #000000; font-weight: bold;">*</span>       root    <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>logwatch.pl</pre></div></div>

<p>Которая будет запускать скрипт раз в сутки, и админу на мыло будет капать суточный отчет. Стоит отметить, что программа не анализирует изменения в файле, а только сам файл, и потому если логи не ротируются, то со временем отчет может разрастаться за счет старых записей. Один из методов борьбы с этим &#8211; настройка ротации логов с помощью newsyslog. Способ прост до безобразия &#8211; открываем /etc/newsyslog.conf и смотрим:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># comments by fr33man</span>
<span style="color: #666666; font-style: italic;"># 24.11.2006</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># лог-файл -- абсолютный путь к файлу, с которым будем работать.</span>
<span style="color: #666666; font-style: italic;"># [владелец:группа] -- необязательный параметр, который указывает newsyslog'у</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;"># B - по умолчанию, newsyslog добавляет в новый лог-файл сообщение о том, что</span>
<span style="color: #666666; font-style: italic;"># лог-файл был ротирован, но если лог-файл бинарный, то это сообщение испортит лог,</span>
<span style="color: #666666; font-style: italic;"># с параметром B newsyslog не будет добавлятьт никаких сообщений в лог</span>
<span style="color: #666666; font-style: italic;"># C - если лог-файл не существует, то его необходимо создать.</span>
<span style="color: #666666; font-style: italic;"># G - если указан данный флаг, то в названии лог-файла можно </span>
<span style="color: #666666; font-style: italic;"># использовать стандартные шаблоны(например *)</span>
<span style="color: #666666; font-style: italic;"># J - сжимать лог-файл, используя bzip2</span>
<span style="color: #666666; font-style: italic;"># N - Не предупреждать никакой процесс, о ротации лог-файла</span>
<span style="color: #666666; font-style: italic;"># W - если используете флаги Z или J, то newsyslog должен подождать, </span>
<span style="color: #666666; font-style: italic;"># пока заверщиться процесс архивации.</span>
<span style="color: #666666; font-style: italic;"># Z - сжимать лог, использую gzip.</span>
<span style="color: #666666; font-style: italic;"># logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]</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>all.log                        <span style="color: #000000;">600</span>  <span style="color: #000000;">3</span>     <span style="color: #000000; font-weight: bold;">*</span>    <span style="color: #000000; font-weight: bold;">@</span>T00  J
<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>amd.log                        <span style="color: #000000;">644</span>  <span style="color: #000000;">3</span>     <span style="color: #000000;">100</span>  <span style="color: #000000; font-weight: bold;">*</span>     J
<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>auth.log                       <span style="color: #000000;">600</span>  <span style="color: #000000;">3</span>     <span style="color: #000000;">100</span>  <span style="color: #000000; font-weight: bold;">*</span>     JC
<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>console.log                    <span style="color: #000000;">600</span>  <span style="color: #000000;">5</span>     <span style="color: #000000;">100</span>  <span style="color: #000000; font-weight: bold;">*</span>     J
<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>cron                           <span style="color: #000000;">600</span>  <span style="color: #000000;">3</span>     <span style="color: #000000;">100</span>  <span style="color: #000000; font-weight: bold;">*</span>     JC
<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>daily.log                      <span style="color: #000000;">640</span>  <span style="color: #000000;">3</span>     <span style="color: #000000; font-weight: bold;">*</span>    <span style="color: #000000; font-weight: bold;">@</span>T00  JN
<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>debug.log                      <span style="color: #000000;">600</span>  <span style="color: #000000;">3</span>     <span style="color: #000000;">100</span>  <span style="color: #000000; font-weight: bold;">*</span>     JC
<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>kerberos.log                   <span style="color: #000000;">600</span>  <span style="color: #000000;">3</span>     <span style="color: #000000;">100</span>  <span style="color: #000000; font-weight: bold;">*</span>     J
<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>lpd-errs                       <span style="color: #000000;">644</span>  <span style="color: #000000;">3</span>     <span style="color: #000000;">100</span>  <span style="color: #000000; font-weight: bold;">*</span>     JC
<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>maillog                        <span style="color: #000000;">640</span>  <span style="color: #000000;">5</span>     <span style="color: #000000; font-weight: bold;">*</span>    <span style="color: #000000; font-weight: bold;">@</span>T00  JC
<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>messages                       <span style="color: #000000;">644</span>  <span style="color: #000000;">5</span>     <span style="color: #000000;">100</span>  <span style="color: #000000; font-weight: bold;">*</span>     JC
<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>monthly.log                    <span style="color: #000000;">640</span>  <span style="color: #000000;">4</span>     <span style="color: #000000; font-weight: bold;">*</span>    <span style="color: #007800;">$M1D0</span> JN
<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>pflog                          <span style="color: #000000;">600</span>  <span style="color: #000000;">3</span>     <span style="color: #000000;">100</span>  <span style="color: #000000; font-weight: bold;">*</span>     JB    <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>pflogd.pid
<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>ppp.log        root:network    <span style="color: #000000;">640</span>  <span style="color: #000000;">3</span>     <span style="color: #000000;">100</span>  <span style="color: #000000; font-weight: bold;">*</span>     JC
<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>security                       <span style="color: #000000;">600</span>  <span style="color: #000000;">4</span>     <span style="color: #000000;">100</span>  <span style="color: #000000; font-weight: bold;">*</span>     JC
<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>sendmail.st                    <span style="color: #000000;">640</span>  <span style="color: #000000;">4</span>     <span style="color: #000000; font-weight: bold;">*</span>    <span style="color: #000000;">168</span>   B
<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>slip.log       root:network    <span style="color: #000000;">640</span>  <span style="color: #000000;">3</span>     <span style="color: #000000;">100</span>  <span style="color: #000000; font-weight: bold;">*</span>     JC
<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>weekly.log                     <span style="color: #000000;">640</span>  <span style="color: #000000;">5</span>     <span style="color: #000000;">1</span>    <span style="color: #007800;">$W6D0</span> JN
<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>wtmp                           <span style="color: #000000;">644</span>  <span style="color: #000000;">3</span>     <span style="color: #000000; font-weight: bold;">*</span>    <span style="color: #000000; font-weight: bold;">@</span>01T05 B
<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>xferlog                        <span style="color: #000000;">600</span>  <span style="color: #000000;">3</span>     <span style="color: #000000;">100</span>  <span style="color: #000000; font-weight: bold;">*</span>     JC
<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>cvsup.log                      <span style="color: #000000;">664</span>  <span style="color: #000000;">2</span>    <span style="color: #000000; font-weight: bold;">*</span>    <span style="color: #000000;">24</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>cvsupd.log                     <span style="color: #000000;">664</span>  <span style="color: #000000;">2</span>    <span style="color: #000000; font-weight: bold;">*</span>    <span style="color: #000000;">24</span>    Z
<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>mpd.log                        <span style="color: #000000;">644</span>  <span style="color: #000000;">5</span>     <span style="color: #000000;">100</span> <span style="color: #000000;">24</span>    JC
<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                  <span style="color: #000000;">644</span>  <span style="color: #000000;">10</span>    <span style="color: #000000;">100</span> <span style="color: #000000;">24</span>    JC
<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                        <span style="color: #000000;">644</span>  <span style="color: #000000;">2</span>     <span style="color: #000000;">100</span> <span style="color: #000000;">24</span>    JC
<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>snmpd.log                      <span style="color: #000000;">644</span>  <span style="color: #000000;">3</span>     <span style="color: #000000;">100</span> <span style="color: #000000;">24</span>    JC
<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>ups.log                        <span style="color: #000000;">644</span>  <span style="color: #000000;">5</span>     <span style="color: #000000;">100</span> <span style="color: #000000;">24</span>    JC
<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>smartd.log                     <span style="color: #000000;">644</span>  <span style="color: #000000;">5</span>     <span style="color: #000000;">100</span> <span style="color: #000000;">24</span>    JC</pre></div></div>

<p>После чего запускаем newsyslog (первый раз его работа может занять продолжительно время) и смотрим на причесанные лог-файлы. Надеюсь теперь исчезнет проблема, при которой лог того же mpd за пару-тройку месяцев работы разрастался до неприличных размеров в несколько мегабайт:</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>logwatch<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#ls /var/log</span>
drwxr-xr-x  <span style="color: #000000;">11</span> root   wheel      <span style="color: #000000;">3072</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">12</span>:00 .
drwxr-xr-x  <span style="color: #000000;">28</span> root   wheel       <span style="color: #000000;">512</span> <span style="color: #000000;">22</span> фев 06:<span style="color: #000000;">41</span> ..
drwxr-xr-x   <span style="color: #000000;">2</span> root   wheel       <span style="color: #000000;">512</span> <span style="color: #000000;">17</span> май  <span style="color: #000000;">2009</span> ConsoleKit
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel        <span style="color: #000000;">62</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">12</span>:<span style="color: #000000;">16</span> alias.log
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">84044</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">10</span>:<span style="color: #000000;">31</span> auth.log
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">8303</span> <span style="color: #000000;">10</span> сен <span style="color: #000000;">19</span>:00 auth.log.0.bz2
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">23230</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">12</span>:<span style="color: #000000;">22</span> cron
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">5334</span>  <span style="color: #000000;">4</span> мар 05:00 cron.0.bz2
drwxr-xr-x   <span style="color: #000000;">2</span> root   wheel       <span style="color: #000000;">512</span> <span style="color: #000000;">31</span> янв <span style="color: #000000;">12</span>:<span style="color: #000000;">56</span> cups
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">34729</span> <span style="color: #000000;">21</span> фев <span style="color: #000000;">20</span>:<span style="color: #000000;">42</span> debug.log
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">34569</span>  <span style="color: #000000;">4</span> мар 03:05 dmesg.today
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">44774</span>  <span style="color: #000000;">3</span> мар 03:05 dmesg.yesterday
drwxr-xr-x   <span style="color: #000000;">2</span> www    www         <span style="color: #000000;">512</span> <span style="color: #000000;">18</span> фев <span style="color: #000000;">16</span>:<span style="color: #000000;">42</span> httpd
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">3523</span>  <span style="color: #000000;">4</span> мар 03:05 ipfw.today
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">3519</span>  <span style="color: #000000;">3</span> мар 03:05 ipfw.yesterday
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">28056</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">10</span>:<span style="color: #000000;">30</span> lastlog
drwxr-xr-x   <span style="color: #000000;">2</span> root   wheel       <span style="color: #000000;">512</span>  <span style="color: #000000;">2</span> мар <span style="color: #000000;">16</span>:<span style="color: #000000;">10</span> logwatch
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel        <span style="color: #000000;">67</span> <span style="color: #000000;">12</span> апр  <span style="color: #000000;">2009</span> lpd-errs
<span style="color: #660033;">-rw-r-----</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">19952</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">11</span>:<span style="color: #000000;">49</span> maillog
<span style="color: #660033;">-rw-r-----</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">1111</span>  <span style="color: #000000;">4</span> мар 00:00 maillog.0.bz2
<span style="color: #660033;">-rw-r-----</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">1494</span>  <span style="color: #000000;">3</span> мар 00:00 maillog.1.bz2
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel    <span style="color: #000000;">195523</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">12</span>:<span style="color: #000000;">23</span> messages
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">10368</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">12</span>:00 messages.0.bz2
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">8118</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">11</span>:00 messages.1.bz2
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel       <span style="color: #000000;">265</span> <span style="color: #000000;">19</span> фев 03:04 mount.today
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel       <span style="color: #000000;">233</span> <span style="color: #000000;">17</span> окт 03:04 mount.yesterday
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">13020</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">12</span>:<span style="color: #000000;">16</span> mpd.log
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">2731</span>  <span style="color: #000000;">4</span> мар 03:00 mpd.log.0.bz2
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">1786</span>  <span style="color: #000000;">3</span> мар 03:00 mpd.log.1.bz2
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel        <span style="color: #000000;">60</span>  <span style="color: #000000;">4</span> мар 03:00 ntp.log
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel       <span style="color: #000000;">119</span>  <span style="color: #000000;">4</span> мар 03:00 ntp.log.0.bz2
<span style="color: #660033;">-rw-r-----</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">43188</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">11</span>:<span style="color: #000000;">50</span> proftpd-error.log
drwxr-xr-x   <span style="color: #000000;">3</span> root   wheel       <span style="color: #000000;">512</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">11</span>:<span style="color: #000000;">52</span> samba
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">22550</span> <span style="color: #000000;">17</span> апр  <span style="color: #000000;">2009</span> samba.log
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">92434</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">12</span>:<span style="color: #000000;">21</span> security
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">8388</span> <span style="color: #000000;">27</span> фев <span style="color: #000000;">22</span>:00 security.0.bz2
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">7238</span> <span style="color: #000000;">26</span> фев 00:00 security.1.bz2
<span style="color: #660033;">-rw-r-----</span>   <span style="color: #000000;">1</span> root   wheel       <span style="color: #000000;">728</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">11</span>:09 sendmail.st
<span style="color: #660033;">-rw-r-----</span>   <span style="color: #000000;">1</span> root   wheel       <span style="color: #000000;">728</span> <span style="color: #000000;">26</span> фев 03:05 sendmail.st.0
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">4711</span>  <span style="color: #000000;">1</span> фев 03:04 setuid.today
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">4802</span>  <span style="color: #000000;">6</span> ноя 03:04 setuid.yesterday
<span style="color: #660033;">-rw-r-----</span>   <span style="color: #000000;">1</span> root   network      <span style="color: #000000;">67</span> <span style="color: #000000;">12</span> апр  <span style="color: #000000;">2009</span> slip.log
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">5638</span> <span style="color: #000000;">18</span> фев <span style="color: #000000;">11</span>:<span style="color: #000000;">58</span> userlog
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">2816</span>  <span style="color: #000000;">4</span> мар <span style="color: #000000;">11</span>:<span style="color: #000000;">50</span> wtmp
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">13332</span>  <span style="color: #000000;">1</span> мар 00:02 wtmp.0
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">11264</span>  <span style="color: #000000;">1</span> фев 01:<span style="color: #000000;">16</span> wtmp.1
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel      <span style="color: #000000;">7788</span> <span style="color: #000000;">31</span> дек <span style="color: #000000;">20</span>:05 wtmp.2
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">10692</span> <span style="color: #000000;">30</span> ноя <span style="color: #000000;">23</span>:07 wtmp.3
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">29429</span>  <span style="color: #000000;">3</span> мар <span style="color: #000000;">11</span>:06 xferlog
<span style="color: #660033;">-rw-------</span>   <span style="color: #000000;">1</span> root   wheel     <span style="color: #000000;">25010</span> <span style="color: #000000;">13</span> янв <span style="color: #000000;">18</span>:00 xferlog.0.bz2</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2010/03/kontora-pishet-logwatch-newsyslog-i-drugie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeBSD 8.0-RELEASE &#8211; официально</title>
		<link>http://snake.khd.ru/2009/11/freebsd-8-0-release-oficialno/</link>
		<comments>http://snake.khd.ru/2009/11/freebsd-8-0-release-oficialno/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 01:46:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[релиз]]></category>

		<guid isPermaLink="false">http://snake.khd.ru/?p=182</guid>
		<description><![CDATA[Официальный анонс 8.0-RELEASE.
Changelog смотрим тут
]]></description>
			<content:encoded><![CDATA[<p>Официальный анонс 8.0-RELEASE.<br />
Changelog смотрим <a href="http://www.freebsd.org/releases/8.0R/relnotes-detailed.html">тут</a></p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2009/11/freebsd-8-0-release-oficialno/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Каждому по потребностям &#8211; шейпинг трафика при помощи IPFW</title>
		<link>http://snake.khd.ru/2009/10/kazhdomu-po-potrebnostyam-shejping-trafika-pri-pomoshhi-ipfw/</link>
		<comments>http://snake.khd.ru/2009/10/kazhdomu-po-potrebnostyam-shejping-trafika-pri-pomoshhi-ipfw/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 13:37:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[ipfw]]></category>
		<category><![CDATA[nat]]></category>
		<category><![CDATA[routing]]></category>
		<category><![CDATA[shaping]]></category>

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

Итак, настраиваем mpd. В /usr/local/etc/mpd4 нас интересуют два файла:

snake@snake &#91;mpd4&#93;#ls -al
total 118
drwxr-xr-x   2 root   wheel    512 16 окт 22:57 .
drwxr-xr-x  24 root   wheel   1536 [...]]]></description>
			<content:encoded><![CDATA[<p>Исходные данные: FreeBSD 7.2, IPFW, MPD4.3. две ADSL линии.<br />
Задача &#8211; раздавать интернет пользователям &#8211; у каждой группы пользователей свой канал.<br />
<span id="more-118"></span><br />
Итак, настраиваем mpd. В /usr/local/etc/mpd4 нас интересуют два файла:</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>mpd4<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#ls -al</span>
total <span style="color: #000000;">118</span>
drwxr-xr-x   <span style="color: #000000;">2</span> root   wheel    <span style="color: #000000;">512</span> <span style="color: #000000;">16</span> окт <span style="color: #000000;">22</span>:<span style="color: #000000;">57</span> .
drwxr-xr-x  <span style="color: #000000;">24</span> root   wheel   <span style="color: #000000;">1536</span> <span style="color: #000000;">18</span> окт <span style="color: #000000;">20</span>:<span style="color: #000000;">53</span> ..
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> snake  snake   <span style="color: #000000;">2799</span> <span style="color: #000000;">19</span> сен 00:<span style="color: #000000;">33</span> mpd.conf
<span style="color: #660033;">-rw-r--r--</span>   <span style="color: #000000;">1</span> snake  snake    <span style="color: #000000;">638</span> <span style="color: #000000;">17</span> сен <span style="color: #000000;">23</span>:<span style="color: #000000;">14</span> mpd.links</pre></div></div>

<p>Содержимое mpd.conf:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">startup:
        <span style="color: #666666; font-style: italic;"># configure the console</span>
        <span style="color: #000000; font-weight: bold;">set</span> console port <span style="color: #000000;">5005</span>
        <span style="color: #000000; font-weight: bold;">set</span> console ip 127.0.0.1
        <span style="color: #000000; font-weight: bold;">set</span> console user user <span style="color: #7a0874; font-weight: bold;">test</span>
        <span style="color: #000000; font-weight: bold;">set</span> console open
&nbsp;
default:
        load vtk_unlim
        load vtk_unlim2
&nbsp;
vtk_unlim:
        new <span style="color: #660033;">-i</span> ng0 pppoe_vtk pppoe_vtk <span style="color: #666666; font-style: italic;">#имя соединения в mpd.links</span>
        <span style="color: #000000; font-weight: bold;">set</span> iface route default <span style="color: #666666; font-style: italic;">#установить соединение маршрутом по умолчанию</span>
        <span style="color: #000000; font-weight: bold;">set</span> iface disable on-demand
        <span style="color: #000000; font-weight: bold;">set</span> iface idle <span style="color: #000000;">0</span>
        <span style="color: #000000; font-weight: bold;">set</span> ipcp <span style="color: #c20cb9; font-weight: bold;">yes</span> vjcomp
        <span style="color: #000000; font-weight: bold;">set</span> ipcp ranges 0.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</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;">set</span> bundle disable multilink
        <span style="color: #000000; font-weight: bold;">set</span> auth authname mylogin
        <span style="color: #000000; font-weight: bold;">set</span> auth password MyPaSsWoRd
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> no acfcomp protocomp
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> disable pap chap<span style="color: #666666; font-style: italic;">#настройки шифрования</span>
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> accept chap
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> mtu <span style="color: #000000;">1400</span> <span style="color: #666666; font-style: italic;">#настройка MTU</span>
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> keep-alive <span style="color: #000000;">10</span> <span style="color: #000000;">60</span>
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> max redial <span style="color: #000000;">0</span> <span style="color: #666666; font-style: italic;">#число попыток реконнекта</span>
        <span style="color: #000000; font-weight: bold;">set</span> bundle disable noretry <span style="color: #666666; font-style: italic;">#перезванивать при обрыве</span>
        <span style="color: #000000; font-weight: bold;">set</span> iface up-script <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>mpd4<span style="color: #000000; font-weight: bold;">/</span>up <span style="color: #666666; font-style: italic;">#скрипт, выполняющийся при установке соединения</span>
        open
&nbsp;
vtk_unlim2:
        new <span style="color: #660033;">-i</span> ng1 pppoe_vtk2 pppoe_vtk2
        <span style="color: #000000; font-weight: bold;">set</span> iface route default
        <span style="color: #000000; font-weight: bold;">set</span> iface disable on-demand
        <span style="color: #000000; font-weight: bold;">set</span> iface idle <span style="color: #000000;">0</span>
        <span style="color: #000000; font-weight: bold;">set</span> ipcp <span style="color: #c20cb9; font-weight: bold;">yes</span> vjcomp
        <span style="color: #000000; font-weight: bold;">set</span> ipcp ranges 0.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0</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;">set</span> bundle disable multilink
        <span style="color: #000000; font-weight: bold;">set</span> auth authname mylogin2
        <span style="color: #000000; font-weight: bold;">set</span> auth password mYpAsSwOrD
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> no acfcomp protocomp
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> disable pap chap
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> accept chap
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> mtu <span style="color: #000000;">1400</span>
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> keep-alive <span style="color: #000000;">10</span> <span style="color: #000000;">60</span>
        <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> max redial <span style="color: #000000;">0</span>
        <span style="color: #000000; font-weight: bold;">set</span> bundle disable noretry
        <span style="color: #000000; font-weight: bold;">set</span> iface up-script <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>mpd4<span style="color: #000000; font-weight: bold;">/</span>up2
        open</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;">#!/bin/sh</span>
<span style="color: #007800;">out_if</span>=<span style="color: #ff0000;">&quot;-interface ng0&quot;</span>
route delete default
route add default <span style="color: #007800;">$out_if</span></pre></div></div>

<p>Скрипт назначает наш pppoe канал маршрутом по умолчанию как для самого сервера, так и для клиентов</p>
<p>Скрипт up2:</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: #007800;">out_if</span>=<span style="color: #ff0000;">&quot;-interface ng1&quot;</span>
setfib <span style="color: #000000;">1</span> route add <span style="color: #660033;">-net</span> default <span style="color: #007800;">$out_if</span>
<span style="color: #007800;">gw</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ifconfig</span> ng1 <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;inet&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot; &quot;</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">4</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">host</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">ifconfig</span> ng1 <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;inet&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot; &quot;</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">fw</span>=<span style="color: #ff0000;">&quot;/sbin/ipfw -q&quot;</span>
<span style="color: #007800;">users2</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">cat</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>etc<span style="color: #000000; font-weight: bold;">/</span>rc.fire.new <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;users2=&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot;=&quot;</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">num</span>=<span style="color: #000000; font-weight: bold;">`</span>ipfw show <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;fwd&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">cut</span> <span style="color: #660033;">-d</span> <span style="color: #ff0000;">&quot; &quot;</span> <span style="color: #660033;">-f</span> <span style="color: #000000;">1</span><span style="color: #000000; font-weight: bold;">`</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>etc<span style="color: #000000; font-weight: bold;">/</span>rc.d<span style="color: #000000; font-weight: bold;">/</span>natd.sh
<span style="color: #007800;">$fw</span> delete <span style="color: #007800;">$num</span>
<span style="color: #007800;">$fw</span> add <span style="color: #007800;">$num</span> fwd <span style="color: #007800;">$gw</span> ip from <span style="color: #007800;">$host</span> to any</pre></div></div>

<p>Суть этого скрипта в том, что он выдирает из вывода ifconfig текущие шлюз и ip (т.к. на втором соединении ип динамический) и добавляет эти значения в правило ipfw, обеспечивающее прохождение трафика. Подробней про эти правила будет ниже.</p>
<p>Файл mpd.links:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">pppoe_vtk:
    <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> <span style="color: #7a0874; font-weight: bold;">type</span> pppoe <span style="color: #666666; font-style: italic;"># Тип соединения PPPoE</span>
    <span style="color: #000000; font-weight: bold;">set</span> pppoe iface em1 <span style="color: #666666; font-style: italic;">#Интерфейс, на котором создается pppoe соединение</span>
    <span style="color: #000000; font-weight: bold;">set</span> pppoe service <span style="color: #ff0000;">&quot;&quot;</span>
    <span style="color: #000000; font-weight: bold;">set</span> pppoe disable incoming <span style="color: #666666; font-style: italic;">#запрещаем входящие соединения</span>
    <span style="color: #000000; font-weight: bold;">set</span> pppoe <span style="color: #7a0874; font-weight: bold;">enable</span> originate
&nbsp;
pppoe_vtk2:
    <span style="color: #000000; font-weight: bold;">set</span> <span style="color: #c20cb9; font-weight: bold;">link</span> <span style="color: #7a0874; font-weight: bold;">type</span> pppoe
    <span style="color: #000000; font-weight: bold;">set</span> pppoe iface fxp0
    <span style="color: #000000; font-weight: bold;">set</span> pppoe service <span style="color: #ff0000;">&quot;&quot;</span>
    <span style="color: #000000; font-weight: bold;">set</span> pppoe disable incoming
    <span style="color: #000000; font-weight: bold;">set</span> pppoe <span style="color: #7a0874; font-weight: bold;">enable</span> originate</pre></div></div>

<p>mpd настроен. При запуске он должен автоматически поднять соединения и мы увидим нечто вроде этого:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">ng0: <span style="color: #007800;">flags</span>=88d1<span style="color: #000000; font-weight: bold;">&lt;</span>UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST<span style="color: #000000; font-weight: bold;">&gt;</span> metric <span style="color: #000000;">0</span> mtu <span style="color: #000000;">1400</span>
        inet 85.15.66.66 --<span style="color: #000000; font-weight: bold;">&gt;</span> 85.15.64.119 netmask 0xffffffff
ng1: <span style="color: #007800;">flags</span>=88d1<span style="color: #000000; font-weight: bold;">&lt;</span>UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST<span style="color: #000000; font-weight: bold;">&gt;</span> metric <span style="color: #000000;">0</span> mtu <span style="color: #000000;">1400</span>
        inet 85.15.81.133 --<span style="color: #000000; font-weight: bold;">&gt;</span> 85.15.80.1 netmask 0xffffffff</pre></div></div>

<p>Не забудьте прописать в /etc/syslog.conf:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">!</span>mpd
<span style="color: #000000; font-weight: bold;">*</span>.<span style="color: #000000; font-weight: bold;">*</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>mpd.log</pre></div></div>

<p>Теперь займемся настройкой нат. Я использовал natd. Про свежевыпущенный ipfw nat скажу ниже</p>
<p>Прописываем в /etc/rc.conf следующее:</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>mpd4<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#cat /etc/rc.conf | grep natd</span>
<span style="color: #007800;">natd_enable</span>=<span style="color: #ff0000;">&quot;YES&quot;</span></pre></div></div>

<p>далее создаем файлы конфигурации (в моем случае /etc/natd2.conf, /etc/natd3.conf):</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>mpd4<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#cat /etc/natd2.conf</span>
<span style="color: #666666; font-style: italic;"># порт, на котором висит natd</span>
port <span style="color: #000000;">8448</span>
<span style="color: #666666; font-style: italic;"># интерфейс</span>
interface ng0
<span style="color: #666666; font-style: italic;"># стараться не изменять порты</span>
same_ports <span style="color: #c20cb9; font-weight: bold;">yes</span>
<span style="color: #666666; font-style: italic;"># перенаправлять только трафик с адресом источника 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16.</span>
unregistered_only <span style="color: #c20cb9; font-weight: bold;">yes</span>
dynamic <span style="color: #c20cb9; font-weight: bold;">yes</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># проброс портов для отдельных машин наружу</span>
redirect_port tcp 10.12.51.24:<span style="color: #000000;">51024</span> <span style="color: #000000;">51024</span>
redirect_port udp 10.12.51.24:<span style="color: #000000;">51024</span> <span style="color: #000000;">51024</span>
redirect_port tcp 10.12.51.24:<span style="color: #000000;">51025</span> <span style="color: #000000;">51025</span>
redirect_port udp 10.12.51.24:<span style="color: #000000;">51025</span> <span style="color: #000000;">51025</span></pre></div></div>


<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>mpd4<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#cat /etc/natd3.conf</span>
port <span style="color: #000000;">8558</span>
interface ng1
same_ports <span style="color: #c20cb9; font-weight: bold;">yes</span>
unregistered_only <span style="color: #c20cb9; font-weight: bold;">yes</span>
dynamic <span style="color: #c20cb9; font-weight: bold;">yes</span>
redirect_port tcp 10.12.51.118:<span style="color: #000000;">31027</span> <span style="color: #000000;">31027</span>
redirect_port udp 10.12.51.118:<span style="color: #000000;">31027</span> <span style="color: #000000;">31027</span></pre></div></div>

<p>создаем скрипт в /usr/local/etc/rc.d</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>mpd4<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#cat /usr/local/etc/rc.d/natd.sh</span>
<span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>natd <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>natd2.conf
<span style="color: #000000; font-weight: bold;">/</span>sbin<span style="color: #000000; font-weight: bold;">/</span>natd <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>natd3.conf</pre></div></div>

<p>Запускаем, смотрим: в sockstat должно быть что-то такое:</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>mpd4<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #666666; font-style: italic;">#sockstat -l4 | grep natd</span>
root     natd       <span style="color: #000000;">1033</span>  <span style="color: #000000;">4</span>  div4   <span style="color: #000000; font-weight: bold;">*</span>:<span style="color: #000000;">8558</span>                <span style="color: #000000; font-weight: bold;">*</span>:<span style="color: #000000; font-weight: bold;">*</span>
root     natd       <span style="color: #000000;">1031</span>  <span style="color: #000000;">4</span>  div4   <span style="color: #000000; font-weight: bold;">*</span>:<span style="color: #000000;">8448</span>                <span style="color: #000000; font-weight: bold;">*</span>:<span style="color: #000000; font-weight: bold;">*</span></pre></div></div>

<p>Теперь приступим к самой ответственной части &#8211; а именно настройке фаервола :)<br />
Тут я приведу конфиг полностью, с пояснениями и комментариями<br />
Про ядерный nat ipfw можно почтитать <a href='http://www.lissyara.su/?id=1967' target='_blank'>тут</a></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: #007800;">$fw</span> pipe <span style="color: #000000;">100</span> config bw <span style="color: #007800;">$downi</span> queue <span style="color: #000000;">50</span>
<span style="color: #007800;">$fw</span> pipe <span style="color: #000000;">200</span> config bw <span style="color: #007800;">$upi</span>   queue <span style="color: #000000;">50</span>
<span style="color: #007800;">$fw</span> pipe <span style="color: #000000;">300</span> config bw <span style="color: #007800;">$downi</span> queue <span style="color: #000000;">50</span>
<span style="color: #007800;">$fw</span> pipe <span style="color: #000000;">400</span> config bw <span style="color: #007800;">$up2</span> queue <span style="color: #000000;">50</span>
<span style="color: #007800;">$fw</span> pipe <span style="color: #000000;">500</span> config bw <span style="color: #007800;">$downvtk</span> queue <span style="color: #000000;">50</span>
<span style="color: #007800;">$fw</span> pipe <span style="color: #000000;">600</span> config bw <span style="color: #007800;">$upvtk</span> queue <span style="color: #000000;">50</span>
<span style="color: #666666; font-style: italic;">#-----------------------------------</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#Очереди трафика (подробнее смотрим man ipfw) </span>
<span style="color: #666666; font-style: italic;">#именно они обеспечивают справедливое распределение канала между пользователями</span>
<span style="color: #666666; font-style: italic;">#inet --&gt; LAN</span>
<span style="color: #007800;">$fw</span> queue <span style="color: #000000;">101</span> config weight <span style="color: #007800;">$tcp2w</span> queue <span style="color: #000000;">50</span> pipe <span style="color: #000000;">100</span> gred <span style="color: #000000;">0.002</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">35</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0.1</span> mask dst-ip 0xffffffff
<span style="color: #007800;">$fw</span> queue <span style="color: #000000;">102</span> config weight <span style="color: #007800;">$tcp1w</span> queue <span style="color: #000000;">50</span> pipe <span style="color: #000000;">100</span> gred <span style="color: #000000;">0.002</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">35</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0.1</span> mask dst-ip 0xffffffff
&nbsp;
<span style="color: #666666; font-style: italic;">#LAN --&gt; inet</span>
<span style="color: #007800;">$fw</span> queue <span style="color: #000000;">201</span> config weight <span style="color: #007800;">$tcp2w</span> queue <span style="color: #000000;">50</span> pipe <span style="color: #000000;">200</span> gred <span style="color: #000000;">0.002</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">35</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0.1</span> mask src-ip 0xffffffff
<span style="color: #007800;">$fw</span> queue <span style="color: #000000;">202</span> config weight <span style="color: #007800;">$tcp1w</span> queue <span style="color: #000000;">50</span> pipe <span style="color: #000000;">200</span> gred <span style="color: #000000;">0.002</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">35</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0.1</span> mask src-ip 0xffffffff
&nbsp;
<span style="color: #666666; font-style: italic;">#inet --&gt; LAN</span>
<span style="color: #007800;">$fw</span> queue <span style="color: #000000;">301</span> config weight <span style="color: #007800;">$tcp1w</span> queue <span style="color: #000000;">50</span> pipe <span style="color: #000000;">300</span> gred <span style="color: #000000;">0.002</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">35</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0.1</span> mask dst-ip 0xffffffff
&nbsp;
<span style="color: #666666; font-style: italic;">#LAN --&gt; inet</span>
<span style="color: #007800;">$fw</span> queue <span style="color: #000000;">401</span> config weight <span style="color: #007800;">$tcp1w</span> queue <span style="color: #000000;">50</span> pipe <span style="color: #000000;">400</span> gred <span style="color: #000000;">0.002</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">35</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0.1</span> mask src-ip 0xffffffff
&nbsp;
<span style="color: #666666; font-style: italic;">#VTK --&gt; LAN</span>
<span style="color: #007800;">$fw</span> queue <span style="color: #000000;">501</span> config weight <span style="color: #007800;">$tcp2w</span> queue <span style="color: #000000;">50</span> pipe <span style="color: #000000;">500</span> gred <span style="color: #000000;">0.002</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">35</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0.1</span> mask dst-ip 0xffffffff
&nbsp;
<span style="color: #666666; font-style: italic;">#LAN --&gt; VTK</span>
<span style="color: #007800;">$fw</span> queue <span style="color: #000000;">601</span> config weight <span style="color: #007800;">$tcp2w</span> queue <span style="color: #000000;">50</span> pipe <span style="color: #000000;">600</span> gred <span style="color: #000000;">0.002</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">10</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">35</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">0.1</span> mask src-ip 0xffffffff
<span style="color: #666666; font-style: italic;">#-----------------------------------</span>
<span style="color: #666666; font-style: italic;">#Настройки ядерного NAT. У меня нормально так и не заработал, но может у вас получится ;) </span>
<span style="color: #007800;">$fw</span> nat <span style="color: #000000;">300</span> config log <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #007800;">$wan</span> same_ports deny_in
<span style="color: #666666; font-style: italic;">#-----------------------------------</span>
<span style="color: #666666; font-style: italic;">#Selfcare &amp; service</span>
<span style="color: #666666; font-style: italic;">##loopback</span>
<span style="color: #666666; font-style: italic;"># разрешаем ходить локалхост трафику, но только в пределах интерфейса loopback</span>
<span style="color: #007800;">$fwa</span> 01000 allow ip from any to any via lo0
<span style="color: #007800;">$fwa</span> 01010 deny ip from any to 127.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">8</span>
<span style="color: #007800;">$fwa</span> 01020 deny ip from 127.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">8</span> to any
<span style="color: #666666; font-style: italic;">#-----------------------------------</span>
<span style="color: #666666; font-style: italic;">##Deny networks</span>
<span style="color: #666666; font-style: italic;"># Запрещаем частные подсети на внешних интерфейсах</span>
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">1200</span> deny log ip from 10.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">8</span> to me <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">1210</span> deny log ip from any to 10.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">8</span> out via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">1220</span> deny log ip from 172.16.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">12</span> to any <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">1230</span> deny log ip from any to 172.16.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">12</span> out via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">1240</span> deny log ip from 192.168.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">16</span> to any <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">1250</span> deny log ip from any to 192.168.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">16</span> out via <span style="color: #007800;">$inet</span>
&nbsp;
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">1205</span> deny log ip from 10.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">8</span> to any <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet2</span>
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">1215</span> deny log ip from any to 10.0.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">8</span> out via <span style="color: #007800;">$inet2</span>
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">1225</span> deny log ip from 172.16.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">12</span> to any <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet2</span>
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">1235</span> deny log ip from any to 172.16.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">12</span> out via <span style="color: #007800;">$inet2</span>
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">1245</span> deny log ip from 192.168.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">16</span> to any <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet2</span>
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">1255</span> deny log ip from any to 192.168.0.0<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">16</span> out via <span style="color: #007800;">$inet2</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#-----------------------------------</span>
<span style="color: #666666; font-style: italic;">#Allowing connetctions</span>
<span style="color: #666666; font-style: italic;">#-----------------------------------</span>
<span style="color: #666666; font-style: italic;">##Intranet connections</span>
<span style="color: #666666; font-style: italic;"># Разрешаем соединение с сервером из локалки</span>
<span style="color: #007800;">$fwa</span> 02100 allow ip from <span style="color: #007800;">$hostel</span> to <span style="color: #007800;">$iplan</span> <span style="color: #007800;">$usr_ports</span> <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$lan</span>
<span style="color: #007800;">$fwa</span> 02110 allow ip from me to <span style="color: #007800;">$hostel</span> out via <span style="color: #007800;">$lan</span>
<span style="color: #007800;">$fwa</span> 02115 allow ip from me to <span style="color: #007800;">$hostel</span> out via <span style="color: #007800;">$vlan</span>
<span style="color: #666666; font-style: italic;">#-----------------------------------</span>
<span style="color: #666666; font-style: italic;">##DNS (разрешаем связь с DNS серверами прова </span>
<span style="color: #666666; font-style: italic;">#и доступ к DNS-серверу на машине из локальной сети</span>
<span style="color: #007800;">$fwa</span> 02310 allow udp from me to <span style="color: #007800;">$vtk_dns</span> out
<span style="color: #007800;">$fwa</span> 02320 allow udp from <span style="color: #007800;">$vtk_dns</span> to me <span style="color: #000000; font-weight: bold;">in</span>
<span style="color: #007800;">$fwa</span> 02330 allow udp from <span style="color: #007800;">$hostel</span> to <span style="color: #007800;">$iplan</span> <span style="color: #000000;">53</span> <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$lan</span>
<span style="color: #007800;">$fwa</span> 02340 allow udp from <span style="color: #007800;">$iplan</span> <span style="color: #000000;">53</span> to <span style="color: #007800;">$hostel</span> out via <span style="color: #007800;">$lan</span>
<span style="color: #007800;">$fwa</span> 02350 deny udp from <span style="color: #007800;">$hostel</span> to <span style="color: #007800;">$vtk_dns</span> <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$lan</span>
<span style="color: #007800;">$fwa</span> 02360 deny udp from <span style="color: #007800;">$hostel</span> to <span style="color: #007800;">$vtk_dns</span> <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$vlan</span>
<span style="color: #007800;">$fwa</span> 02370 deny udp from <span style="color: #007800;">$vtk_dns</span> to <span style="color: #007800;">$hostel</span> out via <span style="color: #007800;">$lan</span>
<span style="color: #007800;">$fwa</span> 02380 deny udp from <span style="color: #007800;">$vtk_dns</span> to <span style="color: #007800;">$hostel</span> out via <span style="color: #007800;">$vlan</span>
<span style="color: #666666; font-style: italic;">#-----------------------------------</span>
<span style="color: #666666; font-style: italic;"># Ради чего все затевалось - разрешаем пользователям из локалки доступ вовне</span>
<span style="color: #007800;">$fwa</span> 03141 allow ip from <span style="color: #ff0000;">&quot;table(1)&quot;</span>  to not me <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$lan</span>
<span style="color: #007800;">$fwa</span> 03142 allow ip from <span style="color: #ff0000;">&quot;table(1)&quot;</span> to not me <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$vlan</span>
<span style="color: #007800;">$fwa</span> 03143 allow ip from not me to <span style="color: #ff0000;">&quot;table(1)&quot;</span> out via <span style="color: #007800;">$lan</span>
<span style="color: #007800;">$fwa</span> 03144 allow ip from not me to <span style="color: #ff0000;">&quot;table(1)&quot;</span> out via <span style="color: #007800;">$vlan</span>
<span style="color: #666666; font-style: italic;">#-----------------------------------</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#NAT &amp; queues</span>
<span style="color: #666666; font-style: italic;">##Outcoming queues (исходящие очереди)</span>
<span style="color: #666666; font-style: italic;">#Настройка очередей. Трафик сервера идет отдельной очередью</span>
<span style="color: #007800;">$fwa</span> 05010 queue <span style="color: #000000;">201</span> ip from me to any out via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> 05020 queue <span style="color: #000000;">202</span> ip from <span style="color: #007800;">$users</span> to any out via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> 05030 queue <span style="color: #000000;">401</span> ip from <span style="color: #007800;">$users2</span> to any out via <span style="color: #007800;">$inet2</span>
<span style="color: #007800;">$fwa</span> 05040 queue <span style="color: #000000;">601</span> ip from any to <span style="color: #007800;">$vtk</span> out via <span style="color: #007800;">$wan</span>
<span style="color: #666666; font-style: italic;">#-----------------------------------</span>
<span style="color: #666666; font-style: italic;">##NAT</span>
<span style="color: #666666; font-style: italic;">#Заворачиваем трафик от разных групп на разные natd</span>
<span style="color: #007800;">$fwa</span> 07200 divert <span style="color: #000000;">8448</span> ip from <span style="color: #007800;">$users</span> to any out via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> 07250 divert <span style="color: #000000;">8448</span> ip from any to me <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> 07100 divert <span style="color: #000000;">8558</span> ip from <span style="color: #007800;">$users2</span> to any out via <span style="color: #007800;">$inet2</span>
<span style="color: #666666; font-style: italic;">#Говорим фаерволу, что трафик второй группы </span>
<span style="color: #666666; font-style: italic;">#нужно пускать через другой шлюз. </span>
<span style="color: #666666; font-style: italic;">#Именно это правило мы меняем, когда mpd делает реконнект</span>
<span style="color: #666666; font-style: italic;">#Переменные $gw и $host определяются при каждом перезапуске</span>
<span style="color: #666666; font-style: italic;">#скрипта с правилами</span>
<span style="color: #007800;">$fwa</span> 07130 fwd <span style="color: #007800;">$gw</span> ip from <span style="color: #007800;">$host</span> to any
<span style="color: #007800;">$fwa</span> 07150 divert <span style="color: #000000;">8558</span> ip from any to me <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet2</span>
<span style="color: #666666; font-style: italic;"># тот самый ядерный nat. оставил для примера :)</span>
<span style="color: #007800;">$fwa</span> 07400 nat <span style="color: #000000;">300</span> ip from any to any via <span style="color: #007800;">$wan</span>
<span style="color: #666666; font-style: italic;">#----------------------------------</span>
<span style="color: #666666; font-style: italic;">##Incoming queues (входящие очереди)</span>
<span style="color: #007800;">$fwa</span> 08010 queue <span style="color: #000000;">101</span> ip from any to me <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> 08020 queue <span style="color: #000000;">102</span> ip from any to <span style="color: #007800;">$users</span> <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> 08030 queue <span style="color: #000000;">301</span> ip from any to <span style="color: #007800;">$users2</span> <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet2</span>
<span style="color: #007800;">$fwa</span> 08040 queue <span style="color: #000000;">501</span> ip from <span style="color: #007800;">$vtk</span> to any <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$wan</span>
<span style="color: #666666; font-style: italic;">#-----------------------------------</span>
<span style="color: #666666; font-style: italic;">#Allowing connections</span>
<span style="color: #666666; font-style: italic;">##Outcoming allowers (разрешающие правила для соединений)</span>
<span style="color: #007800;">$fwa</span> 09000 allow ip from <span style="color: #007800;">$users</span> to <span style="color: #007800;">$vtk</span> out via <span style="color: #007800;">$wan</span>
<span style="color: #007800;">$fwa</span> 09010 allow ip from me to <span style="color: #007800;">$vtk</span> out via <span style="color: #007800;">$wan</span>
<span style="color: #007800;">$fwa</span> 09023 allow ip from me <span style="color: #000000;">12553</span> to any out via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> 09034 allow ip from me <span style="color: #000000;">12554</span> to any out via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> 09040 allow ip from <span style="color: #007800;">$users</span> to any out via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> 09050 allow ip from <span style="color: #007800;">$users2</span> to any out via <span style="color: #007800;">$inet2</span>
<span style="color: #007800;">$fwa</span> 09060 allow ip from me to any out via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> 09070 allow ip from me to any out via <span style="color: #007800;">$inet2</span>
<span style="color: #666666; font-style: italic;">#----------------------------------</span>
<span style="color: #666666; font-style: italic;">##Incoming allowers</span>
<span style="color: #007800;">$fwa</span> 09100 allow ip from <span style="color: #007800;">$vtk</span> to <span style="color: #007800;">$users</span> <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$wan</span>
<span style="color: #007800;">$fwa</span> 09110 allow ip from <span style="color: #007800;">$vtk</span> to me <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$wan</span>
<span style="color: #007800;">$fwa</span> 09120 allow ip from any to <span style="color: #007800;">$users</span> <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> 09130 allow ip from any to <span style="color: #007800;">$users2</span> <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet2</span>
<span style="color: #007800;">$fwa</span> 09143 allow ip from any to me <span style="color: #000000;">12553</span> <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> 09154 allow ip from any to me <span style="color: #000000;">12554</span> <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet</span>
<span style="color: #007800;">$fwa</span> 09160 allow ip from any to me <span style="color: #000000; font-weight: bold;">in</span> via <span style="color: #007800;">$inet</span>
<span style="color: #666666; font-style: italic;">#$fwa 09700 allow ip from any to me in via $inet2</span>
<span style="color: #666666; font-style: italic;">#----------------------------------</span>
<span style="color: #666666; font-style: italic;">##ICMP</span>
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">50200</span> allow icmp from me to any
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">50250</span> allow icmp from any to me
<span style="color: #666666; font-style: italic;">##Allow all outcoming</span>
<span style="color: #007800;">$fwa</span> <span style="color: #000000;">60000</span> allow ip from me to any</pre></div></div>

<p>На этом в общем-то все :) выставляем на клиентских машинах шлюзом по умолчанию наш сервер и радуемся &#8211; инет должен работать</p>
]]></content:encoded>
			<wfw:commentRss>http://snake.khd.ru/2009/10/kazhdomu-po-potrebnostyam-shejping-trafika-pri-pomoshhi-ipfw/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<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>Учимся читать 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>
	</channel>
</rss>
