<?xml version="1.0" encoding="koi8-r" standalone="no"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN"
"../../../share/xml/freebsd42.dtd" [
<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//RU" "../../share/xml/entities.ent">
%entities;
<!ENTITY % not.published "IGNORE">
]>
<!--
The FreeBSD Russian Documentation Project
$FreeBSD$
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/relaydelay/article.xml,v 1.2 2007/05/15 19:31:54 gad Exp $
Original revision: r32632
-->
<article lang="ru">
<articleinfo>
<title>éÓÐÏÌØÚÏ×ÁÎÉÅ ÔÅÈÎÏÌÏÇÉÉ ÓÅÒÙÈ ÓÐÉÓËÏ× ×Ï &os;</title>
<author>
<firstname>ôÏÍ</firstname>
<surname>òÏÄÅÓ</surname>
<affiliation>
<address><email>trhodes@FreeBSD.org</email></address>
</affiliation>
</author>
<copyright>
<year>2004</year>
<holder>The &os; Documentation Project</holder>
</copyright>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
<para>üÔÁ ÓÔÁÔØÑ ÓÏÚÄÁÎÁ ÉÓËÌÀÞÉÔÅÌØÎÏ ÄÌÑ ÏÐÉÓÁÎÉÑ ÔÅÈÎÏÌÏÇÉÉ ÚÁÄÅÒÖËÉ
ÐÅÒÅÄÁÞÉ ÓÏÏÂÝÅÎÉÊ ÎÁ ÐÏÞÔÏ×ÏÍ ÓÅÒ×ÅÒÅ &os;. óÅÒ×ÅÒ Ó ÔÅÈÎÏÌÏÇÉÅÊ
ÚÁÄÅÒÖËÉ ÐÅÒÅÄÁÞÉ (relaydelay) ÉÌÉ ÐÏÐÁÄÁÎÉÅÍ × ÓÅÒÙÊ ÓÐÉÓÏË
(greylisting) ÓÎÉÖÁÅÔ ÕÒÏ×ÅÎØ ÓÐÁÍÁ ÐÒÏÓÔÏ ÚÁ ÓÞ£Ô ×ÙÄÁÞÉ
ÄÉÁÇÎÏÓÔÉÞÅÓËÏÇÏ ÓÏÏÂÝÅÎÉÑ <errorname>TEMPFAIL</errorname> ÎÁ ËÁÖÄÏÅ
×ÈÏÄÑÝÅÅ ÐÏÞÔÏ×ÏÅ ÓÏÏÂÝÅÎÉÅ. óÍÙÓÌ ÜÔÏÊ ÔÅÈÎÏÌÏÇÉÉ ÚÁËÌÀÞÁÅÔÓÑ × ÔÏÍ,
ÞÔÏ ÂÏÌØÛÉÎÓÔ×Ï ÓÐÁÍÅÒÏ× ÄÌÑ ×ÙÐÏÌÎÅÎÉÑ Ó×ÏÅÊ ÒÁÂÏÔÙ ÉÓÐÏÌØÚÕÀÔ
ÓÏÂÓÔ×ÅÎÎÙÅ ÐÅÒÓÏÎÁÌØÎÙÅ ËÏÍÐØÀÔÅÒÙ É ÓÐÅÃÉÁÌÉÚÉÒÏ×ÁÎÎÏÅ ÐÒÏÇÒÁÍÍÎÏÅ
ÏÂÅÓÐÅÞÅÎÉÅ. îÁÓÔÏÑÝÉÊ ÐÏÞÔÏ×ÙÊ ÓÅÒ×ÅÒ ÄÏÌÖÅÎ ÐÏÍÅÝÁÔØ ÓÏÏÂÝÅÎÉÑ ×
ÏÞÅÒÅÄØ É ÐÙÔÁÔØÓÑ ÄÏÓÔÁ×ÉÔØ ÅÇÏ ÐÏÚÖÅ. ôÁËÉÍ ÏÂÒÁÚÏÍ, ÓËÏÒÅÅ ×ÓÅÇÏ,
ÓÐÁÍÅÒ ÐÅÒÅÊÄ£Ô Ë ÓÌÅÄÕÀÝÅÍÕ ÈÏÓÔÕ ×ÍÅÓÔÏ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÐÙÔÁÔØÓÑ ÓÎÏ×Á
ÐÏÓÌÁÔØ ÜÌÅËÔÒÏÎÎÏÅ ÐÏÓÌÁÎÉÅ. üÔÏ ÐÒÅËÒÁÓÎÁÑ ÉÄÅÑ; ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ,
ÄÏ ÔÅÈ ÐÏÒ, ÐÏËÁ ÓÐÁÍÅÒÙ ÎÅ ÎÁÞÎÕÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÒÏÇÒÁÍÍÎÏÅ
ÏÂÅÓÐÅÞÅÎÉÅ, ËÏÔÏÒÏÅ ÂÕÄÅÔ ÏÂÅÓÐÅÞÉ×ÁÔØ ÐÏ×ÔÏÒ ÐÅÒÅÄÁÞÉ. îÏ ËÁË ÉÍÅÎÎÏ
ÜÔÏ ÒÁÂÏÔÁÅÔ? éÔÁË, × ÐÒÏÃÅÓÓÅ ÐÒÉ£ÍÁ ÓÏÏÂÝÅÎÉÑ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÙ
<acronym>ID</acronym> ÓÏÏÂÝÅÎÉÑ ÓÏÈÒÁÎÑÅÔÓÑ × ÂÁÚÅ ÄÁÎÎÙÈ, Á × ËÁÞÅÓÔ×Å
ÒÅÚÕÌØÔÁÔÁ ×ÏÚ×ÒÁÝÁÅÔÓÑ <errorname>TEMPFAIL</errorname> ×ÍÅÓÔÅ Ó
ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÏÊ. åÓÌÉ ÓÏÏÂÝÅÎÉÅ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÙ ÐÏÓÙÌÁÅÔÓÑ
ÐÏ×ÔÏÒÎÏ, ÔÏ <acronym>ID</acronym> ÓÏÏÂÝÅÎÉÑ ÂÕÄÅÔ Ó×ÅÒÑÔØÓÑ Ó
<acronym>ID</acronym> ÓÏÏÂÝÅÎÉÊ, ÓÏÈÒÁΣÎÎÙÍÉ × ÂÁÚÅ ÄÁÎÎÙÈ. åÓÌÉ ×
ÂÁÚÅ ÄÁÎÎÙÈ ÏÎÏ ÓÕÝÅÓÔ×ÕÅÔ, ÔÏ ÐÏÓÌÁÎÉÀ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÙ ÒÁÚÒÅÛÁÅÔÓÑ
ÄÏÓÔÁ×ËÁ ÐÏ ÎÁÚÎÁÞÅÎÉÀ. ÷ ÐÒÏÔÉ×ÎÏÍ ÓÌÕÞÁÅ <acronym>ID</acronym>
ÓÏÈÒÁÎÑÅÔÓÑ, Á × ËÁÞÅÓÔ×Å ÒÅÚÕÌØÔÁÔÁ ×ÏÚ×ÒÁÔÉÔÓÑ
<errorname>TEMPFAIL</errorname>. üÔÏÔ ÃÉËÌ ÂÕÄÅÔ ÐÏ×ÔÏÒÑÔØÓÑ ÄÌÑ
ËÁÖÄÏÇÏ ÓÏÏÂÝÅÎÉÑ, ÐÏÓÔÕÐÁÀÝÅÇÏ ÎÁ ÓÅÒ×ÅÒ. ðÏ ÍÏÅÍÕ ÌÉÞÎÏÍÕ ÏÐÙÔÕ,
ÜÔÏ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÏÔÓÅËÁÅÔ 90% ÓÐÁÍÁ.</para>
</abstract>
</articleinfo>
<sect1>
<title>âÁÚÏ×ÁÑ ÎÁÓÔÒÏÊËÁ</title>
<para>îÁÍ ÐÏÔÒÅÂÕÅÔÓÑ <command>perl</command> Ó ÐÏÄÄÅÒÖËÏÊ ÍÎÏÇÏÐÏÔÏÞÎÏÇÏ
×ÙÐÏÌÎÅÎÉÑ. õÓÔÁÎÏ×ÉÔÅ <filename role="package">lang/perl5.8</filename>
Ó ÕÓÔÁÎÏ×ÌÅÎÎÏÊ ÐÅÒÅÍÅÎÎÏÊ <makevar>USE_THREADS=yes</makevar>. óÎÁÞÁÌÁ
ÍÏÖÅÔ ÐÏÔÒÅÂÏ×ÁÔØÓÑ ÕÄÁÌÉÔØ ÔÅËÕÝÕÀ ×ÅÒÓÉÀ <command>perl</command>; ÎÁ
ÎÅÏÂÈÏÄÉÍÏÓÔØ ÓÄÅÌÁÔØ ÜÔÏ ÕËÁÖÕÔ ÏÛÉÂËÉ × ÐÒÏÃÅÓÓÅ ÕÓÔÁÎÏ×ËÉ.</para>
<note>
<para>ðÒÉ ÜÔÏÍ ÐÏÔÒÅÂÕÅÔÓÑ, ÞÔÏÂÙ ×ÓÅ ÐÏÒÔÙ, ËÏÔÏÒÙÍ ÎÕÖÅÎ
<command>perl</command>, ÂÙÌÉ ÐÅÒÅÓÔÒÏÅÎÙ É ÐÅÒÅÕÓÔÁÎÏ×ÌÅÎÙ;
<filename role="package">ports-mgmt/portupgrade</filename> ÈÏÒÏÛÏ ÄÌÑ
ÜÔÏÇÏ ÐÏÄÈÏÄÉÔ. ðÏ ËÒÁÊÎÅÊ ÍÅÒÅ, ÏÎ ÕËÁÖÅÔ, ËÁËÉÅ ÐÏÒÔÙ ÂÙÌÉ ÕÄÁÌÅÎÙ É
ËÁËÉÅ ÎÅÏÂÈÏÄÉÍÏ ÐÅÒÅÕÓÔÁÎÏ×ÉÔØ.</para>
</note>
<para>ôÅÐÅÒØ ÞÔÏ ËÁÓÁÅÔÓÑ ÓÅÒ×ÅÒÁ ÂÁÚÙ ÄÁÎÎÙÈ;
<application>MySQL</application> ÐÒÅËÒÁÓÎÏ ÐÏÄÈÏÄÉÔ ÄÌÑ ÔÁËÏÇÏ ÔÉÐÁ
ÒÁÂÏÔÙ. õÓÔÁÎÏ×ÉÔÅ <filename
role="package">databases/mysql40-server</filename> ×ÍÅÓÔÅ Ó <filename
role="package">databases/p5-DBD-mysql40</filename>. ðÒÅÄÙÄÕÝÉÊ ÐÏÒÔ
ÄÏÌÖÅÎ ÐÏÄÒÁÚÕÍÅ×ÁÔØ ÕÓÔÁÎÏ×ËÕ <filename
role="package">databases/p5-DBI-137</filename>, ÔÁË ÞÔÏ ÏÄÉÎ ÛÁÇ ÂÕÄÅÔ
ÐÒÏÐÕÝÅÎ.</para>
<para>õÓÔÁÎÏ×ÉÔÅ ÐÅÒÅÎÏÓÉÍÙÊ ÐÏÄËÌÀÞÁÅÍÙÊ ÓÅÒ×ÅÒÎÙÊ ÍÏÄÕÌØ ÎÁ ÂÁÚÅ
<command>perl</command>, ÐÏÒÔ <filename
role="package">net/p5-Net-Daemon</filename>. âÏÌØÛÉÎÓÔ×Ï ÕÓÔÁÎÏ×ÏË ÜÔÉÈ
ÐÏÒÔÏ× ÄÏÌÖÎÙ ÐÒÏÈÏÄÉÔØ ÂÅÚ ÐÒÏÂÌÅÍ. óÌÅÄÕÀÝÉÊ ÛÁÇ ÂÕÄÅÔ ÂÏÌÅÅ
ÔÒÕÄÏ£ÍËÉÍ.</para>
<para>ôÅÐÅÒØ ÕÓÔÁÎÏ×ÉÔÅ ÐÏÒÔ <filename
role="package">mail/p5-Sendmail-Milter</filename>. îÁ ÍÏÍÅÎÔ ÎÁÐÉÓÁÎÉÑ
ÜÔÏÇÏ ÄÏËÕÍÅÎÔÁ × ÆÁÊÌÅ <filename>Makefile</filename> ÉÍÅÌÁÓØ ÓÔÒÏËÁ,
ÎÁÞÉÎÁÀÝÁÑÓÑ Ó <makevar>BROKEN</makevar>, ÐÒÏÓÔÏ ÕÂÅÒÉÔÅ ÉÌÉ
ÚÁËÏÍÍÅÎÔÉÒÕÊÔŠţ. ïÎÁ ÐÏÍÅÞÅÎÁ ÔÁË ÌÉÛØ ÐÏÔÏÍÕ, ÞÔÏ × &os; ÐÏ
ÕÍÏÌÞÁÎÉÀ ÎÅ ×ËÌÀÞÁÌÓÑ É ÎÅ ÕÓÔÁÎÁ×ÌÉ×ÁÌÓÑ ÐÁËÅÔ <command>perl</command>
Ó ÐÏÄÄÅÒÖËÏÊ ÍÎÏÇÏÐÏÔÏÞÎÏÇÏ ×ÙÐÏÌÎÅÎÉÑ. ðÏÓÌÅ ÕÄÁÌÅÎÉÑ ÜÔÏÊ ÓÔÒÏËÉ ÏÎ
ÄÏÌÖÅÎ ÓÔÒÏÉÔØÓÑ É ÕÓÔÁÎÁ×ÌÉ×ÁÔØÓÑ ÂÅÚ ÏÛÉÂÏË.</para>
<para>óÏÚÄÁÊÔÅ ËÁÔÁÌÏÇ ÄÌÑ ÒÁÚÍÅÝÅÎÉÑ ×ÒÅÍÅÎÎÙÈ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÈ
ÆÁÊÌÏ×:</para>
<screen>&prompt.root; <userinput>mkdir /tmp/relaydelay</userinput>
&prompt.root; <userinput>cd /tmp/relaydelay</userinput></screen>
<para>ôÅÐÅÒØ, ËÏÇÄÁ Õ ÎÁÓ ÉÍÅÅÔÓÑ ×ÒÅÍÅÎÎÙÊ ËÁÔÁÌÏÇ ÄÌÑ ÒÁÂÏÔÙ, ËÏÍÁÎÄÅ
<command>fetch</command> ÎÕÖÎÏ ÐÅÒÅÄÁÔØ ÓÌÅÄÕÀÝÉÅ
<acronym>URL</acronym>-ÁÄÒÅÓÁ:</para>
<screen>&prompt.root; <userinput>fetch http://projects.puremagic.com/greylisting/releases/relaydelay-0.04.tgz</userinput>
&prompt.root; <userinput>fetch http://lists.puremagic.com/pipermail/greylist-users/attachments/20030904/b8dafed9/relaydelay-0.04.bin</userinput></screen>
<!-- úáíåþáîéå äìñ ôïíá òïäåóá: òáúíåýáôø ðòïçòáííîïå ïâåóðåþåîéå úäåóø
ñ÷ìñåôóñ ðìïèïê éäååê îá ôïô óìõþáê, åóìé ëáëïê-îéâõäø íõäáë úáíåîéô
åçï. îá÷åòîïå, ñ äïìöåî úááòèé÷éòï÷áôø óëòéðôù é ïóôáìøîõà ûîñçõ. -->
<para>ôÅÐÅÒØ ÎÅÏÂÈÏÄÉÍÏ ÒÁÓÐÁËÏ×ÁÔØ ÉÓÈÏÄÎÙÊ ËÏÄ:</para>
<screen>&prompt.root; <userinput>gunzip -c relaydelay-0.04.tgz | tar xvf -</userinput></screen>
<para>îÁ ÜÔÏÔ ÍÏÍÅÎÔ ×Ï ×ÒÅÍÅÎÎÏÍ ËÁÔÁÌÏÇÅ ÄÏÌÖÎÏ ÏËÁÚÁÔØÓÑ ÎÅÓËÏÌØËÏ
ÆÁÊÌÏ×. ôÅÐÅÒØ ÎÅÏÂÈÏÄÉÍÁÑ ÉÎÆÏÒÍÁÃÉÑ ÍÏÖÅÔ ÐÅÒÅÄÁ×ÁÔØÓÑ ÓÅÒ×ÅÒÕ ÂÁÚÙ
ÄÁÎÎÙÈ ÉÍÐÏÒÔÉÒÏ×ÁÎÉÅÍ Å£ ÉÚ ÆÁÊÌÁ <filename>mysql.sql</filename>:</para>
<screen>&prompt.root; <userinput>mysql < relaydelay-0.04/mysql.sql</userinput></screen>
<para>õÓÔÁÎÏ×ÉÔÅ ÐÁÔÞ <filename>relaydelay.bin</filename> ÄÌÑ ÏÓÔÁÌØÎÙÈ
ÆÁÊÌÏ×, ÚÁÐÕÓÔÉ× ÔÁËÕÀ ËÏÍÁÎÄÕ:</para>
<screen>&prompt.root; <userinput>patch -d /tmp/relaydelay/relaydelay-0.04 < relaydelay.bin</userinput></screen>
<para>ïÔÒÅÄÁËÔÉÒÕÊÔÅ ÆÁÊÌÙ <filename>relaydelay.conf</filename> É
<filename>db_maintenance.pl</filename>, ÄÏÂÁ×É× × ÎÉÈ ËÏÒÒÅËÔÎÏÅ ÉÍÑ
ÐÏÌØÚÏ×ÁÔÅÌÑ É ÐÁÒÏÌØ ÄÌÑ óõâä <application>MySQL</application>. åÓÌÉ
óõâä ÂÙÌÁ ÐÏÓÔÒÏÅÎÁ É ÕÓÔÁÎÏ×ÌÅÎÁ ÔÁË, ËÁË ÏÐÉÓÁÎÏ ×ÙÛÅ, ÔÏ × ÎÅÊ
ÏÔÓÕÔÓÔ×ÕÀÔ ÐÏÌØÚÏ×ÁÔÅÌÉ É ÐÁÒÏÌÉ. üÔÁ ÓÉÔÕÁÃÉÑ ÄÏÌÖÎÁ ÂÙÔØ ÉÓÐÒÁ×ÌÅÎÁ
ÄÏ ÐÅÒÅ×ÏÄÁ ÓÉÓÔÅÍÙ × ÐÒÏÍÙÛÌÅÎÎÕÀ ÜËÓÐÌÕÁÔÁÃÉÀ, ÞÔÏ ÏÐÉÓÁÎÏ ×
ÄÏËÕÍÅÎÔÁÃÉÉ Ë óõâä É ×ÙÈÏÄÉÔ ÚÁ ÒÁÍËÉ ÄÁÎÎÏÊ ÓÔÁÔØÉ.</para>
<para>óÍÅÎÉÔÅ ÒÁÂÏÞÉÊ ËÁÔÁÌÏÇ ÎÁ <filename
class="directory">relaydelay-0.04</filename>:</para>
<screen>&prompt.root; <userinput>cd relaydelay-0.04</userinput></screen>
<para>óËÏÐÉÒÕÊÔÅ ÉÌÉ ÐÅÒÅÍÅÓÔÉÔÅ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÅ ÆÁÊÌÙ × ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÅ
ËÁÔÁÌÏÇÉ:</para>
<screen>&prompt.root; <userinput>mv db_maintenance.pl relaydelay.pl /usr/local/sbin</userinput>
&prompt.root; <userinput>mv relaydelay.conf /etc/mail</userinput>
&prompt.root; <userinput>mv relaydelay.sh /usr/local/etc/rc.d/</userinput></screen>
<para>ðÒÏÔÅÓÔÉÒÕÊÔÅ ÐÏÌÕÞÉ×ÛÕÀÓÑ ËÏÎÆÉÇÕÒÁÃÉÀ, ×ÙÐÏÌÎÉ× ÔÁËÕÀ
ËÏÍÁÎÄÕ:</para>
<screen>&prompt.root; <userinput>sh /usr/local/etc/rc.d/relaydelay.sh start</userinput></screen>
<note>
<para>üÔÏÔ ÆÁÊÌ ÎÅ ÂÕÄÅÔ ÓÕÝÅÓÔ×Ï×ÁÔØ, ÅÓÌÉ ÐÒÅÄÙÄÕÝÉÅ ËÏÍÁÎÄÙ &man.mv.1;
ÎÅ ÂÙÌÉ ×ÙÐÏÌÎÅÎÙ.</para>
</note>
<para>åÓÌÉ ×Ó£ ÏÔÒÁÂÏÔÁÌÏ ËÏÒÒÅËÔÎÏ, ÔÏ × ËÁÔÁÌÏÇÅ <filename
class="directory">/var/log</filename> ÄÏÌÖÅÎ ÐÏÑ×ÉÔØÓÑ ÎÏ×ÙÊ ÆÁÊÌ,
<filename>relaydelay.log</filename>. ÷ Î£Í ÄÏÌÖÅÎ ÎÁÈÏÄÉÔØÓÑ ÔÅËÓÔ,
ÐÏÄÏÂÎÙÊ ÓÌÅÄÕÀÝÅÍÕ:</para>
<programlisting>Loaded Config File: /etc/mail/relaydelay.conf
Using connection 'local:/var/run/relaydelay.sock' for filter relaydelay
DBI Connecting to DBI:mysql:database=relaydelay:host=localhost:port=3306
Spawned relaydelay daemon process 38277.
Starting Sendmail::Milter 0.18 engine.</programlisting>
<para>åÓÌÉ ÆÁÊÌ ÎÅ ÐÏÑ×ÉÌÓÑ, ÔÏ ÞÔÏ-ÔÏ ÓÒÁÂÏÔÁÌÏ ÎÅÐÒÁ×ÉÌØÎÏ, ÐÅÒÅÓÍÏÔÒÉÔÅ
ÜËÒÁÎÎÕÀ ÄÉÁÇÎÏÓÔÉËÕ ÉÌÉ ÐÒÏÓÍÏÔÒÉÔÅ ÖÕÒÎÁÌØÎÙÊ ÆÁÊÌ
<filename>messages</filename> ÎÁ ÐÒÅÄÍÅÔ ÐÏÑ×ÌÅÎÉÑ ÎÏ×ÏÊ
ÉÎÆÏÒÍÁÃÉÉ.</para>
<para>ïÂßÅÄÉÎÉÔÅ ×Ó£ ×ÍÅÓÔÅ, ÄÏÂÁ×É× ÓÌÅÄÕÀÝÕÀ ÓÔÒÏËÕ × ÆÁÊÌ
<filename>/etc/mail/sendmail.mc</filename> ÉÌÉ ÓÐÅÃÉÆÉÞÎÙÊ ÄÌÑ ×ÁÛÅÊ
ÓÉÓÔÅÍÙ <filename>mc</filename>-ÆÁÊÌ:</para>
<programlisting>INPUT_MAIL_FILTER(`relaydelay', `S=local:/var/run/relaydelay.sock, T=S:1m;R:2m;E:3m')dnl</programlisting>
<para>ðÅÒÅÓÔÒÏÊÔÅ É ÐÅÒÅÕÓÔÁÎÏ×ÉÔÅ ÆÁÊÌÙ × ËÁÔÁÌÏÇÅ
<filename>/etc/mail</filename> É ÐÅÒÅÚÁÐÕÓÔÉÔÅ
<command>sendmail</command>. ëÏÒÏÔËÁÑ ËÏÍÁÎÄÁ <command>make</command>
<maketarget>restart</maketarget> ÄÏÌÖÎÁ ÓÄÅÌÁÔØ ×Ó£ ÎÅÏÂÈÏÄÉÍÏÅ.</para>
<para>óÇÒÕÚÉÔÅ ÓËÒÉÐÔ ÎÁ ÑÚÙËÅ <command>perl</command>, ÒÁÚÍÅÝ£ÎÎÙÊ ÐÏ
ÁÄÒÅÓÕ <ulink url="http://lists.puremagic.com/pipermail/greylist-users/2003-November/000327.html">http://lists.puremagic.com/pipermail/greylist-users/2003-November/000327.html</ulink>
É ÓÏÈÒÁÎÉÔÅ ÅÇÏ × ËÁÔÁÌÏÇ <filename
class="directory">relaydelay-0.04</filename>. ÷ ÓÌÅÄÕÀÝÅÍ ÐÒÉÍÅÒÅ ÜÔÏÔ
ÓËÒÉÐÔ ÏÂÏÚÎÁÞÁÅÔÓÑ ËÁË <filename>addlist.pl</filename>.</para>
<para>ïÔÒÅÄÁËÔÉÒÕÊÔÅ ÆÁÊÌ <filename>whitelist_ip.txt</filename>,
ÍÏÄÉÆÉÃÉÒÏ×Á× ÅÇÏ ÔÁË, ÞÔÏÂÙ × ÎÅÇÏ ÂÙÌÉ ×ËÌÀÞÅÎÙ
<acronym>IP</acronym>-ÁÄÒÅÓÁ ÓÅÒ×ÅÒÏ×, ËÏÔÏÒÙÅ ÄÏÌÖÎÙ ÉÍÅÔØ ×ÏÚÍÏÖÎÏÓÔØ
ÉÇÎÏÒÉÒÏ×ÁÔØ ÆÉÌØÔÒÙ <application>relaydelay</application>. ôÏ ÅÓÔØ ÜÔÏ
ÄÏÍÅÎÙ, ÐÒÉ ÐÏÌÕÞÅÎÉÉ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÙ ÏÔ ËÏÔÏÒÙÈ ÄÉÁÇÎÏÓÔÉÞÅÓËÏÅ
ÓÏÏÂÝÅÎÉÅ <errorname>TEMPFAIL</errorname> ×ÙÄÁ×ÁÔØÓÑ ÎÅ ÂÕÄÅÔ.</para>
<para>ëÁË ÐÒÉÍÅÒ ÍÏÖÎÏ ÐÒÉ×ÅÓÔÉ:</para>
<programlisting>192.168. # My internal network.
66.218.66 # Yahoo groups has unique senders.</programlisting>
<para>æÁÊÌ <filename>blacklist_ip.txt</filename> ÄÏÌÖÅÎ ÉÍÅÔØ ÐÏÈÏÖÅÅ
ÎÁÚÎÁÞÅÎÉÅ, ÎÏ Ó ÏÂÒÁÔÎÙÍÉ ÐÒÁ×ÉÌÁÍÉ. õËÁÖÉÔÅ × ÜÔÏÍ ÆÁÊÌÅ
<acronym>IP</acronym>-ÁÄÒÅÓÁ, ËÏÔÏÒÙÅ ÄÏÌÖÎÙ ÏÔ×ÅÒÇÁÔØÓÑ ÂÅÚ ×ÙÄÁÞÉ
ÄÉÁÇÎÏÓÔÉÞÅÓËÏÇÏ ÓÏÏÂÝÅÎÉÑ <errorname>TEMPFAIL</errorname>. üÔÏÔ
ÐÅÒÅÞÅÎØ ÄÏÍÅÎÏ× ÎÉËÏÇÄÁ ÎÅ ÐÏÌÕÞÉÔ ÄÁÖÅ ×ÏÚÍÏÖÎÏÓÔØ ÓÏÏÂÝÉÔØ Ï ÔÏÍ, ÞÔÏ
ÏÎÉ Ñ×ÌÑÀÔÓÑ ÒÅÁÌØÎÏ ÓÕÝÅÓÔ×ÕÀÝÉÍÉ ÐÏÞÔÏ×ÙÍÉ ÓÅÒ×ÅÒÁÍÉ.</para>
<para>üÔÉ ÆÁÊÌÙ ÔÅÐÅÒØ ÄÏÌÖÎÙ ÂÙÔØ ÉÍÐÏÒÔÉÒÏ×ÁÎÙ × ÂÁÚÕ ÄÁÎÎÙÈ ÐÏÓÒÅÄÓÔ×ÏÍ
ÓËÒÉÐÔÁ <filename>addlist.pl</filename>, ËÏÔÏÒÙÊ ÂÙÌ ÐÏÌÕÞÅÎ ÎÅÓËÏÌØËÉÍÉ
ÓÔÒÏËÁÍÉ ×ÙÛÅ:</para>
<screen>&prompt.root; <userinput>perl addlist.pl -whitelist 9999-12-31 23:59:59 < whitelist_ip.txt</userinput>
&prompt.root; <userinput>perl addlist.pl -blacklist 9999-12-31 23:59:59 < blacklist_ip.txt</userinput></screen>
<para>äÌÑ ×ËÌÀÞÅÎÉÑ ÔÅÈÎÏÌÏÇÉÉ <application>relaydelay</application> ÐÒÉ
ËÁÖÄÏÊ ÚÁÇÒÕÚËÅ ÓÉÓÔÅÍÙ, ÄÏÂÁ×ØÔÅ ÓÔÒÏÞËÕ
<option>relaydelay_enable="YES"</option> × ÆÁÊÌ
<filename>/etc/rc.conf</filename>.</para>
<para>öÕÒÎÁÌØÎÙÊ ÆÁÊÌ <filename>/var/log/relaydelay.log</filename> ÄÏÌÖÅÎ
ÐÏÓÔÅÐÅÎÎÏ ÐÏÐÏÌÎÑÔØÓÑ ÕÄÁÞÎÙÍÉ ÐÒÏÈÏÖÄÅÎÉÑÍÉ. ÷ ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÚÁÇÒÕÚËÉ
×ÁÛÅÇÏ ÐÏÞÔÏ×ÏÇÏ ÓÅÒ×ÅÒÁ, ×ÓËÏÒÅ ÄÏÌÖÎÙ ÐÏÑ×ÉÔØÓÑ ÓÔÒÏÞËÉ, ÐÏÄÏÂÎÙÅ
ÓÌÅÄÕÀÝÉÍ.</para>
<programlisting>=== 2004-05-24 21:03:22 ===
Stored Sender: <someasshole@flawed-example.com>
Passed Recipient: <local_user@pittgoth.com>
Relay: example.net [XXX.XX.XXX.XX] - If_Addr: MY_IP_ADDRESS
RelayIP: XX.XX.XX.XX - RelayName: example.net - RelayIdent: - PossiblyForged: 0
From: someasshole@flawed-example.com - To: local_user
InMailer: esmtp - OutMailer: local - QueueID: i4P13Lo6000701111
Email is known but block has not expired. Issuing a tempfail. rowid: 51
IN ABORT CALLBACK - PrivData: 0<someasshole@flawed-example.com></programlisting>
<para>÷ ÆÁÊÌ <filename>/etc/newsyslog.conf</filename> ÔÅÐÅÒØ ÍÏÖÎÏ ÄÏÂÁ×ÉÔØ
ÓÌÅÄÕÀÝÕÀ ÓÔÒÏËÕ, ËÏÔÏÒÁÑ ÏÂÅÓÐÅÞÉ×ÁÅÔ ÒÏÔÁÃÉÀ ÖÕÒÎÁÌÏ×
<filename>relaydelay.log</filename> ÐÒÉ ÄÏÓÔÉÖÅÎÉÉ ÒÁÚÍÅÒÁ × 100
<acronym>ëÂÁÊÔ</acronym>:</para>
<screen>/var/log/relaydelay.log 644 3 100 * Z</screen>
<!-- XXX ë ËÁËÏÍÕ ÔÅËÓÔÕ ÏÔÎÏÓÉÔÓÑ ÜÔÏ ÚÁÍÅÞÁÎÉÅ? -->
<note>
<para>÷ ËÁËÏÊ-ÔÏ ÍÏÍÅÎÔ ÐÏÑ×ÌÑÌÁÓØ ÏÛÉÂËÁ Ï ÎÅÐÏÌÎÏÍ ÏÐÒÅÄÅÌÅÎÉÉ
ÐÅÒÅÍÅÎÎÙÈ <command>perl</command> × ÆÁÊÌÅ
<filename>/etc/mail/relaydelay.conf</filename>. åÓÌÉ ÔÅ Ä×Å ÐÅÒÅÍÅÎÎÙÅ
ÒÁÓËÏÍÍÅÎÔÉÒÏ×ÁÎÙ, ÔÏ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ ÍÏÖÅÔ ÂÙÔØ ÏÂÒÁÂÏÔÁÎ
ÎÏÒÍÁÌØÎÏ. ðÒÏÓÔÏ ÎÅ ÚÁÂÕÄØÔÅ ÕÂÒÁÔØ ÉÈ ÉÚ ËÏÍÍÅÎÔÁÒÉÅ× ÄÏ ÔÏÇÏ, ËÁË
ÎÁÞÁÔØ ÒÁÂÏÔÕ Ó ÔÅÈÎÏÌÏÇÉÅÊ <command>relaydelay</command>.</para>
</note>
</sect1>
</article>