<?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>Ky6uk&#039;s Blog &#187; Debian</title>
	<atom:link href="http://ky6uk.org/tag/debian/feed" rel="self" type="application/rss+xml" />
	<link>http://ky6uk.org</link>
	<description>Очередной прыщебложик... :3</description>
	<lastBuildDate>Wed, 02 Nov 2011 20:49:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Почтовый SMTP / IMAP сервер своими руками.</title>
		<link>http://ky6uk.org/pochtovyj-smtp-imap-server-svoimi-rukami?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=pochtovyj-smtp-imap-server-svoimi-rukami</link>
		<comments>http://ky6uk.org/pochtovyj-smtp-imap-server-svoimi-rukami#comments</comments>
		<pubDate>Sun, 09 Jan 2011 21:10:10 +0000</pubDate>
		<dc:creator>Ky6uk</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Dovecot]]></category>
		<category><![CDATA[IMAP]]></category>
		<category><![CDATA[MDA]]></category>
		<category><![CDATA[MTA]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[SMTP]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://ky6uk.org/?p=914</guid>
		<description><![CDATA[Давненько я не писал в свой уютненький ничего полезного. Вернее, не писал сюда вообще ничего. Думаю, что пришло время это изменить. За прошедшее время набралось по крайней мере три темы, которые я хотел бы осветить в блоге. Начать решил с установки и настройки своего полноценного почтового сервера на связке Postfix + Dovecot + MySQL в системе [...]]]></description>
			<content:encoded><![CDATA[<p>Давненько я не писал в свой уютненький ничего полезного. Вернее, не писал сюда вообще ничего. Думаю, что пришло время это изменить.</p>
<p>За прошедшее время набралось по крайней мере три темы, которые я хотел бы осветить в блоге. Начать решил с установки и настройки своего полноценного почтового сервера на связке <strong><a title="официальный сайт" href="http://www.postfix.org/">Postfix</a></strong> + <strong><a title="официальный сайт" href="http://www.dovecot.org/">Dovecot</a></strong> + <a style="font-weight: bold;" title="официальный сайт" href="http://www.mysql.com/">MySQL</a> в системе <strong><a title="официальный сайт" href="http://www.debian.org/">Debian</a> Squeeze</strong>.<br />
<span id="more-914"></span></p>
<h4><a name="head"></a>Оглавление</h4>
<ul>
<li><a href="#tools">Инструментарий</a></li>
<li><a href="#start">Подготовка</a></li>
<li><a href="#postfix1">Первичная настройка Postfix</a></li>
<li><a href="#dovecot">Настройка Dovecot</a></li>
<li><a href="#postfix2">Заключительная настройка Postfix</a></li>
<li><a href="#end">Заключение</a></li>
<li><a href="#links">Используемые ресурсы</a></li>
<li><a href="#additions">Дополнения</a></li>
</ul>
<p><a name="tools"></a></p>
<h4>Инструментарий <a href="#head"> ↑ </a></h4>
<p>В качестве <a title="Mail Transfer Agent" href="http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%87%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80">MTA</a> я выбрал Postfix по нескольким причинам: мне он показался самым простым в настройке, обладающим всем необходимым функционалом, активно разрабатывается, имеет хорошую документацию и, самое главное, умеет работать с Dovecot <em>из коробки</em>.</p>
<p><a title="Mail Delivery Agent" href="http://ru.wikipedia.org/wiki/Mail_delivery_agent">MDA</a> был выбран Dovecot за свою хорошую документацию, простоту конфигурирации и возможность тесно работать с Postfix.</p>
<p>Чтобы обеспечить максимальную гибкость, я решил связать почтовую систему с базой данных. Трудностей в выборе <a title="Система Управления Базами Данных" href="http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B1%D0%B0%D0%B7%D0%B0%D0%BC%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85">СУБД</a> не возникло, так как и Postfix и Dovecot могут работать практически с любой хорошо известной (PostgreSQL, SQLite, MySQL). Здесь я взял первое что пришло в голову &#8212; MySQL.</p>
<p>С выбором операционной системы в которой все это дело будет работать проблемы так же не появилось. Выбрать я мог одно из двух: Debian или Ubuntu, с которыми я достаточно хорошо знаком. Debian был проверен временем и все необходимое для настройки было в репозиториях, поэтому я остановился на нем. Squeeze &#8212; потому, что stable морально устарел, а testing уже несколько месяцев в <em>заморозке</em> перед релизом.</p>
<p><a name="start"></a></p>
<h4>Подготовка <a href="#head"> ↑ </a></h4>
<p>Установим необходимые пакеты:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~$ sudo aptitude install postfix postfix-mysql dovecot-imapd mysql-server</div></div>
<p>Подготовим mysql:</p>
<div class="codecolorer-container mysql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;height:300px;"><div class="mysql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">-- создаем нового пользователя mailuser@localhost с паролем mailpassword</span><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CREATE"><span style="color: #990099; font-weight: bold;">CREATE</span></a> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html"><span style="color: #000099;">USER</span></a> <span style="color: #008000;">'mailuser'</span>@<span style="color: #008000;">'localhost'</span> IDENTIFIED BY <span style="color: #008000;">'mailpassword'</span><span style="color: #000033;">;</span><br />
<br />
<span style="color: #808080; font-style: italic;">-- создадим базу данных mailserver</span><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CREATE"><span style="color: #990099; font-weight: bold;">CREATE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=DATABASE"><span style="color: #990099; font-weight: bold;">DATABASE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=IF%20NOT%20EXISTS"><span style="color: #990099; font-weight: bold;"><a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/control-flow-functions.html"><span style="color: #009900;">IF</span></a> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> EXISTS</span></a> <span style="color: #008000;">`mailserver`</span><span style="color: #000033;">;</span><br />
<br />
<span style="color: #808080; font-style: italic;">-- дадим созданному пользователю все права на созданную БД</span><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=GRANT"><span style="color: #990099; font-weight: bold;">GRANT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=ALL"><span style="color: #990099; font-weight: bold;">ALL</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=PRIVILEGES"><span style="color: #990099; font-weight: bold;">PRIVILEGES</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=ON"><span style="color: #990099; font-weight: bold;">ON</span></a> <span style="color: #008000;">`mailserver`</span>.<span style="color: #CC0099;">*</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=TO"><span style="color: #990099; font-weight: bold;">TO</span></a> <span style="color: #008000;">'mailuser'</span>@<span style="color: #008000;">'localhost'</span><span style="color: #000033;">;</span><br />
<br />
<span style="color: #808080; font-style: italic;">-- выбираем созданную БД</span><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=USE"><span style="color: #990099; font-weight: bold;">USE</span></a> mailserver<span style="color: #000033;">;</span><br />
<br />
<span style="color: #808080; font-style: italic;">-- создаем таблицу для хранения виртуальных доменов</span><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CREATE"><span style="color: #990099; font-weight: bold;">CREATE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=TABLE"><span style="color: #990099; font-weight: bold;">TABLE</span></a> <span style="color: #008000;">`virtual<span style="color: #008080; font-weight: bold;">_</span>domains`</span> <span style="color: #FF00FF;">&#40;</span><br />
id <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INT"><span style="color: #999900; font-weight: bold;">INT</span></a> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=AUTO_INCREMENT"><span style="color: #FF9900; font-weight: bold;">AUTO_INCREMENT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=PRIMARY%20KEY"><span style="color: #990099; font-weight: bold;">PRIMARY KEY</span></a><span style="color: #000033;">,</span><br />
name <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VARCHAR"><span style="color: #999900; font-weight: bold;">VARCHAR</span></a><span style="color: #FF00FF;">&#40;</span> <span style="color: #008080;">50</span> <span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><br />
<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=ENGINE"><span style="color: #990099; font-weight: bold;">ENGINE</span></a> <span style="color: #CC0099;">=</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INNODB"><span style="color: #990099; font-weight: bold;">INNODB</span></a><span style="color: #000033;">;</span><br />
<br />
<span style="color: #808080; font-style: italic;">-- создаем таблицу для виртуальных пользователей</span><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CREATE"><span style="color: #990099; font-weight: bold;">CREATE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=TABLE"><span style="color: #990099; font-weight: bold;">TABLE</span></a> <span style="color: #008000;">`virtual<span style="color: #008080; font-weight: bold;">_</span>users`</span> <span style="color: #FF00FF;">&#40;</span><br />
id <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INT"><span style="color: #999900; font-weight: bold;">INT</span></a><span style="color: #FF00FF;">&#40;</span> <span style="color: #008080;">11</span> <span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=AUTO_INCREMENT"><span style="color: #FF9900; font-weight: bold;">AUTO_INCREMENT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=PRIMARY%20KEY"><span style="color: #990099; font-weight: bold;">PRIMARY KEY</span></a><span style="color: #000033;">,</span><br />
domain_id <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INT"><span style="color: #999900; font-weight: bold;">INT</span></a><span style="color: #FF00FF;">&#40;</span> <span style="color: #008080;">11</span> <span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><span style="color: #000033;">,</span><br />
<a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html"><span style="color: #000099;">user</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VARCHAR"><span style="color: #999900; font-weight: bold;">VARCHAR</span></a><span style="color: #FF00FF;">&#40;</span> <span style="color: #008080;">40</span> <span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><span style="color: #000033;">,</span><br />
<a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/encryption-functions.html"><span style="color: #000099;">PASSWORD</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VARCHAR"><span style="color: #999900; font-weight: bold;">VARCHAR</span></a><span style="color: #FF00FF;">&#40;</span> <span style="color: #008080;">32</span> <span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><span style="color: #000033;">,</span><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CONSTRAINT"><span style="color: #990099; font-weight: bold;">CONSTRAINT</span></a> UNIQUE_EMAIL <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=UNIQUE"><span style="color: #FF9900; font-weight: bold;">UNIQUE</span></a> <span style="color: #FF00FF;">&#40;</span><br />
domain_id<span style="color: #000033;">,</span><br />
<a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html"><span style="color: #000099;">user</span></a><br />
<span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">,</span><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=FOREIGN%20KEY"><span style="color: #990099; font-weight: bold;">FOREIGN KEY</span></a> <span style="color: #FF00FF;">&#40;</span> domain_id <span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=REFERENCES"><span style="color: #990099; font-weight: bold;">REFERENCES</span></a> virtual_domains<span style="color: #FF00FF;">&#40;</span> id <span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=ON"><span style="color: #990099; font-weight: bold;">ON</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=DELETE"><span style="color: #990099; font-weight: bold;">DELETE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CASCADE"><span style="color: #990099; font-weight: bold;">CASCADE</span></a><br />
<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=ENGINE"><span style="color: #990099; font-weight: bold;">ENGINE</span></a> <span style="color: #CC0099;">=</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INNODB"><span style="color: #990099; font-weight: bold;">INNODB</span></a><span style="color: #000033;">;</span><br />
<br />
<span style="color: #808080; font-style: italic;">-- создаем таблицу для хранения виртуальных алиасов</span><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CREATE"><span style="color: #990099; font-weight: bold;">CREATE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=TABLE"><span style="color: #990099; font-weight: bold;">TABLE</span></a> <span style="color: #008000;">`virtual<span style="color: #008080; font-weight: bold;">_</span>aliases`</span> <span style="color: #FF00FF;">&#40;</span><br />
id <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INT"><span style="color: #999900; font-weight: bold;">INT</span></a><span style="color: #FF00FF;">&#40;</span> <span style="color: #008080;">11</span> <span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=AUTO_INCREMENT"><span style="color: #FF9900; font-weight: bold;">AUTO_INCREMENT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=PRIMARY%20KEY"><span style="color: #990099; font-weight: bold;">PRIMARY KEY</span></a><span style="color: #000033;">,</span><br />
domain_id <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INT"><span style="color: #999900; font-weight: bold;">INT</span></a><span style="color: #FF00FF;">&#40;</span> <span style="color: #008080;">11</span> <span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><span style="color: #000033;">,</span><br />
source <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VARCHAR"><span style="color: #999900; font-weight: bold;">VARCHAR</span></a><span style="color: #FF00FF;">&#40;</span> <span style="color: #008080;">40</span> <span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><span style="color: #000033;">,</span><br />
destination <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VARCHAR"><span style="color: #999900; font-weight: bold;">VARCHAR</span></a><span style="color: #FF00FF;">&#40;</span> <span style="color: #008080;">80</span> <span style="color: #FF00FF;">&#41;</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/non-typed-operators.html"><span style="color: #CC0099; font-weight: bold;">NOT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=NULL"><span style="color: #9900FF; font-weight: bold;">NULL</span></a><span style="color: #000033;">,</span><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=FOREIGN%20KEY"><span style="color: #990099; font-weight: bold;">FOREIGN KEY</span></a> <span style="color: #FF00FF;">&#40;</span> domain_id <span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=REFERENCES"><span style="color: #990099; font-weight: bold;">REFERENCES</span></a> virtual_domains<span style="color: #FF00FF;">&#40;</span> id <span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=ON"><span style="color: #990099; font-weight: bold;">ON</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=DELETE"><span style="color: #990099; font-weight: bold;">DELETE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CASCADE"><span style="color: #990099; font-weight: bold;">CASCADE</span></a><br />
<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=ENGINE"><span style="color: #990099; font-weight: bold;">ENGINE</span></a> <span style="color: #CC0099;">=</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INNODB"><span style="color: #990099; font-weight: bold;">INNODB</span></a><span style="color: #000033;">;</span><br />
<br />
<span style="color: #808080; font-style: italic;">-- создаем виртуальную таблицу с пользовательскими аккаунтами</span><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CREATE"><span style="color: #990099; font-weight: bold;">CREATE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VIEW"><span style="color: #990099; font-weight: bold;">VIEW</span></a> <span style="color: #008000;">`view<span style="color: #008080; font-weight: bold;">_</span>users`</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=AS"><span style="color: #990099; font-weight: bold;">AS</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=SELECT"><span style="color: #990099; font-weight: bold;">SELECT</span></a> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html"><span style="color: #000099;">CONCAT</span></a><span style="color: #FF00FF;">&#40;</span>virtual_users.<a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html"><span style="color: #000099;">user</span></a><span style="color: #000033;">,</span> <span style="color: #008000;">'@'</span><span style="color: #000033;">,</span> virtual_domains.name <span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=AS"><span style="color: #990099; font-weight: bold;">AS</span></a> email<span style="color: #000033;">,</span> virtual_users.<a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/encryption-functions.html"><span style="color: #000099;">password</span></a><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=FROM"><span style="color: #990099; font-weight: bold;">FROM</span></a> virtual_users<br />
<a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html"><span style="color: #000099;">LEFT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=JOIN"><span style="color: #990099; font-weight: bold;">JOIN</span></a> virtual_domains <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=ON"><span style="color: #990099; font-weight: bold;">ON</span></a> virtual_users.domain_id <span style="color: #CC0099;">=</span> virtual_domains.id<span style="color: #000033;">;</span><br />
<br />
<span style="color: #808080; font-style: italic;">-- создаем виртуальную таблицу с алиасами</span><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=CREATE"><span style="color: #990099; font-weight: bold;">CREATE</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VIEW"><span style="color: #990099; font-weight: bold;">VIEW</span></a> <span style="color: #008000;">`view<span style="color: #008080; font-weight: bold;">_</span>aliases`</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=AS"><span style="color: #990099; font-weight: bold;">AS</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=SELECT"><span style="color: #990099; font-weight: bold;">SELECT</span></a> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html"><span style="color: #000099;">CONCAT</span></a><span style="color: #FF00FF;">&#40;</span> virtual_aliases.source<span style="color: #000033;">,</span> <span style="color: #008000;">'@'</span><span style="color: #000033;">,</span> virtual_domains.name <span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=AS"><span style="color: #990099; font-weight: bold;">AS</span></a> email<span style="color: #000033;">,</span> destination<br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=FROM"><span style="color: #990099; font-weight: bold;">FROM</span></a> virtual_aliases<br />
<a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/string-functions.html"><span style="color: #000099;">LEFT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=JOIN"><span style="color: #990099; font-weight: bold;">JOIN</span></a> virtual_domains <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=ON"><span style="color: #990099; font-weight: bold;">ON</span></a> virtual_aliases.domain_id <span style="color: #CC0099;">=</span> virtual_domains.id<span style="color: #000033;">;</span></div></div>
<p><a name="postfix1"></a></p>
<h4>Первичная настройка Postfix <a href="#head"> ↑ </a></h4>
<p>Создадим файл <strong>/etc/postfix/mysql_virtual_domains.cf</strong> со следующим содержанием:</p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000099;">user</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> mailuser</span><br />
<span style="color: #000099;">password</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> mailpassword</span><br />
<span style="color: #000099;">hosts</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 127.0.0.1</span><br />
<span style="color: #000099;">dbname</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> mailserver</span><br />
<span style="color: #000099;">query</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> SELECT 1 FROM virtual_domains WHERE name='%s'</span></div></div>
<p>Добавим в файл <strong>/etc/postfix/main.cf</strong> опцию <a href="http://www.postfix.org/postconf.5.html#virtual_mailbox_domains">virtual_mailbox_domains</a>.<br />
Эта опция проверяет список доменов с которыми Postfix может работать. В данном случает результат будет взят из MySQL:</p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000099;">virtual_mailbox_domains</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> mysql:/etc/postfix/mysql_virtual_domains.cf</span></div></div>
<p>Добавим в базу новый виртуальный домен:</p>
<div class="codecolorer-container mysql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="mysql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INSERT"><span style="color: #990099; font-weight: bold;">INSERT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INTO"><span style="color: #990099; font-weight: bold;">INTO</span></a> virtual_domains <span style="color: #FF00FF;">&#40;</span>name<span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VALUES"><span style="color: #990099; font-weight: bold;">VALUES</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'example.com'</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span></div></div>
<p>Если все настроено верно, то следующая команда выдаст в качестве результата единицу:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~$ sudo postmap -q example.com mysql:/etc/postfix/mysql_virtual_domains.cf</div></div>
<p>Создадим файл <strong>/etc/postfix/mysql_virtual_maps.cf</strong>:</p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000099;">user</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> mailuser</span><br />
<span style="color: #000099;">password</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> mailpassword</span><br />
<span style="color: #000099;">hosts</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 127.0.0.1</span><br />
<span style="color: #000099;">dbname</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> mailserver</span><br />
<span style="color: #000099;">query</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> SELECT 1 FROM view_users WHERE email='%s'</span></div></div>
<p>Добавим в файл <strong>/etc/postfix/main.cf</strong> опцию <a href="http://www.postfix.org/postconf.5.html#virtual_mailbox_maps">virtual_mailbox_maps</a>.<br />
Эта опция проверяет существование почтовых адресов на сервере:</p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000099;">virtual_mailbox_maps</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> mysql:/etc/postfix/mysql_virtual_maps.cf</span></div></div>
<p>Добавим в базу нового пользователя <em>username</em> с паролем <em>password</em> на домене <em>example.com</em>:</p>
<div class="codecolorer-container mysql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="mysql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INSERT"><span style="color: #990099; font-weight: bold;">INSERT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INTO"><span style="color: #990099; font-weight: bold;">INTO</span></a> <span style="color: #008000;">`virtual<span style="color: #008080; font-weight: bold;">_</span>users`</span> <span style="color: #FF00FF;">&#40;</span>domain_id<span style="color: #000033;">,</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html"><span style="color: #000099;">user</span></a><span style="color: #000033;">,</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/encryption-functions.html"><span style="color: #000099;">password</span></a><span style="color: #FF00FF;">&#41;</span> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VALUES"><span style="color: #990099; font-weight: bold;">VALUES</span></a> <span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">1</span><span style="color: #000033;">,</span> <span style="color: #008000;">'username'</span><span style="color: #000033;">,</span> <a href="http://dev.mysql.com/doc/refman/%35%2E%31/en/encryption-functions.html"><span style="color: #000099;">MD5</span></a><span style="color: #FF00FF;">&#40;</span><span style="color: #008000;">'password'</span><span style="color: #FF00FF;">&#41;</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span></div></div>
<p>Проверим результат:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~$ sudo postmap -q username@example.com mysql:/etc/postfix/mysql_virtual_maps.cf</div></div>
<p>Создадим файл <strong>/etc/postfix/mysql_virtual_alias_maps.cf</strong>:</p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000099;">user</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> mailuser</span><br />
<span style="color: #000099;">password</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> mailpassword</span><br />
<span style="color: #000099;">hosts</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 127.0.0.1</span><br />
<span style="color: #000099;">dbname</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> mailserver</span><br />
<span style="color: #000099;">query</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> SELECT destination FROM view_aliases WHERE email='%s'</span></div></div>
<p>Добавим в файл <strong>/etc/postfix/main.cf</strong> опцию <a href="http://www.postfix.org/postconf.5.html#virtual_alias_maps">virtual_alias_maps</a>.<br />
Эта опция получает список адресов на которые будет пересылаться вся корреспонденция:</p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000099;">virtual_alias_maps</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> mysql:/etc/postfix/mysql_virtual_alias_maps.cf</span></div></div>
<p>Добавим в базу новый алиас для только что созданного почтового ящика:</p>
<div class="codecolorer-container mysql default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="mysql codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INSERT"><span style="color: #990099; font-weight: bold;">INSERT</span></a> <a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=INTO"><span style="color: #990099; font-weight: bold;">INTO</span></a> <span style="color: #008000;">`virtual<span style="color: #008080; font-weight: bold;">_</span>aliases`</span> <span style="color: #FF00FF;">&#40;</span> domain_id<span style="color: #000033;">,</span> source<span style="color: #000033;">,</span> destination <span style="color: #FF00FF;">&#41;</span><br />
<a href="http://search.mysql.com/search?site=refman-%35%31&amp;q=VALUES"><span style="color: #990099; font-weight: bold;">VALUES</span></a> <span style="color: #FF00FF;">&#40;</span> <span style="color: #008080;">1</span><span style="color: #000033;">,</span> <span style="color: #008000;">'username'</span><span style="color: #000033;">,</span> <span style="color: #008000;">'copy@example.com'</span> <span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span></div></div>
<p>и проверим результат:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~$ sudo postmap -q username@example.com mysql:/etc/postfix/mysql_virtual_alias_maps.cf</div></div>
<p>Теперь укажем Postfix использовать Dovecot в качестве локального агента доставки почты.<br />
Для этого добавим следующие строки в <strong>/etc/postfix/master.cf</strong>:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dovecot unix - n n - - pipe<br />
flags=DRhu user=nobody:nogroup argv=/usr/lib/dovecot/deliver -d ${recipient}</div></div>
<p>Так же добавим в <strong>/etc/postfix/main.cf</strong>:</p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000099;">virtual_transport</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> dovecot</span><br />
<span style="color: #000099;">dovecot_destination_recipient_limit</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 1</span></div></div>
<p><a name="dovecot"></a></p>
<h4>Настройка Dovecot <a href="#head"> ↑ </a></h4>
<p>Файл конфигурации <strong>/etc/dovecot/dovecot.conf</strong> в общем виде:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># протоколы, с которыми будет работать Dovecot<br />
protocols = imap imaps<br />
<br />
# директория, куда будет складываться почта<br />
# %d - имя домена, %n - имя пользователя<br />
mail_location = maildir:/var/spool/virtual/%d/%n<br />
<br />
# настройка авторизации<br />
auth default {<br />
# механизмы авторизации<br />
mechanisms = plain login<br />
<br />
# получает адрес и пароль из БД для авторизации<br />
passdb sql {<br />
# файл, в котором описывается подключение к БД и сам запрос<br />
args = /etc/dovecot/dovecot-sql.conf<br />
}<br />
<br />
# права на директорию с почтой<br />
userdb static {<br />
args = uid=65534 gid=65534 home=/var/spool/virtual/%d/%n allow_all_users=yes<br />
}<br />
<br />
# сетевые настройки аутентификации<br />
socket listen {<br />
# для аутентификации подключений к самому Dovecot<br />
master {<br />
path = /var/run/dovecot/auth-master<br />
mode = 0600<br />
user = nobody<br />
}<br />
<br />
# для аутентификации внешних приложений ( у нас для Posfix )<br />
client {<br />
path = /var/spool/postfix/private/auth<br />
mode = 0660<br />
user = postfix<br />
group = postfix<br />
}<br />
}<br />
}<br />
<br />
# настройка локального агента доставки почты<br />
protocol lda {<br />
# путь до сокета для авторизации<br />
auth_socket_path = /var/run/dovecot/auth-master<br />
<br />
# адрес администратора почтового сервера<br />
postmaster_address = postmaster@example.com<br />
}</div></div>
<p>Файл с описанием подключения к БД для получения данных о пользователе <strong>/etc/dovecot/dovecot-sql.conf</strong>:</p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># используем подключение к MySQL<br />
<span style="color: #000099;">driver</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> mysql</span><br />
<br />
# параметры MySQL авторизации<br />
<span style="color: #000099;">connect</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> host=127.0.0.1 dbname=mailserver user=mailuser password=mailpassword</span><br />
<br />
# формат, в которых хранятся пароли в БД <span style="">&#40;</span> у нас это MD5 <span style="">&#41;</span><br />
<span style="color: #000099;">default_pass_scheme</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> PLAIN-MD5</span><br />
<br />
# запрос, возвращающий пользователя и пароль<br />
<span style="color: #000099;">password_query</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> SELECT email as user, password FROM view_users WHERE email='%u'</span><span style="color: #666666; font-style: italic;">;</span></div></div>
<p>И не забываем включить сам сервис Dovecot, указав в файле <strong>/etc/default/dovecot</strong>:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #007800;">ENABLED</span>=<span style="color: #000000;">1</span></div></div>
<p>Иначе он не будет запускаться.<br />
<a name="postfix2"></a></p>
<h4>Заключительная настройка Postfix <a href="#head"> ↑ </a></h4>
<p>Так как авторизация пользователей Postfix у нас производится с помощью Dovecot, то добавим следующие строки в <strong>/etc/postfix/main.cf</strong>:</p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000099;">smtpd_sasl_type</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> dovecot</span><br />
<span style="color: #000099;">smtpd_sasl_path</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> private/auth</span><br />
<span style="color: #000099;">smtpd_sasl_auth_enable</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> yes</span></div></div>
<p>Так же добавим некоторые правила фильтрации почты, чем отбросим б<em>о</em>льшую часть спам-ботов и им сочувствующих.<br />
Добавим в <strong>/etc/postfix/main.cf</strong>:</p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;height:300px;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000099;">smtpd_client_restrictions</span> <span style="color: #000066; font-weight:bold;">=</span><br />
permit_mynetworks<br />
permit_sasl_authenticated<br />
reject_unknown_client_hostname<br />
<br />
<span style="color: #000099;">smtpd_helo_restrictions</span> <span style="color: #000066; font-weight:bold;">=</span><br />
permit_mynetworks<br />
permit_sasl_authenticated<br />
reject_invalid_helo_hostname<br />
reject_non_fqdn_helo_hostname<br />
reject_unknown_helo_hostname<br />
<br />
<span style="color: #000099;">smtpd_sender_restrictions</span> <span style="color: #000066; font-weight:bold;">=</span><br />
permit_mynetworks<br />
permit_sasl_authenticated<br />
reject_non_fqdn_sender<br />
reject_unknown_sender_domainАга,<br />
reject_unverified_sender<br />
<br />
<span style="color: #000099;">smtpd_recipient_restrictions</span> <span style="color: #000066; font-weight:bold;">=</span><br />
permit_mynetworks<br />
permit_sasl_authenticated<br />
reject_non_fqdn_recipient<br />
reject_unlisted_recipient<br />
reject_unauth_destination</div></div>
<p><a name="end"></a></p>
<h4>Заключение <a href="#head"> ↑ </a></h4>
<p>Теперь можно смело перезапустить наши сервисы:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">~$ sudo invoke-rc.d dovecot restart<br />
~$ sudo invoke-rc.d postfix restart</div></div>
<p>Вся информация по работе почтовой системы логируется в файлы:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/var/log/mail.log<br />
/var/log/mail.err<br />
/var/log/mail.warn<br />
/var/log/mail.info</div></div>
<p>Что еще можно сделать с сервером? Скажу, что целую массу полезного и интересного. Из того, что вспомнил, могу предложить проверку на вирусы с помощью <a href="http://www.clamav.net/lang/ru/">ClamAV</a>, &#171;серые&#187; списки с помощью <a href="http://postgrey.schweikert.ch/">Postgrey</a>, фильтрацию спама с помощью <a href="http://spamassassin.apache.org/">SpamAssassin</a>, Web-клиент для работы с почтой типа <a href="http://roundcube.net/">RoundCube</a> и многое другое. О части из перечисленного я планирую рассказать, но когда это будет &#8212; неизвестно даже мне. :)</p>
<p>Любые предложения и замечания жду в комментариях.</p>
<p><a name="links"></a></p>
<h4>Используемые ресурсы <a href="#head"> ↑ </a></h4>
<ul>
<li><a href="http://www.postfix.org/postconf.5.html">Описание параметров конфигурации Postfix.</a></li>
<li><a href="http://habrahabr.ru/blogs/linux/101628/">Статья: &#171;Неприступный почтовый сервер, или жизнь без спама&#187;.</a></li>
<li><a href="http://wiki1.dovecot.org/">Официальная документация Dovecot.</a></li>
<li><a href="http://sudouser.com/ustanovka-pochtovogo-servera-postfix-dovecot-mysql-i-virtualnyx-domenov.html">Статья по настройке почтового сервера</a> на <a href="http://sudouser.com">sudouser.com</a></li>
<li><a href="http://google.com">google.com</a></li>
</ul>
<p><a name="additions"></a></p>
<h4>Дополнения <a href="#head"> ↑ </a></h4>
<h5>Описание используемых флагов smtpd_*_restrictions</h5>
<blockquote><p><strong>permit_mynetworks</strong> &#8212; разрешает любые запросы с IP адресов, указанных в параметре <a href="http://www.postfix.org/postconf.5.html#mynetworks">mynetworks</a>.</p>
<p><strong>permit_sasl_authenticated</strong> &#8212; разрешает любые запросы для пользователей, успешно прошедших аутентификацию на сервере.</p>
<p><strong>reject_unknown_client_hostname</strong> &#8212; отклоняет все запросы от клиента в одном из трех случаев:</p>
<ol>
<li>IP адрес клиента не имеет <strong>PTR</strong> записи на DNS.</li>
<li>Доменное имя клиента не имеет <strong>A</strong> записи на DNS.</li>
<li><strong>А</strong> запись клиента не соответствует его IP адресу.</li>
</ol>
<p><strong>reject_invalid_helo_hostname</strong> &#8212; отклоняет запросы от клиентов с неверным <a href="http://ru.wikipedia.org/wiki/FQDN">FQDN</a> в HELO запросе.</p>
<p><strong>reject_non_fqdn_helo_hostname</strong> &#8212; отклоняет клиентов с не FQDN в HELO запросе.</p>
<p><strong>reject_unknown_helo_hostname</strong> &#8212; отклоняет клиентов с неизвестным FQDN в HELO запросе.</p>
<p><strong>reject_non_fqdn_sender</strong> &#8212; отклоняет клиентов с не FQDN в адресе отправителя.</p>
<p><strong>reject_unknown_sender_domain</strong> &#8212; отклоняет клиентов с неизвестным FQDN в адресе отправителя.</p>
<p><strong>reject_unverified_sender</strong> &#8212; проверяет существование адреса отправителя на его сервере и отклоняет запрос если проверка не удалась</p>
<p><strong>reject_non_fqdn_recipient</strong> &#8212; отклоняет клиентов с не FQDN в адресе получателя.</p>
<p><strong>reject_unlisted_recipient</strong> &#8212; отклоняет запрос если получатель не существует.</p>
<p><strong>reject_unauth_destination</strong> &#8212; отклоняет запросы от неавторизованных пользователей сервера.</p></blockquote>
<h5>Утилиты</h5>
<p>Для упрощения работы с данным почтовым сервером я написал несколько небольших скриптов.<br />
Взять их можно тут <a href="https://github.com/Ky6uk/scripts/tree/master/mailserver">git://github.com/Ky6uk/scripts.git</a></p>
<h3  class="related_post_title">Похожие статьи</h3><ul class="related_post"><li><a href="http://ky6uk.org/ispolzovanie-neskolkix-ssh-klyuchej" title="Использование нескольких SSH ключей">Использование нескольких SSH ключей</a></li><li><a href="http://ky6uk.org/vtun-organizaciya-vpn-mezhdu-dvumya-tochkami" title="VTun: организация VPN между двумя точками">VTun: организация VPN между двумя точками</a></li><li><a href="http://ky6uk.org/peredacha-zvuka-po-seti-pri-pomoshhi-pulseaudio" title="Передача звука по сети при помощи PulseAudio">Передача звука по сети при помощи PulseAudio</a></li><li><a href="http://ky6uk.org/ubuntu-11-10-oneiric-ocelot-pora-obnovlyatsya" title="Ubuntu 11.10 Oneiric Ocelot &#8212; пора обновляться!">Ubuntu 11.10 Oneiric Ocelot &#8212; пора обновляться!</a></li><li><a href="http://ky6uk.org/ubuntu-11-04-natty-narwhal-obnovlyaemsya" title="Ubuntu 11.04 Natty Narwhal. Обновляемся.">Ubuntu 11.04 Natty Narwhal. Обновляемся.</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ky6uk.org/pochtovyj-smtp-imap-server-svoimi-rukami/feed</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Использование нескольких SSH ключей</title>
		<link>http://ky6uk.org/ispolzovanie-neskolkix-ssh-klyuchej?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ispolzovanie-neskolkix-ssh-klyuchej</link>
		<comments>http://ky6uk.org/ispolzovanie-neskolkix-ssh-klyuchej#comments</comments>
		<pubDate>Sat, 31 Jul 2010 19:36:52 +0000</pubDate>
		<dc:creator>Ky6uk</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://ky6uk.ugatu.net/?p=867</guid>
		<description><![CDATA[Порой бывает необходимо иметь несколько различных ключей для авторизации на разных серверах. Вот и у меня возникла похожая ситуация. Единственный ключ 1. Генерируем пару ключей 2. Копируем публичную часть ключа на удаленный сервер 3. Настраиваем на удаленном сервере авторизацию по ключу Обычно авторизация по ключу включена автоматически. Просто попробуйте зайти на удаленный хост через SSH [...]]]></description>
			<content:encoded><![CDATA[<p>Порой бывает необходимо иметь несколько различных ключей для авторизации на разных серверах. Вот и у меня возникла похожая ситуация.<br />
<span id="more-867"></span></p>
<h4>Единственный ключ</h4>
<p><strong>1. Генерируем пару ключей</strong></p>
<pre class="brush: plain; title: ; notranslate">~$ ssh-keygen -t rsa -f ~/.ssh/id_rsa -C &quot;My RSA key&quot;</pre>
<p><strong>2. Копируем публичную часть ключа на удаленный сервер</strong></p>
<pre class="brush: plain; title: ; notranslate">~$ ssh-copy-id user@remote</pre>
<p><strong>3. Настраиваем на удаленном сервере авторизацию по ключу</strong></p>
<blockquote><p>Обычно авторизация по ключу включена автоматически. Просто попробуйте зайти на удаленный хост через SSH и проверить это.</p></blockquote>
<p>Если авторизация по публичному ключу отключена, то необходимо включить её. В файле <em>/etc/ssh/sshd_config</em> на сервере должны присутствовать следующие строки:</p>
<pre class="brush: plain; title: ; notranslate">RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys</pre>
<p>На этом все. Теперь на сервер можно попасть через SSH без пароля, используя приватную часть авторизованного ключа.</p>
<h4>Несколько ключей</h4>
<p>При использовании нескольких ключей необходимо произвести все вышеперечисленные действия с небольшими отличиями.</p>
<p><strong>1. Генерируем пары ключей в разные файлы</strong></p>
<pre class="brush: plain; title: ; notranslate">~$ ssh-keygen -t rsa -f ~/.ssh/id_rsa.work -C &quot;My key for Work&quot;
~$ ssh-keygen -t rsa -f ~/.ssh/id_rsa.home -C &quot;My key for Home&quot;</pre>
<p><strong>2. Копируем публичные части на удаленные сервера</strong></p>
<pre class="brush: plain; title: ; notranslate">~$ ssh-copy-id -i ~/.ssh/id_rsa.work.pub user@work
~$ ssh-copy-id -i ~/.ssh/id_rsa.home.pub user@home</pre>
<p><strong>3. Настраиваем удаленные сервера как показано выше</strong></p>
<p><strong>4. Настраиваем на нашем компьютере SSH авторизацию</strong></p>
<p>Создадим файл конфигурации SSH клиента:</p>
<pre class="brush: plain; title: ; notranslate">~$ touch ~/.ssh/config
~$ chmod 600 ~/.ssh/config</pre>
<p>И добавим в него информацию о наших удаленных хостах:</p>
<pre class="brush: plain; title: ; notranslate">Host my.work
    IdentityFile ~/.ssh/id_rsa.work

Host *.home
    IdentityFile ~/.ssh/id_rsa.home
    User root
    Port 44</pre>
<p>Теперь на указанные сервера можно заходить через SSH без ввода пароля, причем для каждого хоста будет использоваться соответствующий файл ключа.</p>
<h4>Используемый материал</h4>
<ul>
<li><a href="http://belgorod.lug.ru/wiki/index.php/SSH_%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BA%D0%BB%D1%8E%D1%87%D1%83">SSH авторизация по ключу</a></li>
<li><a href="http://ekrava.livejournal.com/484575.html">ssh безпарольный вход, авторизация по ключам</a>
<li><a href="http://www.karan.org/blog/index.php/2009/08/25/multiple-ssh-private-keys">multiple ssh private keys</a></li>
<li><a href="http://www.linuxplanet.com/linuxplanet/tips/6592/1/">OpenSSH Speed Tips and Tricks: ssh-copy-id, sshfs, speed!</a></li>
<li>~$ man ssh-copy-id</li>
</ul>
<p><strong>UPD: Благодаря товарищу <a href="http://welinux.ru/user/kstep">kstep</a> с ресурса <a href="http://welinux.ru/post/3791/#cmnt71826">welinux.ru</a> открыл для себя скрипт <em>ssh-copy-id</em>, который производит копирование и установку публичного ключа на удаленный хост автоматически. Заметка соответствующим образом изменена.</strong></p>
<h3  class="related_post_title">Похожие статьи</h3><ul class="related_post"><li><a href="http://ky6uk.org/pochtovyj-smtp-imap-server-svoimi-rukami" title="Почтовый SMTP / IMAP сервер своими руками.">Почтовый SMTP / IMAP сервер своими руками.</a></li><li><a href="http://ky6uk.org/vtun-organizaciya-vpn-mezhdu-dvumya-tochkami" title="VTun: организация VPN между двумя точками">VTun: организация VPN между двумя точками</a></li><li><a href="http://ky6uk.org/peredacha-zvuka-po-seti-pri-pomoshhi-pulseaudio" title="Передача звука по сети при помощи PulseAudio">Передача звука по сети при помощи PulseAudio</a></li><li><a href="http://ky6uk.org/ubuntu-11-10-oneiric-ocelot-pora-obnovlyatsya" title="Ubuntu 11.10 Oneiric Ocelot &#8212; пора обновляться!">Ubuntu 11.10 Oneiric Ocelot &#8212; пора обновляться!</a></li><li><a href="http://ky6uk.org/ubuntu-11-04-natty-narwhal-obnovlyaemsya" title="Ubuntu 11.04 Natty Narwhal. Обновляемся.">Ubuntu 11.04 Natty Narwhal. Обновляемся.</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ky6uk.org/ispolzovanie-neskolkix-ssh-klyuchej/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VTun: организация VPN между двумя точками</title>
		<link>http://ky6uk.org/vtun-organizaciya-vpn-mezhdu-dvumya-tochkami?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=vtun-organizaciya-vpn-mezhdu-dvumya-tochkami</link>
		<comments>http://ky6uk.org/vtun-organizaciya-vpn-mezhdu-dvumya-tochkami#comments</comments>
		<pubDate>Mon, 12 Jul 2010 19:39:15 +0000</pubDate>
		<dc:creator>Ky6uk</dc:creator>
				<category><![CDATA[Сети]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[VPN]]></category>
		<category><![CDATA[VTun]]></category>

		<guid isPermaLink="false">http://ky6uk.ugatu.net/?p=814</guid>
		<description><![CDATA[Имеем задачу: организовать безопасное соединение между двумя удаленными узлами сети. Сделать это можно с помощью VPN между этими узлами. Для решения подобных задач существует множество протоколов, таких как PPTP, GRE, L2TP, IPSec, PPPoE, OpenVPN и т.п.. Лично мне для решения этой задачи знакомый сисадмин посоветовал использовать VTun. Так как на обоих узлах в качестве ОС [...]]]></description>
			<content:encoded><![CDATA[<p>Имеем задачу: организовать безопасное соединение между двумя удаленными узлами сети. Сделать это можно с помощью <a href="http://ru.wikipedia.org/wiki/VPN">VPN</a> между этими узлами. Для решения подобных задач существует множество протоколов, таких как <a href="http://ru.wikipedia.org/wiki/PPTP">PPTP</a>, <a href="http://ru.wikipedia.org/wiki/GRE_(%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB)">GRE</a>, <a href="http://ru.wikipedia.org/wiki/L2TP">L2TP</a>, <a href="http://ru.wikipedia.org/wiki/IPSec">IPSec</a>, <a href="http://ru.wikipedia.org/wiki/PPPoE">PPPoE</a>, <a href="http://ru.wikipedia.org/wiki/OpenVPN">OpenVPN</a> и т.п..</p>
<p>Лично мне для решения этой задачи знакомый сисадмин посоветовал использовать <a href="http://vtun.sourceforge.net/">VTun</a>. Так как на обоих узлах в качестве ОС установлен Linux, то VTun будет удобным и простым решением.<br />
<span id="more-814"></span><br />
В возможности VTun входит шифрование трафика, шейпинг, компрессия. Из вариантов туннелирования VTun поддерживает IP (tun), Ethernet (ether), tty и pipe туннели. Всего вышеперечисленного более чем достаточно для решения задачи. В дополнении к возможностям, VTun крайне прост в настройке, которая состоит из одного единственного конфигурационного файла.</p>
<p>И так, приступим. Первый узел &#8212; компьютер с <em>Debian 5.0</em> на борту, на втором установлена <em>Ubuntu Server 10.04</em>. И там, и там в репозиториях есть VTun версии <em>3.0.2</em> и ядро, включающее в себя драйвер виртуального <strong>tun</strong>-интерфейса.</p>
<p>Установим <strong>vtun</strong> на обеих машинах консольной командой</p>
<pre class="brush: bash; title: ; notranslate">~$ sudo aptitude install vtun</pre>
<p>Теперь сконфигурируем один компьютер как vtun-сервер, а другой как vtun-клиент. Первому условно дадим имя &#171;SERVER&#187;, второму &#171;CLIENT&#187;, &#8212; так будет понятнее.</p>
<h4>SERVER</h4>
<h5>Файл конфигурации <em>/etc/vtund.conf</em></h5>
<pre class="brush: plain; title: ; notranslate"># глобальные настройки
options {
    ifconfig /sbin/ifconfig; # путь до утилиты ifconfig
}

# конфигурация хоста (client - название)
# название хоста на клиенте и сервере должны совпадать
client {
    encrypt yes;    # включаем шифрование соединения
    compress no;    # отключаем сжатие трафика
    passwd secret;  # пароль для авторизации клиента
    type tun;       # тип туннеля (в данном случае IP-туннель)
    keepalive yes;  # поддерживаем соединение
    stat yes;       # включаем учет статистики интерфейса
    proto udp;      # используемый протокол

    # список команд, запускаемых после создании туннеля
    up {
        # прописываем настройки интерфейса, %% - имя интерфейса
        ifconfig &quot;%% 192.168.200.1 pointopoint 192.168.200.2&quot;;
    };

    # список команд, запускаемых после отключении туннеля
    down {
        ifconfig &quot;%% down&quot;; # опускаем интерфейс
    };
}</pre>
<h5>Файл конфигурации <em>/etc/default/vtun</em></h5>
<pre class="brush: plain; title: ; notranslate"># указываем, что vtun должен запускаться как демон
RUN_SERVER=yes</pre>
<h4>CLIENT</h4>
<h5>Файл конфигурации <em>/etc/vtund.conf</em></h5>
<pre class="brush: plain; title: ; notranslate">options {
    ifconfig /sbin/ifconfig;
}

client {
    passwd secret; # пароль
    persist yes;   # пытаться подключиться при потере соединения

    up {
        ifconfig &quot;%% 192.168.200.2 pointopoint 192.168.200.1&quot;;
    };

    down {
        ifconfig &quot;%% down&quot;;
    };
}</pre>
<h5>Файл конфигурации <em>/etc/default/vtun</em></h5>
<pre class="brush: plain; title: ; notranslate">CLIENT0_NAME=client     # имя клиента
CLIENT0_HOST=server.tld # реальный адрес vtun-сервера</pre>
<blockquote><p>Как видно выше, конфиги получились очень простые. Для лучшего понимания я добавил комментарии. Дополнительную информацию по настройке VTun всегда можно получить из <a href="http://vtun.sourceforge.net">документации</a>.</p></blockquote>
<p>После того как конфигурация будет окончена необходимо запустить vtun на обеих машинах командой</p>
<pre class="brush: bash; title: ; notranslate">~$ sudo invoke-rc.d vtun start</pre>
<p>На сервере и клиенте появятся виртуальные интерфейсы <strong>tun0</strong> с адресами 192.168.200.1 и 192.168.200.2 соответственно.</p>
<p>Интерфейсы появились, адреса назначены &#8212; VPN работает как надо. Теперь можно работать с удаленным узлом через виртуальный интерфейс <strong>tun0</strong>, используя присвоенный ему IP-адрес.</p>
<p>Таким образом, с помощью VTun можно создавать большие и сложные виртуальные сети, объединять в одну большую сеть разрозненные локальные и так далее. Возможно, в следующей статье я напишу об объединении нескольких локальных сетей в одну большую виртуальную. Следите за обновлениями.</p>
<h3  class="related_post_title">Похожие статьи</h3><ul class="related_post"><li><a href="http://ky6uk.org/pochtovyj-smtp-imap-server-svoimi-rukami" title="Почтовый SMTP / IMAP сервер своими руками.">Почтовый SMTP / IMAP сервер своими руками.</a></li><li><a href="http://ky6uk.org/ispolzovanie-neskolkix-ssh-klyuchej" title="Использование нескольких SSH ключей">Использование нескольких SSH ключей</a></li><li><a href="http://ky6uk.org/peredacha-zvuka-po-seti-pri-pomoshhi-pulseaudio" title="Передача звука по сети при помощи PulseAudio">Передача звука по сети при помощи PulseAudio</a></li><li><a href="http://ky6uk.org/ubuntu-11-10-oneiric-ocelot-pora-obnovlyatsya" title="Ubuntu 11.10 Oneiric Ocelot &#8212; пора обновляться!">Ubuntu 11.10 Oneiric Ocelot &#8212; пора обновляться!</a></li><li><a href="http://ky6uk.org/ubuntu-11-04-natty-narwhal-obnovlyaemsya" title="Ubuntu 11.04 Natty Narwhal. Обновляемся.">Ubuntu 11.04 Natty Narwhal. Обновляемся.</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ky6uk.org/vtun-organizaciya-vpn-mezhdu-dvumya-tochkami/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Отправка писем в Debian</title>
		<link>http://ky6uk.org/use-exim4-sendmail-on-debian?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=use-exim4-sendmail-on-debian</link>
		<comments>http://ky6uk.org/use-exim4-sendmail-on-debian#comments</comments>
		<pubDate>Wed, 17 Jun 2009 07:50:42 +0000</pubDate>
		<dc:creator>Ky6uk</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Exim4]]></category>
		<category><![CDATA[sendmail]]></category>

		<guid isPermaLink="false">http://ky6uk.ugatu.net/?p=44</guid>
		<description><![CDATA[Имея в своем распоряжении машину с выходом в интернет и хостящимися на ней несколькими сайтами, задался вопросом отправки писем на внешку. Требовалось это много для чего, в основном для отправки писем с подтверждением регистраций и т.п.. Проблема заключалась в том, что на этой машине не был настроен почтовый сервер. Немного погуглив нашел статью по настройке [...]]]></description>
			<content:encoded><![CDATA[<p>Имея в своем распоряжении машину с выходом в интернет и хостящимися на ней несколькими сайтами, задался вопросом отправки писем на внешку. Требовалось это много для чего, в основном для отправки писем с подтверждением регистраций и т.п.. Проблема заключалась в том, что на этой машине не был настроен почтовый сервер.</p>
<p>Немного погуглив нашел <a href="http://debback.blogspot.com/2008/02/cron-mailto-exim.html">статью</a> по настройке отправки email-уведомлений от cron. Прочитав понял, что отправка писем на e-mail в Debian делается за какую-то минуту. На момент написания статьи это был Debian Lenny.<br />
<span id="more-44"></span><br />
Для начала убедимся, что утилиту sendmail заменяет exim4 из базовой поставки Debian:</p>
<pre>
$ stat /usr/sbin/sendmail
  File: `/usr/sbin/sendmail' -&gt; `exim4'
</pre>
<p>Если у вас sendmail так же как и у меня является ссылкой на exim4, то все в порядке и можно начинать настройку последнего. По-умолчанию exim4 работает только с локальной почтой. Для того, что бы он отправлял письма и во внешку, необходима небольшая перенастройка. Делается это одной простой командой.</p>
<pre>$ sudo dpkg-reconfigure exim4-config</pre>
<p>После этого вам начнут задавать вопросы. Поэтапно на них отвечаем:</p>
<ol>
<li><strong>Общий тип почтовой конфигурации</strong> указываем <em>интернет-сайт; прием и отправка почты напрямую, используя SMTP</em>
<li>В <strong>почтовое имя системы</strong> указываем имя вашего хоста. У меня это <em>ugatu.net</em></li>
<li><strong>IP-адреса, с которых следует ожидать входящие соединения SMTP</strong> я указал <em>127.0.0.1</em> так как мне пока не требуется принимать почту. Требуется только отправлять.</li>
<li><strong>Другие места назначения, для которых должна приниматься почта</strong> я указал локальное имя хоста. Хотя, судя по описанию, оно и так добавляется к указываемому тут списку. Полагаю, можно оставить пустым.</li>
<li><strong>Домены, для которых доступна релейная передача почты</strong> я оставил пустым.</li>
<li><strong>Машины, для которых доступна релейная передача почты</strong> так же оставил пустым.</li>
<li><strong>Сокращать количество DNS-запросов до минимума</strong> имеет смысл ставить если у вас дорогой dial-up, который необходимо перезванивать для доступа к DNS-серверу. У меня выделенный канал, поэтому записывать DNS-запросы в журнал смысла нет. Отвечаем отрицательно.</li>
<li><strong>Метод доставки локальной почты</strong> можно указать любой. Но в Debian есть множество утилит, настроенных на работу с mbox для доставки локальной почты. Оставим как есть <em>mbox формат в /var/mail/</em></li>
<li><strong>Разделить конфигурацию на маленькие файлы</strong> тоже не имеет смысла включать, если вы не собираетесь заниматься тонкой настройкой exim4. Последуем совету Debian и ответим отрицательно.</li>
</ol>
<p>Вот собственно и все настройки. После вышеописанной процедуры отправка почты заработала на &#171;Ура&#187;.</p>
<p>Хочу добавить, что это лишь поверхностная настройка exim4 для отправки писем в качестве утилиты sendmail. Довольно часто на серверах встречается уже готовая почтовая система как с отправкой, так и с получением почты. Если вам необходимо полностью настроить почтовый сервер для работы с электронной корреспонденцией, то советую почитать соответствующие статьи.</p>
<h3  class="related_post_title">Похожие статьи</h3><ul class="related_post"><li><a href="http://ky6uk.org/pochtovyj-smtp-imap-server-svoimi-rukami" title="Почтовый SMTP / IMAP сервер своими руками.">Почтовый SMTP / IMAP сервер своими руками.</a></li><li><a href="http://ky6uk.org/ispolzovanie-neskolkix-ssh-klyuchej" title="Использование нескольких SSH ключей">Использование нескольких SSH ключей</a></li><li><a href="http://ky6uk.org/vtun-organizaciya-vpn-mezhdu-dvumya-tochkami" title="VTun: организация VPN между двумя точками">VTun: организация VPN между двумя точками</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://ky6uk.org/use-exim4-sendmail-on-debian/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

