<?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>HOTFREEBSD.RU</title>
	<atom:link href="http://hotfreebsd.ru/feed/" rel="self" type="application/rss+xml" />
	<link>http://hotfreebsd.ru</link>
	<description>Сайт про FreeBSD</description>
	<lastBuildDate>Tue, 06 Dec 2011 16:56:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Как изменить пароль root MySQL в FreeBSD</title>
		<link>http://hotfreebsd.ru/kak-izmenit-parol-root-mysql-v-freebsd/</link>
		<comments>http://hotfreebsd.ru/kak-izmenit-parol-root-mysql-v-freebsd/#comments</comments>
		<pubDate>Tue, 06 Dec 2011 16:56:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Заметки на полях]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[пароль]]></category>

		<guid isPermaLink="false">http://hotfreebsd.ru/?p=346</guid>
		<description><![CDATA[Меняем пароль root для MySQL через shell # mysql -u root mysql&#62; SET PASSWORD FOR ‘root’@&#8217;localhost’ = PASSWORD(‘newpassword’); Способ 2: используем mysqladmin: # mysqladmin -u root password “newpassword” Способ 3: используем UPDATE непосредственно в таблице пользователей: # mysql -u root mysql&#62; use mysql; mysql&#62; UPDATE user SET Password = PASSWORD(‘newpassword’) WHERE User = ‘root’; mysql&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Меняем пароль root для MySQL через shell</p>
<p># mysql -u root<br />
mysql&gt; SET PASSWORD FOR ‘root’@&#8217;localhost’ = PASSWORD(‘newpassword’);</p>
<p>Способ 2: используем mysqladmin:</p>
<p># mysqladmin -u root password “newpassword”</p>
<p>Способ 3: используем UPDATE непосредственно в таблице пользователей:</p>
<p># mysql -u root<br />
mysql&gt; use mysql;<br />
mysql&gt; UPDATE user SET Password = PASSWORD(‘newpassword’) WHERE User = ‘root’;<br />
mysql&gt; FLUSH PRIVILEGES;</p>
]]></content:encoded>
			<wfw:commentRss>http://hotfreebsd.ru/kak-izmenit-parol-root-mysql-v-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Горячие клавиши для shell / csh / zsh</title>
		<link>http://hotfreebsd.ru/goryachie-klavishi-dlya-shell-csh-zsh/</link>
		<comments>http://hotfreebsd.ru/goryachie-klavishi-dlya-shell-csh-zsh/#comments</comments>
		<pubDate>Fri, 10 Dec 2010 07:14:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Заметки на полях]]></category>
		<category><![CDATA[bash.zsh]]></category>
		<category><![CDATA[csh]]></category>
		<category><![CDATA[hotkeys]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://hotfreebsd.ru/?p=340</guid>
		<description><![CDATA[Помню, что когда я впервые начал работать в консоли, меня озадачил тот факт, что многие клавиши там не работали . А недавно понаблюдав, как знакомый стрелками вперед назад мечется по длинной строке команды для того, чтобы в нее внести исправления, решил, что тема актуальна. Итак, горячие клавиши для работы в консоли. В скобках консоли, в [...]]]></description>
			<content:encoded><![CDATA[<p>Помню, что когда я впервые начал работать в консоли, меня озадачил тот факт, что многие клавиши там не работали <img src='http://hotfreebsd.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>А недавно понаблюдав, как знакомый стрелками вперед назад мечется по длинной строке команды для того, чтобы в нее внести исправления, решил, что тема актуальна.</p>
<p><span id="more-340"></span></p>
<p>Итак, горячие клавиши для работы в консоли. В скобках консоли, в которых это работает.</p>
<p>Сочетания с  ctrl.</p>
<p>Ctrl + a — переход в начало строки (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Ctrl + b — переход на 1 символ назад (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Ctrl + c — посылает программе SIGINT. Обычно, прерывает текущее задание (<span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Ctrl + d — удаляет символ под курсором (аналог delete) (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Ctrl + e — переход к концу строки (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Ctrl + f — переход на 1 символ вперёд (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Ctrl + k — удаляет всё, до конца строки (EOL, а не на экране!) (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Ctrl + l — очищает экран. Аналог команды clear. (<span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Ctrl + r — поиск по истории. Повторение поиска (листание результатов поиска). То есть инкрементальный поиск. (<span style="color: #ff0000;">zsh</span>)<br />
Ctrl + j — прекращает поиск и позволяет отредактировать найденную  команду. Если поиск не производился, то аналогично нажатию return. (в <span style="color: #ff0000;">zsh</span> выполняет команду)<br />
Ctrl + t — меняет символ под курсором на предыдущий. Или, если хотите, тянет предыдущий символ к концу строки. (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Ctrl + u — удаляет все символы слева от курсора до начала строки. (<span style="color: #0000ff;">cisco</span>, в <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span> удаляет всю строку)<br />
Ctrl + w — удаляет символы слева от курсора до начала слова. (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Ctrl + xx — переходит от текущей позиции курса в начало строки и обратно. На циске работает аналогично ctrl + u. (<span style="color: #00ff00;">csh</span>)<br />
Ctrl + x @ — показывает возможные дополнения имени хоста (имена берутся из /etc/hosts)<br />
Ctrl + z — suspend&#8217;ит текущую задачу (<span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Ctrl + x; Ctrl + e — открывает $EDITOR для изменения введённой строки.  После сохранения изменений, команда отправляется на исполнение. Если  переменная не задана, то открывается системный текстовый редактор (для  линукса это, зачастую, nano)</p>
<p>Сочетания с Alt</p>
<p>Alt + &lt; — переход к первой команде в истории команд (<span style="color: #ff0000;">zsh</span>)<br />
Alt + &gt; — переход к последней команде в истории<br />
Alt +? — показывает список возможных дополнений команды(аналогично tab-tab) (в <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span> аналог which string)<br />
Alt + * — вставляет все возможные дополнений команды в строку команд<br />
Alt + / — пытается дополнить имя файла (аналогично табуляции)<br />
Alt +. — вставляет последний аргумент предыдущей команды (аналог !$, только не надо делать :p, чтобы проверить )<br />
Alt + b — сдвигает курсор влево на 1 слово (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Alt + c — делает букву под курсором большой, а остальные, до конца слова, маленькими. (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Alt + d — удаляет символы с текущей позиции курсора и до конца слова. (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Alt + f — передвигает курсор на одно слово вперёд (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Alt + l — делает все буквы с текущей позиции курсора и до конца слова маленькими (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Alt + t — меняет местами слова под курсором и предыдущее (<span style="color: #ff0000;">zsh</span>)<br />
Alt + u — переводит буквы с текущей позиции курсора и до конца слова в верхний регистр (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)<br />
Alt + back-space — удаляет символы с текущей позиции курсора до начала слова (<span style="color: #0000ff;">cisco</span>, <span style="color: #00ff00;">csh</span>, <span style="color: #ff0000;">zsh</span>)</p>
<p>2T это двойное нажатие клавиши TAB.</p>
<p>2T — дополнение вашей команды. Если команда не набрана и строка пустая, то появится список доступных команд<br />
(string)2T — список возможных дополнений<br />
(dir)2T — покажет подкаталоги папки dir<br />
*2T — покажет подкаталоги, кроме  скрытых (имена которых начинаются с точки)<br />
~2T — выведет всех пользователей из /etc/passwd. Дополнив имя  пользователя можно перейти в его домашний каталог. Например ~alex/ —  домашний каталог пользователя alex<br />
$2T — выводит список дополнений для системных переменных<br />
@2T — дополняет имена хостов содержащимися в /etc/hosts<br />
=2T — листинг текущей директории, аналогичный ls.</p>
]]></content:encoded>
			<wfw:commentRss>http://hotfreebsd.ru/goryachie-klavishi-dlya-shell-csh-zsh/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Как создать пакет в FreeBSD.</title>
		<link>http://hotfreebsd.ru/kak-sozdat-paket-v-freebsd/</link>
		<comments>http://hotfreebsd.ru/kak-sozdat-paket-v-freebsd/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 02:17:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Работа с ПО]]></category>
		<category><![CDATA[pkg_add]]></category>
		<category><![CDATA[pkg_create]]></category>
		<category><![CDATA[pkg_info]]></category>
		<category><![CDATA[пакет]]></category>

		<guid isPermaLink="false">http://hotfreebsd.ru/?p=334</guid>
		<description><![CDATA[Как известно ПО в FreeBSD можно устанавливать из портов и из пакетов. Главное отличие &#8211; порты требуют подключения к интернету и компиляции во время установки, а пакеты &#8211; это уже скомпилированное ПО из портов с зависимостями, по принципу распаковал и пользуйся. В теме использование portupgrade для обновления установленных из портов программ я обмолвился, что если [...]]]></description>
			<content:encoded><![CDATA[<p>Как известно ПО в FreeBSD можно устанавливать из портов и из пакетов. Главное отличие &#8211; порты требуют подключения к интернету и компиляции во время установки, а пакеты &#8211; это уже скомпилированное ПО из портов с зависимостями, по принципу распаковал и пользуйся.</p>
<p><span id="more-334"></span></p>
<p>В теме <a href="http://hotfreebsd.ru/ispolzovanie-portupgrade-dlya-obnovleniya-ustanovlennyx-iz-portov-programm//">использование portupgrade для обновления установленных из портов программ</a> я обмолвился, что если страшно, то можно создать пакет из уже установленной программы, которую будете обновлять и быстро на нее откатиться, если что..  Это же может пригодится. если нужно перенести набор ПО на другую машину, которая например не подключения к интернету или слишком слабая, для сборки ПО из портов  на ней.</p>
<p>Итак, сегодня  мне нужно обновить Squid, так как в нем нашли очередную уязвимость. Поскольку это доступ в интернет для всех пользователей, то если что то пойдет не так, мне будет оё-ёй как больно <img src='http://hotfreebsd.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Поэтому я создам пакет из установленного уже прокси squid и в него соберу все его зависимости, без которых он не будет работать.</p>
<p>1. Нам необходимо полное имя squid, включая его версию.<br />
<code><br />
pkg_info -xE squid<br />
lightsquid-1.7.1_1<br />
squid-3.0.24<br />
</code></p>
<p>2. А теперь соберу пакет.</p>
<p><code>pkg_create -R -b </code><code>squid-3.0.24</code></p>
<p>немного ожидания и в текущей директории я вижу</p>
<p><code>squid-3.0.24.tbz</code></p>
<p>Если будет нужно его установить squid из пакета, то пишем</p>
<p><code>pkg_add squid-3.0.24.tbz</code></p>
<p>и все <img src='http://hotfreebsd.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Но конфиг нужно сохранять отдельно. Впрочем, не все программы имеют отдельный конфигурационный файл.</p>
]]></content:encoded>
			<wfw:commentRss>http://hotfreebsd.ru/kak-sozdat-paket-v-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utorrent через прокси SQUID и Packet Filter</title>
		<link>http://hotfreebsd.ru/utorrent-cherez-proksi-squid-i-packet-filter/</link>
		<comments>http://hotfreebsd.ru/utorrent-cherez-proksi-squid-i-packet-filter/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 01:16:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Работа с ПО]]></category>
		<category><![CDATA[Packet Filter]]></category>
		<category><![CDATA[pf]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[utorrent]]></category>
		<category><![CDATA[торрент]]></category>

		<guid isPermaLink="false">http://hotfreebsd.ru/?p=328</guid>
		<description><![CDATA[Вот озадачился недавно как пропустить торренты через PF и прокси сервер. Т.е. стоит FreeBSD с прокси и firewall, за ней серая сетка, которую фряха натит. Подробно все расписывать не буду, скорее краткая заметка для себя , но и тем, кто уже настроил примерно такую же конфигурацию будет полезно. В конфиге прокси squid добавляем IP компьютера [...]]]></description>
			<content:encoded><![CDATA[<p>Вот озадачился недавно как пропустить торренты через PF и прокси сервер. Т.е. стоит FreeBSD с прокси и firewall, за ней серая сетка, которую фряха натит. Подробно все расписывать не буду, скорее краткая заметка для себя <img src='http://hotfreebsd.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , но и тем, кто уже настроил примерно такую же конфигурацию будет полезно.<span id="more-328"></span></p>
<p>В конфиге прокси squid добавляем IP компьютера с торрентами.</p>
<p><code>ee /usr/local/etc/squid/squid.conf</code></p>
<p>##############   ALLOW TORRENT<br />
acl torrent  src 10.1.10.153<br />
http_access allow torrent</p>
<p>Правим firewall<br />
<code>ee /etc/pf.conf</code></p>
<p>В переменных добавляем</p>
<p><code><!--more-->################ allow torrent<br />
# Torrent NAT Forward port какой порт использует utorrent<br />
torrentPort = "31177"<br />
# Адрес машины в локальнйо сети на которой работает utorrent<br />
<code>tor_server    = "10.1.10.153"</code></code></p>
<p>После правил NAT<br />
<code><!--more--># Редирект на машину с торрентом по порту для торрента.<br />
rdr on $ext_if proto { tcp, udp } from any to any port $torrentPort -&gt; $tor_server</code></p>
<p>И в списке правил добавляем<br />
<code># Allow torrent<br />
pass in quick on $ext_if inet proto { tcp, udp } from any to $tor_server port $torrentPort flags S/SA synproxy state<br />
pass out quick on  $ext_if proto { udp, tcp } from $tor_server port $torrentPort flags S/SA keep state</code></p>
<p>Сохраняем, перезапускаем PF</p>
<p><code>pfctl -f /etc/pf.conf</code></p>
<p>С фряхой все. Теперь на компе, где торренты крутятся, прописываем в качестве шлюза нашу фряху. Если есть подстети, то к ним прописываем статические маршруты при помощи route -p ADD</p>
<p>В utorrent в настройках Bittorrent IP/Hostname указываем<strong><span style="color: #ff6600;"> внешний адрес нашего шлюза с FreeBSD</span></strong>.</p>
<p>Ах да, комп с торрентом и интернет шлюз должны быть в одной подсети, так как шлюз по умолчанию должен быть из той же подсети. что и IP адрес компьютера.</p>
<p>Надеюсь кому то эта шпаргалка сэкономит время.</p>
]]></content:encoded>
			<wfw:commentRss>http://hotfreebsd.ru/utorrent-cherez-proksi-squid-i-packet-filter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Симлинк с переворотом</title>
		<link>http://hotfreebsd.ru/324/</link>
		<comments>http://hotfreebsd.ru/324/#comments</comments>
		<pubDate>Thu, 06 May 2010 04:43:16 +0000</pubDate>
		<dc:creator>Snake</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[mount]]></category>
		<category><![CDATA[proftpd]]></category>

		<guid isPermaLink="false">http://hotfreebsd.ru/?p=324</guid>
		<description><![CDATA[Понадобилось намедни прицепить папочку с обновлениями антивируса к домашней папке фтп-анонимуса. Обычно это делается симлинком – просто и понятно. Но ProFTPd симлинки не понимает в упор (оказывается, понимает &#8211; но только не под анонимусом &#8211; прим. авт), и переходить по ним отказывается. Вывод? Нужно заставить фтп-демон думать что перед ним – обычная папка, а не [...]]]></description>
			<content:encoded><![CDATA[<p>Понадобилось намедни прицепить папочку с обновлениями антивируса к домашней папке фтп-анонимуса. Обычно это делается симлинком – просто и понятно. Но ProFTPd симлинки не понимает в упор (<em>оказывается, понимает &#8211; но только не под анонимусом</em> &#8211; прим. авт), и переходить по ним отказывается. Вывод? Нужно заставить фтп-демон думать что перед ним – обычная папка, а не какая-нибудь там ссылка. После десяти минут гугления нашел способ, гарантированно работающий под freebsd (через пять минут находится метод для Linux):</p>
<pre lang="bash">mount_nullfs /usr/local/www/data/updates /mnt/media4/ftp/updates</pre>
<p>не забудьте только прописать это в fstab, чтобы после перезагрузки не чесать лысину “а куда оно делось?”.</p>
]]></content:encoded>
			<wfw:commentRss>http://hotfreebsd.ru/324/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Контора пишет (Logwatch, newsyslog и другие)</title>
		<link>http://hotfreebsd.ru/kontora-pishet-logwatch-newsyslog-i-drugie/</link>
		<comments>http://hotfreebsd.ru/kontora-pishet-logwatch-newsyslog-i-drugie/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 03:37:55 +0000</pubDate>
		<dc:creator>Snake</dc:creator>
				<category><![CDATA[Обслуживание FreeBSD]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[logwatch]]></category>
		<category><![CDATA[newsyslog]]></category>
		<category><![CDATA[syslog]]></category>

		<guid isPermaLink="false">http://hotfreebsd.ru/?p=320</guid>
		<description><![CDATA[Каждый раз лезть на сервер, чтобы посмотреть логи быстро надоедает. Да и не всегда есть возможность зайти по ssh, а параноидальная админская душа требует хлеба и зрелищ получать отчеты минимум раз в сутки. snake@snake [/etc]#cd /usr/ports/ snake@snake [ports]#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-320"></span></p>
<pre lang="bash">
snake@snake [/etc]#cd /usr/ports/
snake@snake [ports]#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: gettext-0.17_1 libiconv-1.13.1
R-deps: gettext-0.17_1 libiconv-1.13.1
WWW:    http://fwlogwatch.inside-security.de/

Port:   logwatch-7.3.6
Path:   /usr/ports/sysutils/logwatch
Info:   A log file analysis program
Maint:  trix@basement.net
B-deps:
R-deps: p5-MIME-Base64-3.08 perl-5.8.9_3
WWW:    http://www2.logwatch.org:81/
</pre>
<p>Первая утилита анализирует логи Cisco, Ipfilter и других фаерволов и IDS типа Snort, но про IPFW она похоже не знает, а потому толку от нее для меня немного. Вторая же утилита куда как интересней &#8211; это перловый скрипт, который анализирует логи и отсылает на почту админу суммарную информацию &#8211; эдакий куммулятивный лог-файл за день. Анализирует она не что попало, а лишь те сервисы, которые указаны в настройках. Более того, можно и самому писать модули для анализа нужных логов. В общем &#8211; вещь, как мне кажется, архиполезная.</p>
<p>Настройки лежат в /usr/local/etc/logwatch/defaults:</p>
<pre lang="bash">
snake@snake [ports]#cd /usr/local/etc/logwatch/
snake@snake [logwatch]#ls
total 18
drwxr-xr-x   6 root  wheel   512  4 мар 11:06 .
drwxr-xr-x  29 root  wheel  1536  3 мар 14:46 ..
drwxr-xr-x   5 root  wheel   512  2 мар 16:31 defaults
drwxr-xr-x   2 root  wheel   512  1 мар 17:11 html
drwxr-xr-x   2 root  wheel   512  1 мар 17:11 logfiles
-rw-r--r--   1 root  wheel  4991  4 мар 11:06 logwatch.conf
drwxr-xr-x   2 root  wheel   512  1 мар 17:11 services
</pre>
<p>В папке defaults находятся умолчальные конфиги, которые никто не мешает поправить и переместить для удобства в соответствующую папку &#8211; наисвысший приоритет имеют опции, непосредственно передаваемые скрипту при запуске, затем &#8211; файлы и папок services и logfiles, а уж в последнюю очередь смотрится папка defaults. </p>
<p>Файл настроек снабжен подробными комментариями, но некоторые пояснения все-таки нужно сделать:</p>
<pre lang="bash">
########################################################
# This was written and is maintained by:
#    Kirk Bauer
#
# Please send all comments, suggestions, bug reports,
#    etc, to kirk@kaybee.org.
#
########################################################

# NOTE:
#   All these options are the defaults if you run logwatch with no
#   command-line arguments.  You can override all of these on the
#   command-line.

# You can put comments anywhere you want to.  They are effective for the
# rest of the line.

# this is in the format of  = .  Whitespace at the beginning
# and end of the lines is removed.  Whitespace before and after the = sign
# is removed.  Everything is case *insensitive*.

# Yes = True  = On  = 1
# No  = False = Off = 0

# Default Log Directory
# Папка с логами по умолчанию
LogDir = /var/log/

# Папка для временных файлов
TmpDir = /tmp/logwatch

# Кому будем отсылать уведомление. Можно указать локального
# пользователя, можно просто e-mail адрес
MailTo = root
# Здесь можно указать дополнительные адреса, на которые будут
# отсылаться уведомления
Mailto_host1 = snake@localhost

# Имя отправителя, от которого будем получать письма
MailFrom = snake

# Выводить ли отчет в консоль. Полезно при отладке и проверке
Print = No

# Можно сохранить отчет файл, на всякий случай
Save = /tmp/logwatch-mail

# Использовать ли архивы
# (к примеру /var/log/messages.1 или /var/log/messages.1.gz)
# newsyslog позволяет производить ротацию логов и паковать старые
# логи в архивы, допустим, раз в сутки. Нехило экономит место и
# повышает наглядность.
#Archives = No

# Читать ли файлы .yesterday - тоже вид ротации логов
Range = yesterday

# Здесь все просто - уровень детализации отчетов
# Low = 0
# Med = 5
# High = 10
Detail = High

# Собирать ли информацию в всех сервисах, данные о которых
# лежат в папке services или только по определенному (например ftpd)
Service = All

# Можно выключить определенные сервисы
Service = "-zz-network"     # Prevents execution of zz-network service, which
                            # prints useful network configuration info.
Service = "-zz-sys"         # Prevents execution of zz-sys service, which
                            # prints useful system configuration info.
Service = "-eximstats"      # Prevents execution of eximstats service, which
                            # is a wrapper for the eximstats program.
# If you only cared about FTP messages, you could use these 2 lines
# instead of the above:
#Service = ftpd-messages   # Processes ftpd messages in /var/log/messages
#Service = ftpd-xferlog    # Processes ftpd messages in /var/log/xferlog
# Maybe you only wanted reports on PAM messages, then you would use:
#Service = pam_pwdb        # PAM_pwdb messages - usually quite a bit
#Service = pam             # General PAM messages... usually not many

# Аналогично, можно читать только определенные лог-файлы
#LogFile = messages
# например только /var/log/messages.

# Почтовая программа по умолчанию. Обычно используется
# sendmail или просто mail
mailer = "/usr/bin/mail"

#
# Собирать логи только с этого хоста. Имеет смысл, если на машине
# хранятся не только ее собственные логи
#HostLimit = Yes
</pre>
<p>После чего в crontab добавляется строчка:</p>
<pre lang="bash">
30      4       *       *       *       root    /usr/local/sbin/logwatch.pl
</pre>
<p>Которая будет запускать скрипт раз в сутки, и админу на мыло будет капать суточный отчет. Стоит отметить, что программа не анализирует изменения в файле, а только сам файл, и потому если логи не ротируются, то со временем отчет может разрастаться за счет старых записей. Один из методов борьбы с этим &#8211; настройка ротации логов с помощью newsyslog. Способ прост до безобразия &#8211; открываем /etc/newsyslog.conf и смотрим:</p>
<pre lang="bash">
# comments by fr33man
# 24.11.2006

# лог-файл -- абсолютный путь к файлу, с которым будем работать.
# [владелец:группа] -- необязательный параметр, который указывает newsyslog'у
# кто должен являться владельцом данного лог файла
# права -- права, которые должны быть на файле
# кол-во -- максимальное количество заархивированных лог файлов.
# когда -- время, через которое архивировать лог-файл.
# флаги -- некоторые параметры, для лог-файлов:
# B - по умолчанию, newsyslog добавляет в новый лог-файл сообщение о том, что
# лог-файл был ротирован, но если лог-файл бинарный, то это сообщение испортит лог,
# с параметром B newsyslog не будет добавлятьт никаких сообщений в лог
# C - если лог-файл не существует, то его необходимо создать.
# G - если указан данный флаг, то в названии лог-файла можно
# использовать стандартные шаблоны(например *)
# J - сжимать лог-файл, используя bzip2
# N - Не предупреждать никакой процесс, о ротации лог-файла
# W - если используете флаги Z или J, то newsyslog должен подождать,
# пока заверщиться процесс архивации.
# Z - сжимать лог, использую gzip.
# logfilename          [owner:group]    mode count size when  flags [/pid_file] [sig_num]
/var/log/all.log                        600  3     *    @T00  J
/var/log/amd.log                        644  3     100  *     J
/var/log/auth.log                       600  3     100  *     JC
/var/log/console.log                    600  5     100  *     J
/var/log/cron                           600  3     100  *     JC
/var/log/daily.log                      640  3     *    @T00  JN
/var/log/debug.log                      600  3     100  *     JC
/var/log/kerberos.log                   600  3     100  *     J
/var/log/lpd-errs                       644  3     100  *     JC
/var/log/maillog                        640  5     *    @T00  JC
/var/log/messages                       644  5     100  *     JC
/var/log/monthly.log                    640  4     *    $M1D0 JN
/var/log/pflog                          600  3     100  *     JB    /var/run/pflogd.pid
/var/log/ppp.log        root:network    640  3     100  *     JC
/var/log/security                       600  4     100  *     JC
/var/log/sendmail.st                    640  4     *    168   B
/var/log/slip.log       root:network    640  3     100  *     JC
/var/log/weekly.log                     640  5     1    $W6D0 JN
/var/log/wtmp                           644  3     *    @01T05 B
/var/log/xferlog                        600  3     100  *     JC
/var/log/cvsup.log                      664  2    *    24    -
/var/log/cvsupd.log                     664  2    *    24    Z
/var/log/mpd.log                        644  5     100 24    JC
/var/log/stargazer.log                  644  10    100 24    JC
/var/log/ntp.log                        644  2     100 24    JC
/var/log/snmpd.log                      644  3     100 24    JC
/var/log/ups.log                        644  5     100 24    JC
/var/log/smartd.log                     644  5     100 24    JC
</pre>
<p>После чего запускаем newsyslog (первый раз его работа может занять продолжительно время) и смотрим на причесанные лог-файлы. Надеюсь теперь исчезнет проблема, при которой лог того же mpd за пару-тройку месяцев работы разрастался до неприличных размеров в несколько мегабайт:</p>
<pre lang="bash">
snake@snake [logwatch]#ls /var/log
drwxr-xr-x  11 root   wheel      3072  4 мар 12:00 .
drwxr-xr-x  28 root   wheel       512 22 фев 06:41 ..
drwxr-xr-x   2 root   wheel       512 17 май  2009 ConsoleKit
-rw-r--r--   1 root   wheel        62  4 мар 12:16 alias.log
-rw-------   1 root   wheel     84044  4 мар 10:31 auth.log
-rw-------   1 root   wheel      8303 10 сен 19:00 auth.log.0.bz2
-rw-------   1 root   wheel     23230  4 мар 12:22 cron
-rw-------   1 root   wheel      5334  4 мар 05:00 cron.0.bz2
drwxr-xr-x   2 root   wheel       512 31 янв 12:56 cups
-rw-------   1 root   wheel     34729 21 фев 20:42 debug.log
-rw-------   1 root   wheel     34569  4 мар 03:05 dmesg.today
-rw-------   1 root   wheel     44774  3 мар 03:05 dmesg.yesterday
drwxr-xr-x   2 www    www         512 18 фев 16:42 httpd
-rw-------   1 root   wheel      3523  4 мар 03:05 ipfw.today
-rw-------   1 root   wheel      3519  3 мар 03:05 ipfw.yesterday
-rw-r--r--   1 root   wheel     28056  4 мар 10:30 lastlog
drwxr-xr-x   2 root   wheel       512  2 мар 16:10 logwatch
-rw-r--r--   1 root   wheel        67 12 апр  2009 lpd-errs
-rw-r-----   1 root   wheel     19952  4 мар 11:49 maillog
-rw-r-----   1 root   wheel      1111  4 мар 00:00 maillog.0.bz2
-rw-r-----   1 root   wheel      1494  3 мар 00:00 maillog.1.bz2
-rw-r--r--   1 root   wheel    195523  4 мар 12:23 messages
-rw-r--r--   1 root   wheel     10368  4 мар 12:00 messages.0.bz2
-rw-r--r--   1 root   wheel      8118  4 мар 11:00 messages.1.bz2
-rw-------   1 root   wheel       265 19 фев 03:04 mount.today
-rw-------   1 root   wheel       233 17 окт 03:04 mount.yesterday
-rw-r--r--   1 root   wheel     13020  4 мар 12:16 mpd.log
-rw-r--r--   1 root   wheel      2731  4 мар 03:00 mpd.log.0.bz2
-rw-r--r--   1 root   wheel      1786  3 мар 03:00 mpd.log.1.bz2
-rw-r--r--   1 root   wheel        60  4 мар 03:00 ntp.log
-rw-r--r--   1 root   wheel       119  4 мар 03:00 ntp.log.0.bz2
-rw-r-----   1 root   wheel     43188  4 мар 11:50 proftpd-error.log
drwxr-xr-x   3 root   wheel       512  4 мар 11:52 samba
-rw-r--r--   1 root   wheel     22550 17 апр  2009 samba.log
-rw-------   1 root   wheel     92434  4 мар 12:21 security
-rw-------   1 root   wheel      8388 27 фев 22:00 security.0.bz2
-rw-------   1 root   wheel      7238 26 фев 00:00 security.1.bz2
-rw-r-----   1 root   wheel       728  4 мар 11:09 sendmail.st
-rw-r-----   1 root   wheel       728 26 фев 03:05 sendmail.st.0
-rw-------   1 root   wheel      4711  1 фев 03:04 setuid.today
-rw-------   1 root   wheel      4802  6 ноя 03:04 setuid.yesterday
-rw-r-----   1 root   network      67 12 апр  2009 slip.log
-rw-------   1 root   wheel      5638 18 фев 11:58 userlog
-rw-r--r--   1 root   wheel      2816  4 мар 11:50 wtmp
-rw-r--r--   1 root   wheel     13332  1 мар 00:02 wtmp.0
-rw-r--r--   1 root   wheel     11264  1 фев 01:16 wtmp.1
-rw-r--r--   1 root   wheel      7788 31 дек 20:05 wtmp.2
-rw-r--r--   1 root   wheel     10692 30 ноя 23:07 wtmp.3
-rw-------   1 root   wheel     29429  3 мар 11:06 xferlog
-rw-------   1 root   wheel     25010 13 янв 18:00 xferlog.0.bz2
</pre>
]]></content:encoded>
			<wfw:commentRss>http://hotfreebsd.ru/kontora-pishet-logwatch-newsyslog-i-drugie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Смена кодировки файла из Windows в FreeBSD при помощи iconv</title>
		<link>http://hotfreebsd.ru/smena-kodirovki-fajla-iz-windows-v-freebsd-pri-pomoshhi-iconv/</link>
		<comments>http://hotfreebsd.ru/smena-kodirovki-fajla-iz-windows-v-freebsd-pri-pomoshhi-iconv/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 04:08:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[iconv]]></category>
		<category><![CDATA[кодировка]]></category>

		<guid isPermaLink="false">http://hotfreebsd.ru/?p=318</guid>
		<description><![CDATA[Бывает, что из Windows системы закачивается текстовый файл в кодировке cp-1251, а локаль у нас koi8-r. Соответственно при открытии файла русские комментарии на прочитать. Переконвертировать файлик просто. iconv -f cp1251 -t koi8-r имя_исходного файла &#62; имя_конечного_файла Вот и все. на выходе получите кодировку koi8-r.]]></description>
			<content:encoded><![CDATA[<p>Бывает, что из Windows системы закачивается текстовый файл в кодировке cp-1251, а локаль у нас koi8-r. Соответственно при открытии файла русские комментарии на прочитать. Переконвертировать файлик просто.</p>
<pre lang="bash">iconv -f cp1251 -t koi8-r имя_исходного файла &gt; имя_конечного_файла</pre>
<p>Вот и все. на выходе получите кодировку koi8-r.</p>
]]></content:encoded>
			<wfw:commentRss>http://hotfreebsd.ru/smena-kodirovki-fajla-iz-windows-v-freebsd-pri-pomoshhi-iconv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Portaudit мониторинг уязвимостей в портах.</title>
		<link>http://hotfreebsd.ru/portaudit-monitoring-uyazvimostej-v-portax/</link>
		<comments>http://hotfreebsd.ru/portaudit-monitoring-uyazvimostej-v-portax/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 02:21:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Мониторинг FreeBSD]]></category>
		<category><![CDATA[Portaudit]]></category>
		<category><![CDATA[безопасность]]></category>
		<category><![CDATA[порты]]></category>

		<guid isPermaLink="false">http://hotfreebsd.ru/?p=315</guid>
		<description><![CDATA[Настоящей головной болью может стать попытка отслеживать уязвимости в ПО, которые вы установили на FreeBSD. Можно подписаться на разные рассылки (например freebsd-security-notifications) об обнаружении новых уязвимостей и читать их отбрасывая тонны ненужной информации, а можно просто поставить portaudit и он возьмет эту нудную, но такую важную работу на свои плечи. Portaudit будет каждый день проверять [...]]]></description>
			<content:encoded><![CDATA[<p>Настоящей головной болью может стать попытка отслеживать уязвимости в ПО, которые вы установили на FreeBSD. Можно подписаться на разные рассылки (например freebsd-security-notifications) об обнаружении новых уязвимостей и читать их отбрасывая тонны ненужной информации, а можно просто поставить <strong>portaudit</strong> и он возьмет эту нудную, но такую важную работу на свои плечи.</p>
<p><strong>Portaudit</strong> будет каждый день проверять появились ли уязвимости в используемых вами программах и присылать вам отчет на почту root.</p>
<p>Если вы эту почту не читаете, то зря, вот простой способ  как сделать<a href="../freebsd-perecylka-pochty-root-na-drugoj-adres/"> переcылку почты root на другой адрес</a></p>
<p>Итак, поехали! Эт не займет много времени.</p>
<p><span id="more-315"></span></p>
<pre lang="bash">cd /usr/ports/ports-mgmt/portaudit/ &amp;&amp; make install clean</pre>
<p>===&gt;  Vulnerability check disabled, database not found<br />
===&gt;  Extracting for portaudit-0.5.14<br />
===&gt;  Patching for portaudit-0.5.14<br />
===&gt;  Configuring for portaudit-0.5.14<br />
===&gt;  Building for portaudit-0.5.14<br />
===&gt;  Installing for portaudit-0.5.14<br />
===&gt;   Generating temporary packing list<br />
===&gt;  Checking if ports-mgmt/portaudit already installed</p>
<p>===&gt;  To check your installed ports for known vulnerabilities now, do:</p>
<p>/usr/local/sbin/portaudit -Fda</p>
<p>===&gt;   Compressing manual pages for portaudit-0.5.14<br />
===&gt;   Registering installation for portaudit-0.5.14<br />
===&gt;  Cleaning for portaudit-0.5.14</p>
<p>Установка очень быстрая <img src='http://hotfreebsd.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>А вот и подсказка. Для проверки установленных портов на известные уязвимости запустите</p>
<pre lang="bash"> /usr/local/sbin/portaudit -Fda</pre>
<p>Вот что у меня получилось на одном тестовом сервере.</p>
<pre lang="bash"> /usr/local/sbin/portaudit -Fda
auditfile.tbz                                 100% of   59 kB   15 kBps
New database installed.
Database created: среда,  3 февраля 2010 г. 10:05:02 

Affected package: squid-2.7.6_1
Type of problem: squid -- Denial of Service vulnerability in DNS handling.
Reference: 

Affected package: php5-5.2.10
Type of problem: php -- multiple vulnerabilities.
Reference: 

Affected package: libtool-2.2.6a
Type of problem: libtool -- Library Search Path Privilege Escalation Issue.
Reference: 

Affected package: libvorbis-1.2.3,3
Type of problem: libvorbis -- multiple vulnerabilities.
Reference: 

Affected package: cacti-0.8.7e
Type of problem: cacti -- cross-site scripting issues.
Reference: 

Affected package: gd-2.0.35,1
Type of problem: gd -- '_gdGetColors' remote buffer overflow vulnerability.
Reference: 

Affected package: php5-gd-5.2.10
Type of problem: gd -- '_gdGetColors' remote buffer overflow vulnerability.
Reference: 

Affected package: php5-5.2.10
Type of problem: php5 -- Multiple security issues.
Reference: 

Affected package: apache-2.2.11_4
Type of problem: apache22 -- several vulnerability.
Reference: 

Affected package: ruby-1.8.7.72_1,1
Type of problem: ruby -- BigDecimal denial of service vulnerability.
Reference: 

Affected package: apache-2.2.11_4
Type of problem: apr -- multiple vulnerabilities.
Reference: 

11 problem(s) in your installed packages found.

You are advised to update or deinstall the affected package(s) immediately.</pre>
<p>Программа скачала мелкий файлик (нужно подключение к интернету). И нашел в моем случае 11 уязвимых программ. А уж дальше вы сами принимаете решение о том, что обновлять и как быстро.</p>
<p>Ключи при запуске Portaudit:</p>
<p>-F &#8211; скачать актуальную базу уязвимостей с сайта freebsd<br />
-d &#8211; вывести дату использованной базы в отчете<br />
-a &#8211; вывести отчет и проверить все установленные пакеты<br />
-X дней &#8211; закачать новую базу данных тогда,  когда локальная будет старше указанного количества дней<br />
pkg_name &#8211; проверить наличие уязвимостей для пакета pkg_name</p>
<p>Есть и другие ключи &#8211; читайте man, для основной работы хватит знания этих <img src='http://hotfreebsd.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . ИМХО.</p>
<p>Так же отчет будет включаться в почту. У меня включается без дополнительной настройки.</p>
<p>Если не знаете, как обновить установленное ПО, то советую прочитать про <a href="../ispolzovanie-portupgrade-dlya-obnovleniya-ustanovlennyx-iz-portov-programm/">использование portupgrade для обновления установленных из портов программ.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://hotfreebsd.ru/portaudit-monitoring-uyazvimostej-v-portax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FreeBSD переcылка почты root на другой адрес.</title>
		<link>http://hotfreebsd.ru/freebsd-perecylka-pochty-root-na-drugoj-adres/</link>
		<comments>http://hotfreebsd.ru/freebsd-perecylka-pochty-root-na-drugoj-adres/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 02:34:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Мониторинг FreeBSD]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[пересылка]]></category>
		<category><![CDATA[почта]]></category>

		<guid isPermaLink="false">http://hotfreebsd.ru/?p=310</guid>
		<description><![CDATA[Вопрос вроде и простой до смешного, но осветить нужно. Ведь не каждый день заходим в консоль и читаем почту root. Так что настроим пересылку и будем получать всю почту для пользователя root. Правим файл ee /etc/aliases добавим строку root: alert@hotfreebsd.ru Адрес электронной почты естественно нужно указать свой . Сохраняем изменения и даем команду в консоли [...]]]></description>
			<content:encoded><![CDATA[<p>Вопрос вроде и простой до смешного, но осветить нужно. Ведь не каждый день заходим в консоль и читаем почту root.</p>
<p>Так что настроим пересылку и будем получать всю почту для пользователя root.</p>
<p><span id="more-310"></span>Правим файл</p>
<pre lang="bash">ee /etc/aliases</pre>
<p>добавим строку</p>
<pre lang="bash">root: alert@hotfreebsd.ru</pre>
<p>Адрес электронной почты естественно нужно указать свой <img src='http://hotfreebsd.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Сохраняем изменения</p>
<p>и даем команду в консоли</p>
<pre lang="bash">newaliases</pre>
<p>Можно проверить работу пересылки сразу. Давайте пришлем файл /etc/fstab на мыло root.</p>
<pre lang="bash">cat /etc/fstab | mail -s Testmail  root</pre>
<p>и проверяем почту которую указали выше.</p>
<p>Вот и все. Пересылка  почты root на другой адрес настроена и работает.</p>
]]></content:encoded>
			<wfw:commentRss>http://hotfreebsd.ru/freebsd-perecylka-pochty-root-na-drugoj-adres/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Каждому по потребностям &#8211; шейпинг трафика при помощи IPFW</title>
		<link>http://hotfreebsd.ru/kazhdomu-po-potrebnostyam-shejping-trafika-pri-pomoshhi-ipfw/</link>
		<comments>http://hotfreebsd.ru/kazhdomu-po-potrebnostyam-shejping-trafika-pri-pomoshhi-ipfw/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 03:59:37 +0000</pubDate>
		<dc:creator>Snake</dc:creator>
				<category><![CDATA[Новости]]></category>
		<category><![CDATA[ipfw]]></category>
		<category><![CDATA[mpd]]></category>
		<category><![CDATA[shaping]]></category>

		<guid isPermaLink="false">http://hotfreebsd.ru/?p=306</guid>
		<description><![CDATA[Исходные данные: FreeBSD 7.2, IPFW, MPD4.3. две ADSL линии. Задача &#8211; раздавать интернет пользователям &#8211; у каждой группы пользователей свой канал. Итак, настраиваем mpd. В /usr/local/etc/mpd4 нас интересуют два файла: snake@snake [mpd4]#ls -al total 118 drwxr-xr-x 2 root wheel 512 16 окт 22:57 . drwxr-xr-x 24 root wheel 1536 18 окт 20:53 .. -rw-r--r-- 1 [...]]]></description>
			<content:encoded><![CDATA[<p>Исходные данные: FreeBSD 7.2, IPFW, MPD4.3. две ADSL линии.<br />
Задача &#8211; раздавать интернет пользователям &#8211; у каждой группы пользователей свой канал.<br />
<span id="more-306"></span><br />
Итак, настраиваем mpd. В /usr/local/etc/mpd4 нас интересуют два файла:</p>
<pre lang="bash">
snake@snake [mpd4]#ls -al
total 118
drwxr-xr-x   2 root   wheel    512 16 окт 22:57 .
drwxr-xr-x  24 root   wheel   1536 18 окт 20:53 ..
-rw-r--r--   1 snake  snake   2799 19 сен 00:33 mpd.conf
-rw-r--r--   1 snake  snake    638 17 сен 23:14 mpd.links
</pre>
<p>Содержимое mpd.conf:</p>
<pre lang="bash">
startup:
        # configure the console
        set console port 5005
        set console ip 127.0.0.1
        set console user user test
        set console open

default:
        load vtk_unlim
        load vtk_unlim2

vtk_unlim:
        new -i ng0 pppoe_vtk pppoe_vtk #имя соединения в mpd.links
        set iface route default #установить соединение маршрутом по умолчанию
        set iface disable on-demand
        set iface idle 0
        set ipcp yes vjcomp
        set ipcp ranges 0.0.0.0/0 0.0.0.0/0
        set bundle disable multilink
        set auth authname mylogin
        set auth password MyPaSsWoRd
        set link no acfcomp protocomp
        set link disable pap chap#настройки шифрования
        set link accept chap
        set link mtu 1400 #настройка MTU
        set link keep-alive 10 60
        set link max redial 0 #число попыток реконнекта
        set bundle disable noretry #перезванивать при обрыве
        set iface up-script /usr/local/etc/mpd4/up #скрипт, выполняющийся при установке соединения
        open

vtk_unlim2:
        new -i ng1 pppoe_vtk2 pppoe_vtk2
        set iface route default
        set iface disable on-demand
        set iface idle 0
        set ipcp yes vjcomp
        set ipcp ranges 0.0.0.0/0 0.0.0.0/0
        set bundle disable multilink
        set auth authname mylogin2
        set auth password mYpAsSwOrD
        set link no acfcomp protocomp
        set link disable pap chap
        set link accept chap
        set link mtu 1400
        set link keep-alive 10 60
        set link max redial 0
        set bundle disable noretry
        set iface up-script /usr/local/etc/mpd4/up2
        open
</pre>
<p>Содержимое скриптов запуска:</p>
<pre lang="bash">
#!/bin/sh
out_if="-interface ng0"
route delete default
route add default $out_if
</pre>
<p>Скрипт назначает наш pppoe канал маршрутом по умолчанию как для самого сервера, так и для клиентов</p>
<p>Скрипт up2:</p>
<pre lang="bash">
#!/bin/sh
out_if="-interface ng1"
setfib 1 route add -net default $out_if
gw=`ifconfig ng1 | grep "inet" | cut -d " " -f 4`
host=`ifconfig ng1 | grep "inet" | cut -d " " -f 2`
fw="/sbin/ipfw -q"
users2=`cat /usr/local/etc/rc.fire.new | grep "users2=" | cut -d "=" -f 2`
num=`ipfw show | grep "fwd" | cut -d " " -f 1`
/usr/local/etc/rc.d/natd.sh
$fw delete $num
$fw add $num fwd $gw ip from $host to any
</pre>
<p>Суть этого скрипта в том, что он выдирает из вывода ifconfig текущие шлюз и ip (т.к. на втором соединении ип динамический) и добавляет эти значения в правило ipfw, обеспечивающее прохождение трафика. Подробней про эти правила будет ниже.</p>
<p>Файл mpd.links:</p>
<pre lang="bash">
pppoe_vtk:
    set link type pppoe # Тип соединения PPPoE
    set pppoe iface em1 #Интерфейс, на котором создается pppoe соединение
    set pppoe service ""
    set pppoe disable incoming #запрещаем входящие соединения
    set pppoe enable originate

pppoe_vtk2:
    set link type pppoe
    set pppoe iface fxp0
    set pppoe service ""
    set pppoe disable incoming
    set pppoe enable originate
</pre>
<p>mpd настроен. При запуске он должен автоматически поднять соединения и мы увидим нечто вроде этого:</p>
<pre lang="bash">
ng0: flags=88d1 metric 0 mtu 1400
        inet 85.15.66.66 --&gt; 85.15.64.119 netmask 0xffffffff
ng1: flags=88d1 metric 0 mtu 1400
        inet 85.15.81.133 --&gt; 85.15.80.1 netmask 0xffffffff
</pre>
<p>Не забудьте прописать в /etc/syslog.conf:</p>
<pre lang="bash">
!mpd
*.*                                             /var/log/mpd.log
</pre>
<p>Теперь займемся настройкой нат. Я использовал natd. Про свежевыпущенный ipfw nat скажу ниже</p>
<p>Прописываем в /etc/rc.conf следующее:</p>
<pre lang="bash">
snake@snake [mpd4]#cat /etc/rc.conf | grep natd
natd_enable="YES"
</pre>
<p>далее создаем файлы конфигурации (в моем случае /etc/natd2.conf, /etc/natd3.conf):</p>
<pre lang="bash">
snake@snake [mpd4]#cat /etc/natd2.conf
# порт, на котором висит natd
port 8448
# интерфейс
interface ng0
# стараться не изменять порты
same_ports yes
# перенаправлять только трафик с адресом источника 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16.
unregistered_only yes
dynamic yes

# проброс портов для отдельных машин наружу
redirect_port tcp 10.12.51.24:51024 51024
redirect_port udp 10.12.51.24:51024 51024
redirect_port tcp 10.12.51.24:51025 51025
redirect_port udp 10.12.51.24:51025 51025
</pre>
<pre lang="bash">
snake@snake [mpd4]#cat /etc/natd3.conf
port 8558
interface ng1
same_ports yes
unregistered_only yes
dynamic yes
redirect_port tcp 10.12.51.118:31027 31027
redirect_port udp 10.12.51.118:31027 31027
</pre>
<p>создаем скрипт в /usr/local/etc/rc.d</p>
<pre lang="bash">
snake@snake [mpd4]#cat /usr/local/etc/rc.d/natd.sh
#!/bin/sh
/sbin/natd -f /etc/natd2.conf
/sbin/natd -f /etc/natd3.conf
</pre>
<p>Запускаем, смотрим: в sockstat должно быть что-то такое:</p>
<pre lang="bash">
snake@snake [mpd4]#sockstat -l4 | grep natd
root     natd       1033  4  div4   *:8558                *:*
root     natd       1031  4  div4   *:8448                *:*
</pre>
<p>Теперь приступим к самой ответственной части &#8211; а именно настройке фаервола <img src='http://hotfreebsd.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Тут я приведу конфиг полностью, с пояснениями и комментариями</p>
<pre lang="bash">
#Создаем каналы-пайпы. Труба одна для каждой группы пользователей
$fw pipe 100 config bw $downi queue 50
$fw pipe 200 config bw $upi   queue 50
$fw pipe 300 config bw $downi queue 50
$fw pipe 400 config bw $up2 queue 50
$fw pipe 500 config bw $downvtk queue 50
$fw pipe 600 config bw $upvtk queue 50
#-----------------------------------

#Очереди трафика (подробнее смотрим man ipfw) именно они обеспечивают справедливое распределение канала между пользователями
#inet --&gt; LAN
$fw queue 101 config weight $tcp2w queue 50 pipe 100 gred 0.002/10/35/0.1 mask dst-ip 0xffffffff
$fw queue 102 config weight $tcp1w queue 50 pipe 100 gred 0.002/10/35/0.1 mask dst-ip 0xffffffff

#LAN --&gt; inet
$fw queue 201 config weight $tcp2w queue 50 pipe 200 gred 0.002/10/35/0.1 mask src-ip 0xffffffff
$fw queue 202 config weight $tcp1w queue 50 pipe 200 gred 0.002/10/35/0.1 mask src-ip 0xffffffff

#inet --&gt; LAN
$fw queue 301 config weight $tcp1w queue 50 pipe 300 gred 0.002/10/35/0.1 mask dst-ip 0xffffffff

#LAN --&gt; inet
$fw queue 401 config weight $tcp1w queue 50 pipe 400 gred 0.002/10/35/0.1 mask src-ip 0xffffffff

#VTK --&gt; LAN
$fw queue 501 config weight $tcp2w queue 50 pipe 500 gred 0.002/10/35/0.1 mask dst-ip 0xffffffff

#LAN --&gt; VTK
$fw queue 601 config weight $tcp2w queue 50 pipe 600 gred 0.002/10/35/0.1 mask src-ip 0xffffffff
#-----------------------------------
#Настройки ядерного NAT. У меня нормально так и не заработал, но может у вас получится <img src='http://hotfreebsd.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Для более подробного изучения советую ознакомиться вот с <a href="http://www.lissyara.su/?id=1967" target='_blank'>этой</a> статьей
$fw nat 300 config log if $wan same_ports deny_in
#-----------------------------------
#Selfcare &amp; service
##loopback
# разрешаем ходить локалхост трафику, но только в пределах интерфейса loopback
$fwa 01000 allow ip from any to any via lo0
$fwa 01010 deny ip from any to 127.0.0.0/8
$fwa 01020 deny ip from 127.0.0.0/8 to any
#-----------------------------------
##Deny networks
# Запрещаем частные подсети на внешних интерфейсах
$fwa 1200 deny log ip from 10.0.0.0/8 to me in via $inet
$fwa 1210 deny log ip from any to 10.0.0.0/8 out via $inet
$fwa 1220 deny log ip from 172.16.0.0/12 to any in via $inet
$fwa 1230 deny log ip from any to 172.16.0.0/12 out via $inet
$fwa 1240 deny log ip from 192.168.0.0/16 to any in via $inet
$fwa 1250 deny log ip from any to 192.168.0.0/16 out via $inet

$fwa 1205 deny log ip from 10.0.0.0/8 to any in via $inet2
$fwa 1215 deny log ip from any to 10.0.0.0/8 out via $inet2
$fwa 1225 deny log ip from 172.16.0.0/12 to any in via $inet2
$fwa 1235 deny log ip from any to 172.16.0.0/12 out via $inet2
$fwa 1245 deny log ip from 192.168.0.0/16 to any in via $inet2
$fwa 1255 deny log ip from any to 192.168.0.0/16 out via $inet2

#-----------------------------------
#Allowing connetctions
#-----------------------------------
##Intranet connections
# Разрешаем соединение с сервером из локалки
$fwa 02100 allow ip from $hostel to $iplan $usr_ports in via $lan
$fwa 02110 allow ip from me to $hostel out via $lan
$fwa 02115 allow ip from me to $hostel out via $vlan
#-----------------------------------
##DNS (разрешаем связь с DNS серверами прова и доступ к DNS-серверу на машине из локальной сети
$fwa 02310 allow udp from me to $vtk_dns out
$fwa 02320 allow udp from $vtk_dns to me in
$fwa 02330 allow udp from $hostel to $iplan 53 in via $lan
$fwa 02340 allow udp from $iplan 53 to $hostel out via $lan
$fwa 02350 deny udp from $hostel to $vtk_dns in via $lan
$fwa 02360 deny udp from $hostel to $vtk_dns in via $vlan
$fwa 02370 deny udp from $vtk_dns to $hostel out via $lan
$fwa 02380 deny udp from $vtk_dns to $hostel out via $vlan
#-----------------------------------
# Ради чего все затевалось - разрешаем пользователям из локалки доступ вовне
$fwa 03141 allow ip from "table(1)"  to not me in via $lan
$fwa 03142 allow ip from "table(1)" to not me in via $vlan
$fwa 03143 allow ip from not me to "table(1)" out via $lan
$fwa 03144 allow ip from not me to "table(1)" out via $vlan
#-----------------------------------

#NAT &amp; queues
##Outcoming queues (исходящие очереди)
#Настройка очередей. Трафик сервера идет отдельной очередью
$fwa 05010 queue 201 ip from me to any out via $inet
$fwa 05020 queue 202 ip from $users to any out via $inet
$fwa 05030 queue 401 ip from $users2 to any out via $inet2
$fwa 05040 queue 601 ip from any to $vtk out via $wan
#-----------------------------------
##NAT
#Заворачиваем трафик от разных групп на разные natd
$fwa 07200 divert 8448 ip from $users to any out via $inet
$fwa 07250 divert 8448 ip from any to me in via $inet
$fwa 07100 divert 8558 ip from $users2 to any out via $inet2
#Говорим фаерволу, что трафик второй группы нужно пускать через другой шлюз. Именно это правило мы меняем, когда mpd делает реконнект
$fwa 07130 fwd 85.15.78.1 ip from 85.15.79.239 to any
$fwa 07150 divert 8558 ip from any to me in via $inet2
# тот самый ядерный nat. оставил для примера <img src='http://hotfreebsd.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
$fwa 07400 nat 300 ip from any to any via $wan
#----------------------------------
##Incoming queues (входящие очереди)
$fwa 08010 queue 101 ip from any to me in via $inet
$fwa 08020 queue 102 ip from any to $users in via $inet
$fwa 08030 queue 301 ip from any to $users2 in via $inet2
$fwa 08040 queue 501 ip from $vtk to any in via $wan
#-----------------------------------
#Allowing connections
##Outcoming allowers (разрешающие правила для соединений)
$fwa 09000 allow ip from $users to $vtk out via $wan
$fwa 09010 allow ip from me to $vtk out via $wan
$fwa 09023 allow ip from me 12553 to any out via $inet
$fwa 09034 allow ip from me 12554 to any out via $inet
$fwa 09040 allow ip from $users to any out via $inet
$fwa 09050 allow ip from $users2 to any out via $inet2
$fwa 09060 allow ip from me to any out via $inet
$fwa 09070 allow ip from me to any out via $inet2
#----------------------------------
##Incoming allowers
$fwa 09100 allow ip from $vtk to $users in via $wan
$fwa 09110 allow ip from $vtk to me in via $wan
$fwa 09120 allow ip from any to $users in via $inet
$fwa 09130 allow ip from any to $users2 in via $inet2
$fwa 09143 allow ip from any to me 12553 in via $inet
$fwa 09154 allow ip from any to me 12554 in via $inet
$fwa 09160 allow ip from any to me in via $inet
#$fwa 09700 allow ip from any to me in via $inet2
#----------------------------------
##ICMP
$fwa 50200 allow icmp from me to any
$fwa 50250 allow icmp from any to me
##Allow all outcoming
$fwa 60000 allow ip from me to any
</pre>
<p>На этом в общем-то все <img src='http://hotfreebsd.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  выставляем на клиентских машинах шлюзом по умолчанию наш сервер и радуемся &#8211; инет должен работать</p>
]]></content:encoded>
			<wfw:commentRss>http://hotfreebsd.ru/kazhdomu-po-potrebnostyam-shejping-trafika-pri-pomoshhi-ipfw/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

