<?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>we are sorry, we are open &#187; freebsd</title>
	<atom:link href="http://test.kg/tag/freebsd/feed/" rel="self" type="application/rss+xml" />
	<link>http://test.kg</link>
	<description></description>
	<lastBuildDate>Tue, 01 Nov 2011 12:49:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Монтирование и работа с устройствами от имени пользователя</title>
		<link>http://test.kg/mount_flash_by_users/</link>
		<comments>http://test.kg/mount_flash_by_users/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 07:54:18 +0000</pubDate>
		<dc:creator>Zed</dc:creator>
				<category><![CDATA[СисАдминство]]></category>
		<category><![CDATA[freebsd]]></category>

		<guid isPermaLink="false">http://www.net.kg/?p=199</guid>
		<description><![CDATA[Как-то вдруг надоело монтировать флешку и работать с файлами на ней от имени рута. Я использую sudo. Кроме того, я вхожу в группу wheel, на случай если надо сделать su. Поменял переменную ядра: ~> sudo sysctl vfs.usermount=1 Прописал то же самое в /etc/sysctl.conf: vfs.usermount=1 В файле /etc/rc.conf дописал: devfs_system_ruleset="localrules" Создал файл /etc/devfs.rules: [localrules=10] add path [...]]]></description>
			<content:encoded><![CDATA[<p>Как-то вдруг надоело монтировать флешку и работать с файлами на ней от имени рута.<br />
Я использую sudo. Кроме того, я вхожу в группу wheel, на случай если надо сделать su.</p>
<p>Поменял переменную ядра:<br />
<code>~> sudo sysctl vfs.usermount=1</code></p>
<p>Прописал то же самое в /etc/sysctl.conf:<br />
<code>vfs.usermount=1</code></p>
<p>В файле /etc/rc.conf дописал:<br />
<code>devfs_system_ruleset="localrules"</code></p>
<p>Создал файл /etc/devfs.rules:<br />
<code>[localrules=10]<br />
add path 'da*' mode 0660 group wheel</code><br />
Таким образом поменял для всех устройств, начинающихся с &laquo;da&raquo;, группу на wheel и дал права на чтение и запись для владельца и группы. По-умолчанию указана группа operator, в которую я не вхожу.</p>
<p>Посмотрел какие права на устройстве в данный момент:<br />
<code>~> ls -l /dev/da0*<br />
crw-r-----  1 root  operator    0, 138 Mar 31 16:15 /dev/da0<br />
crw-r-----  1 root  operator    0, 139 Mar 31 16:15 /dev/da0s1</code></p>
<p>Переконфигурировал устройства:<br />
<code>~> sudo /etc/rc.d/devfs restart</code></p>
<p>Убедился, что права и группа изменились в нужную сторону:<br />
<code>~> ls -l /dev/da0*<br />
crw-rw----  1 root  wheel    0, 138 Mar 31 16:15 /dev/da0<br />
crw-rw----  1 root  wheel    0, 139 Mar 31 16:15 /dev/da0s1</code></p>
<p>Теперь надо назначить себя владельцем точки монтирования:<br />
<code>~> sudo chown malik:wheel /mnt/flash</code><br />
Ну или, если угодно, создать свою точку монтирования:<br />
<code>~> mkdir ~/flash</code></p>
<p>Кстати, для монтирования CD-ROM от имени пользователя достаточно чтобы точка монтирования принадлежала этому самому пользователю, т.к. писать на CD-ROM стандартным средствами системы мы не собираемся )</p>
<p>И, наконец, монтирую флешку:<br />
<code>~> mount_msdosfs /dev/da0s1 /mnt/flash</code></p>
<p>Всё нормально &#8211; флешка подмонтирована и можно нормально работать с файлам и папками от имени пользователя, не прибегаю к правам рута.</p>
<p>Замечание:<br />
Монтирование флешки с указание локальной кодировки от имени обычного пользователя возможно только после хотя бы одного монтирования из-под суперпользователя:<br />
<code>~> mount_msdosfs -L ru_RU.KOI8-R /dev/da0s1 /mnt/flash<br />
mount_msdosfs: cannot find or load "msdosfs_iconv" kernel module<br />
mount_msdosfs: msdosfs_iconv: Operation not permitted<br />
~> sudo mount_msdosfs -L ru_RU.KOI8-R /dev/da0s1 /mnt/flash<br />
Password:<br />
~> sudo umount /mnt/flash<br />
~> mount_msdosfs -L ru_RU.KOI8-R /dev/da0s1 /mnt/flash<br />
~><br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://test.kg/mount_flash_by_users/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SORRY. NO SPACE IN lost+found DIRECTORY</title>
		<link>http://test.kg/fsck-no-space/</link>
		<comments>http://test.kg/fsck-no-space/#comments</comments>
		<pubDate>Wed, 25 Apr 2007 12:07:28 +0000</pubDate>
		<dc:creator>Zed</dc:creator>
				<category><![CDATA[СисАдминство]]></category>
		<category><![CDATA[freebsd]]></category>

		<guid isPermaLink="false">http://zed.web.kg/fsck-no-space/</guid>
		<description><![CDATA[После сбоя винта и при его проверке при помощи fsck получаем кучу сообщений об ошибке: SORRY. NO SPACE IN lost+found DIRECTORY Дело в не свободном объёме в этом разделе, а в свободных дескрипторах файлов. Для увеличения их количества принудительно подмонтируем раздел, создаём в папке &#171;lost+found&#187; создаём кучу файлов, удаляем их, отмонтируем раздел и снова натравливаем [...]]]></description>
			<content:encoded><![CDATA[<p>После сбоя винта и при его проверке при помощи fsck получаем кучу сообщений об ошибке: </p>
<pre>SORRY. NO SPACE IN lost+found DIRECTORY</pre>
<p>Дело в не свободном объёме в этом разделе, а в свободных дескрипторах файлов. Для увеличения их количества принудительно подмонтируем раздел, создаём в папке &laquo;lost+found&raquo; создаём кучу файлов, удаляем их, отмонтируем раздел и снова натравливаем на него fsck: </p>
<pre># mount -f /dev/ad0s1f /mnt
# i=1; while [ $i -lt 10000 ]; \
 do touch /mnt/lost+found/xxx.$i; i=`expr $i + 1`;done
# rm /mnt/lost+found/xxx.*
# umount /mnt
# fsck -y /dev/ad0s1f
</pre>
<p>20070425</p>
]]></content:encoded>
			<wfw:commentRss>http://test.kg/fsck-no-space/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ошибка &#171;kernel: calcru: negative time of &#8230;&#187;</title>
		<link>http://test.kg/kernel-timecounter/</link>
		<comments>http://test.kg/kernel-timecounter/#comments</comments>
		<pubDate>Mon, 10 May 2004 11:53:42 +0000</pubDate>
		<dc:creator>Zed</dc:creator>
				<category><![CDATA[СисАдминство]]></category>
		<category><![CDATA[freebsd]]></category>

		<guid isPermaLink="false">http://zed.web.kg/kernel-timecounter/</guid>
		<description><![CDATA[Поставил FreeBSD 5.2.1 на достаточно старенькую машину с процессором AMD-K6 400МГц. Вот таким его видит ядро: May 5 14:32:12 kernel: CPU: AMD-K6(tm) 3D processor (400.12-MHz 586-class CPU) May 5 14:32:12 kernel: Origin = "AuthenticAMD" Id = 0x58c Stepping = 12 May 5 14:32:12 kernel: Features=0x8021bf May 5 14:32:12 kernel: AMD Features=0x80000800 Проблема достаточно явная, но [...]]]></description>
			<content:encoded><![CDATA[<p>Поставил FreeBSD 5.2.1 на достаточно старенькую машину с процессором AMD-K6 400МГц. Вот таким его видит ядро: </p>
<pre>May  5 14:32:12  kernel: CPU: AMD-K6(tm) 3D processor (400.12-MHz 586-class CPU)
May  5 14:32:12  kernel: Origin = "AuthenticAMD"  Id = 0x58c  Stepping = 12
May  5 14:32:12  kernel: Features=0x8021bf
May  5 14:32:12  kernel: AMD Features=0x80000800</pre>
<p>Проблема достаточно явная, но как она влияет на работу системы мне не известно &#8211; на консоль постоянно валятся вот такие ошибки: </p>
<pre>May  5 15:22:25  kernel: calcru: negative time of -1360420 usec for pid 12137 (cc)</pre>
<p>Поиски по Гуглу дали очень много упоминаний подобной проблемы и ниодного внятного решения для системы старше 5-й версии. Решение для младших версий не подошло, зато оно подтолкнуло меня к следующим действиям. </p>
<p>После некоторых раздумий я решил посмотреть переменные ядра (или как они правильно называются?) с подходящими названиями. Наиболее подходящими оказались переменные kern.timecounter.*, а среди них вот такие: </p>
<pre># sysctl -a | grep timecounter
...
kern.timecounter.hardware: ACPI-safe
kern.timecounter.choice: TSC(800) ACPI-safe(1000) i8254(0) dummy(-1000000)
...</pre>
<p>На другой машине с такой же системой значение переменной kern.timecounter.hardware имело значение TSC, какое и было выставлено на данной проблемной машине: </p>
<pre>sysctl kern.timecounter.hardware=TSC</pre>
<p>Насколько я могу судить проблема устранилась. </p>
<p>Осталось только прописать новое значение упомянутой переменной в файл /etc/sysctl.conf, чтобы оно снова было выставлено после перезагрузки системы: </p>
<pre># tail /etc/sysctl.conf
kern.timecounter.hardware=TSC</pre>
]]></content:encoded>
			<wfw:commentRss>http://test.kg/kernel-timecounter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Установка и настройка антивируса DrWeb для sendmail под FreeBSD4.5.</title>
		<link>http://test.kg/drweb-sendmail/</link>
		<comments>http://test.kg/drweb-sendmail/#comments</comments>
		<pubDate>Thu, 30 May 2002 11:18:24 +0000</pubDate>
		<dc:creator>Админ</dc:creator>
				<category><![CDATA[СисАдминство]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[антивирус]]></category>

		<guid isPermaLink="false">http://zed.web.kg/%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d0%b0%d0%bd%d1%82%d0%b8%d0%b2%d0%b8%d1%80%d1%83%d1%81%d0%b0-drweb-%d0%b4%d0%bb/</guid>
		<description><![CDATA[&#171;Поставлю-ка DrWeb под FreeBSD4.5 и sendmail&#187; &#8211; подумал я, и вот результат. Особенно мне понравилось, что демо-версия вполне пригодна для использования &#8211; она не может только лечить заражённые файлы, смотреть почтовые базы и заглядывать в архивы, а мне этого особо и не надо Скачиваем с сайта www.drweb.ru дистрибутив антивируса. Дистрибутивы версии, которую использовал я, можете [...]]]></description>
			<content:encoded><![CDATA[<p>&laquo;Поставлю-ка DrWeb под FreeBSD4.5 и sendmail&raquo; &#8211; подумал я, и вот результат. Особенно мне понравилось, что демо-версия вполне пригодна для использования &#8211; она не может только лечить заражённые файлы, смотреть почтовые базы и заглядывать в архивы, а мне этого особо и не надо <img src='http://test.kg/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
<span id="more-49"></span></p>
<p>Скачиваем с сайта <a href="http://www.drweb.ru">www.drweb.ru</a> дистрибутив антивируса.<br />
Дистрибутивы версии, которую использовал я, можете скачать из моего архива:<br />
<a href="http://diesel.elcat.kg/pub/unix/freebsd/drweb/drweb-4.28.1-freebsd4.tgz">drweb-4.28.1-freebsd4.tgz</a> (1,4Мб)<br />
а также фильтр drweb-smf для сендмейла:<br />
<a href="http://diesel.elcat.kg/pub/unix/freebsd/drweb/drweb-sendmail-4.28.3-freebsd4.tgz">drweb-sendmail-4.28.3-freebsd4.tgz</a> (200Кб)</p>
<p>Схема проверки почты достаточно проста и понятна. Если объяснять своими (моими <img src='http://test.kg/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  словами, то получается примерно так &#8211; сендмейл, получив сообщение, передаёт его фильтру drweb-smf, который, обращаясь к демону<br />
drwebd, проверяет сообщение, если демон не находит в нём вирус, то сообщение попадает к адресату, если же в сообщении найден вирус, то фильтр, в зависимости от настроек, помещает в карантин и рассылает уведомления отправителю, получателю и администратору.</p>
<h4>Установка и настройка сканера и демона DrWeb</h4>
<p align="justify">Во-первых хочу отметить, что для всего есть очень даже приличные описания как на английском, так и на русском языках. Так что особых проблем у меня не возникло.</p>
<p align="justify">Распаковываем файл drweb-4.28.1-freebsd4.tgz и видим дерево каталогов:<br />
etc<br />
opt<br />
usr<br />
var</p>
<p align="justify">Раскладываем всё куда положено, и получается вот что:<br />
/etc/drweb &#8211; конфиги демона и фильтра;<br />
/usr/local/drweb &#8211; бинарники и дока;<br />
/usr/local/etc/rc.d &#8211; скрипт запуска демона drwebd;<br />
/var/drweb &#8211; временные файлы, спул, сокеты.</p>
<p align="justify">Правим в файле /etc/drweb/drweb32.ini некоторые ключики, связанные с путями размещения компонентов антивируса:</p>
<pre>
[BSD]
EnginePath = "/usr/local/drweb/lib/drweb32.dll"
Key = "/usr/local/drweb/drweb.key"
UpdatePath = "/var/drweb/bases"
[BSD:Daemon]
EnginePath = "/usr/local/drweb/lib/drweb32.dll"
Key = "/usr/local/drweb/drwebd.key"
UpdatePath = "/var/drweb/bases"
</pre>
<p align="justify">Демон может взаимодействовать с фильтром через TCP/IP соединение, например, если демон и фильтр работают на разных машинах. В случае же если и демон и фильтр установлены на одном копьютере, то им лучше взаимодействовать через локальный UNIX-сокет (зачем нам лишний открытый порт). Для этого нам нужно<br />
внести несколько исправлений в конфиг /etc/drweb/drweb32.ini в раздел демона:</p>
<pre>
[BSD:Daemon]
;SocketMode = TCP (закомментировали)
;DaemonPort = 3000 (закомментировали)
SocketFile = "/var/drweb/run/drwebd.socket"
SocketMode = Unix
SocketAccess 0666
</pre>
<p align="justify">Также хотелось бы, чтобы демон работал не от имени рута, а от имени пользователя drweb, для чего, в том же /etc/drweb/drweb32.ini исправляем ключик:</p>
<pre>
User = drweb
</pre>
<p align="justify">Ну и, конечно же, должен быть создан указанный пользователь, лучше в поле пароля задать ему &laquo;*&raquo;, чтобы никто не смог использовать этот логин для других целей, также папка /var/drweb должна принадлежать этому пользователю.</p>
<p align="justify">Теперь попробуем обновить антивирусные базы. Для этого есть скрипт /usr/local/drweb/update/update.pl. Почему он у меня сразу работать не захотел, ругался вот так:</p>
<pre>
mv: rename /tmp/drw42805.vdb0.957098969258368 to
 /var/drweb/bases/*.vdb,/var/drweb/bases/drw42805.vdb: No such file or directory
</pre>
<p align="justify">Оказалось, что неверно описаны пути к базам, исправил:</p>
<pre>
# grep update /etc/drweb/*
drweb32.ini:UpdatePath = "/var/drweb/updates"
drweb32.ini:UpdatePath = "/var/drweb/updates"
</pre>
<p align="justify">Создал указанную папку. После этого обновление работает без ошибок.</p>
<p align="justify">Для проверки можем запустить сканер (/usr/local/drweb/drweb), если всё нормально, то он должен сказать что-то типа этого:</p>
<pre>
Key file: /usr/local/drweb/drweb.key
Registration info:
0100003942
Evaluation Key (ID Anti-Virus Lab. Ltd, St.Petersburg)
This is an EVALUATION version with limited functionality!
To get your registration key, call regional dealer.
Loading /var/drweb/bases/drwtoday.vdb - Ok, virus records: 117
Loading /var/drweb/bases/drw42804.vdb - Ok, virus records: 123
Loading /var/drweb/bases/drw42803.vdb - Ok, virus records: 73
Loading /var/drweb/bases/drw42802.vdb - Ok, virus records: 143
Loading /var/drweb/bases/drw42801.vdb - Ok, virus records: 76
Loading /var/drweb/bases/drwebase.vdb - Ok, virus records: 29405
</pre>
<p align="justify">Отлично! Попробуем подсунуть сканеру какой-нибудь вирус. Для этого лучше использовать специальный тестовый якобы_вирус <img src='http://test.kg/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Почитайте описание этого тестового вируса в файле /usr/local/drweb/doc/readme.eicar</p>
<p>Скопируйте оттуда строку:</p>
<pre>
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
</pre>
<p>в отдельный файл, например, test.com. Этот файл и будем проверять сканером:</p>
<pre>/usr/local/drweb/drweb test.com</pre>
<p align="justify">В отчёте сканера должна быть строчка:</p>
<pre>
...
/usr/local/drweb/test.com infected with EICAR Test File (NOT a Virus!)
...</pre>
<p align="justify">Ура! Сканер работает и находит вирусы.</p>
<p align="justify">Если я не ошибаюсь, сканер в проверке почты никак не участвует. Нас больше интересует демон drwebd. Запускаем его:</p>
<pre>
/usr/local/etc/rc.d/drwebd.sh start
</pre>
<p align="justify">Если демон нормально запустился, то в папке /usr/var/drweb/run должен быть создан сокет (специальный файл) drwebd.socket, а также отчитаться в логи:</p>
<pre>
...
Daemon is installed, UNIX socket created in file /var/drweb/run/drwebd.socket
</pre>
<p align="justify">Метод вывода логов задаётся в конфиге /etc/drweb/drweb32.ini. По-умолчанию, логи передаюся syslog-демону с типом Daemon:</p>
<pre>
SyslogFacility = "Daemon"
</pre>
<p align="justify">В документации сказано, что проверить работу демона можно с помощью клиента drwebc, который прилагается в дистрибутиве. Но, судя по всему, это не относится к данному дистрибутиву, т.к. такой программы я не нашёл. Есть правда программа /usr/local/drweb/clients/demo/drwebdc-demo, но разобраться с ней оказалось сложнее чем настроить непосредственно фильтр drweb-smf.</p>
<h4>Установка и настройка фильтра drweb-smf</h4>
<p align="justify">Распаковываем файл drweb-sendmail-4.28.3-freebsd4.tgz, видим две папки etc и opt. Делаем то же, что и для сканера и демона, т.е. перекладываем etc/drweb в /etc/drweb, а opt/drweb /usr/local/drweb.</p>
<p align="justify">Поправляем конфиг фильтра /etc/drweb/drweb_smf.conf (описание на русском языке прилагается в дистрибутиве):</p>
<pre>
[DaemonCommunication]
Address = local:/var/drweb/run/drwebd.socket

[SendmailCommunication]
Address = local:/var/drweb/run/drweb-smf.sock

[Actions]
ScanningErrors = tempfail
ProcessingErrors = tempfail

[NotificationOptions]
NotifyHashSalt = !!!Chtob_nikto_ne_dogodalsya!!!

[VirusNotifications]
SenderNotify = no
</pre>
<p align="justify">Обязательно нужно исправить первые два ключа Address. Последний ключ я выставляю в no, т.к. не считаю нужным отсылать уведомление о вирусе отправителю, т.к. мне кажется, что чаще всего обратный адрес указан фальсифицированный и лишняя нагрузка на почтовый сервер будет напрасной.</p>
<p align="justify">Также по умолчанию параметр ScanningErrors установлен в reject &#8211; в случае ошибок сканирования отвергать все сообщения, т.е. сообщения вернутся с ошибкой, мне кажется лучше поставить значение tempfail &#8211; временная недоступность, почтовая система будет пытаться отправить сообщение позже. Примерно то же самое относится в параметру ProcessingErrors.</p>
<p align="justify">Интересная, и неожиданная для меня, возможность задания списка исключений для фильтра (/etc/drweb/users.conf), т.е. вы можете указать для каких адресов проверять сообщения, а для каких не проверять. Пример файла<br />
/etc/drweb/users.conf:</p>
<pre>
[version=2]
# не проверять входящую почту для этих адресов:
deny     to   subst     malik@mydomain.kg
deny     to   subst     igor@mydomain.kg
# для остальных проверять входящую почту:
allow    to   regex     .*
</pre>
<p align="justify">В данном случае получается, что фильтр должен проверять почту только для пользователей igor@myhost.kg и malik@myhost.kg, а почту для остальных адресов домена не проверять.</p>
<p align="justify">Об угловых скобках. В примерах из поставки адреса указаны без угловых скобок, но у меня точное соответствие (exact) без них никак не получалось. А вот с угловыми скобками всё отлично работает, но всё равно надёжнее указывать не точное соответствие exact, а поиск подстроки subst.</p>
<p align="justify"><b>ВАЖНО!!!</b> Однажды очень долго боролся с этими списками, пока не задал вопрос на форуме производителя DrWeb-а (спасибо Sergey Akhapkin). Короче говоря, при использовании этих списков необходимо проверить значение параметра DenyMode в конфиге почтового фильтра (drweb_smf.conf) и выставить подходящее значение.</p>
<p align="justify">В конце концов, запускаем фильтр (демон должен быть уже запущен) и проверяем наличие в процессах демона и фильтра:<br />
ps xa|grep drweb</p>
<h4>Перекомпиляция сендмейла с поддержкой milter-а</h4>
<p align="justify">Для работы drweb-фильтра необходим сендмейл, скомпилированный с поддержкой milter-а. К сожалению, сендмейл на моей машине оказался без оной. Ну раз уж нужно перекомпилировать сендмейл скачаю последнюю версию: sendmail.8.12.3.tar.gz (1,8Мб)</p>
<p align="justify">Компилирую и устанавливаю сендмейл с поддержкой milter-а (все пути даются относительно папки с дисрибутивом):<br />
- дописываю в файл devtools/Site/site.config.m4 (если такого файла нет, то<br />
 создаём):</p>
<pre> APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER')</pre>
<p>- в папке libmilter говорим</p>
<pre>
 Build
 Build install</pre>
<p>- в папке дистрибутива sendmail запускаю:</p>
<pre>
 Build -c
 Build install</pre>
<p align="justify">Готово &#8211; скомпилировали и установили. Про стандартную настройку сендмейла не говорю, это должен знать каждый (кто взялся за установку антивируса <img src='http://test.kg/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> <br />
В моём случае, предыдущая версия сендмейла не отличалась от новой по настройкам, поэтому ничего менять не пришлось.<br />
Запускаю и проверяю работоспособность моей почтовой системы &#8211; 25-й порт слушает, почту получает/отправляет, логи пишет &#8211; красота <img src='http://test.kg/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h4>Правим sendmail.cf</h4>
<p align="justify">Чтобы сообщения передавалиь фильтру drweb-smf нужно внести некоторые изменения в конфиг сендсейла. Считается, что правильнее внесить изменения в sendmail.cf при помощи m4, но в данном случае мне этот метод показался слишком громоздким и длинным (да простят меня знатоки сенмейла <img src='http://test.kg/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Я просто, как описано в документации к фильтру, добавил несколько строк в существующий sendmail.cf:</p>
<pre>
# Input mail filters
O InputMailFilters=drweb-filter

O Milter.LogLevel=6
O Milter.macros.envfrom=i

Xdrweb-filter,  S=local:/var/drweb/run/drweb-smf.sock, F=T,T=S:5m;R:5m;E:1h
</pre>
<p align="justify">Говорим сендмейлу о необходимости перечитать свой конфиг:</p>
<pre>kill -HUP `head -1 /var/run/sendmail.pid`</pre>
<p align="justify">Смотрим логи сендмейла /var/log/maillog и, если всё нормально, пробуем послать сообщение с вложенным тестовым вирусом. Если возникают какие-либо проблемы &#8211; внимательно читайте логи. Можно увеличить уровень логирования в sendmail.cf:</p>
<pre>
O Milter.LogLevel=14</pre>
<p align="justify">А также изменить в конфиге фильтра /etc/drweb/drweb_smf.conf значение параметра в секции [Logging]:</p>
<pre>Level = Verbose</pre>
<h4>Запуск</h4>
<p align="justify">Теперь необходимо запускать демон и фильтр при загрузке системы.<br />
Правильнее для этого поместить скрипт в папку /usr/local/etc/rc.d При этом скрипт обязательно должен понимать ключи start и stop, и иметь расширение &#8216;sh&#8217;.<br />
<br />Учтите также, что если работа завершилась неправильно (например, комьютер перезагрузился из-за скачка напряжения), то сохранившийся сокет фильтра (/var/drweb/run/drweb-smf.sock) не позволит ему запуститься в следующий раз.<br />
<br />У меня получился вот такой скрипт:</p>
<pre>
#!/bin/sh

RETVAL=0
case "$1" in
    start)
        echo -n "Starting Dr. Web daemon..."
        /usr/local/drweb/drwebd
        rm /var/drweb/run/drweb-smf.sock
        /usr/local/drweb/drweb-smf
    ;;
    stop)
        echo -n "Shutting down Dr. Web daemon..."
        kill -TERM `cat /var/drweb/run/drwebd.pid | head -1`
        killall -TERM drweb-smf
    ;;
    *)
    echo "Usage: $0 {start|stop}"
    RETVAL=1
esac
exit $RETVAL
</pre>
<p align="justify">Для полного счастья осталось только регулярно запускать скрипт обновления, например, из папок /etc/periodic/daily или /etc/periodic/weekly</p>
<p align="justify">Ну вот вроде и всё.</p>
<p align="justify">Май 2002.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://test.kg/drweb-sendmail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

