<?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; &nbsp;*nix</title>
	<atom:link href="http://avz.org.ua/wp/category/tips-and-tricks/nix/feed/" rel="self" type="application/rss+xml" />
	<link>http://avz.org.ua/wp</link>
	<description>Заметки о Linux и прочие полезные howto</description>
	<lastBuildDate>Fri, 30 Jul 2010 18:37:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>PuTTY: делаем Windows полезным</title>
		<link>http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/</link>
		<comments>http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 16:14:06 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=840</guid>
		<description><![CDATA[В данной статье будет описано как строить SSH-туннели с помощью PuTTY. 1. Локальный проброс порта Рассмотрим следующую ситуацию. Мы находимся внутри корпоративной сети, у нашего компьютера адрес 192.168.0.2, доступ во внешний мир полностью закрыт (то есть никакого NAT-а, proxy и т.п.). Влиять на политику ограничения доступа у нас возможности нет, но зато есть SSH-доступ на [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/07/21/useful-windows-command/' rel='bookmark' title='Permanent Link: Полезные команды windows'>Полезные команды windows</a> <small>Ниже приведены некоторые полезные для системных администраторов команды, которые можно использовать в .bat-файлах и различных скриптах для автоматизации. Посмотреть ip-адреса...</small></li>
<li><a href='http://avz.org.ua/wp/2009/01/25/windows-syslog/' rel='bookmark' title='Permanent Link: Remote syslog из Windows'>Remote syslog из Windows</a> <small>Для реализации сабжа можно использовать утилиту logger.exe. Пример: echo &quot;This is a test message&quot; | logger.exe -l 10.20.30.40 -m udp...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/04/win-pass-rese/' rel='bookmark' title='Permanent Link: Сброс пароля администратора в Windows'>Сброс пароля администратора в Windows</a> <small>&ndash; Кто такой фармацевт? &ndash; Это тот, кто частенько форматирует диск С:\ Представим себе ситуацию, когда нам в админское хозяйство...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>В данной статье будет описано как строить SSH-туннели с помощью PuTTY.</p>
<h3>1. Локальный проброс порта</h3>
<p>Рассмотрим следующую ситуацию. Мы находимся внутри корпоративной сети, у нашего компьютера адрес 192.168.0.2, доступ во внешний мир полностью закрыт (то есть никакого NAT-а, proxy и т.п.). Влиять на политику ограничения доступа у нас возможности нет, но зато есть SSH-доступ на один из серверов с маршрутизируемым IP-адресом, который доступен из Интернет. Внутренний адрес этого сервера, пусть будет для примера 192.168.0.3. Структура сети изображена на рисунке:<br />
<a rel="attachment wp-att-866" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/schema/"><img class="aligncenter size-full wp-image-866" title="schema" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/schema.png" alt="Схема сети" width="364" height="322" /></a><br />
Предположим, что нам очень нужно подключиться, к примеру, по SSH на некоторый удалённый сервер с IP-адресом 212.212.212.212 где-то далеко в Интернет. Для этого запускаем PuTTY, создаём SSH-подключение к серверу 192.168.0.3 (далее по тексту SSH-сессия 1), идем в пункт Tunnels:<br />
<a href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/00-2/" rel="attachment wp-att-908"><img src="http://avz.org.ua/wp/wp-content/uploads/2010/06/00-540x257.png" alt="Local port forwarding" title="00" width="540" height="257" class="aligncenter size-large wp-image-908" /></a><br />
и указываем, что локальный порт 2222 нашего компьютера должен быть поставлен в соответствие порту 22 на сервере с IP-адресом 212.212.212.212. Далее жмем кнопку &laquo;Open&raquo;, авторизуемся на сервере 192.168.0.3. Затем создаём ещё одно подключение (далее по тексту SSH-сессия 2), но уже на localhost, порт 2222 и жмём кнопку &laquo;Open&raquo;:<a rel="attachment wp-att-880" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/attachment/02/"><img class="aligncenter size-thumbnail wp-image-880" title="02" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/02-300x286.png " alt="Окно создания нового подключения" width="300" height="286" /></a>В результате SSH-сессия 2 будет туннелироваться (т.е. будет установлена внутри ранее установленной SSH-сессии 1). Для удалённого сервера 212.212.212.212 всё будет выглядеть так, как будто к нему подключается 111.111.111.111:<br />
<a rel="attachment wp-att-875" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/schema1/"><img class="aligncenter size-full wp-image-875" title="schema1" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/schema1.png" alt="Схема подключения через SSH-туннель" width="563" height="435" /></a></p>
<h3>2. Удалённый проброс порта</h3>
<p>В этом случае подключение внутри SSH-туннеля устанавливается в другую сторону&nbsp;–&nbsp;от удаленного сервера на наш локальный компьютер. Может быть полезно, если требуется открыть доступ к локальным сервисам нашего компьютера. Рассмотрим ту же сеть, что и в пункте 1, но для простоты предположим, что теперь у нас есть NAT:<br />
<a rel="attachment wp-att-887" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/schema_remote/"><img class="aligncenter size-full wp-image-887" title="schema_remote" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/schema_remote.png" alt="Локальная сеть с NAT, remote port forwarding" width="286" height="318" /></a><br />
Здесь уже у нас есть возможность подключаться через SSH напрямую к 212.212.212.212 благодаря наличию NAT-а. А вот 212.212.212.212 подключиться на 192.168.0.2 без специальных ухищрений, понятное дело, не сможет, т.к. 192.168.0.2 не подключен к Интернет непосредственно. Предположим, что пользователю, сидящему под X-ами на 212.212.212.212 нужно через remote desktop попасть на наш компьютер 192.168.0.2. Для этого в SSH-сеансе подключения с 192.168.0.2 на 212.212.212.212 нужно изменить настройки в разделе Tunnels следующим образом:<br />
<a rel="attachment wp-att-888" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/attachment/03/"><img class="aligncenter size-thumbnail wp-image-888" title="03" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/03-540x258.png" alt="Remote ssh port forwarding setup" width="540" height="258" /></a><br />
В результате после успешной авторизации на 212.212.212.212 можно увидеть следующее:</p>
<div class="geshi no bash">
<div class="head">#lsof -i -nP | grep 3333</div>
<ol>
<li class="li1">
<div class="de1">sshd &nbsp;<span class="nu0">18598</span> &nbsp; avz &nbsp; 11u &nbsp;IPv4 <span class="nu0">592868957</span> &nbsp; TCP <span class="nu0">127.0</span><span class="nu0">.0</span><span class="nu0">.1</span>:<span class="nu0">3333</span> <span class="br0">&#40;</span>LISTEN<span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>То есть sshd ожидает подключений на TCP-порт 3333, которые затем по SSH-туннелю будут перенаправлены на 192.168.0.2 порт 3389. И юзер сидящий за 212.212.212.212 сможет с помощью rdesktop увидеть наш рабочий стол:</p>
<p><a rel="attachment wp-att-891" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/schema_remote_tunnel/"><img class="aligncenter size-full wp-image-891" title="schema_remote_tunnel" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/schema_remote_tunnel.png" alt="Remote port forwarding via putty" width="387" height="381" /></a></p>
<h3>3. Socks-proxy</h3>
<p>В этом случае мы можем использовать сервер с SSH-демоном как промежуточный (proxy). Схема сети как в случае #1 (без NAT и штатных прокси):<br />
<a rel="attachment wp-att-896" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/socks_schema/"><img class="aligncenter size-full wp-image-896" title="socks_schema" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/socks_schema.png" alt="Схема сети" width="295" height="386" /></a><br />
Чтобы заставить PuTTY испольнять роль socks-прокси, нужно параметры SSH-сессии с 192.168.0.2 на 192.168.0.3 изменить следующим образом:<br />
<a rel="attachment wp-att-897" href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/attachment/04/"><img class="aligncenter" title="04" src="http://avz.org.ua/wp/wp-content/uploads/2010/06/04-540x258.png" alt="Dynamic" width="540" height="258" /></a>В результате после успешной авторизации со стороны клиента можно будет наблюдать следующее:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">C:\<span class="sy0">&gt;</span>netstat -ano <span class="sy0">|</span> <span class="kw2">find</span> <span class="st0">&quot;1080&quot;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; TCP &nbsp; &nbsp;<span class="nu0">127.0</span><span class="nu0">.0</span><span class="nu0">.1</span>:<span class="nu0">1080</span> &nbsp; &nbsp; <span class="nu0">0.0</span><span class="nu0">.0</span><span class="nu0">.0</span>:<span class="nu0">0</span> &nbsp; &nbsp; &nbsp;LISTENING &nbsp; &nbsp; &nbsp; <span class="nu0">2392</span></div>
</li>
<li class="li1">
<div class="de1">C:\<span class="sy0">&gt;</span>tasklist <span class="sy0">|</span> <span class="kw2">find</span> <span class="sy0">/</span>i <span class="st0">&quot;2392&quot;</span></div>
</li>
<li class="li1">
<div class="de1">putty.exe &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">2392</span> Console &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">0</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="nu0">5420</span> КБ</div>
</li>
</ol>
</div>
<p>То есть putty, выполняющийся с PID-ом 2392, начинает слушать порт 1080, ожидая подключений. Далее берем любое приложение, умеющее работать с SOCKS-прокси, например Firefox, и указываем ему использовать наш прокси:<br />
<a href="http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/firefox/" rel="attachment wp-att-919"><img src="http://avz.org.ua/wp/wp-content/uploads/2010/06/firefox.png" alt="Firefox proxy configuration dialog" title="firefox" width="579" height="472" class="aligncenter size-full wp-image-919" /></a>Теперь все запросы от броузера будут проходить через сервер 192.168.0.3. В логах веб-сайтов, по которым мы таким образом будем ходить, будет отображаться внешний IP-адрес нашего сервера &#8211; 111.111.111.111.</p>
<p>P.S. Из help-файла Putty 0.58:<br />
<cite>Question A.10.3: What does ‘PuTTY’ mean?<br />
It&#8217;s the name of a popular SSH and Telnet client. Any other meaning is in the eye of the beholder. It&#8217;s been rumoured that ‘PuTTY’ is the antonym of ‘getty’, or that it&#8217;s the stuff that makes your Windows useful&#8230;</cite> :)</p>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/07/21/useful-windows-command/' rel='bookmark' title='Permanent Link: Полезные команды windows'>Полезные команды windows</a> <small>Ниже приведены некоторые полезные для системных администраторов команды, которые можно использовать в .bat-файлах и различных скриптах для автоматизации. Посмотреть ip-адреса...</small></li>
<li><a href='http://avz.org.ua/wp/2009/01/25/windows-syslog/' rel='bookmark' title='Permanent Link: Remote syslog из Windows'>Remote syslog из Windows</a> <small>Для реализации сабжа можно использовать утилиту logger.exe. Пример: echo &quot;This is a test message&quot; | logger.exe -l 10.20.30.40 -m udp...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/04/win-pass-rese/' rel='bookmark' title='Permanent Link: Сброс пароля администратора в Windows'>Сброс пароля администратора в Windows</a> <small>&ndash; Кто такой фармацевт? &ndash; Это тот, кто частенько форматирует диск С:\ Представим себе ситуацию, когда нам в админское хозяйство...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/06/29/putty-how-to-make-your-windows-useful/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Программный RAID в Linux</title>
		<link>http://avz.org.ua/wp/2010/06/22/linux-software-raid/</link>
		<comments>http://avz.org.ua/wp/2010/06/22/linux-software-raid/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 08:33:22 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[raid]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=801</guid>
		<description><![CDATA[Есть программный RAID-массив уровня 1. Однажды сервер прислал письмо, что с RAID-ом проблемы: Date: Mon, 14 Jun 2010 11:18:44 +0300 From: mdadm monitoring &#60;root@some.server.org&#62; To: root@some.server.org Subject: DegradedArray event on /dev/md1:some.server.org This is an automatically generated mail message from mdadm running on some.server.org A DegradedArray event had been detected on md device /dev/md1. Faithfully yours, [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/02/02/linuxquotas/' rel='bookmark' title='Permanent Link: Дисковые квоты в Linux'>Дисковые квоты в Linux</a> <small>Включение дисковых квот в Linux. Взято с http://www.yolinux.com/TUTORIALS/LinuxTutorialQuotas.html Редактируем файл /etc/fstab, добавляя параметры &laquo;usrquota&raquo; и/или &laquo;grpquota&raquo; в строки для нужного...</small></li>
<li><a href='http://avz.org.ua/wp/2009/02/03/initrd-rebuild/' rel='bookmark' title='Permanent Link: Пересборка initrd'>Пересборка initrd</a> <small>Пример как пересобрать initrd для поддержки определенного железа. Взято с http://forums.fedoraforum.org/archive/index.php/t-138530.html. This problem on CentOS: http://www.centos.org/modules/newbb/viewtopic.php?topic_id=10855 I made it for...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/18/cd-burn-inlinux/' rel='bookmark' title='Permanent Link: Пишем CD/DVD-диски в linux'>Пишем CD/DVD-диски в linux</a> <small>Из консоли диски можно записывать программой cdrecord (она же wodim). Для доступа к приводу используется интерфейс SCSI GENERIC (sg). Работать...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Есть программный RAID-массив уровня 1. Однажды сервер прислал письмо, что с RAID-ом проблемы:</p>
<div style="font-style: italic">
Date: Mon, 14 Jun 2010 11:18:44 +0300<br />
From: mdadm monitoring &lt;root@some.server.org&gt;<br />
To: root@some.server.org<br />
Subject: DegradedArray event on /dev/md1:some.server.org</p>
<p>This is an automatically generated mail message from mdadm running on some.server.org<br />
A DegradedArray event had been detected on md device /dev/md1.<br />
Faithfully yours, etc.<br />
P.S. The /proc/mdstat file currently contains the following:<br />
Personalities : [raid1] [raid6] [raid5] [raid4] [raid0]<br />
md1 : active raid1 sdb1[0]<br />
      156288256 blocks [2/1] [U_]<br />
md0 : active raid1 sdc3[1] sda3[0]<br />
      4192896 blocks [2/2] [UU]<br />
unused devices: &lt;none&gt;</p></div>
<p>Здесь видно, что у массива md1 отвалился один из двух компонентов (знак подчеркивания вместо буквы U в /proc/mdstat). Через fdisk -l вычисляем имя второго компонента массива и видим, что на устройстве /dev/sdd вообще отсутствуют разделы:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># fdisk -l /dev/sdd</span></div>
</li>
<li class="li1">
<div class="de1">Диск <span class="sy0">/</span>dev<span class="sy0">/</span>sdd: <span class="nu0">160.0</span> ГБ, <span class="nu0">160041885696</span> байт</div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">255</span> heads, <span class="nu0">63</span> sectors<span class="sy0">/</span>track, <span class="nu0">19457</span> cylinders</div>
</li>
<li class="li1">
<div class="de1">Единицы = цилиндры по <span class="nu0">16065</span> <span class="sy0">*</span> <span class="nu0">512</span> = <span class="nu0">8225280</span> байт</div>
</li>
<li class="li1">
<div class="de1">На диске <span class="sy0">/</span>dev<span class="sy0">/</span>sdd отсутствует верная таблица разделов</div>
</li>
</ol>
</div>
<p>Для сравнения смотрим на второй диск массива:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># fdisk -l /dev/sdb</span></div>
</li>
<li class="li1">
<div class="de1">Диск <span class="sy0">/</span>dev<span class="sy0">/</span>sdb: <span class="nu0">160.0</span> ГБ, <span class="nu0">160041885696</span> байт</div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">255</span> heads, <span class="nu0">63</span> sectors<span class="sy0">/</span>track, <span class="nu0">19457</span> cylinders</div>
</li>
<li class="li1">
<div class="de1">Единицы = цилиндры по <span class="nu0">16065</span> <span class="sy0">*</span> <span class="nu0">512</span> = <span class="nu0">8225280</span> байт</div>
</li>
<li class="li1">
<div class="de1">Устр-во Загр &nbsp; Начало &nbsp; &nbsp;Конец &nbsp; &nbsp; &nbsp;Блоки &nbsp;Id &nbsp;Система</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>dev<span class="sy0">/</span>sdb1 &nbsp;<span class="sy0">*</span> &nbsp; &nbsp; &nbsp; &nbsp;<span class="nu0">1</span> &nbsp; &nbsp;<span class="nu0">19457</span> &nbsp;<span class="nu0">156288321</span> &nbsp;fd &nbsp;Автоопределение Linux raid</div>
</li>
</ol>
</div>
<p>Следовательно, нужно содать на sdd раздел типа &laquo;fd&raquo; (linux raid autodetect) и добавить этот раздел в массив.</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># fdisk /dev/sdd</span></div>
</li>
<li class="li1">
<div class="de1">Команда <span class="br0">&#40;</span>m для справки<span class="br0">&#41;</span>: n</div>
</li>
<li class="li1">
<div class="de1">Действие команды</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;e &nbsp; расширенный</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;p &nbsp; основной раздел <span class="br0">&#40;</span><span class="nu0">1</span><span class="nu0">-4</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">p</div>
</li>
<li class="li1">
<div class="de1">Номер раздела <span class="br0">&#40;</span><span class="nu0">1</span><span class="nu0">-4</span><span class="br0">&#41;</span>: <span class="nu0">1</span></div>
</li>
<li class="li1">
<div class="de1">Первый цилиндр <span class="br0">&#40;</span><span class="nu0">1</span><span class="nu0">-19457</span>, по умолчанию <span class="nu0">1</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">Используется значение по умолчанию <span class="nu0">1</span></div>
</li>
<li class="li1">
<div class="de1">Последний цилиндр или +<span class="kw2">size</span> или +sizeM или +sizeK <span class="br0">&#40;</span>по умолчанию <span class="nu0">19457</span><span class="br0">&#41;</span>:</div>
</li>
<li class="li1">
<div class="de1">Используется значение по умолчанию <span class="nu0">19457</span></div>
</li>
<li class="li1">
<div class="de1">Команда <span class="br0">&#40;</span>m для справки<span class="br0">&#41;</span>: t</div>
</li>
<li class="li1">
<div class="de1">Выбранный раздел <span class="nu0">1</span></div>
</li>
<li class="li1">
<div class="de1">Шестнадцатеричный код <span class="br0">&#40;</span>введите L для получения списка кодов<span class="br0">&#41;</span>: fd</div>
</li>
<li class="li1">
<div class="de1">Системный тип раздела <span class="nu0">1</span> изменен на fd <span class="br0">&#40;</span>Автоопределение Linux raid<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">Команда <span class="br0">&#40;</span>m для справки<span class="br0">&#41;</span>: <span class="kw2">w</span></div>
</li>
<li class="li1">
<div class="de1">Таблица разделов была изменена<span class="sy0">!</span></div>
</li>
<li class="li1">
<div class="de1">Вызывается ioctl<span class="br0">&#40;</span><span class="br0">&#41;</span> для перечитывания таблицы разделов.</div>
</li>
<li class="li1">
<div class="de1">Синхронизируются диски.</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span> ~<span class="br0">&#93;</span><span class="co0"># fdisk -l /dev/sdd</span></div>
</li>
<li class="li1">
<div class="de1">Диск <span class="sy0">/</span>dev<span class="sy0">/</span>sdd: <span class="nu0">160.0</span> ГБ, <span class="nu0">160041885696</span> байт</div>
</li>
<li class="li1">
<div class="de1"><span class="nu0">255</span> heads, <span class="nu0">63</span> sectors<span class="sy0">/</span>track, <span class="nu0">19457</span> cylinders</div>
</li>
<li class="li1">
<div class="de1">Единицы = цилиндры по <span class="nu0">16065</span> <span class="sy0">*</span> <span class="nu0">512</span> = <span class="nu0">8225280</span> байт</div>
</li>
<li class="li1">
<div class="de1">Устр-во Загр &nbsp; Начало &nbsp; &nbsp;Конец &nbsp; &nbsp; &nbsp;Блоки &nbsp;Id &nbsp;Система</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>dev<span class="sy0">/</span>sdd1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="nu0">1</span> &nbsp; &nbsp;<span class="nu0">19457</span> &nbsp;<span class="nu0">156288321</span> &nbsp;fd &nbsp;Автоопределение Linux raid</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># mdadm --manage /dev/md1 --add /dev/sdd1</span></div>
</li>
<li class="li1">
<div class="de1">mdadm: re-added <span class="sy0">/</span>dev<span class="sy0">/</span>sdd1</div>
</li>
</ol>
</div>
<p>Далее смотрим в /proc/mdstat и видим, что массив начал синхронизацию:</p>
<pre>
Personalities : [raid1] [raid6] [raid5] [raid4] [raid0]
md1 : active raid1 sdd1[2] sdb1[0]
  1562882 blocks [2/1] [U_]
  [===========&gt;...] recovery = 76% (1194268/1562882) finish=4.3min speed=42M/sec
</pre>
<p>А если один из компонентов массива переходит в статус &laquo;Failed&raquo;, то обычно помогает его ручное удаление из массива, а затем &ndash; добавление заново. Например:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># grep md1 /proc/mdstat -A 1</span></div>
</li>
<li class="li1">
<div class="de1">md1 : active raid1 sdb1<span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> sdd1<span class="br0">&#91;</span><span class="nu0">2</span><span class="br0">&#93;</span><span class="br0">&#40;</span>F<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; <span class="nu0">14659200</span> blocks <span class="br0">&#91;</span><span class="nu0">2</span><span class="sy0">/</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="br0">&#91;</span>_U<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># mdadm --manage /dev/md1 --remove /dev/sdd1</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>root<span class="sy0">@</span>~<span class="br0">&#93;</span><span class="co0"># mdadm --manage /dev/md1 --add /dev/sdd1</span></div>
</li>
</ol>
</div>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/02/02/linuxquotas/' rel='bookmark' title='Permanent Link: Дисковые квоты в Linux'>Дисковые квоты в Linux</a> <small>Включение дисковых квот в Linux. Взято с http://www.yolinux.com/TUTORIALS/LinuxTutorialQuotas.html Редактируем файл /etc/fstab, добавляя параметры &laquo;usrquota&raquo; и/или &laquo;grpquota&raquo; в строки для нужного...</small></li>
<li><a href='http://avz.org.ua/wp/2009/02/03/initrd-rebuild/' rel='bookmark' title='Permanent Link: Пересборка initrd'>Пересборка initrd</a> <small>Пример как пересобрать initrd для поддержки определенного железа. Взято с http://forums.fedoraforum.org/archive/index.php/t-138530.html. This problem on CentOS: http://www.centos.org/modules/newbb/viewtopic.php?topic_id=10855 I made it for...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/18/cd-burn-inlinux/' rel='bookmark' title='Permanent Link: Пишем CD/DVD-диски в linux'>Пишем CD/DVD-диски в linux</a> <small>Из консоли диски можно записывать программой cdrecord (она же wodim). Для доступа к приводу используется интерфейс SCSI GENERIC (sg). Работать...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/06/22/linux-software-raid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ограничение количества получателей в exim</title>
		<link>http://avz.org.ua/wp/2010/06/13/exim-limit-recepients-number/</link>
		<comments>http://avz.org.ua/wp/2010/06/13/exim-limit-recepients-number/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 08:46:47 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[Howto]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=774</guid>
		<description><![CDATA[Поскольку спамеры заинтересованы в отправке почты максимальному количеству получателей, они часто в одной SMTP-сессии передают множество команд &#171;RCPT TO&#187;. Так как нормальный юзер такое будет делать очень редко (если вообще будет), то очень полезно ограничить количество получателей для одного письма для минимизации распространения спама через почтовый сервер. Для этого в exim предусмотерна опция recipients_max, числовое [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/' rel='bookmark' title='Permanent Link: Раздаем права в samba по IP-адресу'>Раздаем права в samba по IP-адресу</a> <small>Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так,...</small></li>
<li><a href='http://avz.org.ua/wp/2009/07/04/bash-history-timestamp/' rel='bookmark' title='Permanent Link: История команд в bash с указанием даты и времени'>История команд в bash с указанием даты и времени</a> <small>Читая в очередной раз man по bash-у, наткнулся на интересную переменную оболочки, цитирую: HISTTIMEFORMAT If this variable is set and...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://avz.org.ua/wp/2010/06/13/exim-limit-recepients-number/spam-protection/" rel="attachment wp-att-779"><img src="http://avz.org.ua/wp/wp-content/uploads/2010/06/spam-protection-200x150.jpg" alt="" title="spam-protection" width="200" height="150" class="alignleft size-thumbnail wp-image-779" /></a>Поскольку спамеры заинтересованы в отправке почты максимальному количеству получателей, они часто в одной SMTP-сессии передают множество команд &laquo;RCPT TO&raquo;. Так как нормальный юзер такое будет делать очень редко (если вообще будет), то очень полезно ограничить количество получателей для одного письма для минимизации распространения спама через почтовый сервер. Для этого в exim предусмотерна опция <strong>recipients_max</strong>, числовое значение которой и устанавливает максимально допустимое число получателей одного письма. Если exim работает чисто как relay и не принимает почту для локальных доменов, то просто установки в exim.conf</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">recipients_max = <span class="nu0">10</span></div>
</li>
</ol>
</div>
<p>должно быть достаточно (число 10 взято для примера). В противном же случае, когда exim помимо relay-инга еще и является primary mx для некоторых доменов, использование <strong>recipients_max</strong> может вызвать проблемы, поскольку количество получателей для входящей почты также будет лимитироваться. Представим ситуацию, когда на сервере пару тысяч пользователей (обычное дело для провайдеров и freemail-сервисов) и 12 из них подписалось на одну и ту же полезную рассылку. При приведённой выше конфигурации почтовый сервер рассылки сможет доставить письмо только 10-ти из этих пользователей, а оставшиеся 2 пойдут пинать админа со словами &laquo;почему у меня не работает почта&raquo;. И вот чтобы всё было по фен-шую, нужно лимитировать количество получателей только для исходящих писем (когда сервер используется как relay). Для этого в блок списков контроля доступа, который соответствует acl_smtp_rcpt, нужно добавить следующее (так, чтобы новые правила были примерно 4-ым и 5-ым сверху если считать для exim.conf, который идет по-умолчанию):</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">defer condition = RELAY_RCPT_LIMIT_ENABLE</div>
</li>
<li class="li1">
<div class="de1">&nbsp; message = Too many recipients</div>
</li>
<li class="li1">
<div class="de1">&nbsp; condition = $<span class="br0">&#123;</span><span class="kw1">if</span> <span class="sy0">&gt;</span>=<span class="br0">&#123;</span><span class="re1">$recipients_count</span><span class="br0">&#125;</span><span class="br0">&#123;</span>RELAY_RCPT_LIMIT_NUM<span class="br0">&#125;</span> <span class="br0">&#123;</span><span class="kw2">yes</span><span class="br0">&#125;</span><span class="br0">&#123;</span>no<span class="br0">&#125;</span><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; hosts = +relay_from_hosts</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">!</span>authenticated = <span class="sy0">*</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">defer condition = RELAY_RCPT_LIMIT_ENABLE</div>
</li>
<li class="li1">
<div class="de1">&nbsp; message = Too many recipients</div>
</li>
<li class="li1">
<div class="de1">&nbsp; condition = $<span class="br0">&#123;</span><span class="kw1">if</span> <span class="sy0">&gt;</span>=<span class="br0">&#123;</span><span class="re1">$recipients_count</span><span class="br0">&#125;</span><span class="br0">&#123;</span>RELAY_RCPT_LIMIT_NUM<span class="br0">&#125;</span> <span class="br0">&#123;</span><span class="kw2">yes</span><span class="br0">&#125;</span><span class="br0">&#123;</span>no<span class="br0">&#125;</span><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">!</span>hosts = +relay_from_hosts</div>
</li>
<li class="li1">
<div class="de1">&nbsp; authenticated = <span class="sy0">*</span></div>
</li>
</ol>
</div>
<p>Ну и перед блоком <strong>&laquo;begin acl&raquo;</strong> определить две опции:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="co0"># Флаг, включающий или выключающий ограничения числа получателей</span></div>
</li>
<li class="li1">
<div class="de1">RELAY_RCPT_LIMIT_ENABLE = <span class="kw2">yes</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0"># Максимально допустимое число получателей в одном письме</span></div>
</li>
<li class="li1">
<div class="de1">RELAY_RCPT_LIMIT_NUM = <span class="nu0">10</span></div>
</li>
</ol>
</div>
<p>Первое условие будет срабатывать для хостов, которым разрешёно использовать почтовый сервер как relay, но которые не прошли аутентификацию. А второе &ndash; для хостов, которые прошли аутентификацию, но которым запрещен relay-инг без неё. А вот хосты, которые не могут использовать сервер как relay и которые НЕ прошли аутентификацию проверять не надо, поскольку они доставляют входящую почту на домены, для которых наш exim является primary MX. Четвёртый вариант (хосты, прошедшие аутентификацию и которым разрешён relay) также ограничивать смысла нет, так как обычно эти два множества не пересекаются.</p>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/' rel='bookmark' title='Permanent Link: Раздаем права в samba по IP-адресу'>Раздаем права в samba по IP-адресу</a> <small>Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так,...</small></li>
<li><a href='http://avz.org.ua/wp/2009/07/04/bash-history-timestamp/' rel='bookmark' title='Permanent Link: История команд в bash с указанием даты и времени'>История команд в bash с указанием даты и времени</a> <small>Читая в очередной раз man по bash-у, наткнулся на интересную переменную оболочки, цитирую: HISTTIMEFORMAT If this variable is set and...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/06/13/exim-limit-recepients-number/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Детальное логирование в Samba</title>
		<link>http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/</link>
		<comments>http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/#comments</comments>
		<pubDate>Fri, 05 Mar 2010 19:03:07 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[samba]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=687</guid>
		<description><![CDATA[Иногда ну очень нужно узнать кто же создал или удалил определенный файл с файлового сервера. Стандартный лог-файл, который Samba пишет при настройках по-умолчанию, не позволяет это сделать, так как в него пишутся только события подключения и отключения от общих ресурсов. Пример стандартного лог-файла: [2010/03/05 20:45:00, 1] smbd/service.c:make_connection_snum(1042) &#160; host44 (10.44.44.44) connect to service PUBLIC initially [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/' rel='bookmark' title='Permanent Link: Раздаем права в samba по IP-адресу'>Раздаем права в samba по IP-адресу</a> <small>Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так,...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
<li><a href='http://avz.org.ua/wp/2010/01/27/sed-trick/' rel='bookmark' title='Permanent Link: Штучки с sed-ом'>Штучки с sed-ом</a> <small>sed &ndash; это stream editor. Часто используется в скриптах для различных преобразований текста. Ниже приведено несколько типичных примеров. Удаление из...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img src="http://avz.org.ua/wp/wp-content/uploads/2010/03/magnifying-glass-200x150.jpg" alt="" title="magnifying-glass" width="200" height="150" class="pic" />Иногда ну очень нужно узнать кто же создал или удалил определенный файл с файлового сервера. Стандартный лог-файл, который Samba пишет при настройках по-умолчанию, не позволяет это сделать, так как в него пишутся только события подключения и отключения от общих ресурсов. Пример стандартного лог-файла:<br />
<br/></p>
<div class="geshi no text">
<ol>
<li class="li1">
<div class="de1">[2010/03/05 20:45:00, 1] smbd/service.c:make_connection_snum(1042)</div>
</li>
<li class="li1">
<div class="de1">&nbsp; host44 (10.44.44.44) connect to service PUBLIC initially as user vasya (uid=503, gid=501) (pid 27070)</div>
</li>
<li class="li1">
<div class="de1">[2010/03/05 20:47:34, 1] smbd/service.c:close_cnum(1239)</div>
</li>
<li class="li1">
<div class="de1">&nbsp; host44 (10.44.44.44) closed connection to service PUBLIC</div>
</li>
</ol>
</div>
<p>Чтобы лог-файл был более подробным, в <strong>smb.conf</strong> нужно добавить следующие строки:</p>
<div class="geshi text">
<ol>
<li class="li1">
<div class="de1">log level = 0 vfs:2</div>
</li>
<li class="li1">
<div class="de1">max log size = 0</div>
</li>
<li class="li1">
<div class="de1">syslog = 0</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">[PUBLIC]</div>
</li>
<li class="li1">
<div class="de1">&nbsp; comment = writeable folder</div>
</li>
<li class="li1">
<div class="de1">&nbsp; path = /var/spool/samba/public</div>
</li>
<li class="li1">
<div class="de1">&nbsp; valid users = @admins</div>
</li>
<li class="li1">
<div class="de1">&nbsp; public = yes</div>
</li>
<li class="li1">
<div class="de1">&nbsp; writable = yes</div>
</li>
<li class="li1">
<div class="de1">&nbsp; printable = no</div>
</li>
<li class="li1">
<div class="de1">&nbsp; vfs objects = full_audit</div>
</li>
<li class="li1">
<div class="de1">&nbsp; full_audit:prefix = %u|%I</div>
</li>
<li class="li1">
<div class="de1">&nbsp; full_audit:failure = none</div>
</li>
<li class="li1">
<div class="de1">&nbsp; full_audit:success = mkdir rmdir open read pread write pwrite sendfile rename unlink lock</div>
</li>
<li class="li1">
<div class="de1">&nbsp; full_audit:facility = local5</div>
</li>
<li class="li1">
<div class="de1">&nbsp; full_audit:priority = debug</div>
</li>
</ol>
</div>
<p>В параметрах шары все, что касается логирования, перечислено в строках 12-17. В 13-ой строке указываем префикс (логин и IP-адрес клиента). В 15-ой строке перечисляем операции, которые должны подвергаться аудиту (которые будут записываться в лог-файл). В 16-ой и 17-ой строках указываем параметры для syslog. Затем в <strong>/etc/syslog.conf</strong> добавляем строку</p>
<div class="geshi no text">
<ol>
<li class="li1">
<div class="de1">local5.debug &nbsp;-/var/log/samba/audit.log</div>
</li>
</ol>
</div>
<p>и посылаем syslog-у сигнал HUP чтобы тот перечитал свой конфиг. Знак минуса перед именем файла означает, что после каждой записи в файл не будет выполняться операция sync, а данные некоторое время будут находится в оперативной памяти в дисковом буфере. При большой интенсивности потока записей это уменьшает нагрузку на дисковую систему.</p>
<p>В результате в файле /var/log/samba/audit.log появляются примерно такие записи:</p>
<div class="geshi no text">
<ol>
<li class="li1">
<div class="de1">Mar 5 21:04:01 serv smbd_audit: vasya|10.44.44.44|pwrite|ok|dir1/somefile.exe</div>
</li>
<li class="li1">
<div class="de1">Mar 5 21:04:01 serv smbd_audit: ann|10.44.44.92|open|ok|r|dir2/infodept/database.txt</div>
</li>
<li class="li1">
<div class="de1">Mar 5 21:04:01 serv smbd_audit: editor|10.44.44.34|pread|ok|dir1/somefile.exe</div>
</li>
</ol>
</div>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/' rel='bookmark' title='Permanent Link: Раздаем права в samba по IP-адресу'>Раздаем права в samba по IP-адресу</a> <small>Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так,...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
<li><a href='http://avz.org.ua/wp/2010/01/27/sed-trick/' rel='bookmark' title='Permanent Link: Штучки с sed-ом'>Штучки с sed-ом</a> <small>sed &ndash; это stream editor. Часто используется в скриптах для различных преобразований текста. Ниже приведено несколько типичных примеров. Удаление из...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Раздаем права в samba по IP-адресу</title>
		<link>http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/</link>
		<comments>http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 21:19:58 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[samba]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=676</guid>
		<description><![CDATA[Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так, чтобы при подключении с 172.16.0.7 у него был доступ на запись в общий ресурс NashaShara, а при подключении с 172.16.0.13 &#8211; доступ только на чтение. Решается эта задача с помощью макро-подстановок (man 5 smb.conf, раздел [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/' rel='bookmark' title='Permanent Link: Детальное логирование в Samba'>Детальное логирование в Samba</a> <small>Иногда ну очень нужно узнать кто же создал или удалил определенный файл с файлового сервера. Стандартный лог-файл, который Samba пишет...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
<li><a href='http://avz.org.ua/wp/2010/01/23/wp-autospam-blocking/' rel='bookmark' title='Permanent Link: WordPress: борьба со спамом'>WordPress: борьба со спамом</a> <small>Посвящается тем, кого утомили тонны спама в комментариях, оставляемые с единственной целью &ndash; повесить ссылку на продвигаемый спамером сайт. Есть,...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так, чтобы при подключении с 172.16.0.7 у него был доступ на запись в общий ресурс NashaShara, а при подключении с 172.16.0.13 &ndash; доступ только на чтение. Решается эта задача с помощью макро-подстановок (man 5 smb.conf, раздел &laquo;VARIABLE SUBSTITUTIONS&raquo;) следующим образом:</p>
<ol>
<li>Создаем директорию /etc/samba/per-ip-configs</li>
<li>В директории /etc/samba/per-ip-configs создаем файл с именем 172.16.0.7.conf:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>NashaShara<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; comment = Read-Write access</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; path = <span class="sy0">/</span>var<span class="sy0">/</span>spool<span class="sy0">/</span>samba<span class="sy0">/</span>nashashara</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; valid <span class="kw2">users</span> = vasya</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">write</span> list = vasya</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; create mask = <span class="nu0">644</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; directory mask = <span class="nu0">755</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; printable = no</div>
</li>
</ol>
</div>
</li>
<li>Потом в той же директории /etc/samba/per-ip-configs создаем файл уже с именем 172.16.0.13.conf:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="br0">&#91;</span>NashaShara<span class="br0">&#93;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; comment = Read-only access</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; path = <span class="sy0">/</span>var<span class="sy0">/</span>spool<span class="sy0">/</span>samba<span class="sy0">/</span>nashashara</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; valid <span class="kw2">users</span> = vasya</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; create mask = <span class="nu0">644</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; directory mask = <span class="nu0">755</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; printable = no</div>
</li>
</ol>
</div>
</li>
<li>В конфигурационном файле <strong>smb.conf</strong> в самом начале раздела, где описываются общие ресурсы, добавляем строку:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">include = <span class="sy0">/</span>etc<span class="sy0">/</span>samba<span class="sy0">/</span>per-ip-configs<span class="sy0">/%</span>I.conf</div>
</li>
</ol>
</div>
</li>
</ol>
<p>Таким образом, теперь при подключении нового клиента samba будет подгружать ту часть конфига, которая соответствует IP-адресу клиента (он подставляется вместо <strong>%I</strong>). Если клиент подключится с другого IP-адреса (для которого нет соответствующего файла в /etc/samba/per-ip-configs) и в основном конфиге <strong>smb.conf</strong> не будет определения для общего ресурса NashaShara, то клиент просто этот ресурс не увидит и доступа к нему не получит.</p>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/' rel='bookmark' title='Permanent Link: Детальное логирование в Samba'>Детальное логирование в Samba</a> <small>Иногда ну очень нужно узнать кто же создал или удалил определенный файл с файлового сервера. Стандартный лог-файл, который Samba пишет...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
<li><a href='http://avz.org.ua/wp/2010/01/23/wp-autospam-blocking/' rel='bookmark' title='Permanent Link: WordPress: борьба со спамом'>WordPress: борьба со спамом</a> <small>Посвящается тем, кого утомили тонны спама в комментариях, оставляемые с единственной целью &ndash; повесить ссылку на продвигаемый спамером сайт. Есть,...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Штучки с sed-ом</title>
		<link>http://avz.org.ua/wp/2010/01/27/sed-trick/</link>
		<comments>http://avz.org.ua/wp/2010/01/27/sed-trick/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 20:06:09 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[sed]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=653</guid>
		<description><![CDATA[sed &#8211; это stream editor. Часто используется в скриптах для различных преобразований текста. Ниже приведено несколько типичных примеров. Удаление из файла заданных строк. Пусть, например, нужно удалить строки из файла, в которых содержиться подстрока &#171;phone: xxx-xx-xx&#187; (вместо символа x &#8211; цифры): sed &#34;/phone: [0-9]\{3\}-[0-9]\{2\}-[0-9]\{2\}/ d&#34; somefile.txt Здесь между слешами (/) задается шаблон (регулярное выражение), после [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/' rel='bookmark' title='Permanent Link: Детальное логирование в Samba'>Детальное логирование в Samba</a> <small>Иногда ну очень нужно узнать кто же создал или удалил определенный файл с файлового сервера. Стандартный лог-файл, который Samba пишет...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/04/freebsd-nat/' rel='bookmark' title='Permanent Link: Строим NAT средствами FreeBSD'>Строим NAT средствами FreeBSD</a> <small>Для наглядности считаем, что внутренняя сеть адресуется блоком 192.168.0.0/24, шлюзом для внутренней сети выступает 192.168.0.1, IP-адрес внешнего интерфейса роутера &ndash;...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><strong>sed</strong> &ndash; это <strong>s</strong>tream <strong>ed</strong>itor. Часто используется в скриптах для различных преобразований текста. Ниже приведено несколько типичных примеров.</p>
<ol>
<li>Удаление из файла заданных строк.<br />
Пусть, например, нужно удалить строки из файла, в которых содержиться подстрока &laquo;phone: xxx-xx-xx&raquo; (вместо символа x &#8211; цифры):</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sed</span> <span class="st0">&quot;/phone: [0-9]<span class="es0">\{</span>3<span class="es0">\}</span>-[0-9]<span class="es0">\{</span>2<span class="es0">\}</span>-[0-9]<span class="es0">\{</span>2<span class="es0">\}</span>/ d&quot;</span> somefile.txt</div>
</li>
</ol>
</div>
<p>Здесь между слешами (/) задается шаблон (регулярное выражение), после него стоит оператор <strong>&laquo;d&raquo;</strong> (от слова delete), который удаляет строки, совпадающие с шаблоном. Результат:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$cat</span> <span class="kw3">test</span>.txt</div>
</li>
<li class="li1">
<div class="de1">phone: <span class="nu0">111</span><span class="nu0">-22</span><span class="nu0">-44</span></div>
</li>
<li class="li1">
<div class="de1">phone: <span class="nu0">111</span><span class="nu0">-22</span><span class="nu0">-44</span></div>
</li>
<li class="li1">
<div class="de1">phone: <span class="nu0">311</span><span class="nu0">-22</span>-d4</div>
</li>
<li class="li1">
<div class="de1">phone: &nbsp;<span class="nu0">111</span><span class="nu0">-22</span><span class="nu0">-55</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$sed</span> <span class="st0">&quot;/phone: [0-9]<span class="es0">\{</span>3<span class="es0">\}</span>-[0-9]<span class="es0">\{</span>2<span class="es0">\}</span>-[0-9]<span class="es0">\{</span>2<span class="es0">\}</span>/ d&quot;</span> <span class="kw3">test</span>.txt</div>
</li>
<li class="li1">
<div class="de1">phone: <span class="nu0">311</span><span class="nu0">-22</span>-d4</div>
</li>
<li class="li1">
<div class="de1">phone: &nbsp;<span class="nu0">111</span><span class="nu0">-22</span><span class="nu0">-55</span></div>
</li>
</ol>
</div>
<p>Если нужно, чтобы изменения происходили сразу в файле, без вывода в stdout, нужно добавить ключ <strong>--in-place (-i)</strong>.</p>
<li>Добавление в файл строки в определённом месте.<br />
Вставляем мета-тег с указанием кодировки документа перед закрывающим тегом &lt;/head&gt; во все файлы с расширением .html в текущей директории:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">sed</span> -i <span class="st0">&#39;/&lt;<span class="es0">\/</span>head&gt;/ i &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text<span class="es0">\/</span>html; charset=utf-8&quot;&gt;&#39;</span> <span class="sy0">*</span>.html</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sed</span> -i -r <span class="st0">&quot;s/<span class="es0">\r</span>//g&quot;</span> <span class="sy0">*</span>.html</div>
</li>
</ol>
</div>
<p>Второй sed нужен чтобы поудалять символ возврата каретки с ASCII-кодом 13 в конце строк, который почему-то появляется в результате работы первого sed-а.
</li>
</li>
<li>Удаление из файла первых нескольких строк до тех пор, пока не встретиться пустая строка. Такое часто бывает нужно при обработке писем &ndash; если нужно отделить заголовок письма от его тела:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$cat</span> <span class="kw3">test</span>.txt</div>
</li>
<li class="li1">
<div class="de1">Some text <span class="kw1">in</span> mail header.</div>
</li>
<li class="li1">
<div class="de1">Another text line <span class="kw1">in</span> mail header.</div>
</li>
<li class="li1">
<div class="de1">And so on&#8230;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">Here starts mail body.</div>
</li>
<li class="li1">
<div class="de1">Some text <span class="kw1">in</span> mail body.</div>
</li>
<li class="li1">
<div class="de1">Use <span class="kw2">sed</span> to <span class="kw2">make</span> things <span class="kw2">nice</span> :<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$sed</span> <span class="st0">&#39;1,/^$/ d&#39;</span> <span class="kw3">test</span>.txt</div>
</li>
<li class="li1">
<div class="de1">Here starts mail body.</div>
</li>
<li class="li1">
<div class="de1">Some text <span class="kw1">in</span> mail body.</div>
</li>
<li class="li1">
<div class="de1">Use <span class="kw2">sed</span> to <span class="kw2">make</span> things <span class="kw2">nice</span> :<span class="br0">&#41;</span></div>
</li>
</ol>
</div>
<p>Здесь видно, что первые три строки были удалены. Шаблон <strong>/^$/</strong> означает пустую строку (символ <strong>^</strong> совпадает с началом строки, а символ <strong>$</strong> &ndash; с концом строки. Так как между ними ничего нет, то строка пустая). Выражение <strong>1,/^$/</strong> означает диапазон строк с 1-ой до пустой включительно. Оператор <strong>&laquo;d&raquo;</strong> &ndash; удаление.
</li>
<li>Замена текста. Для этого испольузется оператор <strong>s///</strong>:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$cat</span> <span class="kw3">test</span>.txt</div>
</li>
<li class="li1">
<div class="de1">I want to have <span class="kw2">nice</span> house with <span class="nu0">4</span> rooms.</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$sed</span> <span class="st0">&quot;s/<span class="es0">\(</span>nice<span class="es0">\)</span>/very <span class="es0">\1</span>/&quot;</span> <span class="kw3">test</span>.txt <span class="sy0">|</span> <span class="kw2">sed</span> <span class="st0">&quot;s/[0-9]/12/&quot;</span></div>
</li>
<li class="li1">
<div class="de1">I want to have very <span class="kw2">nice</span> house with <span class="nu0">12</span> rooms.</div>
</li>
</ol>
</div>
<p>В операторе замены <strong>s///</strong> между 1-ым и 2-ым слешем указывается шаблон, который нужно найти для замены, а между 2-ым и 3-им слешем &ndash; текст, НА который нужно заменить шаблон. Если в шаблоне используются круглые скобки (их нужно экранировать обратнымы слешами), то текст между скобками будет доступен для использвания во второй части оператора (это называется backreference). Для вставки текста, заключенного в 1-ую пару скобок, применяется конструкция <strong>\1</strong>, для текста между второй парой скобок &ndash; <strong>\2</strong> и т.д.
</li>
</ol>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/03/05/%d0%b4%d0%b5%d1%82%d0%b0%d0%bb%d1%8c%d0%bd%d0%be%d0%b5-%d0%bb%d0%be%d0%b3%d0%b8%d1%80%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-%d0%b2-samba/' rel='bookmark' title='Permanent Link: Детальное логирование в Samba'>Детальное логирование в Samba</a> <small>Иногда ну очень нужно узнать кто же создал или удалил определенный файл с файлового сервера. Стандартный лог-файл, который Samba пишет...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/04/freebsd-nat/' rel='bookmark' title='Permanent Link: Строим NAT средствами FreeBSD'>Строим NAT средствами FreeBSD</a> <small>Для наглядности считаем, что внутренняя сеть адресуется блоком 192.168.0.0/24, шлюзом для внутренней сети выступает 192.168.0.1, IP-адрес внешнего интерфейса роутера &ndash;...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/01/27/sed-trick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Появилась новая прошивка WRT160NL v0.1.2 для роутеров Linksys</title>
		<link>http://avz.org.ua/wp/2009/12/24/new-firmware-wrt160nl-v0-1-2/</link>
		<comments>http://avz.org.ua/wp/2009/12/24/new-firmware-wrt160nl-v0-1-2/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 10:02:23 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=617</guid>
		<description><![CDATA[Информационный ресурс по поддержке продукции Linksys  Мир Wi-Fi сообщает о выпуске новой прошивки для  Linksys WRT160NL &#8212; нового маршрутизатора, ориентированного на Linux-сообщество. Теперь WRT160NL может поддерживать высокую скорость PPTP, 3G и Wimax модемы, Torrent и многое другое. Прошивка ориентирована на высокоскоростную работу с VPN PPTP сетями типа Corbina. К примеру, скорость PPTP соединения доходит до [...]]]></description>
			<content:encoded><![CDATA[<p>Информационный ресурс по поддержке продукции Linksys  <a href="http://mirwifi.org" target="_blank">Мир Wi-Fi</a> сообщает о выпуске новой прошивки для  Linksys WRT160NL &#8212; нового маршрутизатора, ориентированного на Linux-сообщество. Теперь WRT160NL может поддерживать высокую скорость PPTP, 3G и Wimax модемы, Torrent и многое другое. Прошивка ориентирована на высокоскоростную работу с VPN PPTP сетями типа Corbina. К примеру, скорость PPTP соединения доходит до 80 Mbps. В отличие от базовой прошивки, имя PPTP сервера можно задавать не только IP адресом, но и доменным именем, как то vpn.someserver.ru. В новой прошивке USB порт можно использовать для подключения 3G и WiMax модемов. Было провдено успешное  тестирование устройства с сетью PeopleNet (Украина), а также Yota (Россия).  Результаты  тестирования показали, что новая прошивка  отлично подходит для  работы  устройства  в режиме 3G и WiMax. Также преимуществами являются возможность поддержки Torrent клиента и базового принт-сервера. Переход с Linksys прошивки на прошивку Mirwifi.org довольно прост &#8212; достаточно обновить прошивку через Web-интерфейс с помощью стандартной процедуры. Перейти назад на Linksys прошивку можно также через Web-интерфейс.</p>
]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2009/12/24/new-firmware-wrt160nl-v0-1-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Установка Skype в 64-битную Linux-систему</title>
		<link>http://avz.org.ua/wp/2009/11/23/skype-linux-64bi/</link>
		<comments>http://avz.org.ua/wp/2009/11/23/skype-linux-64bi/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 13:19:04 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[ldconfig]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[skype]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=506</guid>
		<description><![CDATA[К сожалению, Skype пока не выпустил 64-битной версии своего продукта под Linux. Но, погуглив немного, находятся отзывы, что в 64-битной системе можно запустить 32-битную версию. Вот я и решил попробовать на своей Fedora core 11 2.6.30.9-96.fc11.x86_64. Последовательность следующая. Качаем 32-битную rpm-ку с офф. сайта. Устанавливаем: rpm -ivh skype-2.1.0.47-fc10.i586.rpm Пытаемся запустить бинарник /usr/bin/skype &#8211; он вылетит [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/06/19/canon-pixma-ip1000-in-linux/' rel='bookmark' title='Permanent Link: Установка принтера Canon Pixma iP1000 в Linux'>Установка принтера Canon Pixma iP1000 в Linux</a> <small>1. Ставим rpm-файлы: bjfilter-common-2.50-2.i386.rpm, bjfilter-pixmaip1000-2.50-2.i386.rpm, bjfilter-pixmaip1000-lprng-2.50-2.i386.rpm 2. Перезапускаем cups: /etc/rc.d/init.d/cups restart 3. Выполняем команду для окончательной регистрации принтера: lpadmin -p...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/22/linux-installcheckpoints/' rel='bookmark' title='Permanent Link: Порядок настройки свежеустановленной Linux'>Порядок настройки свежеустановленной Linux</a> <small>Здесь описан порядок начальной настройки свежеустановленной операционной системы (на примере RedHat-подобных дистрибутивов, таких как Fedora, CentOS и т.п). Проверить, что...</small></li>
<li><a href='http://avz.org.ua/wp/2009/01/09/linux-nat/' rel='bookmark' title='Permanent Link: NAT в linux'>NAT в linux</a> <small>Исходные данные: есть роутер с двумя физическими интерфейсами &#8211; eth0 (внешний) и eth1 (внутренний). На внутреннем интерфейсе прибит ip-адрес 192.168.0.1/24....</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>К сожалению, Skype пока не выпустил 64-битной версии своего продукта под Linux. Но, <a href="http://forum.skype.com/index.php?s=3f13bc37287be4e3eca14699978a490b&#038;showtopic=71908&#038;st=20" rel="nofollow">погуглив</a> немного, находятся отзывы, что в 64-битной системе можно запустить 32-битную версию. Вот я и решил попробовать на своей Fedora core 11 2.6.30.9-96.fc11.x86_64. Последовательность следующая.</p>
<ol>
<li><a href="http://www.skype.com/go/getskype-linux-beta-fc10">Качаем</a> 32-битную rpm-ку с офф. сайта.</li>
<li>Устанавливаем:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1">rpm -ivh skype<span class="nu0">-2.1</span><span class="nu0">.0</span><span class="nu0">.47</span>-fc10.i586.rpm</div>
</li>
</ol>
</div>
</li>
<li>Пытаемся запустить бинарник /usr/bin/skype &ndash; он вылетит с жалобой на отсутствующую библиотеку:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$skype</span></div>
</li>
<li class="li1">
<div class="de1">skype: error <span class="kw1">while</span> loading shared libraries: libssl.so<span class="nu0">.8</span>: </div>
</li>
<li class="li1">
<div class="de1">cannot open shared object <span class="kw2">file</span>: No such <span class="kw2">file</span> or directory</div>
</li>
</ol>
</div>
</li>
<li>Смотрим c помощью ldd какие ему нужны библиотеки:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$ldd</span> <span class="sy0">/</span>usr<span class="sy0">/</span>bin<span class="sy0">/</span>skype</div>
</li>
<li class="li1">
<div class="de1">linux-gate.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> &nbsp;<span class="br0">&#40;</span>0xf77a1000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">librt.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>lib<span class="sy0">/</span>librt.so<span class="nu0">.1</span> <span class="br0">&#40;</span>0xf7691000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libpthread.so<span class="nu0">.0</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>lib<span class="sy0">/</span>libpthread.so<span class="nu0">.0</span> <span class="br0">&#40;</span>0xf6948000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libstdc++.so<span class="nu0">.6</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libstdc++.so<span class="nu0">.6</span> <span class="br0">&#40;</span>0x00bf2000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libm.so<span class="nu0">.6</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>lib<span class="sy0">/</span>libm.so<span class="nu0">.6</span> <span class="br0">&#40;</span>0x00b9b000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libgcc_s.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>lib<span class="sy0">/</span>libgcc_s.so<span class="nu0">.1</span> <span class="br0">&#40;</span>0x00bc5000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libc.so<span class="nu0">.6</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>lib<span class="sy0">/</span>libc.so<span class="nu0">.6</span> <span class="br0">&#40;</span>0x00a28000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libdl.so<span class="nu0">.2</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>lib<span class="sy0">/</span>libdl.so<span class="nu0">.2</span> <span class="br0">&#40;</span>0xf6942000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>lib<span class="sy0">/</span>ld-linux.so<span class="nu0">.2</span> <span class="br0">&#40;</span>0x00a04000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libSM.so<span class="nu0">.6</span> =<span class="sy0">&gt;</span> not found</div>
</li>
<li class="li1">
<div class="de1">libXi.so<span class="nu0">.6</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libXi.so<span class="nu0">.6</span> <span class="br0">&#40;</span>0xf655e000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libXrender.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libXrender.so<span class="nu0">.1</span> <span class="br0">&#40;</span>0xf6555000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libXrandr.so<span class="nu0">.2</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libXrandr.so<span class="nu0">.2</span> <span class="br0">&#40;</span>0xf654d000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libXfixes.so<span class="nu0">.3</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libXfixes.so<span class="nu0">.3</span> <span class="br0">&#40;</span>0xf6548000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libXcursor.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libXcursor.so<span class="nu0">.1</span> <span class="br0">&#40;</span>0xf653e000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libXinerama.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libXinerama.so<span class="nu0">.1</span> <span class="br0">&#40;</span>0xf653b000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libfontconfig.so<span class="nu0">.1</span> =<span class="sy0">&gt;</span> <span class="sy0">/</span>usr<span class="sy0">/</span>lib<span class="sy0">/</span>libfontconfig.so<span class="nu0">.1</span> <span class="br0">&#40;</span>0xf6507000<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">libssl.so<span class="nu0">.8</span> =<span class="sy0">&gt;</span> not found</div>
</li>
</ol>
</div>
<p>Те библиотеки, которые нужно доустановить, будут помечены как &laquo;not found&raquo;</li>
<li>Устанавливаем недостающие библиотеки. В моем случае потребовалось установить (командой yum install) следующие пакеты: libICE.i586 libXau.i586 libxcb.i586 libX11.i586 libXext.i586 libXi.i586 libXrender.i586 libXrandr.i586 libXfixes.i586 libXcursor.i586 libXinerama.i586 expat.i586 freetype-freeworld.i586 fontconfig.i586 e2fsprogs-libs.i586 keyutils-libs.i586 zlib-1.2.3-22.i586 libselinux.i586 krb5-libs.i586 openssl.i586 libattr.i586 libcap.i586</li>
<li>После чего пробуем запускать skype, у меня успешно запустился.</li>
</ol>
<p>Есть альтернативный путь для тех, что не хочет захламять систему библиотеками неродной архитектуры.
<ol>
<li>Определяем имя rpm-пакета, в котором должна быть отсутствующая библиотека:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$skype</span></div>
</li>
<li class="li1">
<div class="de1">skype: error <span class="kw1">while</span> loading shared libraries: libSM.so<span class="nu0">.6</span>: </div>
</li>
<li class="li1">
<div class="de1">cannot open shared object <span class="kw2">file</span>: No such <span class="kw2">file</span> or directory</div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#locate libSM.so.6</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>usr<span class="sy0">/</span>lib64<span class="sy0">/</span>libSM.so<span class="nu0">.6</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>usr<span class="sy0">/</span>lib64<span class="sy0">/</span>libSM.so<span class="nu0">.6</span><span class="nu0">.0</span><span class="nu0">.0</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#rpm -qf /usr/lib64/libSM.so.6</span></div>
</li>
<li class="li1">
<div class="de1">libSM<span class="nu0">-1.1</span><span class="nu0">.0</span><span class="nu0">-4</span>.fc11.x86_64</div>
</li>
</ol>
</div>
<p>Значит, нам нужен пакет libSM.i586.</li>
<li>Качаем нужную rpm-ку. Например, найдя ее через <a href="http://www.rpmfind.net/linux/rpm2html/search.php?query=libSM+fc11+i386&#038;submit=Search+...&#038;system=&#038;arch=">rpmfind.net</a>.</li>
<li>Заходим в нее с помощью Midnight Commander-ом (подсветив файл и нажав &lt;Enter&gt;), ищем файл CONTENTS.cpio, через F5 достаем (разархивируем) нужные файлы из каталогов lib, складываем куда-то в одно место, например в /usr/local/lib/32bit. </li>
<li>Добавлем в файл /etc/ld.so.conf строку с путем к скачанным библиотекам:
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$cat</span> <span class="sy0">/</span>etc<span class="sy0">/</span><span class="kw2">ld</span>.so.conf</div>
</li>
<li class="li1">
<div class="de1">include <span class="kw2">ld</span>.so.conf.d<span class="sy0">/*</span>.conf</div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">/</span>usr<span class="sy0">/</span><span class="kw3">local</span><span class="sy0">/</span>lib<span class="sy0">/</span>32bit</div>
</li>
</ol>
</div>
</li>
<li>Запускаем по рутом команду ldconfig.</li>
<li>Пробуем запускать skype. Если опять ругается на отсутствие какой-то библиотеки, провторяем пп. 1-5 уже для следующей библиотеки.</li>
</ol>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/06/19/canon-pixma-ip1000-in-linux/' rel='bookmark' title='Permanent Link: Установка принтера Canon Pixma iP1000 в Linux'>Установка принтера Canon Pixma iP1000 в Linux</a> <small>1. Ставим rpm-файлы: bjfilter-common-2.50-2.i386.rpm, bjfilter-pixmaip1000-2.50-2.i386.rpm, bjfilter-pixmaip1000-lprng-2.50-2.i386.rpm 2. Перезапускаем cups: /etc/rc.d/init.d/cups restart 3. Выполняем команду для окончательной регистрации принтера: lpadmin -p...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/22/linux-installcheckpoints/' rel='bookmark' title='Permanent Link: Порядок настройки свежеустановленной Linux'>Порядок настройки свежеустановленной Linux</a> <small>Здесь описан порядок начальной настройки свежеустановленной операционной системы (на примере RedHat-подобных дистрибутивов, таких как Fedora, CentOS и т.п). Проверить, что...</small></li>
<li><a href='http://avz.org.ua/wp/2009/01/09/linux-nat/' rel='bookmark' title='Permanent Link: NAT в linux'>NAT в linux</a> <small>Исходные данные: есть роутер с двумя физическими интерфейсами &#8211; eth0 (внешний) и eth1 (внутренний). На внутреннем интерфейсе прибит ip-адрес 192.168.0.1/24....</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2009/11/23/skype-linux-64bi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Противодействие автоматическому подбору паролей</title>
		<link>http://avz.org.ua/wp/2009/09/06/bruteforce-protection/</link>
		<comments>http://avz.org.ua/wp/2009/09/06/bruteforce-protection/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 13:56:30 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=450</guid>
		<description><![CDATA[В лог-файлах почти любого публично доступного FTP-сервера в Интернет сисадмин почти всегда видит попытки множественных безуспешных попыток авторизации. Например: Thu Sep 3 04:39:50 2009 FTP command: Client &#171;221.232.131.51&#8243;, &#171;USER Admin&#187; Thu Sep 3 04:39:51 2009 [Admin] FTP response: Client &#171;221.232.131.51&#8243;, &#171;530 Permission denied.&#187; Thu Sep 3 04:39:53 2009 CONNECT: Client &#171;221.232.131.51&#8243; Thu Sep 3 04:39:53 [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/01/09/linux-nat/' rel='bookmark' title='Permanent Link: NAT в linux'>NAT в linux</a> <small>Исходные данные: есть роутер с двумя физическими интерфейсами &#8211; eth0 (внешний) и eth1 (внутренний). На внутреннем интерфейсе прибит ip-адрес 192.168.0.1/24....</small></li>
<li><a href='http://avz.org.ua/wp/2009/07/18/pptpd-vpn-server/' rel='bookmark' title='Permanent Link: Строим VPN-сервер на основе pptpd'>Строим VPN-сервер на основе pptpd</a> <small>PPTP – это Point-to-Point Tunelling Protocol, используется чаще всего для организации защищенного подключения удаленных пользователей во внутреннюю сеть компании через...</small></li>
<li><a href='http://avz.org.ua/wp/2009/02/02/linuxquotas/' rel='bookmark' title='Permanent Link: Дисковые квоты в Linux'>Дисковые квоты в Linux</a> <small>Включение дисковых квот в Linux. Взято с http://www.yolinux.com/TUTORIALS/LinuxTutorialQuotas.html Редактируем файл /etc/fstab, добавляя параметры &laquo;usrquota&raquo; и/или &laquo;grpquota&raquo; в строки для нужного...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>В лог-файлах почти любого публично доступного FTP-сервера в Интернет сисадмин почти всегда видит попытки множественных безуспешных попыток авторизации. Например:</p>
<div class="code" style="font-size: 67%">Thu Sep  3 04:39:50 2009 FTP command: Client &laquo;221.232.131.51&#8243;, &laquo;USER Admin&raquo;<br />
Thu Sep  3 04:39:51 2009 [Admin] FTP response: Client &laquo;221.232.131.51&#8243;, &laquo;530 Permission denied.&raquo;<br />
Thu Sep  3 04:39:53 2009 CONNECT: Client &laquo;221.232.131.51&#8243;<br />
Thu Sep  3 04:39:53 2009 FTP response: Client &laquo;221.232.131.51&#8243;, &laquo;220 Welcome to our FTP-server.&raquo;<br />
Thu Sep  3 04:39:53 2009 FTP command: Client &laquo;221.232.131.51&#8243;, &laquo;USER Admin&raquo;<br />
Thu Sep  3 04:39:54 2009 [Admin] FTP response: Client &laquo;221.232.131.51&#8243;, &laquo;530 Permission denied.&raquo;<br />
Thu Sep  3 04:39:55 2009 FTP command: Client &laquo;221.232.131.51&#8243;, &laquo;USER Admin&raquo;<br />
Thu Sep  3 04:39:56 2009 [Admin] FTP response: Client &laquo;221.232.131.51&#8243;, &laquo;530 Permission denied.&raquo;<br />
Thu Sep  3 04:39:57 2009 CONNECT: Client &laquo;221.232.131.51&#8243;<br />
Thu Sep  3 04:39:57 2009 FTP response: Client &laquo;221.232.131.51&#8243;, &laquo;220 Welcome to our FTP-server.&raquo;<br />
Thu Sep  3 04:39:57 2009 FTP command: Client &laquo;221.232.131.51&#8243;, &laquo;USER Admin&raquo;<br />
Thu Sep  3 04:39:58 2009 [Admin] FTP response: Client &laquo;221.232.131.51&#8243;, &laquo;530 Permission denied.&raquo;<br />
Thu Sep  3 04:39:59 2009 FTP command: Client &laquo;221.232.131.51&#8243;, &laquo;USER Admin&raquo;<br />
Thu Sep  3 04:40:00 2009 [Admin] FTP response: Client &laquo;221.232.131.51&#8243;, &laquo;530 Permission denied.&raquo;</div>
<p>Как-правило, цель взломщиков проста &ndash; угадать пароль и использовать FTP-аккаунт для размещения скриптов рассылки спама, сбора персональных данных с фишинговых сайтов и прочих тёмных делишек. Поэтому всегда стоит по возможности закрывать доступ на TCP-порт 21 в firewall-е для всех, кроме блоков IP-адресов, с которых ходят доверенные пользователи. Но что делать, если мы не знаем откуда будут ходить легитимные пользователи нашего FTP-сервера? В таких случаях, конечно, доступ закрывать нельзя, но можно существенно понизить эффективность подбора паролей путем следующих двух простых правил для стандартного в linux firewall-а iptables:</p>
<div class="code">iptables -A INPUT -m recent &minus;&minus;name ftpbruteforce &minus;&minus;update &minus;&minus;seconds 60 &minus;&minus;hitcount 2 -j DROP<br />
iptables -A INPUT -p tcp &minus;&minus;syn &minus;&minus;dport 21 -m recent &minus;&minus;name ftpbruteforce &minus;&minus;set -j ACCEPT</div>
<p>Второе правило означает, что если встретится <noindex><a href="http://ru.wikipedia.org/wiki/TCP" rel="nofollow">TCP</a></noindex>-сегмент, в котором порт получателя 21 и установлен флаг SYN (что соответствует 1-ой фазе установки соединения при подключении к FTP-серверу), то iptables &laquo;запомнит&raquo; этот факт вместе с моментом появления такого TCP-сегмента и установит для этого события заданное нами имя ftpbruteforce. А первое правило означает, что если события с именем ftpbruteforce будут наступать чаще, чем 2 раза в течение 60-ти секунд, то такие TCP-сегменты будут блокироваться (-j DROP). Параметр &minus;&minus;update означает, что таймер блокировки обнуляется каждый раз, когда событие ftpbruteforce наступает в следующий раз. То есть легитимный пользователь, который правильно указывает логин и пароль при подключении к серверу, без проблем подключиться, потому что для него сработает только 2-ое правило и не сработает 1-ое правило. Он даже один раз может ошибиться при указании атрибутов доступа &ndash; вторая попытка с уже правильными атрибутами тоже будет успешной. А вот уже начиная с третей попытки установить соединение в течение 60-ти секунд начнет срабатывать 1-ое правило и трафик будет блокироваться, что как раз и соответствует случаю подбора паролей (bruteforcing).
<p>Данную методику можно применять, конечно же, не только для FTP-серверов, но и для многих других случаев (например, SSH). Другие примеры использования модуля recent можно посмотреть на <noindex><a href="http://snowman.net/projects/ipt_recent/" rel="nofollow"></noindex>странице</a> его автора и в странице руководства (&#8216;man iptables&#8217;).</p>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/01/09/linux-nat/' rel='bookmark' title='Permanent Link: NAT в linux'>NAT в linux</a> <small>Исходные данные: есть роутер с двумя физическими интерфейсами &#8211; eth0 (внешний) и eth1 (внутренний). На внутреннем интерфейсе прибит ip-адрес 192.168.0.1/24....</small></li>
<li><a href='http://avz.org.ua/wp/2009/07/18/pptpd-vpn-server/' rel='bookmark' title='Permanent Link: Строим VPN-сервер на основе pptpd'>Строим VPN-сервер на основе pptpd</a> <small>PPTP – это Point-to-Point Tunelling Protocol, используется чаще всего для организации защищенного подключения удаленных пользователей во внутреннюю сеть компании через...</small></li>
<li><a href='http://avz.org.ua/wp/2009/02/02/linuxquotas/' rel='bookmark' title='Permanent Link: Дисковые квоты в Linux'>Дисковые квоты в Linux</a> <small>Включение дисковых квот в Linux. Взято с http://www.yolinux.com/TUTORIALS/LinuxTutorialQuotas.html Редактируем файл /etc/fstab, добавляя параметры &laquo;usrquota&raquo; и/или &laquo;grpquota&raquo; в строки для нужного...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2009/09/06/bruteforce-protection/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Организация уведомлений о событиях</title>
		<link>http://avz.org.ua/wp/2009/08/23/event-notification/</link>
		<comments>http://avz.org.ua/wp/2009/08/23/event-notification/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 06:23:01 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ *nix]]></category>
		<category><![CDATA[xinetd]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=407</guid>
		<description><![CDATA[Представим ситуацию: мы ожидаем, что в каком-то лог-файле одного из серверов скоро должна появиться определенная строка, но когда именно она там появится мы не знаем. Чтобы не тратить время (которое при определенных обстоятельствах может превращаться в деньги :) на высматривание в лог-файле этой самой заветной строчки и продолжать работу за своим компьютером (пусть у него, [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/01/09/linux-nat/' rel='bookmark' title='Permanent Link: NAT в linux'>NAT в linux</a> <small>Исходные данные: есть роутер с двумя физическими интерфейсами &#8211; eth0 (внешний) и eth1 (внутренний). На внутреннем интерфейсе прибит ip-адрес 192.168.0.1/24....</small></li>
<li><a href='http://avz.org.ua/wp/2009/04/24/sed-config-editing/' rel='bookmark' title='Permanent Link: Быстрая массовая правка конфигураций нескольких подинтерфейсов'>Быстрая массовая правка конфигураций нескольких подинтерфейсов</a> <small>Пусть имеем маршрутизатор с множеством логических интерфейсов, для каждого из которых нужно добавить/заменить один и тот же фрагмент в конфиге,...</small></li>
<li><a href='http://avz.org.ua/wp/2009/07/18/pptpd-vpn-server/' rel='bookmark' title='Permanent Link: Строим VPN-сервер на основе pptpd'>Строим VPN-сервер на основе pptpd</a> <small>PPTP – это Point-to-Point Tunelling Protocol, используется чаще всего для организации защищенного подключения удаленных пользователей во внутреннюю сеть компании через...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Представим ситуацию: мы ожидаем, что в каком-то лог-файле одного из серверов скоро должна появиться определенная строка, но когда именно она там появится мы не знаем. Чтобы не тратить время (которое при определенных обстоятельствах может превращаться в деньги :) на высматривание в лог-файле этой самой заветной строчки и продолжать работу за своим компьютером (пусть у него, например, будет IP-адрес 10.10.10.10), можно организовать автоматическое уведомление о наступившем событии. Например, так.</p>
<ol>
<li>На удаленном сервере (пусть для примера у него будет ip-адрес 10.10.10.254) запускаем такую команду:
<div class="code">
$ tail -f /var/log/somelog | grep -m 1 &laquo;event description&raquo; &#038;&#038; nc 10.10.10.10 2740
</div>
<p>В результате при следующем появлении в файле /var/log/somelog текста &laquo;event description&raquo; откроется исходящее tcp-соединение на хост мониторинга 10.10.10.10 на порт 2740. Далее следует позаботиться об адекватной обработке этого на хосте 10.10.10.10. Ключ &#8216;-m 1&#8242; у команды grep означает, что она должна завершиться после 1-го найденного совпадения.</p>
<li>На хосте мониторинга запускаем сервис xinetd (если он еще не запущен, предварительно создав файл /etc/xinetd.d/alarm примерно такого содержания:
<div class="code">
service alarm<br />
{<br />
&nbsp;&nbsp;disable = no<br />
&nbsp;&nbsp;id = alarm<br />
&nbsp;&nbsp;wait = no<br />
&nbsp;&nbsp;socket_type = stream<br />
&nbsp;&nbsp;user = me<br />
&nbsp;&nbsp;group = me<br />
&nbsp;&nbsp;server = /usr/local/sbin/show_alarm.sh<br />
&nbsp;&nbsp;bind = 10.10.10.10<br />
&nbsp;&nbsp;only_from       = 10.10.10.254<br />
}</div>
<p>Номер порта не указан по следующей причине:
<div class="code">
$grep -P &laquo;^alarm\s&raquo; /etc/services<br />
alarm           2740/tcp                        # Alarm<br />
alarm           2740/udp                        # Alarm
</div>
<p>Если вдруг в вашем файле /etc/services нет таких строк, то в /etc/xinetd.d/alarm нужно еще добавить строку <code>port = 2740</code>. Описание параметров конфигурации демона xinetd можно почитать в файле /etc/xinetd.d/chargen-stream ну и, конечно, в <code>man 5 xinetd.conf</code>.</p>
<li>Создаем скрипт /usr/local/sbin/show_alarm.sh:
<div class="code">
#!/bin/bash<br />
kalarm &laquo;Needed string found at 10.10.10.254&#8243; 2> /dev/null
</div>
<p>и делаем этот файл исполняемым:<br /><code>chmod +x /usr/local/sbin/show_alarm.sh</code>.<br />Утилита kalarm будет нам показывать на мониторе заданное сообщение, она входит в пакет kdepim, в чем можно убедиться с помощью следующей команды:
<div class="code">
$rpm -qf /usr/bin/kalarm<br />
kdepim-4.2.4-1.fc10.x86_64
</div>
<p>Также kalarm умеет издавать звуки, запускать внешние приложения (как &ndash; описано в man), что открывает широкий простор для фантазии.</p>
<li>На хосте мониторинга 10.10.10.10 в firewall-е разрешаем входящие tcp-соединения с сервера 10.10.10.254 на tcp-порт 2740:
<div class="code">/sbin/iptables -I INPUT -s 10.10.10.254 -p tcp --dport 2740 -j ACCEPT</div>
</ul>
<p>
<p>В результате при появлении строки &laquo;event description&raquo; в файле /var/log/somelog на сервере 10.10.10.254 мы сразу же получим уведомление об этом в виде всплывающего окошка на хосте мониторинга 10.10.10.10.</p>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/01/09/linux-nat/' rel='bookmark' title='Permanent Link: NAT в linux'>NAT в linux</a> <small>Исходные данные: есть роутер с двумя физическими интерфейсами &#8211; eth0 (внешний) и eth1 (внутренний). На внутреннем интерфейсе прибит ip-адрес 192.168.0.1/24....</small></li>
<li><a href='http://avz.org.ua/wp/2009/04/24/sed-config-editing/' rel='bookmark' title='Permanent Link: Быстрая массовая правка конфигураций нескольких подинтерфейсов'>Быстрая массовая правка конфигураций нескольких подинтерфейсов</a> <small>Пусть имеем маршрутизатор с множеством логических интерфейсов, для каждого из которых нужно добавить/заменить один и тот же фрагмент в конфиге,...</small></li>
<li><a href='http://avz.org.ua/wp/2009/07/18/pptpd-vpn-server/' rel='bookmark' title='Permanent Link: Строим VPN-сервер на основе pptpd'>Строим VPN-сервер на основе pptpd</a> <small>PPTP – это Point-to-Point Tunelling Protocol, используется чаще всего для организации защищенного подключения удаленных пользователей во внутреннюю сеть компании через...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2009/08/23/event-notification/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
