<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://www.qbsd.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ssh</id>
	<title>OpenBSD-Wiki - Вклад участника [ru]</title>
	<link rel="self" type="application/atom+xml" href="http://www.qbsd.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ssh"/>
	<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Ssh"/>
	<updated>2026-04-29T10:24:17Z</updated>
	<subtitle>Вклад участника</subtitle>
	<generator>MediaWiki 1.35.2</generator>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_ksh&amp;diff=481</id>
		<title>Автодополнение в ksh</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_ksh&amp;diff=481"/>
		<updated>2017-05-04T05:27:46Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Пользовательские автодополнения в ksh */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Пользовательские автодополнения в ksh ==&lt;br /&gt;
&lt;br /&gt;
Как показала практика автодополнение, как оно реализовано например в Bash для меня избыточно, поэтому вариант с настройкой пользовательских параметров [http://man.openbsd.org/ksh#Emacs_editing_mode ksh(1)] оказался очень удобен.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh3@balamut:~$ vmctl (TAB)&lt;br /&gt;
Books/       Documents/   Music/       Video/       bin/         mbox         work/&lt;br /&gt;
&lt;br /&gt;
ssh3@balamut:~$ set -A complete_vmctl -- console load reload start stop reset status&lt;br /&gt;
&lt;br /&gt;
ssh3@balamut:~$ vmctl (TAB)&lt;br /&gt;
console  load     reload   start    stop     reset    status&lt;br /&gt;
&lt;br /&gt;
ssh3@balamut:~$ set -A complete_vmctl_1 -- console load reload start stop reset status&lt;br /&gt;
&lt;br /&gt;
ssh3@balamut:~$ vmctl (TAB)&lt;br /&gt;
console  load     reload   start    stop     reset    status&lt;br /&gt;
&lt;br /&gt;
ssh3@balamut:~$ vmctl status (TAB)&lt;br /&gt;
Books/       Documents/   Music/       Video/       bin/         mbox         work/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[https://deftly.net/posts/2017-05-01-openbsd-ksh-tab-complete.html По мотивам]]&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_ksh&amp;diff=480</id>
		<title>Автодополнение в ksh</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%D0%90%D0%B2%D1%82%D0%BE%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_ksh&amp;diff=480"/>
		<updated>2017-05-04T03:15:29Z</updated>

		<summary type="html">&lt;p&gt;Ssh: Новая страница: «== Пользовательские автодополнения в ksh ==  Как показала практика автодополнение, как оно…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Пользовательские автодополнения в ksh ==&lt;br /&gt;
&lt;br /&gt;
Как показала практика автодополнение, как оно реализовано например в Bash для меня избыточно, поэтому вариант с настройкой пользовательских параметров [http://man.openbsd.org/ksh#Emacs_editing_mode ksh(1)] оказался очень удобен.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;shupikov@balamut:~$ vmctl (TAB)&lt;br /&gt;
Books/       Documents/   Music/       Video/       bin/         mbox         work/&lt;br /&gt;
&lt;br /&gt;
shupikov@balamut:~$ set -A complete_vmctl -- console load reload start stop reset status&lt;br /&gt;
&lt;br /&gt;
shupikov@balamut:~$ vmctl (TAB)&lt;br /&gt;
console  load     reload   start    stop     reset    status&lt;br /&gt;
&lt;br /&gt;
shupikov@balamut:~$ set -A complete_vmctl_1 -- console load reload start stop reset status&lt;br /&gt;
&lt;br /&gt;
shupikov@balamut:~$ vmctl (TAB)&lt;br /&gt;
console  load     reload   start    stop     reset    status&lt;br /&gt;
&lt;br /&gt;
shupikov@balamut:~$ vmctl status (TAB)&lt;br /&gt;
Books/       Documents/   Music/       Video/       bin/         mbox         work/&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[https://deftly.net/posts/2017-05-01-openbsd-ksh-tab-complete.html По мотивам]]&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Ssh&amp;diff=479</id>
		<title>Участник:Ssh</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Ssh&amp;diff=479"/>
		<updated>2017-05-04T02:00:14Z</updated>

		<summary type="html">&lt;p&gt;Ssh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Заметки =&lt;br /&gt;
&lt;br /&gt;
[[Список открытых портов]]&lt;br /&gt;
&lt;br /&gt;
[[OpenBSD на рабочей станции]]&lt;br /&gt;
&lt;br /&gt;
[[&amp;quot;Горячие&amp;quot; клавиши tmux и screen]]&lt;br /&gt;
&lt;br /&gt;
[[OpenBSD doas]]&lt;br /&gt;
&lt;br /&gt;
[[Почтовый сервер на базе OpenBSD 6.0|Почтовый сервер на базе OpenBSD 6.x]]&lt;br /&gt;
&lt;br /&gt;
[[Автодополнение в ksh]]&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Ssh&amp;diff=478</id>
		<title>Участник:Ssh</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Ssh&amp;diff=478"/>
		<updated>2017-05-04T01:59:00Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Заметки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Заметки =&lt;br /&gt;
&lt;br /&gt;
[[Список открытых портов]]&lt;br /&gt;
&lt;br /&gt;
[[OpenBSD на рабочей станции]]&lt;br /&gt;
&lt;br /&gt;
[[&amp;quot;Горячие&amp;quot; клавиши tmux и screen]]&lt;br /&gt;
&lt;br /&gt;
[[OpenBSD doas]]&lt;br /&gt;
&lt;br /&gt;
[[Почтовый сервер на базе OpenBSD 6.x]]&lt;br /&gt;
&lt;br /&gt;
[[Автодополнение в ksh]]&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=477</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=477"/>
		<updated>2017-04-18T07:43:24Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Вступление */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект — это может быть приобретение набора компакт дисков&amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95 %), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions ==&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer ==&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it’s worth and YMMV. If your email breaks because of this guide, then don’t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates ==&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add «-s» to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#: &amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= OpenSMTPD и spamd =&lt;br /&gt;
# Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
# Set up virtual users and virtual domains:&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;joe@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;joe@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Create SSL certificates as described in man 5 smtpd.conf:&lt;br /&gt;
#: &amp;lt;code&amp;gt;# openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# openssl req -new -x509 -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/mail.example.com.crt -days 365&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# chmod 600 /etc/ssl/mail.example.com.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# chmod 600 /etc/ssl/private/mail.example.com.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Create ~/Maildir for user («joe» in this example).&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it listens on egress with tls (for incoming mail) and egress port 587 (submission) with tls and authentication (for outgoing mail), accepts mail for virtual users and virtual domains, and delivers this mail to Maildir. Note that the smtpd.conf man page clearly says: «For each message processed by the daemon, the filter rules are evaluated in sequential order, from first to last. The first matching rule decides what action is taken.» Therefore, the order of the rules in smtpd.conf is very important and will become more important as additional bits are added (e.g. for clamsmtp, spampd, and dkimproxy).&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept from local for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Edit pf.conf to allow connections on smtp port 25 and port 587, such as:&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Reload pf and start /etc/rc.d/smtpd.&lt;br /&gt;
# Test sending mail to/from the user’s account. Since there is no imap client yet, might want to install mutt or something similar and point to the user’s ~/Maildir to check incoming mail. The user should be able to connect to OpenSMTPD on port 587 from an outside client to send mail through OpenSMTPD to another party. Sending outbound mail from the command line should also work. Perhaps telnet into the server or run a couple of SMTP checks against the server like this one to verify things are working correctly. The session transcript should look something like this:&lt;br /&gt;
#: &amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;220 mail.example.com ESMTP OpenSMTPD [624 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;250-mail.example.com Hello MXTB-PWS3.mxtoolbox.com [64.20.227.133], pleased to meet you&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;250-8BITMIME&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;250-ENHANCEDSTATUSCODES&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;250-SIZE 36700160&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;250-DSN&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;250-STARTTLS&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;250 HELP [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;250 2.0.0: Ok [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;550 Invalid recipient [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;MXTB-PWS3v2 3260ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# If that works, set up spamd. This is a very simple and standard setup and there are lots of resources out there on how to do this, but here is the shorthand: Add spamd_flags=&amp;quot;-v&amp;quot; to /etc/rc.conf.local. Edit /etc/mail/spamd.conf to add override/whitelist if desired (file /etc/mail/nospamd in sample pf rules). Add spamd pf rules from example /etc/pf.conf and comment out prior rule that passed smtp on egress (because now we want incoming mail to be redirected to spamd running on localhost port 8025):&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;#pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# rules for spamd(8)&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table &amp;lt;spamd-white&amp;gt; persist&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table &amp;lt;nospamd&amp;gt; persist file &amp;quot;/etc/mail/nospamd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pass in on egress proto tcp from any to any port smtp rdr-to 127.0.0.1 port spamd&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pass in on egress proto tcp from &amp;lt;nospamd&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pass in log on egress proto tcp from &amp;lt;spamd-white&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; pass out log on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: Reload pf and start /etc/rc.d/spamd. Check netstat to see if spamd is listening on port 8025:&lt;br /&gt;
#: &amp;lt;code&amp;gt;# netstat -na -f inet&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Send test emails again and check logs and &amp;#039;spamdb&amp;#039; to see if email is getting greylisted. Once spamd is working, those third-party SMTP checks won’t work because spamd is intercepting incoming mail. Same with telnet, if you can stand waiting for the stuttering. ;-) Anyway, now the session transcript should look something like this:&lt;br /&gt;
#: &amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;220 mail.example.com ESMTP spamd IP-based SPAM blocker; Sat Jan 31 11:33:21 2015 [11716 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;250 Hello, spam sender. Pleased to be wasting your time. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;250 You are about to try to deliver spam. Your time will be spent, for nothing. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;250 This is hurting you more than it is hurting me. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;MXTB-PWS3v2 14602ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: Haha. Love spamd.&lt;br /&gt;
# So here is what’s happening:&lt;br /&gt;
#: &lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; deliver to maildir&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
= ClamAV and ClamSMTP =&lt;br /&gt;
# Install clamav and clamsmtp from packages.&lt;br /&gt;
# Edit /etc/freshclam.conf — comment out the «Example» line and uncomment the «DatabaseMirror» line and add the relevant country code in place of the «XY.»&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/freshclam.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;DatabaseMirror db.us.clamav.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: Run ‘freshclam’ to update the database. Add a freshclam command to root’s crontab to have periodic updates:&lt;br /&gt;
#: &amp;lt;code&amp;gt;20 * * * * /usr/local/bin/freshclam &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Once freshclam has updated the database, edit /etc/clamd.conf. Comment out the «Example» line, uncomment «TCPSocket» and «TCPAddr» lines and change them so clamd listens on port 3310 at 127.0.0.1.&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/clamd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;TCPSocket 3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;TCPAddr 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: Add «clamd» to pkg_scripts in /etc/rc.conf.local and then start clamd. Check netstat -na -f inet to see if clamd is running on 127.0.0.1:3310. Check out both /etc/freshclam.conf and /etc/clamd.conf to look at logging options or actions (in VirusEvent) to take when a virus is found. Can set it up so it drops an email into root’s mailbox when a virus is found.&lt;br /&gt;
# Now, set up clamsmtp, which is a proxy for clamd. Two config files will be used, one for incoming mail and one for outgoing mail. OpenSMTPD will accept mail, send it to clamsmtp on one port for incoming mail (10025) and a different port (10027) for outgoing mail. Clamsmtp will run the mail through clamd, and then return it to OpenSMTPD for incoming mail (10026) or outgoing mail (10028). Depending on which port the mail is returned to, OpenSMTPD will tag it CLAM_IN or CLAM_OUT.&lt;br /&gt;
#: So copy /etc/clamsmtpd.conf and create /etc/clamsmtpd-in.conf and /etc/clamsmtpd-out.conf. Modify the files like so:&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;OutAddress: 10026&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;Listen: 0.0.0.0:10025&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;OutAddress: 10028&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;Listen: 0.0.0.0:10027&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Start them both:&lt;br /&gt;
#: &amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: (add something similar to /etc/rc.local so they start at boot)&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it looks like this:&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on lo0 port 10026 tag CLAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tagged mail returned from clamsmtpd either deliver or relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept tagged CLAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept tagged CLAM_OUT for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# start here - untagged mail is sent to clamsmtpd&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: So here is what’s happening:&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay out&lt;br /&gt;
# Send some emails both ways. This should be in the header:&lt;br /&gt;
#: &amp;lt;code&amp;gt;X-Virus-Scanned: ClamAV using ClamSMTP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SpamAssassin and SpamPD =&lt;br /&gt;
# Install p5-Mail-SpamAssassin and spampd from packages.&lt;br /&gt;
# Edit /etc/mail/spamassassin/local.cf and uncomment the «rewrite_header» line.&lt;br /&gt;
# Spampd will be used as a proxy like clamsmtp. For purposes of this guide, only incoming mail will be scanned. Spampd by default runs on port 10025 but that port is already being used for clamsmtp. So, add the following to /etc/rc.conf.local:&lt;br /&gt;
#: &amp;lt;code&amp;gt;spampd_flags=&amp;quot;--port=10035 --relayhost=127.0.0.1:10036 --tagall -aw&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: With these flags, spampd will listen on port 10035 and after processing the mail through SpamAssassin, spampd will relay the mail back to port 10036, where OpenSMTPD will be listening.&lt;br /&gt;
#: UPDATE: spampd seems to have trouble binding to the right port (10035 in this case) upon a reboot even with those spampd_flags set in /etc/rc.conf.local. It tries to bind to 10025 which, as noted previously, is being used by clamsmtp, and therefore spampd fails to work and incoming mail has no place to go when opensmtpd tries to relay it to spampd. I have to manually log in and kick spampd to get it to bind to 10035. Still investigating a solution other than changing all the ports around …&lt;br /&gt;
#: Add «spamassassin» and «spampd» to pkg_scripts in /etc/rc.conf.local and then start both spamassassin and spampd. A «netstat -na -f inet» should show spampd listening on port 10035.&lt;br /&gt;
# Once spampd was processing mail, there were errors in /var/log/maillog along the lines of: «spampd Insecure dependency -T switch at Socket.pm» and it wasn’t working. Turns out spampd needs patching for newer Perl. See this: https://github.com/mpaperno/spampd/issues/2.  Here is a patch to /usr/local/sbin/spampd (also found here):&lt;br /&gt;
#: &amp;lt;code&amp;gt;--- spampd.orig Thu Jan 29 23:19:45 2015&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+++ spampd Thu Jan 29 23:21:31 2015&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;@@ -824,6 +824,22 @@ if ( $logsock !~ /^(unix|inet)$/ ) {&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; usage(0);&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+# Untaint some options provided by admin command line.&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+$pidfile =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+$pidfile = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+$relayhost =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+$relayhost = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+$relayport =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+$relayport = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+$host =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+$host = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+$port =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+$port = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; if ( $options{tagall} ) { $tagall = 1; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; if ( $options{&amp;#039;log-rules-hit&amp;#039;} ) { $rh = 1; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; if ( $options{debug} ) { $debug = 1; $nsloglevel = 4; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Restart spampd after applying that patch.&lt;br /&gt;
# Now, modify /etc/mail/smtpd.conf similar to what was done for clamsmtp:&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on lo0 port 10026 tag CLAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on lo0 port 10036 tag SPAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tagged mail returned from spampd deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept tagged SPAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tagged mail returned from clamsmtpd either send to spampd or relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept tagged CLAM_IN for any relay via smtp://127.0.0.1:10035 # send to spampd&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept tagged CLAM_OUT for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# start here - untagged mail is sent to clamsmtpd&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# There were still some errors in /var/log/maillog. First, there was something like this:&lt;br /&gt;
#: &amp;lt;code&amp;gt;Feb 03 16:48:44 server spampd[22524]: spf: lookup failed: available_nameservers: No DNS servers available!&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;Feb 03 16:48:44 server spampd[22524]: rules: failed to run USER_IN_DEF_DKIM_WL test, skipping:  (available_nameservers: No DNS servers available!)&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: Turns out, SpamAssassin had broken DNS lookups. Here is the patch to /usr/local/libdata/perl5/site_perl/Mail/SpamAssassin/DnsResolver.pm (also found here):&lt;br /&gt;
#: &amp;lt;code&amp;gt;--- DnsResolver.pm.orig Fri Feb  7 03:36:28 2014&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+++ DnsResolver.pm      Thu Nov 13 16:04:01 2014&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;@@ -204,8 +204,10 @@&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;     @ns_addr_port = @{$self-&amp;gt;{conf}-&amp;gt;{dns_servers}};&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;     dbg(&amp;quot;dns: servers set by config to: %s&amp;quot;, join(&amp;#039;, &amp;#039;,@ns_addr_port));&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;   } elsif ($res) {  # default as provided by Net::DNS, e.g. /etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;-    @ns_addr_port = map(untaint_var(&amp;quot;[$_]:&amp;quot; . $res-&amp;gt;{port}),&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;-                        @{$res-&amp;gt;{nameservers}});&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+    my @ns = $res-&amp;gt;UNIVERSAL::can(&amp;#039;nameservers&amp;#039;) ? $res-&amp;gt;nameservers&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+                                                 : @{$res-&amp;gt;{nameservers}};&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+    my $port = $res-&amp;gt;UNIVERSAL::can(&amp;#039;port&amp;#039;) ? $res-&amp;gt;port : $res-&amp;gt;{port};&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;+    @ns_addr_port = map(untaint_var(&amp;quot;[$_]:&amp;quot; . $port), @ns);&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;     dbg(&amp;quot;dns: servers obtained from Net::DNS : %s&amp;quot;, join(&amp;#039;, &amp;#039;,@ns_addr_port));&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;   }&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;   return @ns_addr_port;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Then, there was this:&lt;br /&gt;
#: &amp;lt;code&amp;gt;Feb 03 16:48:44 server spampd[22524]: plugin: eval failed: bayes: (in learn) locker: safe_lock: cannot create tmp lockfile /var/spampd/.spamassassin/bayes.lock.mail.example.com.22524 for /var/spampd/.spamassassin/bayes.lock: Permission denied&amp;lt;/code&amp;gt;&lt;br /&gt;
#: It appeared that although /var/spampd was set to _spampd:_spampd, the /var/spampd/.spamassassin was set to root:_spampd and the permissions were 700 (IIRC). Anyway, chown that directory to also be _spampd:_spampd and then it appears to work fine.&lt;br /&gt;
# So now here is what’s happening:&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; relay tagged CLAM_IN mail to spampd on port 10035 -&amp;gt; run it through SpamAssassin -&amp;gt; return to spampd -&amp;gt; return to opensmtpd on lo0 port 10036 and tag it SPAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039; (unchanged from before since outgoing mail is not sent to spampd):&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay out&lt;br /&gt;
# Test again, both ways. Use the GTUBE test to see if it’s flagged as spam. There should be SpamAssassin headers in the incoming email. SpamAssassin can be further set up for Bayesian training and cron entries for running sa-learn on designated directories.&lt;br /&gt;
&lt;br /&gt;
= DKIMproxy =&lt;br /&gt;
# Follow the steps here to create public and private keys that will be used by DKIMproxy.&lt;br /&gt;
# Create a TXT record for each domain the server will be hosting that looks something like this:&lt;br /&gt;
#: &amp;lt;code&amp;gt;selector1._domainkey v=DKIM1; k=rsa; p=KEY_GOES_HERE  TXT  1800 TTL&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# Install dkimproxy from ports (no packages available for OpenBSD 5.6). It has no dependencies that aren’t already pulled in from prior packages so it’s an easy and quick build.&lt;br /&gt;
# Edit /etc/dkimproxy_out.conf so it looks something like this (note that the default ports are different so they don’t conflict with the earlier clamsmtpd setup):&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/dkimproxy_out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# specify what address/port DKIMproxy should listen on&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;#listen 127.0.0.1:10027&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen 127.0.0.1:10030&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# specify what address/port DKIMproxy forwards mail to&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;#relay 127.0.0.1:10028&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;relay 127.0.0.1:10029&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# specify what domains DKIMproxy can sign for (comma-separated, no spaces)&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;#domain example.org&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;domain example.com,example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# specify what signatures to add&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;signature dkim(c=relaxed)&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;signature domainkeys(c=nofws)&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# specify location of the private key&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;#keyfile /full/path/to/private.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;keyfile /etc/mail/dkim/private.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# specify the selector (i.e. the name of the key record put in DNS)&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;selector selector1&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: Since SpamAssassin already does DKIM checking for incoming mail, dkimproxy is only used for outgoing mail to add the DKIM keys etc. to outgoing headers.&lt;br /&gt;
# Add «dkimproxy_out» to pkg_scripts in /etc/rc.conf.local and start it up. Again, check netstat -na -f inet to see if it’s listening on port 10030.&lt;br /&gt;
# Same drill as before. Edit /etc/mail/smtpd.conf so it looks something like this:&lt;br /&gt;
#: &amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on lo0 port 10026 tag CLAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on lo0 port 10036 tag SPAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on lo0 port 10029 tag DKIM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tagged mail returned from dkimproxy_out relay out&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept tagged DKIM_OUT for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tagged mail returned from spampd deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept tagged SPAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# tagged mail returned from clamsmtpd either send to spampd or dkimproxy_out&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept tagged CLAM_IN for any relay via smtp://127.0.0.1:10035 # send to spampd&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept tagged CLAM_OUT for any relay via smtp://127.0.0.1:10030 # send to dkimproxy_out&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;# start here - untagged mail is sent to clamsmtpd&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;br&amp;gt;&lt;br /&gt;
# So now here is what’s happening:&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039; (unchanged from before since incoming mail is not using dkimproxy):&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; -relay tagged CLAM_IN mail to spampd on port 10035 -&amp;gt; run it through SpamAssassin -&amp;gt; return to opensmtpd on lo0 port 10036 and tag it SPAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay to dkimproxy on port 10030 -&amp;gt; add DKIM headers -&amp;gt; return to opensmtpd on lo0 port 10029 and tag it DKIM_OUT -&amp;gt; relay out&lt;br /&gt;
# Send an email and look at the headers. There should be some DKIM headers for the domain like these:&lt;br /&gt;
#: &amp;lt;code&amp;gt;DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=example.com; h=from:date&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; :message-id:to:subject; s=selector1; bh=[KEY HASH]&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt;DomainKey-Signature: a=rsa-sha1; c=nofws; d=example.com; h=from:date&amp;lt;/code&amp;gt;&lt;br /&gt;
#: &amp;lt;code&amp;gt; :message-id:to:subject; q=dns; s=selector1; b=[KEY HASH]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=474</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=474"/>
		<updated>2016-09-15T04:04:50Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* DKIMproxy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  OpenSMTPD и spamd =&lt;br /&gt;
# Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
# Set up virtual users and virtual domains:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create SSL certificates as described in man 5 smtpd.conf:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl req -new -x509 -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/mail.example.com.crt -days 365&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/mail.example.com.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/private/mail.example.com.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create ~/Maildir for user (&amp;quot;joe&amp;quot; in this example).&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it listens on egress with tls (for incoming mail) and egress port 587 (submission) with tls and authentication (for outgoing mail), accepts mail for virtual users and virtual domains, and delivers this mail to Maildir. Note that the smtpd.conf man page clearly says: &amp;quot;For each message processed by the daemon, the filter rules are evaluated in sequential order, from first to last. The first matching rule decides what action is taken.&amp;quot; Therefore, the order of the rules in smtpd.conf is very important and will become more important as additional bits are added (e.g. for clamsmtp, spampd, and dkimproxy).&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Edit pf.conf to allow connections on smtp port 25 and port 587, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Reload pf and start /etc/rc.d/smtpd.&lt;br /&gt;
# Test sending mail to/from the user&amp;#039;s account.  Since there is no imap client yet, might want to install mutt or something similar and point to the user&amp;#039;s ~/Maildir to check incoming mail.  The user should be able to connect to OpenSMTPD on port 587 from an outside client to send mail through OpenSMTPD to another party.  Sending outbound mail from the command line should also work.  Perhaps telnet into the server or run a couple of SMTP checks against the server like this one to verify things are working correctly.  The session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP OpenSMTPD [624 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-mail.example.com Hello MXTB-PWS3.mxtoolbox.com [64.20.227.133], pleased to meet you&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-8BITMIME&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-ENHANCEDSTATUSCODES&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-SIZE 36700160&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-DSN&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-STARTTLS&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 HELP [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 2.0.0: Ok [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;550 Invalid recipient [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 3260ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# If that works, set up spamd.  This is a very simple and standard setup and there are lots of resources out there on how to do this, but here is the shorthand:  Add spamd_flags=”-v” to /etc/rc.conf.local. Edit /etc/mail/spamd.conf to add override/whitelist if desired (file /etc/mail/nospamd in sample pf rules). Add spamd pf rules from example /etc/pf.conf and comment out prior rule that passed smtp on egress (because now we want incoming mail to be redirected to spamd running on localhost port 8025):&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# rules for spamd(8)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;spamd-white&amp;gt; persist&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;nospamd&amp;gt; persist file &amp;quot;/etc/mail/nospamd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from any to any port smtp rdr-to 127.0.0.1 port spamd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from &amp;lt;nospamd&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in log on egress proto tcp from &amp;lt;spamd-white&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; pass out log on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Reload pf and start /etc/rc.d/spamd.  Check netstat to see if spamd is listening on port 8025:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# netstat -na -f inet&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Send test emails again and check logs and &amp;#039;spamdb&amp;#039; to see if email is getting greylisted.  Once spamd is working, those third-party SMTP checks won&amp;#039;t work because spamd is intercepting incoming mail. Same with telnet, if you can stand waiting for the stuttering. ;-) Anyway, now the session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP spamd IP-based SPAM blocker; Sat Jan 31 11:33:21 2015 [11716 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 Hello, spam sender. Pleased to be wasting your time. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 You are about to try to deliver spam. Your time will be spent, for nothing. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 This is hurting you more than it is hurting me. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 14602ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Haha.  Love spamd.&lt;br /&gt;
# So here is what&amp;#039;s happening:&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:opensmtpd on lo0 -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=  ClamAV and ClamSMTP =&lt;br /&gt;
# Install clamav and clamsmtp from packages.&lt;br /&gt;
# Edit /etc/freshclam.conf -- comment out the “Example” line and uncomment the &amp;quot;DatabaseMirror&amp;quot; line and add the relevant country code in place of the &amp;quot;XY.&amp;quot;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/freshclam.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;DatabaseMirror db.us.clamav.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Run ‘freshclam’ to update the database. Add a freshclam command to root’s crontab to have periodic updates:&lt;br /&gt;
#:&amp;lt;code&amp;gt;20 * * * * /usr/local/bin/freshclam &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Once freshclam has updated the database, edit /etc/clamd.conf.  Comment out the “Example” line, uncomment “TCPSocket” and “TCPAddr” lines and change them so clamd listens on port 3310 at 127.0.0.1.&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;TCPSocket 3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;TCPAddr 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: Add “clamd” to pkg_scripts in /etc/rc.conf.local and then start clamd. Check netstat -na -f inet to see if clamd is running on 127.0.0.1:3310. Check out both /etc/freshclam.conf and /etc/clamd.conf to look at logging options or actions (in VirusEvent) to take when a virus is found.  Can set it up so it drops an email into root&amp;#039;s mailbox when a virus is found.&lt;br /&gt;
# Now, set up clamsmtp, which is a proxy for clamd.  Two config files will be used, one for incoming mail and one for outgoing mail.  OpenSMTPD will accept mail, send it to clamsmtp on one port for incoming mail (10025) and a different port (10027) for outgoing mail.  Clamsmtp will run the mail through clamd, and then return it to OpenSMTPD for incoming mail (10026) or outgoing mail (10028).  Depending on which port the mail is returned to, OpenSMTPD will tag it CLAM_IN or CLAM_OUT.&lt;br /&gt;
#: So copy /etc/clamsmtpd.conf and create /etc/clamsmtpd-in.conf and /etc/clamsmtpd-out.conf. Modify the files like so:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;OutAddress: 10026&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Listen: 0.0.0.0:10025&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;OutAddress: 10028&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Listen: 0.0.0.0:10027&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Start them both:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:(add something similar to /etc/rc.local so they start at boot)&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it looks like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10026 tag CLAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from clamsmtpd either deliver or relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_OUT for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# start here - untagged mail is sent to clamsmtpd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: So here is what&amp;#039;s happening:&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay out&lt;br /&gt;
# Send some emails both ways.  This should be in the header:&lt;br /&gt;
#:&amp;lt;code&amp;gt;X-Virus-Scanned: ClamAV using ClamSMTP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SpamAssassin and SpamPD =&lt;br /&gt;
# Install p5-Mail-SpamAssassin and spampd from packages.&lt;br /&gt;
# Edit /etc/mail/spamassassin/local.cf and uncomment the &amp;quot;rewrite_header&amp;quot; line.&lt;br /&gt;
# Spampd will be used as a proxy like clamsmtp.  For purposes of this guide, only incoming mail will be scanned.  Spampd by default runs on port 10025 but that port is already being used for clamsmtp. So, add the following to /etc/rc.conf.local:&lt;br /&gt;
#:&amp;lt;code&amp;gt;spampd_flags=&amp;quot;--port=10035 --relayhost=127.0.0.1:10036 --tagall -aw&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: With these flags, spampd will listen on port 10035 and after processing the mail through SpamAssassin, spampd will relay the mail back to port 10036, where OpenSMTPD will be listening.&lt;br /&gt;
#: UPDATE: spampd seems to have trouble binding to the right port (10035 in this case) upon a reboot even with those spampd_flags set in /etc/rc.conf.local. It tries to bind to 10025 which, as noted previously, is being used by clamsmtp, and therefore spampd fails to work and incoming mail has no place to go when opensmtpd tries to relay it to spampd. I have to manually log in and kick spampd to get it to bind to 10035. Still investigating a solution other than changing all the ports around ...&lt;br /&gt;
#: Add &amp;quot;spamassassin&amp;quot; and &amp;quot;spampd&amp;quot; to pkg_scripts in /etc/rc.conf.local and then start both spamassassin and spampd.  A &amp;quot;netstat -na -f inet&amp;quot; should show spampd listening on port 10035.&lt;br /&gt;
# Once spampd was processing mail, there were errors in /var/log/maillog along the lines of: “spampd Insecure dependency -T switch at Socket.pm” and it wasn&amp;#039;t working.  Turns out spampd needs patching for newer Perl.  See this:  https://github.com/mpaperno/spampd/issues/2.  Here is a patch to /usr/local/sbin/spampd (also found here):&lt;br /&gt;
#:&amp;lt;code&amp;gt;--- spampd.orig Thu Jan 29 23:19:45 2015&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+++ spampd Thu Jan 29 23:21:31 2015&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@@ -824,6 +824,22 @@ if ( $logsock !~ /^(unix|inet)$/ ) {&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; usage(0);&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+# Untaint some options provided by admin command line.&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$pidfile =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$pidfile = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$relayhost =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$relayhost = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$relayport =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$relayport = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$host =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$host = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$port =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$port = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; if ( $options{tagall} ) { $tagall = 1; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; if ( $options{&amp;#039;log-rules-hit&amp;#039;} ) { $rh = 1; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; if ( $options{debug} ) { $debug = 1; $nsloglevel = 4; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Restart spampd after applying that patch.&lt;br /&gt;
# Now, modify /etc/mail/smtpd.conf similar to what was done for clamsmtp:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10026 tag CLAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10036 tag SPAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from spampd deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged SPAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from clamsmtpd either send to spampd or relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_IN for any relay via smtp://127.0.0.1:10035 # send to spampd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_OUT for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# start here - untagged mail is sent to clamsmtpd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# There were still some errors in /var/log/maillog. First, there was something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Feb 03 16:48:44 server spampd[22524]: spf: lookup failed: available_nameservers: No DNS servers available!&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Feb 03 16:48:44 server spampd[22524]: rules: failed to run USER_IN_DEF_DKIM_WL test, skipping:  (available_nameservers: No DNS servers available!)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Turns out, SpamAssassin had broken DNS lookups.  Here is the patch to /usr/local/libdata/perl5/site_perl/Mail/SpamAssassin/DnsResolver.pm (also found here):&lt;br /&gt;
#:&amp;lt;code&amp;gt;--- DnsResolver.pm.orig Fri Feb  7 03:36:28 2014&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+++ DnsResolver.pm      Thu Nov 13 16:04:01 2014&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@@ -204,8 +204,10 @@&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;     @ns_addr_port = @{$self-&amp;gt;{conf}-&amp;gt;{dns_servers}};&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;     dbg(&amp;quot;dns: servers set by config to: %s&amp;quot;, join(&amp;#039;, &amp;#039;,@ns_addr_port));&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;   } elsif ($res) {  # default as provided by Net::DNS, e.g. /etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;-    @ns_addr_port = map(untaint_var(&amp;quot;[$_]:&amp;quot; . $res-&amp;gt;{port}),&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;-                        @{$res-&amp;gt;{nameservers}});&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+    my @ns = $res-&amp;gt;UNIVERSAL::can(&amp;#039;nameservers&amp;#039;) ? $res-&amp;gt;nameservers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+                                                 : @{$res-&amp;gt;{nameservers}};&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+    my $port = $res-&amp;gt;UNIVERSAL::can(&amp;#039;port&amp;#039;) ? $res-&amp;gt;port : $res-&amp;gt;{port};&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+    @ns_addr_port = map(untaint_var(&amp;quot;[$_]:&amp;quot; . $port), @ns);&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;     dbg(&amp;quot;dns: servers obtained from Net::DNS : %s&amp;quot;, join(&amp;#039;, &amp;#039;,@ns_addr_port));&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;   }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;   return @ns_addr_port;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Then, there was this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Feb 03 16:48:44 server spampd[22524]: plugin: eval failed: bayes: (in learn) locker: safe_lock: cannot create tmp lockfile /var/spampd/.spamassassin/bayes.lock.mail.example.com.22524 for /var/spampd/.spamassassin/bayes.lock: Permission denied&amp;lt;/code&amp;gt;&lt;br /&gt;
#: It appeared that although /var/spampd was set to _spampd:_spampd, the /var/spampd/.spamassassin was set to root:_spampd and the permissions were 700 (IIRC).  Anyway, chown that directory to also be _spampd:_spampd and then it appears to work fine.&lt;br /&gt;
# So now here is what&amp;#039;s happening:&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; relay tagged CLAM_IN mail to spampd on port 10035 -&amp;gt; run it through SpamAssassin -&amp;gt; return to spampd -&amp;gt; return to opensmtpd on lo0 port 10036 and tag it SPAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039; (unchanged from before since outgoing mail is not sent to spampd):&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay out&lt;br /&gt;
# Test again, both ways.  Use the GTUBE test to see if it’s flagged as spam.  There should be SpamAssassin headers in the incoming email.  SpamAssassin can be further set up for Bayesian training and cron entries for running sa-learn on designated directories.&lt;br /&gt;
&lt;br /&gt;
= DKIMproxy =&lt;br /&gt;
# Follow the steps here to create public and private keys that will be used by DKIMproxy.&lt;br /&gt;
# Create a TXT record for each domain the server will be hosting that looks something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;selector1._domainkey v=DKIM1; k=rsa; p=KEY_GOES_HERE  TXT  1800 TTL&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Install dkimproxy from ports (no packages available for OpenBSD 5.6).  It has no dependencies that aren&amp;#039;t already pulled in from prior packages so it&amp;#039;s an easy and quick build.&lt;br /&gt;
# Edit /etc/dkimproxy_out.conf so it looks something like this (note that the default ports are different so they don&amp;#039;t conflict with the earlier clamsmtpd setup):&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/dkimproxy_out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# specify what address/port DKIMproxy should listen on&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#listen 127.0.0.1:10027&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen 127.0.0.1:10030&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# specify what address/port DKIMproxy forwards mail to&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#relay 127.0.0.1:10028&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;relay 127.0.0.1:10029&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# specify what domains DKIMproxy can sign for (comma-separated, no spaces)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#domain example.org&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;domain example.com,example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# specify what signatures to add&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;signature dkim(c=relaxed)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;signature domainkeys(c=nofws)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# specify location of the private key&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#keyfile /full/path/to/private.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;keyfile /etc/mail/dkim/private.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# specify the selector (i.e. the name of the key record put in DNS)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;selector selector1&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: Since SpamAssassin already does DKIM checking for incoming mail, dkimproxy is only used for outgoing mail to add the DKIM keys etc. to outgoing headers.&lt;br /&gt;
# Add &amp;quot;dkimproxy_out&amp;quot; to pkg_scripts in /etc/rc.conf.local and start it up.  Again, check netstat -na -f inet to see if it&amp;#039;s listening on port 10030.&lt;br /&gt;
# Same drill as before.  Edit /etc/mail/smtpd.conf so it looks something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10026 tag CLAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10036 tag SPAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10029 tag DKIM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from dkimproxy_out relay out&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged DKIM_OUT for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from spampd deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged SPAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from clamsmtpd either send to spampd or dkimproxy_out&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_IN for any relay via smtp://127.0.0.1:10035 # send to spampd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_OUT for any relay via smtp://127.0.0.1:10030 # send to dkimproxy_out&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# start here - untagged mail is sent to clamsmtpd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# So now here is what’s happening:&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039; (unchanged from before since incoming mail is not using dkimproxy):&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; -relay tagged CLAM_IN mail to spampd on port 10035 -&amp;gt; run it through SpamAssassin -&amp;gt; return to opensmtpd on lo0 port 10036 and tag it SPAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay to dkimproxy on port 10030 -&amp;gt; add DKIM headers -&amp;gt; return to opensmtpd on lo0 port 10029 and tag it DKIM_OUT -&amp;gt; relay out&lt;br /&gt;
# Send an email and look at the headers.  There should be some DKIM headers for the domain like these:&lt;br /&gt;
#:&amp;lt;code&amp;gt;DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=example.com; h=from:date&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; :message-id:to:subject; s=selector1; bh=[KEY HASH]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;DomainKey-Signature: a=rsa-sha1; c=nofws; d=example.com; h=from:date&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; :message-id:to:subject; q=dns; s=selector1; b=[KEY HASH]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=473</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=473"/>
		<updated>2016-09-15T03:56:40Z</updated>

		<summary type="html">&lt;p&gt;Ssh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  OpenSMTPD и spamd =&lt;br /&gt;
# Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
# Set up virtual users and virtual domains:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create SSL certificates as described in man 5 smtpd.conf:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl req -new -x509 -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/mail.example.com.crt -days 365&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/mail.example.com.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/private/mail.example.com.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create ~/Maildir for user (&amp;quot;joe&amp;quot; in this example).&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it listens on egress with tls (for incoming mail) and egress port 587 (submission) with tls and authentication (for outgoing mail), accepts mail for virtual users and virtual domains, and delivers this mail to Maildir. Note that the smtpd.conf man page clearly says: &amp;quot;For each message processed by the daemon, the filter rules are evaluated in sequential order, from first to last. The first matching rule decides what action is taken.&amp;quot; Therefore, the order of the rules in smtpd.conf is very important and will become more important as additional bits are added (e.g. for clamsmtp, spampd, and dkimproxy).&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Edit pf.conf to allow connections on smtp port 25 and port 587, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Reload pf and start /etc/rc.d/smtpd.&lt;br /&gt;
# Test sending mail to/from the user&amp;#039;s account.  Since there is no imap client yet, might want to install mutt or something similar and point to the user&amp;#039;s ~/Maildir to check incoming mail.  The user should be able to connect to OpenSMTPD on port 587 from an outside client to send mail through OpenSMTPD to another party.  Sending outbound mail from the command line should also work.  Perhaps telnet into the server or run a couple of SMTP checks against the server like this one to verify things are working correctly.  The session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP OpenSMTPD [624 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-mail.example.com Hello MXTB-PWS3.mxtoolbox.com [64.20.227.133], pleased to meet you&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-8BITMIME&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-ENHANCEDSTATUSCODES&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-SIZE 36700160&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-DSN&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-STARTTLS&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 HELP [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 2.0.0: Ok [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;550 Invalid recipient [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 3260ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# If that works, set up spamd.  This is a very simple and standard setup and there are lots of resources out there on how to do this, but here is the shorthand:  Add spamd_flags=”-v” to /etc/rc.conf.local. Edit /etc/mail/spamd.conf to add override/whitelist if desired (file /etc/mail/nospamd in sample pf rules). Add spamd pf rules from example /etc/pf.conf and comment out prior rule that passed smtp on egress (because now we want incoming mail to be redirected to spamd running on localhost port 8025):&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# rules for spamd(8)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;spamd-white&amp;gt; persist&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;nospamd&amp;gt; persist file &amp;quot;/etc/mail/nospamd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from any to any port smtp rdr-to 127.0.0.1 port spamd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from &amp;lt;nospamd&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in log on egress proto tcp from &amp;lt;spamd-white&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; pass out log on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Reload pf and start /etc/rc.d/spamd.  Check netstat to see if spamd is listening on port 8025:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# netstat -na -f inet&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Send test emails again and check logs and &amp;#039;spamdb&amp;#039; to see if email is getting greylisted.  Once spamd is working, those third-party SMTP checks won&amp;#039;t work because spamd is intercepting incoming mail. Same with telnet, if you can stand waiting for the stuttering. ;-) Anyway, now the session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP spamd IP-based SPAM blocker; Sat Jan 31 11:33:21 2015 [11716 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 Hello, spam sender. Pleased to be wasting your time. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 You are about to try to deliver spam. Your time will be spent, for nothing. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 This is hurting you more than it is hurting me. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 14602ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Haha.  Love spamd.&lt;br /&gt;
# So here is what&amp;#039;s happening:&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:opensmtpd on lo0 -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=  ClamAV and ClamSMTP =&lt;br /&gt;
# Install clamav and clamsmtp from packages.&lt;br /&gt;
# Edit /etc/freshclam.conf -- comment out the “Example” line and uncomment the &amp;quot;DatabaseMirror&amp;quot; line and add the relevant country code in place of the &amp;quot;XY.&amp;quot;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/freshclam.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;DatabaseMirror db.us.clamav.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Run ‘freshclam’ to update the database. Add a freshclam command to root’s crontab to have periodic updates:&lt;br /&gt;
#:&amp;lt;code&amp;gt;20 * * * * /usr/local/bin/freshclam &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Once freshclam has updated the database, edit /etc/clamd.conf.  Comment out the “Example” line, uncomment “TCPSocket” and “TCPAddr” lines and change them so clamd listens on port 3310 at 127.0.0.1.&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;TCPSocket 3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;TCPAddr 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: Add “clamd” to pkg_scripts in /etc/rc.conf.local and then start clamd. Check netstat -na -f inet to see if clamd is running on 127.0.0.1:3310. Check out both /etc/freshclam.conf and /etc/clamd.conf to look at logging options or actions (in VirusEvent) to take when a virus is found.  Can set it up so it drops an email into root&amp;#039;s mailbox when a virus is found.&lt;br /&gt;
# Now, set up clamsmtp, which is a proxy for clamd.  Two config files will be used, one for incoming mail and one for outgoing mail.  OpenSMTPD will accept mail, send it to clamsmtp on one port for incoming mail (10025) and a different port (10027) for outgoing mail.  Clamsmtp will run the mail through clamd, and then return it to OpenSMTPD for incoming mail (10026) or outgoing mail (10028).  Depending on which port the mail is returned to, OpenSMTPD will tag it CLAM_IN or CLAM_OUT.&lt;br /&gt;
#: So copy /etc/clamsmtpd.conf and create /etc/clamsmtpd-in.conf and /etc/clamsmtpd-out.conf. Modify the files like so:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;OutAddress: 10026&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Listen: 0.0.0.0:10025&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;OutAddress: 10028&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Listen: 0.0.0.0:10027&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Start them both:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:(add something similar to /etc/rc.local so they start at boot)&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it looks like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10026 tag CLAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from clamsmtpd either deliver or relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_OUT for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# start here - untagged mail is sent to clamsmtpd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: So here is what&amp;#039;s happening:&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay out&lt;br /&gt;
# Send some emails both ways.  This should be in the header:&lt;br /&gt;
#:&amp;lt;code&amp;gt;X-Virus-Scanned: ClamAV using ClamSMTP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SpamAssassin and SpamPD =&lt;br /&gt;
# Install p5-Mail-SpamAssassin and spampd from packages.&lt;br /&gt;
# Edit /etc/mail/spamassassin/local.cf and uncomment the &amp;quot;rewrite_header&amp;quot; line.&lt;br /&gt;
# Spampd will be used as a proxy like clamsmtp.  For purposes of this guide, only incoming mail will be scanned.  Spampd by default runs on port 10025 but that port is already being used for clamsmtp. So, add the following to /etc/rc.conf.local:&lt;br /&gt;
#:&amp;lt;code&amp;gt;spampd_flags=&amp;quot;--port=10035 --relayhost=127.0.0.1:10036 --tagall -aw&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: With these flags, spampd will listen on port 10035 and after processing the mail through SpamAssassin, spampd will relay the mail back to port 10036, where OpenSMTPD will be listening.&lt;br /&gt;
#: UPDATE: spampd seems to have trouble binding to the right port (10035 in this case) upon a reboot even with those spampd_flags set in /etc/rc.conf.local. It tries to bind to 10025 which, as noted previously, is being used by clamsmtp, and therefore spampd fails to work and incoming mail has no place to go when opensmtpd tries to relay it to spampd. I have to manually log in and kick spampd to get it to bind to 10035. Still investigating a solution other than changing all the ports around ...&lt;br /&gt;
#: Add &amp;quot;spamassassin&amp;quot; and &amp;quot;spampd&amp;quot; to pkg_scripts in /etc/rc.conf.local and then start both spamassassin and spampd.  A &amp;quot;netstat -na -f inet&amp;quot; should show spampd listening on port 10035.&lt;br /&gt;
# Once spampd was processing mail, there were errors in /var/log/maillog along the lines of: “spampd Insecure dependency -T switch at Socket.pm” and it wasn&amp;#039;t working.  Turns out spampd needs patching for newer Perl.  See this:  https://github.com/mpaperno/spampd/issues/2.  Here is a patch to /usr/local/sbin/spampd (also found here):&lt;br /&gt;
#:&amp;lt;code&amp;gt;--- spampd.orig Thu Jan 29 23:19:45 2015&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+++ spampd Thu Jan 29 23:21:31 2015&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@@ -824,6 +824,22 @@ if ( $logsock !~ /^(unix|inet)$/ ) {&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; usage(0);&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+# Untaint some options provided by admin command line.&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$pidfile =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$pidfile = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$relayhost =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$relayhost = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$relayport =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$relayport = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$host =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$host = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$port =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$port = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; if ( $options{tagall} ) { $tagall = 1; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; if ( $options{&amp;#039;log-rules-hit&amp;#039;} ) { $rh = 1; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; if ( $options{debug} ) { $debug = 1; $nsloglevel = 4; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Restart spampd after applying that patch.&lt;br /&gt;
# Now, modify /etc/mail/smtpd.conf similar to what was done for clamsmtp:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10026 tag CLAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10036 tag SPAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from spampd deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged SPAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from clamsmtpd either send to spampd or relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_IN for any relay via smtp://127.0.0.1:10035 # send to spampd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_OUT for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# start here - untagged mail is sent to clamsmtpd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# There were still some errors in /var/log/maillog. First, there was something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Feb 03 16:48:44 server spampd[22524]: spf: lookup failed: available_nameservers: No DNS servers available!&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Feb 03 16:48:44 server spampd[22524]: rules: failed to run USER_IN_DEF_DKIM_WL test, skipping:  (available_nameservers: No DNS servers available!)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Turns out, SpamAssassin had broken DNS lookups.  Here is the patch to /usr/local/libdata/perl5/site_perl/Mail/SpamAssassin/DnsResolver.pm (also found here):&lt;br /&gt;
#:&amp;lt;code&amp;gt;--- DnsResolver.pm.orig Fri Feb  7 03:36:28 2014&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+++ DnsResolver.pm      Thu Nov 13 16:04:01 2014&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@@ -204,8 +204,10 @@&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;     @ns_addr_port = @{$self-&amp;gt;{conf}-&amp;gt;{dns_servers}};&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;     dbg(&amp;quot;dns: servers set by config to: %s&amp;quot;, join(&amp;#039;, &amp;#039;,@ns_addr_port));&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;   } elsif ($res) {  # default as provided by Net::DNS, e.g. /etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;-    @ns_addr_port = map(untaint_var(&amp;quot;[$_]:&amp;quot; . $res-&amp;gt;{port}),&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;-                        @{$res-&amp;gt;{nameservers}});&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+    my @ns = $res-&amp;gt;UNIVERSAL::can(&amp;#039;nameservers&amp;#039;) ? $res-&amp;gt;nameservers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+                                                 : @{$res-&amp;gt;{nameservers}};&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+    my $port = $res-&amp;gt;UNIVERSAL::can(&amp;#039;port&amp;#039;) ? $res-&amp;gt;port : $res-&amp;gt;{port};&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+    @ns_addr_port = map(untaint_var(&amp;quot;[$_]:&amp;quot; . $port), @ns);&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;     dbg(&amp;quot;dns: servers obtained from Net::DNS : %s&amp;quot;, join(&amp;#039;, &amp;#039;,@ns_addr_port));&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;   }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;   return @ns_addr_port;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Then, there was this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Feb 03 16:48:44 server spampd[22524]: plugin: eval failed: bayes: (in learn) locker: safe_lock: cannot create tmp lockfile /var/spampd/.spamassassin/bayes.lock.mail.example.com.22524 for /var/spampd/.spamassassin/bayes.lock: Permission denied&amp;lt;/code&amp;gt;&lt;br /&gt;
#: It appeared that although /var/spampd was set to _spampd:_spampd, the /var/spampd/.spamassassin was set to root:_spampd and the permissions were 700 (IIRC).  Anyway, chown that directory to also be _spampd:_spampd and then it appears to work fine.&lt;br /&gt;
# So now here is what&amp;#039;s happening:&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; relay tagged CLAM_IN mail to spampd on port 10035 -&amp;gt; run it through SpamAssassin -&amp;gt; return to spampd -&amp;gt; return to opensmtpd on lo0 port 10036 and tag it SPAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039; (unchanged from before since outgoing mail is not sent to spampd):&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay out&lt;br /&gt;
# Test again, both ways.  Use the GTUBE test to see if it’s flagged as spam.  There should be SpamAssassin headers in the incoming email.  SpamAssassin can be further set up for Bayesian training and cron entries for running sa-learn on designated directories.&lt;br /&gt;
&lt;br /&gt;
= DKIMproxy =&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=472</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=472"/>
		<updated>2016-09-15T02:46:53Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* SpamAssassin and SpamPD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  OpenSMTPD и spamd =&lt;br /&gt;
# Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
# Set up virtual users and virtual domains:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create SSL certificates as described in man 5 smtpd.conf:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl req -new -x509 -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/mail.example.com.crt -days 365&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/mail.example.com.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/private/mail.example.com.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create ~/Maildir for user (&amp;quot;joe&amp;quot; in this example).&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it listens on egress with tls (for incoming mail) and egress port 587 (submission) with tls and authentication (for outgoing mail), accepts mail for virtual users and virtual domains, and delivers this mail to Maildir. Note that the smtpd.conf man page clearly says: &amp;quot;For each message processed by the daemon, the filter rules are evaluated in sequential order, from first to last. The first matching rule decides what action is taken.&amp;quot; Therefore, the order of the rules in smtpd.conf is very important and will become more important as additional bits are added (e.g. for clamsmtp, spampd, and dkimproxy).&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Edit pf.conf to allow connections on smtp port 25 and port 587, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Reload pf and start /etc/rc.d/smtpd.&lt;br /&gt;
# Test sending mail to/from the user&amp;#039;s account.  Since there is no imap client yet, might want to install mutt or something similar and point to the user&amp;#039;s ~/Maildir to check incoming mail.  The user should be able to connect to OpenSMTPD on port 587 from an outside client to send mail through OpenSMTPD to another party.  Sending outbound mail from the command line should also work.  Perhaps telnet into the server or run a couple of SMTP checks against the server like this one to verify things are working correctly.  The session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP OpenSMTPD [624 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-mail.example.com Hello MXTB-PWS3.mxtoolbox.com [64.20.227.133], pleased to meet you&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-8BITMIME&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-ENHANCEDSTATUSCODES&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-SIZE 36700160&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-DSN&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-STARTTLS&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 HELP [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 2.0.0: Ok [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;550 Invalid recipient [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 3260ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# If that works, set up spamd.  This is a very simple and standard setup and there are lots of resources out there on how to do this, but here is the shorthand:  Add spamd_flags=”-v” to /etc/rc.conf.local. Edit /etc/mail/spamd.conf to add override/whitelist if desired (file /etc/mail/nospamd in sample pf rules). Add spamd pf rules from example /etc/pf.conf and comment out prior rule that passed smtp on egress (because now we want incoming mail to be redirected to spamd running on localhost port 8025):&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# rules for spamd(8)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;spamd-white&amp;gt; persist&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;nospamd&amp;gt; persist file &amp;quot;/etc/mail/nospamd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from any to any port smtp rdr-to 127.0.0.1 port spamd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from &amp;lt;nospamd&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in log on egress proto tcp from &amp;lt;spamd-white&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; pass out log on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Reload pf and start /etc/rc.d/spamd.  Check netstat to see if spamd is listening on port 8025:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# netstat -na -f inet&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Send test emails again and check logs and &amp;#039;spamdb&amp;#039; to see if email is getting greylisted.  Once spamd is working, those third-party SMTP checks won&amp;#039;t work because spamd is intercepting incoming mail. Same with telnet, if you can stand waiting for the stuttering. ;-) Anyway, now the session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP spamd IP-based SPAM blocker; Sat Jan 31 11:33:21 2015 [11716 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 Hello, spam sender. Pleased to be wasting your time. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 You are about to try to deliver spam. Your time will be spent, for nothing. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 This is hurting you more than it is hurting me. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 14602ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Haha.  Love spamd.&lt;br /&gt;
# So here is what&amp;#039;s happening:&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:opensmtpd on lo0 -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=  ClamAV and ClamSMTP =&lt;br /&gt;
# Install clamav and clamsmtp from packages.&lt;br /&gt;
# Edit /etc/freshclam.conf -- comment out the “Example” line and uncomment the &amp;quot;DatabaseMirror&amp;quot; line and add the relevant country code in place of the &amp;quot;XY.&amp;quot;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/freshclam.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;DatabaseMirror db.us.clamav.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Run ‘freshclam’ to update the database. Add a freshclam command to root’s crontab to have periodic updates:&lt;br /&gt;
#:&amp;lt;code&amp;gt;20 * * * * /usr/local/bin/freshclam &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Once freshclam has updated the database, edit /etc/clamd.conf.  Comment out the “Example” line, uncomment “TCPSocket” and “TCPAddr” lines and change them so clamd listens on port 3310 at 127.0.0.1.&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;TCPSocket 3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;TCPAddr 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: Add “clamd” to pkg_scripts in /etc/rc.conf.local and then start clamd. Check netstat -na -f inet to see if clamd is running on 127.0.0.1:3310. Check out both /etc/freshclam.conf and /etc/clamd.conf to look at logging options or actions (in VirusEvent) to take when a virus is found.  Can set it up so it drops an email into root&amp;#039;s mailbox when a virus is found.&lt;br /&gt;
# Now, set up clamsmtp, which is a proxy for clamd.  Two config files will be used, one for incoming mail and one for outgoing mail.  OpenSMTPD will accept mail, send it to clamsmtp on one port for incoming mail (10025) and a different port (10027) for outgoing mail.  Clamsmtp will run the mail through clamd, and then return it to OpenSMTPD for incoming mail (10026) or outgoing mail (10028).  Depending on which port the mail is returned to, OpenSMTPD will tag it CLAM_IN or CLAM_OUT.&lt;br /&gt;
#: So copy /etc/clamsmtpd.conf and create /etc/clamsmtpd-in.conf and /etc/clamsmtpd-out.conf. Modify the files like so:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;OutAddress: 10026&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Listen: 0.0.0.0:10025&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;OutAddress: 10028&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Listen: 0.0.0.0:10027&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Start them both:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:(add something similar to /etc/rc.local so they start at boot)&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it looks like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10026 tag CLAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from clamsmtpd either deliver or relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_OUT for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# start here - untagged mail is sent to clamsmtpd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: So here is what&amp;#039;s happening:&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay out&lt;br /&gt;
# Send some emails both ways.  This should be in the header:&lt;br /&gt;
#:&amp;lt;code&amp;gt;X-Virus-Scanned: ClamAV using ClamSMTP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SpamAssassin and SpamPD =&lt;br /&gt;
# Install p5-Mail-SpamAssassin and spampd from packages.&lt;br /&gt;
# Edit /etc/mail/spamassassin/local.cf and uncomment the &amp;quot;rewrite_header&amp;quot; line.&lt;br /&gt;
# Spampd will be used as a proxy like clamsmtp.  For purposes of this guide, only incoming mail will be scanned.  Spampd by default runs on port 10025 but that port is already being used for clamsmtp. So, add the following to /etc/rc.conf.local:&lt;br /&gt;
#:&amp;lt;code&amp;gt;spampd_flags=&amp;quot;--port=10035 --relayhost=127.0.0.1:10036 --tagall -aw&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#: With these flags, spampd will listen on port 10035 and after processing the mail through SpamAssassin, spampd will relay the mail back to port 10036, where OpenSMTPD will be listening.&lt;br /&gt;
#: UPDATE: spampd seems to have trouble binding to the right port (10035 in this case) upon a reboot even with those spampd_flags set in /etc/rc.conf.local. It tries to bind to 10025 which, as noted previously, is being used by clamsmtp, and therefore spampd fails to work and incoming mail has no place to go when opensmtpd tries to relay it to spampd. I have to manually log in and kick spampd to get it to bind to 10035. Still investigating a solution other than changing all the ports around ...&lt;br /&gt;
#: Add &amp;quot;spamassassin&amp;quot; and &amp;quot;spampd&amp;quot; to pkg_scripts in /etc/rc.conf.local and then start both spamassassin and spampd.  A &amp;quot;netstat -na -f inet&amp;quot; should show spampd listening on port 10035.&lt;br /&gt;
# Once spampd was processing mail, there were errors in /var/log/maillog along the lines of: “spampd Insecure dependency -T switch at Socket.pm” and it wasn&amp;#039;t working.  Turns out spampd needs patching for newer Perl.  See this:  https://github.com/mpaperno/spampd/issues/2.  Here is a patch to /usr/local/sbin/spampd (also found here):&lt;br /&gt;
#:&amp;lt;code&amp;gt;--- spampd.orig Thu Jan 29 23:19:45 2015&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+++ spampd Thu Jan 29 23:21:31 2015&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@@ -824,6 +824,22 @@ if ( $logsock !~ /^(unix|inet)$/ ) {&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; usage(0);&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+# Untaint some options provided by admin command line.&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$pidfile =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$pidfile = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$relayhost =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$relayhost = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$relayport =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$relayport = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$host =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$host = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$port =~ /^(.*)$/;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+$port = $1;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; if ( $options{tagall} ) { $tagall = 1; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; if ( $options{&amp;#039;log-rules-hit&amp;#039;} ) { $rh = 1; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; if ( $options{debug} ) { $debug = 1; $nsloglevel = 4; }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Restart spampd after applying that patch.&lt;br /&gt;
# Now, modify /etc/mail/smtpd.conf similar to what was done for clamsmtp:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10026 tag CLAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10036 tag SPAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from spampd deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged SPAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from clamsmtpd either send to spampd or relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_IN for any relay via smtp://127.0.0.1:10035 # send to spampd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_OUT for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# start here - untagged mail is sent to clamsmtpd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# There were still some errors in /var/log/maillog. First, there was something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Feb 03 16:48:44 server spampd[22524]: spf: lookup failed: available_nameservers: No DNS servers available!&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Feb 03 16:48:44 server spampd[22524]: rules: failed to run USER_IN_DEF_DKIM_WL test, skipping:  (available_nameservers: No DNS servers available!)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Turns out, SpamAssassin had broken DNS lookups.  Here is the patch to /usr/local/libdata/perl5/site_perl/Mail/SpamAssassin/DnsResolver.pm (also found here):&lt;br /&gt;
#:&amp;lt;code&amp;gt;--- DnsResolver.pm.orig Fri Feb  7 03:36:28 2014&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+++ DnsResolver.pm      Thu Nov 13 16:04:01 2014&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@@ -204,8 +204,10 @@&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;     @ns_addr_port = @{$self-&amp;gt;{conf}-&amp;gt;{dns_servers}};&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;     dbg(&amp;quot;dns: servers set by config to: %s&amp;quot;, join(&amp;#039;, &amp;#039;,@ns_addr_port));&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;   } elsif ($res) {  # default as provided by Net::DNS, e.g. /etc/resolv.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;-    @ns_addr_port = map(untaint_var(&amp;quot;[$_]:&amp;quot; . $res-&amp;gt;{port}),&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;-                        @{$res-&amp;gt;{nameservers}});&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+    my @ns = $res-&amp;gt;UNIVERSAL::can(&amp;#039;nameservers&amp;#039;) ? $res-&amp;gt;nameservers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+                                                 : @{$res-&amp;gt;{nameservers}};&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+    my $port = $res-&amp;gt;UNIVERSAL::can(&amp;#039;port&amp;#039;) ? $res-&amp;gt;port : $res-&amp;gt;{port};&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;+    @ns_addr_port = map(untaint_var(&amp;quot;[$_]:&amp;quot; . $port), @ns);&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;     dbg(&amp;quot;dns: servers obtained from Net::DNS : %s&amp;quot;, join(&amp;#039;, &amp;#039;,@ns_addr_port));&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;   }&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;   return @ns_addr_port;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Then, there was this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Feb 03 16:48:44 server spampd[22524]: plugin: eval failed: bayes: (in learn) locker: safe_lock: cannot create tmp lockfile /var/spampd/.spamassassin/bayes.lock.mail.example.com.22524 for /var/spampd/.spamassassin/bayes.lock: Permission denied&amp;lt;/code&amp;gt;&lt;br /&gt;
#: It appeared that although /var/spampd was set to _spampd:_spampd, the /var/spampd/.spamassassin was set to root:_spampd and the permissions were 700 (IIRC).  Anyway, chown that directory to also be _spampd:_spampd and then it appears to work fine.&lt;br /&gt;
# So now here is what&amp;#039;s happening:&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; relay tagged CLAM_IN mail to spampd on port 10035 -&amp;gt; run it through SpamAssassin -&amp;gt; return to spampd -&amp;gt; return to opensmtpd on lo0 port 10036 and tag it SPAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039; (unchanged from before since outgoing mail is not sent to spampd):&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay out&lt;br /&gt;
# Test again, both ways.  Use the GTUBE test to see if it’s flagged as spam.  There should be SpamAssassin headers in the incoming email.  SpamAssassin can be further set up for Bayesian training and cron entries for running sa-learn on designated directories.&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=471</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=471"/>
		<updated>2016-09-15T02:32:20Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* ClamAV and ClamSMTP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  OpenSMTPD и spamd =&lt;br /&gt;
# Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
# Set up virtual users and virtual domains:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create SSL certificates as described in man 5 smtpd.conf:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl req -new -x509 -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/mail.example.com.crt -days 365&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/mail.example.com.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/private/mail.example.com.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create ~/Maildir for user (&amp;quot;joe&amp;quot; in this example).&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it listens on egress with tls (for incoming mail) and egress port 587 (submission) with tls and authentication (for outgoing mail), accepts mail for virtual users and virtual domains, and delivers this mail to Maildir. Note that the smtpd.conf man page clearly says: &amp;quot;For each message processed by the daemon, the filter rules are evaluated in sequential order, from first to last. The first matching rule decides what action is taken.&amp;quot; Therefore, the order of the rules in smtpd.conf is very important and will become more important as additional bits are added (e.g. for clamsmtp, spampd, and dkimproxy).&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Edit pf.conf to allow connections on smtp port 25 and port 587, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Reload pf and start /etc/rc.d/smtpd.&lt;br /&gt;
# Test sending mail to/from the user&amp;#039;s account.  Since there is no imap client yet, might want to install mutt or something similar and point to the user&amp;#039;s ~/Maildir to check incoming mail.  The user should be able to connect to OpenSMTPD on port 587 from an outside client to send mail through OpenSMTPD to another party.  Sending outbound mail from the command line should also work.  Perhaps telnet into the server or run a couple of SMTP checks against the server like this one to verify things are working correctly.  The session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP OpenSMTPD [624 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-mail.example.com Hello MXTB-PWS3.mxtoolbox.com [64.20.227.133], pleased to meet you&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-8BITMIME&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-ENHANCEDSTATUSCODES&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-SIZE 36700160&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-DSN&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-STARTTLS&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 HELP [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 2.0.0: Ok [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;550 Invalid recipient [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 3260ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# If that works, set up spamd.  This is a very simple and standard setup and there are lots of resources out there on how to do this, but here is the shorthand:  Add spamd_flags=”-v” to /etc/rc.conf.local. Edit /etc/mail/spamd.conf to add override/whitelist if desired (file /etc/mail/nospamd in sample pf rules). Add spamd pf rules from example /etc/pf.conf and comment out prior rule that passed smtp on egress (because now we want incoming mail to be redirected to spamd running on localhost port 8025):&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# rules for spamd(8)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;spamd-white&amp;gt; persist&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;nospamd&amp;gt; persist file &amp;quot;/etc/mail/nospamd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from any to any port smtp rdr-to 127.0.0.1 port spamd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from &amp;lt;nospamd&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in log on egress proto tcp from &amp;lt;spamd-white&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; pass out log on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Reload pf and start /etc/rc.d/spamd.  Check netstat to see if spamd is listening on port 8025:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# netstat -na -f inet&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Send test emails again and check logs and &amp;#039;spamdb&amp;#039; to see if email is getting greylisted.  Once spamd is working, those third-party SMTP checks won&amp;#039;t work because spamd is intercepting incoming mail. Same with telnet, if you can stand waiting for the stuttering. ;-) Anyway, now the session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP spamd IP-based SPAM blocker; Sat Jan 31 11:33:21 2015 [11716 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 Hello, spam sender. Pleased to be wasting your time. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 You are about to try to deliver spam. Your time will be spent, for nothing. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 This is hurting you more than it is hurting me. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 14602ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Haha.  Love spamd.&lt;br /&gt;
# So here is what&amp;#039;s happening:&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:opensmtpd on lo0 -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=  ClamAV and ClamSMTP =&lt;br /&gt;
# Install clamav and clamsmtp from packages.&lt;br /&gt;
# Edit /etc/freshclam.conf -- comment out the “Example” line and uncomment the &amp;quot;DatabaseMirror&amp;quot; line and add the relevant country code in place of the &amp;quot;XY.&amp;quot;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/freshclam.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;DatabaseMirror db.us.clamav.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Run ‘freshclam’ to update the database. Add a freshclam command to root’s crontab to have periodic updates:&lt;br /&gt;
#:&amp;lt;code&amp;gt;20 * * * * /usr/local/bin/freshclam &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Once freshclam has updated the database, edit /etc/clamd.conf.  Comment out the “Example” line, uncomment “TCPSocket” and “TCPAddr” lines and change them so clamd listens on port 3310 at 127.0.0.1.&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;TCPSocket 3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;TCPAddr 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: Add “clamd” to pkg_scripts in /etc/rc.conf.local and then start clamd. Check netstat -na -f inet to see if clamd is running on 127.0.0.1:3310. Check out both /etc/freshclam.conf and /etc/clamd.conf to look at logging options or actions (in VirusEvent) to take when a virus is found.  Can set it up so it drops an email into root&amp;#039;s mailbox when a virus is found.&lt;br /&gt;
# Now, set up clamsmtp, which is a proxy for clamd.  Two config files will be used, one for incoming mail and one for outgoing mail.  OpenSMTPD will accept mail, send it to clamsmtp on one port for incoming mail (10025) and a different port (10027) for outgoing mail.  Clamsmtp will run the mail through clamd, and then return it to OpenSMTPD for incoming mail (10026) or outgoing mail (10028).  Depending on which port the mail is returned to, OpenSMTPD will tag it CLAM_IN or CLAM_OUT.&lt;br /&gt;
#: So copy /etc/clamsmtpd.conf and create /etc/clamsmtpd-in.conf and /etc/clamsmtpd-out.conf. Modify the files like so:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;OutAddress: 10026&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Listen: 0.0.0.0:10025&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;OutAddress: 10028&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Listen: 0.0.0.0:10027&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Start them both:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:(add something similar to /etc/rc.local so they start at boot)&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it looks like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10026 tag CLAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from clamsmtpd either deliver or relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_OUT for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# start here - untagged mail is sent to clamsmtpd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: So here is what&amp;#039;s happening:&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay out&lt;br /&gt;
# Send some emails both ways.  This should be in the header:&lt;br /&gt;
#:&amp;lt;code&amp;gt;X-Virus-Scanned: ClamAV using ClamSMTP&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SpamAssassin and SpamPD =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=470</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=470"/>
		<updated>2016-09-15T02:31:48Z</updated>

		<summary type="html">&lt;p&gt;Ssh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  OpenSMTPD и spamd =&lt;br /&gt;
# Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
# Set up virtual users and virtual domains:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create SSL certificates as described in man 5 smtpd.conf:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl req -new -x509 -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/mail.example.com.crt -days 365&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/mail.example.com.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/private/mail.example.com.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create ~/Maildir for user (&amp;quot;joe&amp;quot; in this example).&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it listens on egress with tls (for incoming mail) and egress port 587 (submission) with tls and authentication (for outgoing mail), accepts mail for virtual users and virtual domains, and delivers this mail to Maildir. Note that the smtpd.conf man page clearly says: &amp;quot;For each message processed by the daemon, the filter rules are evaluated in sequential order, from first to last. The first matching rule decides what action is taken.&amp;quot; Therefore, the order of the rules in smtpd.conf is very important and will become more important as additional bits are added (e.g. for clamsmtp, spampd, and dkimproxy).&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Edit pf.conf to allow connections on smtp port 25 and port 587, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Reload pf and start /etc/rc.d/smtpd.&lt;br /&gt;
# Test sending mail to/from the user&amp;#039;s account.  Since there is no imap client yet, might want to install mutt or something similar and point to the user&amp;#039;s ~/Maildir to check incoming mail.  The user should be able to connect to OpenSMTPD on port 587 from an outside client to send mail through OpenSMTPD to another party.  Sending outbound mail from the command line should also work.  Perhaps telnet into the server or run a couple of SMTP checks against the server like this one to verify things are working correctly.  The session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP OpenSMTPD [624 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-mail.example.com Hello MXTB-PWS3.mxtoolbox.com [64.20.227.133], pleased to meet you&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-8BITMIME&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-ENHANCEDSTATUSCODES&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-SIZE 36700160&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-DSN&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-STARTTLS&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 HELP [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 2.0.0: Ok [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;550 Invalid recipient [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 3260ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# If that works, set up spamd.  This is a very simple and standard setup and there are lots of resources out there on how to do this, but here is the shorthand:  Add spamd_flags=”-v” to /etc/rc.conf.local. Edit /etc/mail/spamd.conf to add override/whitelist if desired (file /etc/mail/nospamd in sample pf rules). Add spamd pf rules from example /etc/pf.conf and comment out prior rule that passed smtp on egress (because now we want incoming mail to be redirected to spamd running on localhost port 8025):&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# rules for spamd(8)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;spamd-white&amp;gt; persist&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;nospamd&amp;gt; persist file &amp;quot;/etc/mail/nospamd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from any to any port smtp rdr-to 127.0.0.1 port spamd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from &amp;lt;nospamd&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in log on egress proto tcp from &amp;lt;spamd-white&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; pass out log on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Reload pf and start /etc/rc.d/spamd.  Check netstat to see if spamd is listening on port 8025:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# netstat -na -f inet&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Send test emails again and check logs and &amp;#039;spamdb&amp;#039; to see if email is getting greylisted.  Once spamd is working, those third-party SMTP checks won&amp;#039;t work because spamd is intercepting incoming mail. Same with telnet, if you can stand waiting for the stuttering. ;-) Anyway, now the session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP spamd IP-based SPAM blocker; Sat Jan 31 11:33:21 2015 [11716 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 Hello, spam sender. Pleased to be wasting your time. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 You are about to try to deliver spam. Your time will be spent, for nothing. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 This is hurting you more than it is hurting me. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 14602ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Haha.  Love spamd.&lt;br /&gt;
# So here is what&amp;#039;s happening:&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:opensmtpd on lo0 -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=  ClamAV and ClamSMTP =&lt;br /&gt;
# Install clamav and clamsmtp from packages.&lt;br /&gt;
# Edit /etc/freshclam.conf -- comment out the “Example” line and uncomment the &amp;quot;DatabaseMirror&amp;quot; line and add the relevant country code in place of the &amp;quot;XY.&amp;quot;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/freshclam.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;DatabaseMirror db.us.clamav.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Run ‘freshclam’ to update the database. Add a freshclam command to root’s crontab to have periodic updates:&lt;br /&gt;
#:&amp;lt;code&amp;gt;20 * * * * /usr/local/bin/freshclam &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Once freshclam has updated the database, edit /etc/clamd.conf.  Comment out the “Example” line, uncomment “TCPSocket” and “TCPAddr” lines and change them so clamd listens on port 3310 at 127.0.0.1.&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;TCPSocket 3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;TCPAddr 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: Add “clamd” to pkg_scripts in /etc/rc.conf.local and then start clamd. Check netstat -na -f inet to see if clamd is running on 127.0.0.1:3310. Check out both /etc/freshclam.conf and /etc/clamd.conf to look at logging options or actions (in VirusEvent) to take when a virus is found.  Can set it up so it drops an email into root&amp;#039;s mailbox when a virus is found.&lt;br /&gt;
# Now, set up clamsmtp, which is a proxy for clamd.  Two config files will be used, one for incoming mail and one for outgoing mail.  OpenSMTPD will accept mail, send it to clamsmtp on one port for incoming mail (10025) and a different port (10027) for outgoing mail.  Clamsmtp will run the mail through clamd, and then return it to OpenSMTPD for incoming mail (10026) or outgoing mail (10028).  Depending on which port the mail is returned to, OpenSMTPD will tag it CLAM_IN or CLAM_OUT.&lt;br /&gt;
#: So copy /etc/clamsmtpd.conf and create /etc/clamsmtpd-in.conf and /etc/clamsmtpd-out.conf. Modify the files like so:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;OutAddress: 10026&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Listen: 0.0.0.0:10025&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;OutAddress: 10028&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Listen: 0.0.0.0:10027&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Start them both:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:(add something similar to /etc/rc.local so they start at boot)&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it looks like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10026 tag CLAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from clamsmtpd either deliver or relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_OUT for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# start here - untagged mail is sent to clamsmtpd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: So here is what&amp;#039;s happening:&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay out&lt;br /&gt;
# Send some emails both ways.  This should be in the header:&lt;br /&gt;
#:&amp;lt;code&amp;gt;X-Virus-Scanned: ClamAV using ClamSMTP&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= SpamAssassin and SpamPD =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=469</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=469"/>
		<updated>2016-09-15T02:28:53Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* ClamAV and ClamSMTP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  OpenSMTPD и spamd =&lt;br /&gt;
# Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
# Set up virtual users and virtual domains:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create SSL certificates as described in man 5 smtpd.conf:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl req -new -x509 -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/mail.example.com.crt -days 365&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/mail.example.com.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/private/mail.example.com.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create ~/Maildir for user (&amp;quot;joe&amp;quot; in this example).&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it listens on egress with tls (for incoming mail) and egress port 587 (submission) with tls and authentication (for outgoing mail), accepts mail for virtual users and virtual domains, and delivers this mail to Maildir. Note that the smtpd.conf man page clearly says: &amp;quot;For each message processed by the daemon, the filter rules are evaluated in sequential order, from first to last. The first matching rule decides what action is taken.&amp;quot; Therefore, the order of the rules in smtpd.conf is very important and will become more important as additional bits are added (e.g. for clamsmtp, spampd, and dkimproxy).&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Edit pf.conf to allow connections on smtp port 25 and port 587, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Reload pf and start /etc/rc.d/smtpd.&lt;br /&gt;
# Test sending mail to/from the user&amp;#039;s account.  Since there is no imap client yet, might want to install mutt or something similar and point to the user&amp;#039;s ~/Maildir to check incoming mail.  The user should be able to connect to OpenSMTPD on port 587 from an outside client to send mail through OpenSMTPD to another party.  Sending outbound mail from the command line should also work.  Perhaps telnet into the server or run a couple of SMTP checks against the server like this one to verify things are working correctly.  The session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP OpenSMTPD [624 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-mail.example.com Hello MXTB-PWS3.mxtoolbox.com [64.20.227.133], pleased to meet you&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-8BITMIME&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-ENHANCEDSTATUSCODES&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-SIZE 36700160&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-DSN&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-STARTTLS&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 HELP [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 2.0.0: Ok [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;550 Invalid recipient [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 3260ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# If that works, set up spamd.  This is a very simple and standard setup and there are lots of resources out there on how to do this, but here is the shorthand:  Add spamd_flags=”-v” to /etc/rc.conf.local. Edit /etc/mail/spamd.conf to add override/whitelist if desired (file /etc/mail/nospamd in sample pf rules). Add spamd pf rules from example /etc/pf.conf and comment out prior rule that passed smtp on egress (because now we want incoming mail to be redirected to spamd running on localhost port 8025):&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# rules for spamd(8)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;spamd-white&amp;gt; persist&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;nospamd&amp;gt; persist file &amp;quot;/etc/mail/nospamd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from any to any port smtp rdr-to 127.0.0.1 port spamd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from &amp;lt;nospamd&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in log on egress proto tcp from &amp;lt;spamd-white&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; pass out log on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Reload pf and start /etc/rc.d/spamd.  Check netstat to see if spamd is listening on port 8025:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# netstat -na -f inet&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Send test emails again and check logs and &amp;#039;spamdb&amp;#039; to see if email is getting greylisted.  Once spamd is working, those third-party SMTP checks won&amp;#039;t work because spamd is intercepting incoming mail. Same with telnet, if you can stand waiting for the stuttering. ;-) Anyway, now the session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP spamd IP-based SPAM blocker; Sat Jan 31 11:33:21 2015 [11716 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 Hello, spam sender. Pleased to be wasting your time. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 You are about to try to deliver spam. Your time will be spent, for nothing. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 This is hurting you more than it is hurting me. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 14602ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Haha.  Love spamd.&lt;br /&gt;
# So here is what&amp;#039;s happening:&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:opensmtpd on lo0 -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=  ClamAV and ClamSMTP =&lt;br /&gt;
# Install clamav and clamsmtp from packages.&lt;br /&gt;
# Edit /etc/freshclam.conf -- comment out the “Example” line and uncomment the &amp;quot;DatabaseMirror&amp;quot; line and add the relevant country code in place of the &amp;quot;XY.&amp;quot;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/freshclam.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;DatabaseMirror db.us.clamav.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Run ‘freshclam’ to update the database. Add a freshclam command to root’s crontab to have periodic updates:&lt;br /&gt;
#:&amp;lt;code&amp;gt;20 * * * * /usr/local/bin/freshclam &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Once freshclam has updated the database, edit /etc/clamd.conf.  Comment out the “Example” line, uncomment “TCPSocket” and “TCPAddr” lines and change them so clamd listens on port 3310 at 127.0.0.1.&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#Example&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;TCPSocket 3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;TCPAddr 127.0.0.1&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: Add “clamd” to pkg_scripts in /etc/rc.conf.local and then start clamd. Check netstat -na -f inet to see if clamd is running on 127.0.0.1:3310. Check out both /etc/freshclam.conf and /etc/clamd.conf to look at logging options or actions (in VirusEvent) to take when a virus is found.  Can set it up so it drops an email into root&amp;#039;s mailbox when a virus is found.&lt;br /&gt;
# Now, set up clamsmtp, which is a proxy for clamd.  Two config files will be used, one for incoming mail and one for outgoing mail.  OpenSMTPD will accept mail, send it to clamsmtp on one port for incoming mail (10025) and a different port (10027) for outgoing mail.  Clamsmtp will run the mail through clamd, and then return it to OpenSMTPD for incoming mail (10026) or outgoing mail (10028).  Depending on which port the mail is returned to, OpenSMTPD will tag it CLAM_IN or CLAM_OUT.&lt;br /&gt;
#: So copy /etc/clamsmtpd.conf and create /etc/clamsmtpd-in.conf and /etc/clamsmtpd-out.conf. Modify the files like so:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;OutAddress: 10026&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Listen: 0.0.0.0:10025&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;OutAddress: 10028&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;Listen: 0.0.0.0:10027&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;ClamAddress: 127.0.0.1:3310&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Start them both:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-in.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-out.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:(add something similar to /etc/rc.local so they start at boot)&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it looks like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10026 tag CLAM_IN # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# tagged mail returned from clamsmtpd either deliver or relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept tagged CLAM_OUT for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# start here - untagged mail is sent to clamsmtpd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: So here is what&amp;#039;s happening:&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay out&lt;br /&gt;
# Send some emails both ways.  This should be in the header:&lt;br /&gt;
#:&amp;lt;code&amp;gt;X-Virus-Scanned: ClamAV using ClamSMTP&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=468</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=468"/>
		<updated>2016-09-15T02:17:05Z</updated>

		<summary type="html">&lt;p&gt;Ssh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  OpenSMTPD и spamd =&lt;br /&gt;
# Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
# Set up virtual users and virtual domains:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create SSL certificates as described in man 5 smtpd.conf:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl req -new -x509 -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/mail.example.com.crt -days 365&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/mail.example.com.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/private/mail.example.com.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create ~/Maildir for user (&amp;quot;joe&amp;quot; in this example).&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it listens on egress with tls (for incoming mail) and egress port 587 (submission) with tls and authentication (for outgoing mail), accepts mail for virtual users and virtual domains, and delivers this mail to Maildir. Note that the smtpd.conf man page clearly says: &amp;quot;For each message processed by the daemon, the filter rules are evaluated in sequential order, from first to last. The first matching rule decides what action is taken.&amp;quot; Therefore, the order of the rules in smtpd.conf is very important and will become more important as additional bits are added (e.g. for clamsmtp, spampd, and dkimproxy).&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Edit pf.conf to allow connections on smtp port 25 and port 587, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Reload pf and start /etc/rc.d/smtpd.&lt;br /&gt;
# Test sending mail to/from the user&amp;#039;s account.  Since there is no imap client yet, might want to install mutt or something similar and point to the user&amp;#039;s ~/Maildir to check incoming mail.  The user should be able to connect to OpenSMTPD on port 587 from an outside client to send mail through OpenSMTPD to another party.  Sending outbound mail from the command line should also work.  Perhaps telnet into the server or run a couple of SMTP checks against the server like this one to verify things are working correctly.  The session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP OpenSMTPD [624 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-mail.example.com Hello MXTB-PWS3.mxtoolbox.com [64.20.227.133], pleased to meet you&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-8BITMIME&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-ENHANCEDSTATUSCODES&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-SIZE 36700160&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-DSN&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-STARTTLS&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 HELP [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 2.0.0: Ok [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;550 Invalid recipient [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 3260ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# If that works, set up spamd.  This is a very simple and standard setup and there are lots of resources out there on how to do this, but here is the shorthand:  Add spamd_flags=”-v” to /etc/rc.conf.local. Edit /etc/mail/spamd.conf to add override/whitelist if desired (file /etc/mail/nospamd in sample pf rules). Add spamd pf rules from example /etc/pf.conf and comment out prior rule that passed smtp on egress (because now we want incoming mail to be redirected to spamd running on localhost port 8025):&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# rules for spamd(8)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;spamd-white&amp;gt; persist&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;nospamd&amp;gt; persist file &amp;quot;/etc/mail/nospamd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from any to any port smtp rdr-to 127.0.0.1 port spamd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from &amp;lt;nospamd&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in log on egress proto tcp from &amp;lt;spamd-white&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; pass out log on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Reload pf and start /etc/rc.d/spamd.  Check netstat to see if spamd is listening on port 8025:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# netstat -na -f inet&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Send test emails again and check logs and &amp;#039;spamdb&amp;#039; to see if email is getting greylisted.  Once spamd is working, those third-party SMTP checks won&amp;#039;t work because spamd is intercepting incoming mail. Same with telnet, if you can stand waiting for the stuttering. ;-) Anyway, now the session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP spamd IP-based SPAM blocker; Sat Jan 31 11:33:21 2015 [11716 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 Hello, spam sender. Pleased to be wasting your time. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 You are about to try to deliver spam. Your time will be spent, for nothing. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 This is hurting you more than it is hurting me. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 14602ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Haha.  Love spamd.&lt;br /&gt;
# So here is what&amp;#039;s happening:&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:opensmtpd on lo0 -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=  ClamAV and ClamSMTP =&lt;br /&gt;
# Install clamav and clamsmtp from packages.&lt;br /&gt;
# Edit /etc/freshclam.conf -- comment out the “Example” line and uncomment the &amp;quot;DatabaseMirror&amp;quot; line and add the relevant country code in place of the &amp;quot;XY.&amp;quot;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# cat /etc/freshclam.conf&lt;br /&gt;
#Example&lt;br /&gt;
...&lt;br /&gt;
DatabaseMirror db.us.clamav.net&lt;br /&gt;
...&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Run ‘freshclam’ to update the database.  Add a freshclam command to root’s crontab to have periodic updates:&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
20 * * * * /usr/local/bin/freshclam &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Once freshclam has updated the database, edit /etc/clamd.conf.  Comment out the “Example” line, uncomment “TCPSocket” and “TCPAddr” lines and change them so clamd listens on port 3310 at 127.0.0.1.&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# cat /etc/clamd.conf&lt;br /&gt;
#Example&lt;br /&gt;
...&lt;br /&gt;
TCPSocket 3310&lt;br /&gt;
...&lt;br /&gt;
TCPAddr 127.0.0.1&lt;br /&gt;
...&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Add “clamd” to pkg_scripts in /etc/rc.conf.local and then start clamd.  Check netstat -na -f inet to see if clamd is running on 127.0.0.1:3310.  Check out both /etc/freshclam.conf and /etc/clamd.conf to look at logging options or actions (in VirusEvent) to take when a virus is found.  Can set it up so it drops an email into root&amp;#039;s mailbox when a virus is found.&lt;br /&gt;
# Now, set up clamsmtp, which is a proxy for clamd.  Two config files will be used, one for incoming mail and one for outgoing mail.  OpenSMTPD will accept mail, send it to clamsmtp on one port for incoming mail (10025) and a different port (10027) for outgoing mail.  Clamsmtp will run the mail through clamd, and then return it to OpenSMTPD for incoming mail (10026) or outgoing mail (10028).  Depending on which port the mail is returned to, OpenSMTPD will tag it CLAM_IN or CLAM_OUT.&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: So copy /etc/clamsmtpd.conf and create /etc/clamsmtpd-in.conf and /etc/clamsmtpd-out.conf.  Modify the files like so:&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# cat /etc/clamsmtpd-in.conf&lt;br /&gt;
OutAddress: 10026&lt;br /&gt;
...&lt;br /&gt;
Listen: 0.0.0.0:10025&lt;br /&gt;
...&lt;br /&gt;
ClamAddress: 127.0.0.1:3310&lt;br /&gt;
...&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# cat /etc/clamsmtpd-out.conf&lt;br /&gt;
OutAddress: 10028&lt;br /&gt;
...&lt;br /&gt;
Listen: 0.0.0.0:10027&lt;br /&gt;
...&lt;br /&gt;
ClamAddress: 127.0.0.1:3310&lt;br /&gt;
...&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Start them both:&lt;br /&gt;
# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-in.conf&lt;br /&gt;
# /usr/local/sbin/clamsmtpd -f /etc/clamsmtpd-out.conf&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:(add something similar to /etc/rc.local so they start at boot)&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it looks like this:&lt;br /&gt;
# cat /etc/mail/smtpd.conf&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&lt;br /&gt;
pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
listen on lo0&lt;br /&gt;
listen on lo0 port 10026 tag CLAM_IN # incoming mail&lt;br /&gt;
listen on lo0 port 10028 tag CLAM_OUT # outgoing mail&lt;br /&gt;
listen on egress tls pki mail.example.com auth-optional&lt;br /&gt;
listen on egress port submission tls-require pki mail.example.com auth&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
table aliases db:/etc/mail/aliases.db&lt;br /&gt;
table vusers file:/etc/mail/vusers&lt;br /&gt;
table vdomains file:/etc/mail/vdomains&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# tagged mail returned from clamsmtpd either deliver or relay&lt;br /&gt;
accept tagged CLAM_IN for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&lt;br /&gt;
accept tagged CLAM_OUT for any relay&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# start here - untagged mail is sent to clamsmtpd&lt;br /&gt;
accept from any for domain &amp;lt;vdomains&amp;gt; relay via smtp://127.0.0.1:10025 # incoming mail&lt;br /&gt;
accept from local for any relay via smtp://127.0.0.1:10027 # outgoing mail&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: So here is what&amp;#039;s happening:&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: &amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#: pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10025 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10026 and tag it CLAM_IN -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#: Outoing mail:&lt;br /&gt;
#: opensmtpd on lo0 -&amp;gt; relay untagged mail to clamsmtpd on port 10027 -&amp;gt; relay to clamd on port 3310 -&amp;gt; return to clamsmtpd -&amp;gt; return to opensmtpd on lo0 port 10028 and tag it CLAM_OUT -&amp;gt; relay out&lt;br /&gt;
# Send some emails both ways.  This should be in the header:&lt;br /&gt;
#:&amp;lt;code&amp;gt;X-Virus-Scanned: ClamAV using ClamSMTP&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=467</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=467"/>
		<updated>2016-09-15T02:01:38Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* OpenSMTPD и spamd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  OpenSMTPD и spamd =&lt;br /&gt;
# Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
# Set up virtual users and virtual domains:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create SSL certificates as described in man 5 smtpd.conf:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl req -new -x509 -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/mail.example.com.crt -days 365&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/mail.example.com.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/private/mail.example.com.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create ~/Maildir for user (&amp;quot;joe&amp;quot; in this example).&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it listens on egress with tls (for incoming mail) and egress port 587 (submission) with tls and authentication (for outgoing mail), accepts mail for virtual users and virtual domains, and delivers this mail to Maildir. Note that the smtpd.conf man page clearly says: &amp;quot;For each message processed by the daemon, the filter rules are evaluated in sequential order, from first to last. The first matching rule decides what action is taken.&amp;quot; Therefore, the order of the rules in smtpd.conf is very important and will become more important as additional bits are added (e.g. for clamsmtp, spampd, and dkimproxy).&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Edit pf.conf to allow connections on smtp port 25 and port 587, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Reload pf and start /etc/rc.d/smtpd.&lt;br /&gt;
# Test sending mail to/from the user&amp;#039;s account.  Since there is no imap client yet, might want to install mutt or something similar and point to the user&amp;#039;s ~/Maildir to check incoming mail.  The user should be able to connect to OpenSMTPD on port 587 from an outside client to send mail through OpenSMTPD to another party.  Sending outbound mail from the command line should also work.  Perhaps telnet into the server or run a couple of SMTP checks against the server like this one to verify things are working correctly.  The session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP OpenSMTPD [624 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-mail.example.com Hello MXTB-PWS3.mxtoolbox.com [64.20.227.133], pleased to meet you&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-8BITMIME&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-ENHANCEDSTATUSCODES&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-SIZE 36700160&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-DSN&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-STARTTLS&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 HELP [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 2.0.0: Ok [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;550 Invalid recipient [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 3260ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# If that works, set up spamd.  This is a very simple and standard setup and there are lots of resources out there on how to do this, but here is the shorthand:  Add spamd_flags=”-v” to /etc/rc.conf.local. Edit /etc/mail/spamd.conf to add override/whitelist if desired (file /etc/mail/nospamd in sample pf rules). Add spamd pf rules from example /etc/pf.conf and comment out prior rule that passed smtp on egress (because now we want incoming mail to be redirected to spamd running on localhost port 8025):&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# rules for spamd(8)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;spamd-white&amp;gt; persist&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;nospamd&amp;gt; persist file &amp;quot;/etc/mail/nospamd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from any to any port smtp rdr-to 127.0.0.1 port spamd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from &amp;lt;nospamd&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in log on egress proto tcp from &amp;lt;spamd-white&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; pass out log on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Reload pf and start /etc/rc.d/spamd.  Check netstat to see if spamd is listening on port 8025:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# netstat -na -f inet&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Send test emails again and check logs and &amp;#039;spamdb&amp;#039; to see if email is getting greylisted.  Once spamd is working, those third-party SMTP checks won&amp;#039;t work because spamd is intercepting incoming mail. Same with telnet, if you can stand waiting for the stuttering. ;-) Anyway, now the session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP spamd IP-based SPAM blocker; Sat Jan 31 11:33:21 2015 [11716 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 Hello, spam sender. Pleased to be wasting your time. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 You are about to try to deliver spam. Your time will be spent, for nothing. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 This is hurting you more than it is hurting me. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 14602ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Haha.  Love spamd.&lt;br /&gt;
# So here is what&amp;#039;s happening:&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:opensmtpd on lo0 -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=466</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=466"/>
		<updated>2016-09-15T01:58:47Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* OpenBSD Mail Server - Part 1, Initial Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  OpenSMTPD и spamd =&lt;br /&gt;
# Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
# Set up virtual users and virtual domains:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create SSL certificates as described in man 5 smtpd.conf:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl req -new -x509 -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/mail.example.com.crt -days 365&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/mail.example.com.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/private/mail.example.com.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create ~/Maildir for user (&amp;quot;joe&amp;quot; in this example).&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it listens on egress with tls (for incoming mail) and egress port 587 (submission) with tls and authentication (for outgoing mail), accepts mail for virtual users and virtual domains, and delivers this mail to Maildir. Note that the smtpd.conf man page clearly says: &amp;quot;For each message processed by the daemon, the filter rules are evaluated in sequential order, from first to last. The first matching rule decides what action is taken.&amp;quot; Therefore, the order of the rules in smtpd.conf is very important and will become more important as additional bits are added (e.g. for clamsmtp, spampd, and dkimproxy).&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
# Edit pf.conf to allow connections on smtp port 25 and port 587, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf and start /etc/rc.d/smtpd.&lt;br /&gt;
# Test sending mail to/from the user&amp;#039;s account.  Since there is no imap client yet, might want to install mutt or something similar and point to the user&amp;#039;s ~/Maildir to check incoming mail.  The user should be able to connect to OpenSMTPD on port 587 from an outside client to send mail through OpenSMTPD to another party.  Sending outbound mail from the command line should also work.  Perhaps telnet into the server or run a couple of SMTP checks against the server like this one to verify things are working correctly.  The session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP OpenSMTPD [624 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-mail.example.com Hello MXTB-PWS3.mxtoolbox.com [64.20.227.133], pleased to meet you&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-8BITMIME&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-ENHANCEDSTATUSCODES&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-SIZE 36700160&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-DSN&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-STARTTLS&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 HELP [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 2.0.0: Ok [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;550 Invalid recipient [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 3260ms&amp;lt;/code&amp;gt;&lt;br /&gt;
# If that works, set up spamd.  This is a very simple and standard setup and there are lots of resources out there on how to do this, but here is the shorthand:  Add spamd_flags=”-v” to /etc/rc.conf.local. Edit /etc/mail/spamd.conf to add override/whitelist if desired (file /etc/mail/nospamd in sample pf rules). Add spamd pf rules from example /etc/pf.conf and comment out prior rule that passed smtp on egress (because now we want incoming mail to be redirected to spamd running on localhost port 8025):&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# rules for spamd(8)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;spamd-white&amp;gt; persist&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;nospamd&amp;gt; persist file &amp;quot;/etc/mail/nospamd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from any to any port smtp rdr-to 127.0.0.1 port spamd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from &amp;lt;nospamd&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in log on egress proto tcp from &amp;lt;spamd-white&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; pass out log on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Reload pf and start /etc/rc.d/spamd.  Check netstat to see if spamd is listening on port 8025:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# netstat -na -f inet&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Send test emails again and check logs and &amp;#039;spamdb&amp;#039; to see if email is getting greylisted.  Once spamd is working, those third-party SMTP checks won&amp;#039;t work because spamd is intercepting incoming mail. Same with telnet, if you can stand waiting for the stuttering. ;-) Anyway, now the session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP spamd IP-based SPAM blocker; Sat Jan 31 11:33:21 2015 [11716 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 Hello, spam sender. Pleased to be wasting your time. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 You are about to try to deliver spam. Your time will be spent, for nothing. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 This is hurting you more than it is hurting me. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 14602ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Haha.  Love spamd.&lt;br /&gt;
# So here is what&amp;#039;s happening:&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:opensmtpd on lo0 -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=465</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=465"/>
		<updated>2016-09-15T01:57:47Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* OpenSMTPD и spamd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= OpenBSD Mail Server - Part 1, Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  OpenSMTPD и spamd =&lt;br /&gt;
# Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
# Set up virtual users and virtual domains:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create SSL certificates as described in man 5 smtpd.conf:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl req -new -x509 -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/mail.example.com.crt -days 365&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/mail.example.com.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/private/mail.example.com.key&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Create ~/Maildir for user (&amp;quot;joe&amp;quot; in this example).&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it listens on egress with tls (for incoming mail) and egress port 587 (submission) with tls and authentication (for outgoing mail), accepts mail for virtual users and virtual domains, and delivers this mail to Maildir. Note that the smtpd.conf man page clearly says: &amp;quot;For each message processed by the daemon, the filter rules are evaluated in sequential order, from first to last. The first matching rule decides what action is taken.&amp;quot; Therefore, the order of the rules in smtpd.conf is very important and will become more important as additional bits are added (e.g. for clamsmtp, spampd, and dkimproxy).&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
# Edit pf.conf to allow connections on smtp port 25 and port 587, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf and start /etc/rc.d/smtpd.&lt;br /&gt;
# Test sending mail to/from the user&amp;#039;s account.  Since there is no imap client yet, might want to install mutt or something similar and point to the user&amp;#039;s ~/Maildir to check incoming mail.  The user should be able to connect to OpenSMTPD on port 587 from an outside client to send mail through OpenSMTPD to another party.  Sending outbound mail from the command line should also work.  Perhaps telnet into the server or run a couple of SMTP checks against the server like this one to verify things are working correctly.  The session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP OpenSMTPD [624 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-mail.example.com Hello MXTB-PWS3.mxtoolbox.com [64.20.227.133], pleased to meet you&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-8BITMIME&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-ENHANCEDSTATUSCODES&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-SIZE 36700160&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-DSN&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-STARTTLS&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 HELP [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 2.0.0: Ok [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;550 Invalid recipient [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 3260ms&amp;lt;/code&amp;gt;&lt;br /&gt;
# If that works, set up spamd.  This is a very simple and standard setup and there are lots of resources out there on how to do this, but here is the shorthand:  Add spamd_flags=”-v” to /etc/rc.conf.local. Edit /etc/mail/spamd.conf to add override/whitelist if desired (file /etc/mail/nospamd in sample pf rules). Add spamd pf rules from example /etc/pf.conf and comment out prior rule that passed smtp on egress (because now we want incoming mail to be redirected to spamd running on localhost port 8025):&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# rules for spamd(8)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;spamd-white&amp;gt; persist&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;nospamd&amp;gt; persist file &amp;quot;/etc/mail/nospamd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from any to any port smtp rdr-to 127.0.0.1 port spamd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from &amp;lt;nospamd&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in log on egress proto tcp from &amp;lt;spamd-white&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; pass out log on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Reload pf and start /etc/rc.d/spamd.  Check netstat to see if spamd is listening on port 8025:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# netstat -na -f inet&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Send test emails again and check logs and &amp;#039;spamdb&amp;#039; to see if email is getting greylisted.  Once spamd is working, those third-party SMTP checks won&amp;#039;t work because spamd is intercepting incoming mail. Same with telnet, if you can stand waiting for the stuttering. ;-) Anyway, now the session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP spamd IP-based SPAM blocker; Sat Jan 31 11:33:21 2015 [11716 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 Hello, spam sender. Pleased to be wasting your time. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 You are about to try to deliver spam. Your time will be spent, for nothing. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 This is hurting you more than it is hurting me. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 14602ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Haha.  Love spamd.&lt;br /&gt;
# So here is what&amp;#039;s happening:&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:opensmtpd on lo0 -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=464</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=464"/>
		<updated>2016-09-15T01:57:08Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* OpenSMTPD и spamd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= OpenBSD Mail Server - Part 1, Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  OpenSMTPD и spamd =&lt;br /&gt;
# Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
# Set up virtual users and virtual domains:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
# Create SSL certificates as described in man 5 smtpd.conf:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl req -new -x509 -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/mail.example.com.crt -days 365&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/mail.example.com.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/private/mail.example.com.key&amp;lt;/code&amp;gt;&lt;br /&gt;
# Create ~/Maildir for user (&amp;quot;joe&amp;quot; in this example).&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it listens on egress with tls (for incoming mail) and egress port 587 (submission) with tls and authentication (for outgoing mail), accepts mail for virtual users and virtual domains, and delivers this mail to Maildir. Note that the smtpd.conf man page clearly says: &amp;quot;For each message processed by the daemon, the filter rules are evaluated in sequential order, from first to last. The first matching rule decides what action is taken.&amp;quot; Therefore, the order of the rules in smtpd.conf is very important and will become more important as additional bits are added (e.g. for clamsmtp, spampd, and dkimproxy).&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
# Edit pf.conf to allow connections on smtp port 25 and port 587, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf and start /etc/rc.d/smtpd.&lt;br /&gt;
# Test sending mail to/from the user&amp;#039;s account.  Since there is no imap client yet, might want to install mutt or something similar and point to the user&amp;#039;s ~/Maildir to check incoming mail.  The user should be able to connect to OpenSMTPD on port 587 from an outside client to send mail through OpenSMTPD to another party.  Sending outbound mail from the command line should also work.  Perhaps telnet into the server or run a couple of SMTP checks against the server like this one to verify things are working correctly.  The session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP OpenSMTPD [624 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-mail.example.com Hello MXTB-PWS3.mxtoolbox.com [64.20.227.133], pleased to meet you&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-8BITMIME&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-ENHANCEDSTATUSCODES&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-SIZE 36700160&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-DSN&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250-STARTTLS&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 HELP [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 2.0.0: Ok [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;550 Invalid recipient [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 3260ms&amp;lt;/code&amp;gt;&lt;br /&gt;
# If that works, set up spamd.  This is a very simple and standard setup and there are lots of resources out there on how to do this, but here is the shorthand:  Add spamd_flags=”-v” to /etc/rc.conf.local. Edit /etc/mail/spamd.conf to add override/whitelist if desired (file /etc/mail/nospamd in sample pf rules). Add spamd pf rules from example /etc/pf.conf and comment out prior rule that passed smtp on egress (because now we want incoming mail to be redirected to spamd running on localhost port 8025):&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;#pass in on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp to any port submission&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# rules for spamd(8)&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;spamd-white&amp;gt; persist&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table &amp;lt;nospamd&amp;gt; persist file &amp;quot;/etc/mail/nospamd&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from any to any port smtp rdr-to 127.0.0.1 port spamd&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in on egress proto tcp from &amp;lt;nospamd&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pass in log on egress proto tcp from &amp;lt;spamd-white&amp;gt; to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt; pass out log on egress proto tcp to any port smtp&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Reload pf and start /etc/rc.d/spamd.  Check netstat to see if spamd is listening on port 8025:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# netstat -na -f inet&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
# Send test emails again and check logs and &amp;#039;spamdb&amp;#039; to see if email is getting greylisted.  Once spamd is working, those third-party SMTP checks won&amp;#039;t work because spamd is intercepting incoming mail. Same with telnet, if you can stand waiting for the stuttering. ;-) Anyway, now the session transcript should look something like this:&lt;br /&gt;
#:&amp;lt;code&amp;gt;Connecting to 123.456.789.000&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;220 mail.example.com ESMTP spamd IP-based SPAM blocker; Sat Jan 31 11:33:21 2015 [11716 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;EHLO MXTB-PWS3.mxtoolbox.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 Hello, spam sender. Pleased to be wasting your time. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;MAIL FROM: &amp;lt;supertool@mxtoolbox.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 You are about to try to deliver spam. Your time will be spent, for nothing. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;RCPT TO: &amp;lt;test@example.com&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;250 This is hurting you more than it is hurting me. [640 ms]&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt; &lt;br /&gt;
#:&amp;lt;code&amp;gt;MXTB-PWS3v2 14602ms&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:Haha.  Love spamd.&lt;br /&gt;
# So here is what&amp;#039;s happening:&lt;br /&gt;
#:&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Incoming mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:pf -&amp;gt; relay to spamd -&amp;gt; send to opensmtpd on lo0 -&amp;gt; deliver to maildir&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;#039;&amp;#039;&amp;#039;Outoing mail&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
#:opensmtpd on lo0 -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=463</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=463"/>
		<updated>2016-09-15T01:39:23Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* OpenBSD Mail Server - Part 2, OpenSMTPD and spamd */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= OpenBSD Mail Server - Part 1, Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  OpenSMTPD и spamd =&lt;br /&gt;
# Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
# Set up virtual users and virtual domains:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.com joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;joe@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;@example.net joe&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.com&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;example.net&amp;lt;/code&amp;gt;&lt;br /&gt;
# Create SSL certificates as described in man 5 smtpd.conf:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl genrsa -out /etc/ssl/private/mail.example.com.key 4096&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# openssl req -new -x509 -key /etc/ssl/private/mail.example.com.key -out /etc/ssl/mail.example.com.crt -days 365&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/mail.example.com.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;# chmod 600 /etc/ssl/private/mail.example.com.key&amp;lt;/code&amp;gt;&lt;br /&gt;
# Create ~/Maildir for user (&amp;quot;joe&amp;quot; in this example).&lt;br /&gt;
# Edit /etc/mail/smtpd.conf so it listens on egress with tls (for incoming mail) and egress port 587 (submission) with tls and authentication (for outgoing mail), accepts mail for virtual users and virtual domains, and delivers this mail to Maildir. Note that the smtpd.conf man page clearly says: &amp;quot;For each message processed by the daemon, the filter rules are evaluated in sequential order, from first to last. The first matching rule decides what action is taken.&amp;quot; Therefore, the order of the rules in smtpd.conf is very important and will become more important as additional bits are added (e.g. for clamsmtp, spampd, and dkimproxy).&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/mail/smtpd.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com certificate &amp;quot;/etc/ssl/mail.example.com.crt&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;pki mail.example.com key &amp;quot;/etc/ssl/private/mail.example.com.key&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on lo0&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress tls pki mail.example.com auth-optional&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;listen on egress port submission tls-require pki mail.example.com auth&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table aliases db:/etc/mail/aliases.db&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vusers file:/etc/mail/vusers&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;table vdomains file:/etc/mail/vdomains&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept for local alias &amp;lt;aliases&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;br /&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from any for domain &amp;lt;vdomains&amp;gt; virtual &amp;lt;vusers&amp;gt; deliver to maildir&amp;lt;/code&amp;gt;&lt;br /&gt;
#:&amp;lt;code&amp;gt;accept from local for any relay&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=462</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=462"/>
		<updated>2016-09-15T01:27:06Z</updated>

		<summary type="html">&lt;p&gt;Ssh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= OpenBSD Mail Server - Part 1, Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  OpenBSD Mail Server - Part 2, OpenSMTPD and spamd =&lt;br /&gt;
1. Read the man page for smtpd and smtpd.conf and review the configuration files.&lt;br /&gt;
2. Set up virtual users and virtual domains:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Примечания =&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=461</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=461"/>
		<updated>2016-09-15T01:24:06Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* OpenBSD Mail Server - Part 1, Initial Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= OpenBSD Mail Server - Part 1, Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=460</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=460"/>
		<updated>2016-09-14T08:14:41Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* OpenBSD Mail Server - Part 1, Initial Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= OpenBSD Mail Server - Part 1, Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;&amp;amp;hellip;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=459</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=459"/>
		<updated>2016-09-14T08:12:08Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* OpenBSD Mail Server - Part 1, Initial Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= OpenBSD Mail Server - Part 1, Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# cat /etc/pf.conf&amp;lt;br /&amp;gt;...&amp;lt;br /&amp;gt;pass in on egress proto tcp to any port ssh&amp;lt;br /&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
#:&amp;lt;code&amp;gt;# pfctl -f /etc/pf.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=458</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=458"/>
		<updated>2016-09-14T07:16:03Z</updated>

		<summary type="html">&lt;p&gt;Ssh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= OpenBSD Mail Server - Part 1, Initial Setup =&lt;br /&gt;
&lt;br /&gt;
# Install OpenBSD 5.6. If using the auto-partitioner, make sure enough space is allocated to /usr and /usr/src to allow for extracting the sources (below). Edit /etc/rc.conf.local and add “-s” to ntpd_flags so time is set at boot if desired.&lt;br /&gt;
# Add a rule to default /etc/pf.conf to allow incoming ssh connections, such as:&lt;br /&gt;
    # cat /etc/pf.conf&lt;br /&gt;
    ...&lt;br /&gt;
    pass in on egress proto tcp to any port ssh&lt;br /&gt;
    ...&lt;br /&gt;
# Reload pf with:&lt;br /&gt;
    # pfctl -f /etc/pf.conf&lt;br /&gt;
# Update the system by [http://www.openbsd.org/faq/faq5.html#BldGetSrc fetching the sources] via ftp and [http://www.openbsd.org/errata60.html patching].&lt;br /&gt;
# Set up $PKG_PATH to install packages.&lt;br /&gt;
# Configure MX records etc. at domain registrar, perhaps with an unused domain for testing purposes.&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=457</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=457"/>
		<updated>2016-09-08T14:05:10Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Why not ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Почему не &amp;lt;вставьте имя любимой операционной системы или программы&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Никогда не слышал об этом. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=456</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=456"/>
		<updated>2016-09-08T13:48:24Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Why SpamAssassin in addition to spamd? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Зачем SpamAssassin в дополнение к spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd отлично работает, не создавая лишней нагрузки. Он отлавливает большую часть моего спама (более 95%), так что я почти решил отказаться от возни со SpamAssassin. Но подумав, решил что будет интересно попробовать интегрировать их оба.&lt;br /&gt;
&lt;br /&gt;
== Why not &amp;lt;insert name of favorite operating system/software/tool&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Never heard of it. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=455</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=455"/>
		<updated>2016-09-08T13:12:31Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Почему OpenBSD? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
Это прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Why SpamAssassin in addition to spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd works wonderfully well and it has a very light footprint. It trapped the bulk of my spam (more than 95%) so I almost just let it go instead of bothering with SpamAssassin. But I thought it would be interesting to try and integrate the two.&lt;br /&gt;
&lt;br /&gt;
== Why not &amp;lt;insert name of favorite operating system/software/tool&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Never heard of it. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=454</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=454"/>
		<updated>2016-09-08T13:11:52Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Resources: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
OpenBSD - прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Why SpamAssassin in addition to spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd works wonderfully well and it has a very light footprint. It trapped the bulk of my spam (more than 95%) so I almost just let it go instead of bothering with SpamAssassin. But I thought it would be interesting to try and integrate the two.&lt;br /&gt;
&lt;br /&gt;
== Why not &amp;lt;insert name of favorite operating system/software/tool&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Never heard of it. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=453</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=453"/>
		<updated>2016-09-08T13:11:33Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Resources: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
OpenBSD - прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Why SpamAssassin in addition to spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd works wonderfully well and it has a very light footprint. It trapped the bulk of my spam (more than 95%) so I almost just let it go instead of bothering with SpamAssassin. But I thought it would be interesting to try and integrate the two.&lt;br /&gt;
&lt;br /&gt;
== Why not &amp;lt;insert name of favorite operating system/software/tool&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Never heard of it. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=452</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=452"/>
		<updated>2016-09-08T13:11:09Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Resources: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
OpenBSD - прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Why SpamAssassin in addition to spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd works wonderfully well and it has a very light footprint. It trapped the bulk of my spam (more than 95%) so I almost just let it go instead of bothering with SpamAssassin. But I thought it would be interesting to try and integrate the two.&lt;br /&gt;
&lt;br /&gt;
== Why not &amp;lt;insert name of favorite operating system/software/tool&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Never heard of it. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
* OpenBSD FAQ (required)&lt;br /&gt;
* OpenBSD man pages (required)&lt;br /&gt;
* OpenSMTPD wiki&lt;br /&gt;
* Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
* http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
* https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
* http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
* http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=451</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=451"/>
		<updated>2016-09-08T13:08:50Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Почему OpenBSD? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
OpenBSD - прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;С релиза 6.1, OpenBSD [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Why SpamAssassin in addition to spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd works wonderfully well and it has a very light footprint. It trapped the bulk of my spam (more than 95%) so I almost just let it go instead of bothering with SpamAssassin. But I thought it would be interesting to try and integrate the two.&lt;br /&gt;
&lt;br /&gt;
== Why not &amp;lt;insert name of favorite operating system/software/tool&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Never heard of it. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
&lt;br /&gt;
    OpenBSD FAQ (required)&lt;br /&gt;
    OpenBSD man pages (required)&lt;br /&gt;
    OpenSMTPD wiki&lt;br /&gt;
    Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
    http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
    https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
    http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
    http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin/&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=450</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=450"/>
		<updated>2016-09-08T13:07:57Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Why OpenBSD? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Почему OpenBSD? ==&lt;br /&gt;
OpenBSD - прекрасная операционная система, созданная и поддерживаемая многими умными людьми. Кроме того, мне нравится, что большое количество великолепного программного обеспечения включено в базовую систему. Если вы найдёте это руководство полезным или откроете как восхитительна OpenBSD, пожалуйста подумайте над тем, чтобы поддержать проект - это может быть приобретение набора компакт дисков &amp;lt;ref&amp;gt;начиная с релиза 6.1, операционная система [http://undeadly.org/cgi?action=article&amp;amp;sid=20160901090415 не будет распространяться на CD], но вы по прежнему можете [https://www.openbsdstore.com/cgi-bin/live/ecommerce.pl?site=shop_openbsdeurope_com&amp;amp;state=department приобрести] различные предметы с символикой OpenBSD. прим. переводчика&amp;lt;/ref&amp;gt; или сделав [http://www.openbsd.org/donations.html пожертвование]. Команда разработчиков OpenBSD отлично выполняет свою работу, которая приносит пользу всему сообществу и ваша поддержка не будет лишней!&lt;br /&gt;
&lt;br /&gt;
== Why SpamAssassin in addition to spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd works wonderfully well and it has a very light footprint. It trapped the bulk of my spam (more than 95%) so I almost just let it go instead of bothering with SpamAssassin. But I thought it would be interesting to try and integrate the two.&lt;br /&gt;
&lt;br /&gt;
== Why not &amp;lt;insert name of favorite operating system/software/tool&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Never heard of it. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
&lt;br /&gt;
    OpenBSD FAQ (required)&lt;br /&gt;
    OpenBSD man pages (required)&lt;br /&gt;
    OpenSMTPD wiki&lt;br /&gt;
    Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
    http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
    https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
    http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
    http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin/&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=449</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=449"/>
		<updated>2016-09-08T12:43:15Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Дополнительно */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством IMAP (SSL): Dovecot&lt;br /&gt;
&lt;br /&gt;
Доступ к почте через веб-интерфейса (SSL): httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Why OpenBSD? ==&lt;br /&gt;
&lt;br /&gt;
Because I think it&amp;#039;s a great operating system created and maintained by a lot of very smart people. Plus, I like how there are so many excellent bits of software included in the base system. If you find anything helpful in this guide, or discover how great OpenBSD is, please consider supporting the project, either by purchasing a CD set or making a financial donation. The OpenBSD team does amazing work that benefits the whole community in a wide variety of ways and they can always use the support.&lt;br /&gt;
&lt;br /&gt;
== Why SpamAssassin in addition to spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd works wonderfully well and it has a very light footprint. It trapped the bulk of my spam (more than 95%) so I almost just let it go instead of bothering with SpamAssassin. But I thought it would be interesting to try and integrate the two.&lt;br /&gt;
&lt;br /&gt;
== Why not &amp;lt;insert name of favorite operating system/software/tool&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Never heard of it. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
&lt;br /&gt;
    OpenBSD FAQ (required)&lt;br /&gt;
    OpenBSD man pages (required)&lt;br /&gt;
    OpenSMTPD wiki&lt;br /&gt;
    Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
    http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
    https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
    http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
    http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin/&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=448</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=448"/>
		<updated>2016-09-08T12:41:16Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Окончательный результат */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством SSL IMAP: Dovecot&lt;br /&gt;
SSL webmail доступ: httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Why OpenBSD? ==&lt;br /&gt;
&lt;br /&gt;
Because I think it&amp;#039;s a great operating system created and maintained by a lot of very smart people. Plus, I like how there are so many excellent bits of software included in the base system. If you find anything helpful in this guide, or discover how great OpenBSD is, please consider supporting the project, either by purchasing a CD set or making a financial donation. The OpenBSD team does amazing work that benefits the whole community in a wide variety of ways and they can always use the support.&lt;br /&gt;
&lt;br /&gt;
== Why SpamAssassin in addition to spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd works wonderfully well and it has a very light footprint. It trapped the bulk of my spam (more than 95%) so I almost just let it go instead of bothering with SpamAssassin. But I thought it would be interesting to try and integrate the two.&lt;br /&gt;
&lt;br /&gt;
== Why not &amp;lt;insert name of favorite operating system/software/tool&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Never heard of it. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
&lt;br /&gt;
    OpenBSD FAQ (required)&lt;br /&gt;
    OpenBSD man pages (required)&lt;br /&gt;
    OpenSMTPD wiki&lt;br /&gt;
    Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
    http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
    https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
    http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
    http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin/&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=447</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=447"/>
		<updated>2016-09-08T12:39:15Z</updated>

		<summary type="html">&lt;p&gt;Ssh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== Окончательный результат ==&lt;br /&gt;
=== Обработка входящих сообщений ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;pf&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;spamd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;opensmtpd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;clamsmtpd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;clamd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;clamsmtpd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;opensmtpd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;spampd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;SpamAssassin&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;spampd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;opensmtpd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;deliver to dovecot/lmtp&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Обработка исходящих сообщений ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;opensmtpd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;clamsmtpd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;clamd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;clamsmtpd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;opensmtpd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;dkimproxy&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;opensmtpd&amp;#039;&amp;#039;&amp;#039; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;relay out&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=== Дополнительно ===&lt;br /&gt;
Доступ посредством SSL IMAP: Dovecot&lt;br /&gt;
SSL webmail доступ: httpd и Roundcube&lt;br /&gt;
&lt;br /&gt;
== Why OpenBSD? ==&lt;br /&gt;
&lt;br /&gt;
Because I think it&amp;#039;s a great operating system created and maintained by a lot of very smart people. Plus, I like how there are so many excellent bits of software included in the base system. If you find anything helpful in this guide, or discover how great OpenBSD is, please consider supporting the project, either by purchasing a CD set or making a financial donation. The OpenBSD team does amazing work that benefits the whole community in a wide variety of ways and they can always use the support.&lt;br /&gt;
&lt;br /&gt;
== Why SpamAssassin in addition to spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd works wonderfully well and it has a very light footprint. It trapped the bulk of my spam (more than 95%) so I almost just let it go instead of bothering with SpamAssassin. But I thought it would be interesting to try and integrate the two.&lt;br /&gt;
&lt;br /&gt;
== Why not &amp;lt;insert name of favorite operating system/software/tool&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Never heard of it. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
&lt;br /&gt;
    OpenBSD FAQ (required)&lt;br /&gt;
    OpenBSD man pages (required)&lt;br /&gt;
    OpenSMTPD wiki&lt;br /&gt;
    Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
    http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
    https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
    http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
    http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin/&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=446</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=446"/>
		<updated>2016-09-08T12:26:03Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Вступление */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше!]&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== The final setup ==&lt;br /&gt;
&lt;br /&gt;
Incoming mail:&lt;br /&gt;
&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
Outoing mail:&lt;br /&gt;
&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
Other:&lt;br /&gt;
&lt;br /&gt;
SSL IMAP access: Dovecot&lt;br /&gt;
SSL webmail access: httpd and Roundcube&lt;br /&gt;
&lt;br /&gt;
== Why OpenBSD? ==&lt;br /&gt;
&lt;br /&gt;
Because I think it&amp;#039;s a great operating system created and maintained by a lot of very smart people. Plus, I like how there are so many excellent bits of software included in the base system. If you find anything helpful in this guide, or discover how great OpenBSD is, please consider supporting the project, either by purchasing a CD set or making a financial donation. The OpenBSD team does amazing work that benefits the whole community in a wide variety of ways and they can always use the support.&lt;br /&gt;
&lt;br /&gt;
== Why SpamAssassin in addition to spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd works wonderfully well and it has a very light footprint. It trapped the bulk of my spam (more than 95%) so I almost just let it go instead of bothering with SpamAssassin. But I thought it would be interesting to try and integrate the two.&lt;br /&gt;
&lt;br /&gt;
== Why not &amp;lt;insert name of favorite operating system/software/tool&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Never heard of it. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
&lt;br /&gt;
    OpenBSD FAQ (required)&lt;br /&gt;
    OpenBSD man pages (required)&lt;br /&gt;
    OpenSMTPD wiki&lt;br /&gt;
    Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
    http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
    https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
    http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
    http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin/&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=445</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=445"/>
		<updated>2016-09-08T12:25:38Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Цель */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше]!&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются [https://www.clamav.net ClamAV], [http://thewalter.net/stef/software/clamsmtp ClamSMTP], [http://spamassassin.apache.org SpamAssassin], [http://www.worlddesign.com/Content/rd/mta/spampd/spampd.html SpamPD], [http://dkimproxy.sourceforge.net DKIMproxy], [http://www.dovecot.org Dovecot], [http://pigeonhole.dovecot.org Dovecot-Pigeonhole] и [https://roundcube.net Roundcube].&lt;br /&gt;
&lt;br /&gt;
== The final setup ==&lt;br /&gt;
&lt;br /&gt;
Incoming mail:&lt;br /&gt;
&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
Outoing mail:&lt;br /&gt;
&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
Other:&lt;br /&gt;
&lt;br /&gt;
SSL IMAP access: Dovecot&lt;br /&gt;
SSL webmail access: httpd and Roundcube&lt;br /&gt;
&lt;br /&gt;
== Why OpenBSD? ==&lt;br /&gt;
&lt;br /&gt;
Because I think it&amp;#039;s a great operating system created and maintained by a lot of very smart people. Plus, I like how there are so many excellent bits of software included in the base system. If you find anything helpful in this guide, or discover how great OpenBSD is, please consider supporting the project, either by purchasing a CD set or making a financial donation. The OpenBSD team does amazing work that benefits the whole community in a wide variety of ways and they can always use the support.&lt;br /&gt;
&lt;br /&gt;
== Why SpamAssassin in addition to spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd works wonderfully well and it has a very light footprint. It trapped the bulk of my spam (more than 95%) so I almost just let it go instead of bothering with SpamAssassin. But I thought it would be interesting to try and integrate the two.&lt;br /&gt;
&lt;br /&gt;
== Why not &amp;lt;insert name of favorite operating system/software/tool&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Never heard of it. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
&lt;br /&gt;
    OpenBSD FAQ (required)&lt;br /&gt;
    OpenBSD man pages (required)&lt;br /&gt;
    OpenSMTPD wiki&lt;br /&gt;
    Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
    http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
    https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
    http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
    http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin/&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=444</id>
		<title>Почтовый сервер на базе OpenBSD 6.0</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%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_%D0%BD%D0%B0_%D0%B1%D0%B0%D0%B7%D0%B5_OpenBSD_6.0&amp;diff=444"/>
		<updated>2016-09-08T12:19:36Z</updated>

		<summary type="html">&lt;p&gt;Ssh: Новая страница: «= Вступление = Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим ко…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Вступление =&lt;br /&gt;
Перевод [http://technoquarter.blogspot.ru/2015/02/openbsd-mail-server.html статьи] Chess Griffin с небольшим количеством комментариев от переводчика, в основном связанных с тем, что с момента релиза [http://www.openbsd.org/56.html OpenBSD 5.6], система стала еще [http://www.openbsd.org/60.html лучше]!&lt;br /&gt;
&lt;br /&gt;
== Цель ==&lt;br /&gt;
Создать достаточно безопасный почтовый сервер на базе OpenBSD и нескольких пакетов. OpenSMTPD, spamd, pf и httpd входят в состав базовой системы. Дополнительно потребуются ClamAV, ClamSMTP, SpamAssassin, SpamPD, DKIMproxy, Dovecot, Dovecot-Pigeonhole, и Roundcube.&lt;br /&gt;
&lt;br /&gt;
== The final setup ==&lt;br /&gt;
&lt;br /&gt;
Incoming mail:&lt;br /&gt;
&lt;br /&gt;
pf -&amp;gt; spamd -&amp;gt; opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; spampd -&amp;gt; SpamAssassin -&amp;gt; spampd -&amp;gt; opensmtpd -&amp;gt; deliver to dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
Outoing mail:&lt;br /&gt;
&lt;br /&gt;
opensmtpd -&amp;gt; clamsmtpd -&amp;gt; clamd -&amp;gt; clamsmtpd -&amp;gt; opensmtpd -&amp;gt; dkimproxy -&amp;gt; opensmtpd -&amp;gt; relay out&lt;br /&gt;
&lt;br /&gt;
Other:&lt;br /&gt;
&lt;br /&gt;
SSL IMAP access: Dovecot&lt;br /&gt;
SSL webmail access: httpd and Roundcube&lt;br /&gt;
&lt;br /&gt;
== Why OpenBSD? ==&lt;br /&gt;
&lt;br /&gt;
Because I think it&amp;#039;s a great operating system created and maintained by a lot of very smart people. Plus, I like how there are so many excellent bits of software included in the base system. If you find anything helpful in this guide, or discover how great OpenBSD is, please consider supporting the project, either by purchasing a CD set or making a financial donation. The OpenBSD team does amazing work that benefits the whole community in a wide variety of ways and they can always use the support.&lt;br /&gt;
&lt;br /&gt;
== Why SpamAssassin in addition to spamd? ==&lt;br /&gt;
&lt;br /&gt;
Spamd works wonderfully well and it has a very light footprint. It trapped the bulk of my spam (more than 95%) so I almost just let it go instead of bothering with SpamAssassin. But I thought it would be interesting to try and integrate the two.&lt;br /&gt;
&lt;br /&gt;
== Why not &amp;lt;insert name of favorite operating system/software/tool&amp;gt;? ==&lt;br /&gt;
&lt;br /&gt;
Never heard of it. ;-)&lt;br /&gt;
&lt;br /&gt;
== Why bother with setting up your own email server to begin with? Why not just keep using Gmail? ==&lt;br /&gt;
&lt;br /&gt;
I used to run my own email server back when I hosted the Linux Reality podcast and decided it would be a fun exercise to try it again. The email server I set up using the steps in this guide might become my primary email server. Or, I might take the server down tomorrow and go back to using AOL and working on my Geocities page. Who knows?&lt;br /&gt;
&lt;br /&gt;
== Assumptions: ==&lt;br /&gt;
&lt;br /&gt;
This guide assumes an understanding of how to install and configure OpenBSD and an understanding of networking and email, both in general and in regards to OpenBSD in particular. Additionally, this guide assumes an understanding of how to install packages with a properly configured $PKG_PATH, how to work from the command line and edit configuration files, how to change DNS records and MX records, and other general nuts and bolts. These kinds of basic topics will not be covered in this guide.&lt;br /&gt;
&lt;br /&gt;
== Disclaimer: ==&lt;br /&gt;
&lt;br /&gt;
I am an ordinary OpenBSD user. I am not a sysadmin, developer, programmer, kung-fu master, or expert in any of these areas. This guide is mainly a writeup for myself so I can replicate these steps in the future. If someone finds it helpful, fine, but it is by no means the only way or even the best way to configure an email server. There are most likely mistakes in this guide, so take it for what it&amp;#039;s worth and YMMV. If your email breaks because of this guide, then don&amp;#039;t run your own email server. Feedback and corrections are welcome.&lt;br /&gt;
&lt;br /&gt;
== Updates: ==&lt;br /&gt;
&lt;br /&gt;
    Updated the last line of example smtpd.conf from &amp;quot;for any&amp;quot; to &amp;quot;for domain &amp;lt;vdomains&amp;gt;&amp;quot;.  Thanks to Christoph on the opensmtpd-misc mailing list.&lt;br /&gt;
    Removed bit about enabling pf since it&amp;#039;s enabled by default.  Duh.  Also changed notations of port 587 to &amp;#039;submission&amp;#039; which is the name of that port in /etc/services.  Thanks to rjc.&lt;br /&gt;
&lt;br /&gt;
== Resources: ==&lt;br /&gt;
&lt;br /&gt;
    OpenBSD FAQ (required)&lt;br /&gt;
    OpenBSD man pages (required)&lt;br /&gt;
    OpenSMTPD wiki&lt;br /&gt;
    Helpful thread on OpenSMTPD mailing list re: tagging and proxying&lt;br /&gt;
    http://www.kernel-panic.it/openbsd/mail/ (the bits about ClamAV and SpamAssassing are helpful)&lt;br /&gt;
    https://coderwall.com/p/eejzja/simple-smtp-server-with-opensmtpd&lt;br /&gt;
    http://blog.ehouse.io/mail-server-basic-smtp.html&lt;br /&gt;
    http://blog.admiral0.it/computing/mail-server-with-opensmtpd-dovecot-and-amavisdspamassassin/&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Ssh&amp;diff=443</id>
		<title>Участник:Ssh</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Ssh&amp;diff=443"/>
		<updated>2016-09-08T11:23:28Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Заметки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Заметки =&lt;br /&gt;
&lt;br /&gt;
[[Список открытых портов]]&lt;br /&gt;
&lt;br /&gt;
[[OpenBSD на рабочей станции]]&lt;br /&gt;
&lt;br /&gt;
[[&amp;quot;Горячие&amp;quot; клавиши tmux и screen]]&lt;br /&gt;
&lt;br /&gt;
[[OpenBSD doas]]&lt;br /&gt;
&lt;br /&gt;
[[Почтовый сервер на базе OpenBSD 6.0]]&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=440</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=440"/>
		<updated>2016-01-19T07:18:23Z</updated>

		<summary type="html">&lt;p&gt;Ssh: Воспользовался главред - https://glvrd.ru/&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Неофициальный вики-портал русскоязычного сообщества пользователей [http://www.openbsd.org OpenBSD] ==&lt;br /&gt;
&lt;br /&gt;
Мы объединяем доступную по данной тематике информацию: руководства, заметки, переводы официальной документации, ссылки на [[Перечень Интернет ресурсов о OpenBSD|ресурсы схожей тематики]], интересные примеры конфигурации.&lt;br /&gt;
&lt;br /&gt;
Будем рады новой статье, переводу или исправленной неточности. Завершенные статьи размещены в разделе [[OpenBSD-Wiki:Текущие события]].&lt;br /&gt;
&lt;br /&gt;
Из завершённого пока располагаем только [http://openbsd.pw/files архивом сайтов], с которым и работаем.&lt;br /&gt;
&lt;br /&gt;
Порты доступны на [http://ports.su/ ports.su], а поиск исходников на [http://bxr.su/OpenBSD/ bxr.su]. Короткие адреса руководств BSD раздаются на [http://mdoc.su/ mdoc.su].&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D1%85_%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%B2&amp;diff=439</id>
		<title>Список открытых портов</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D1%8B%D1%85_%D0%BF%D0%BE%D1%80%D1%82%D0%BE%D0%B2&amp;diff=439"/>
		<updated>2016-01-18T02:47:19Z</updated>

		<summary type="html">&lt;p&gt;Ssh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Поведение [http://www.openbsd.org/cgi-bin/man.cgi?query=netstat netstat(1)] в OpenBSD несколько отличается от аналога в Linux .&lt;br /&gt;
&lt;br /&gt;
Состояние всех сокетов, включая созданные серверными процессами системы (LISTEN):&lt;br /&gt;
&amp;lt;pre&amp;gt;$ netstat -na&amp;lt;/pre&amp;gt;&lt;br /&gt;
Тоже, что и предыдущее, но для конкретной группы протоколов (IPv4, IPv6 и т. д.), в данном случае для IPv4:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ netstat -na -f inet&amp;lt;/pre&amp;gt;&lt;br /&gt;
Отфильтруем порты ожидающие соединения:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ netstat -na | grep LISTEN&amp;lt;/pre&amp;gt;&lt;br /&gt;
На моей системе вывод имеет такой вид:&lt;br /&gt;
&amp;lt;pre&amp;gt;tcp          0      0  *.13                   *.*                    LISTEN&lt;br /&gt;
tcp          0      0  *.21                   *.*                    LISTEN&lt;br /&gt;
tcp          0      0  *.6000                 *.*                    LISTEN&lt;br /&gt;
tcp          0      0  127.0.0.1.587          *.*                    LISTEN&lt;br /&gt;
tcp          0      0  127.0.0.1.25           *.*                    LISTEN&lt;br /&gt;
tcp          0      0  *.22                   *.*                    LISTEN&lt;br /&gt;
tcp6         0      0  *.13                   *.*                    LISTEN&lt;br /&gt;
tcp6         0      0  *.6000                 *.*                    LISTEN&lt;br /&gt;
tcp6         0      0  ::1.587                *.*                    LISTEN&lt;br /&gt;
tcp6         0      0  ::1.25                 *.*                    LISTEN&lt;br /&gt;
tcp6         0      0  *.22                   *.*                    LISTEN&amp;lt;/pre&amp;gt;&lt;br /&gt;
Используем [http://www.openbsd.org/cgi-bin/man.cgi?query=fstat fstat(1)] для того, чтобы узнать какой процесс слушает порт:&lt;br /&gt;
&amp;lt;pre&amp;gt;# fstat | grep &amp;#039;:22&amp;#039;  &lt;br /&gt;
root     sshd        5870    3* internet stream tcp 0xffff800000d8e000 *:22&lt;br /&gt;
root     sshd        5870    4* internet6 stream tcp 0xffff800000d8e230 *:22&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D1%87%D0%B5%D0%BD%D1%8C_%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82_%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BE%D0%B2_%D0%BE_OpenBSD&amp;diff=438</id>
		<title>Перечень Интернет ресурсов о OpenBSD</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D1%87%D0%B5%D0%BD%D1%8C_%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82_%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BE%D0%B2_%D0%BE_OpenBSD&amp;diff=438"/>
		<updated>2015-12-29T02:08:40Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Действующие */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Перечень Интернет ресурсов о OpenBSD ==&lt;br /&gt;
&lt;br /&gt;
=== Действующие ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;background:#FFCC00&amp;quot;|Перечень сайтов&lt;br /&gt;
|-&lt;br /&gt;
!Ресурс||Актуальность||Описание&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.openbsd.org/faq/index.html www.openbsd.org]||ДА||&amp;#039;&amp;#039;&amp;#039;FAQ. Строго обязательно к прочтению!&amp;#039;&amp;#039;&amp;#039; [http://www.openbsd.org/faq/ru/ Русскоязычная версия].&lt;br /&gt;
|-&lt;br /&gt;
|[http://obsd.ru obsd.ru]||ДА||Портал русскоязычного сообщества OpenBSD&lt;br /&gt;
|-&lt;br /&gt;
|[http://undeadly.org undeadly.org]||ДА||Live-журнал OpenBSD&lt;br /&gt;
|-&lt;br /&gt;
|[http://freshbsd.org freshbsd.org]||ДА||Все изменения в коде *BSD проектов, в портах отображаются здесь.&lt;br /&gt;
|-&lt;br /&gt;
|[http://openports.se openports.se]||ДА||Коллекция портов для OpenBSD&lt;br /&gt;
|-&lt;br /&gt;
|[https://stable.mtier.org stable.mtier.org]||ДА||Коллекция портов для OpenBSD для i386 и amd64&lt;br /&gt;
|-&lt;br /&gt;
|[http://distrowatch.com/table.php?distribution=openbsd distrowatch.com]||ДА||Информационно-новостной ресурс сообщающий о составе и релизах открытого ПО (Linux / BSD / др.).&lt;br /&gt;
|-&lt;br /&gt;
|[http://bsdtalk.blogspot.ru bsdtalk.blogspot.ru]||ДА||Аудиозаписи, интервью, размышления на тему *BSD. На английском.&lt;br /&gt;
|-&lt;br /&gt;
|[http://bsdmag.org bsdmag.org]||ДА||BSD magazine. Популярный журнал о BSD системах. Русские переводы выполненные командой энтузиастов [http://bsdmag.su находятся здесь].&lt;br /&gt;
|-&lt;br /&gt;
|[http://home.nuug.no/~peter/pf/en/long-firewall.html home.nuug.no]||ДА||Firewalling with OpenBSD’s PF packet filter.&lt;br /&gt;
Автор: Peter N. M. Hansteen. Основополагающая вещь, читать всем! &amp;lt;br /&amp;gt; [http://rlworkman.net/howtos/OpenBSD_pf_guide.html Устаревшая версия 2006 г. Firewalling with OpenBSD’s PF packet filter.] &amp;lt;br /&amp;gt; [http://home.nuug.no/~peter/pf/eurobsdcon2012 Ещё eurobsdcon2012] от него же.&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.openbsdsupport.org www.openbsdsupport.org]||ДА||OpenBSD Users Documentation project&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.opennet.ru/search.shtml?method=and&amp;amp;format=builtin-long&amp;amp;config=htdig&amp;amp;restrict=&amp;amp;exclude=&amp;amp;words=openbsd www.opennet.ru]||ДА||The OpenNet Project. Популярный портал посвященный открытому ПО. Содержит новости, советы. Имеется форум.&lt;br /&gt;
|-&lt;br /&gt;
|[https://calomel.org calomel.org]||ДА||Богатый сборник how-to по OpenBSD. Актуализирован под OpenBSD 5.x!&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.lissyara.su www.lissyara.su]||4.x||Личный сайт BSD’шника под ником &amp;#039;&amp;#039;&amp;#039;lissyara&amp;#039;&amp;#039;&amp;#039;, богатый справочник по FreeBSD и OpenBSD.&amp;lt;br /&amp;gt;Актуален для старых версий.&lt;br /&gt;
|-&lt;br /&gt;
|[http://habrahabr.ru/search/?q=openbsd habrahabr.ru]||Сомнительно||Сверхпопулярный IT-blog. Доступные на нем записи о OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.kernel-panic.it/openbsd.html www.kernel-panic.it]||Сомнительно||Сборник руководств по OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.monkey.org/misc www.monkey.org]||Неизвестно||OpenBSD is for monkeys&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.trumpetpower.com/OpenBSD/Meta-FAQ www.trumpetpower.com]||Неизвестно||OpenBSD Meta-FAQ&lt;br /&gt;
|-&lt;br /&gt;
|[http://tuxmobil.org/mobile_bsd.html tuxmobil.org]||Неизвестно||FreeBSD, NetBSD, OpenBSD, DragonFly and Mobile Computers (Laptops, Notebooks, PDAs, Mobile Phones)&lt;br /&gt;
|-&lt;br /&gt;
|[http://blog.bronevichok.ru/ blog.bronevichok.ru]||Да||Блог Сергея Бронникова&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.read-and-think.org/openbsd5_tools_xterm_fvwm_fonts.html www.read-and-think.org]||Да||Библия для людей, работающих с командной строкой. Так же по ссылке масса информации по настройке русского языка и шрифтов в OpenBSD и UTF-8.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Отдельные информационные статьи, записки, заметки ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;background:#FFCC00&amp;quot;|Перечень статей&lt;br /&gt;
|-&lt;br /&gt;
!Ресурс||Актуальность||Описание&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.vpnc.org/InteropProfiles/OpenBSD.html www.vpnc.org]||-||OpenBSD Documentation Examples for IPsec Interoperability&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.nomoa.com/bsd/index.html www.nomoa.com]||-||Установка и настройка OpenBSD сервера&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.realo.ca/BSDinstall.html www.realo.ca]||-||A Step-by-Step Guide to Building an OpenBSD PPPoE Gateway, with Firewall&lt;br /&gt;
|-&lt;br /&gt;
|[http://pestilenz.org/~bauerm/tor-openbsd-howto.html pestilenz.org]||-||Установка Tor Wiki в Apache chroot&lt;br /&gt;
|-&lt;br /&gt;
|[http://disorder.ru/archives/category/openbsd disorder.ru]||-||Александр Юрченко является разработчиком OpenBSD из России. Ведёт заметки об OpenBSD на своём блоге&lt;br /&gt;
|-&lt;br /&gt;
|[http://citforum.ru/operating_systems/openbsd citforum.ru]||-|| Документация по OpenBSD на citforum.ru&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Недействующие ==&lt;br /&gt;
&lt;br /&gt;
Информацию можно просмотреть через [http://archive.org/web/web.php archive.org]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FFCC00&amp;quot;|Архив сайтов&lt;br /&gt;
|-&lt;br /&gt;
!Ресурс||Описание&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://openbsd.ru openbsd.ru]||Главный портал русскоязычного сообщества OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://openbsd101.com openbsd101.com]||Сборник how-to для начинающих.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://kaw.ath.cx/openbsd/?FuguIta FuguIta]||Проект FuguIta в рамках которого формируют LiveCD сборки OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://www.synack.ru www.synack.ru]||Хороший blog по *BSD \ Linux \ VoIP и др.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/https://www.dmoz.org www.dmoz.org]||Сборник статей по OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://www.infobsd.org www.infobsd.org]||InfoBSD.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Общая информация]]&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D1%87%D0%B5%D0%BD%D1%8C_%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82_%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BE%D0%B2_%D0%BE_OpenBSD&amp;diff=437</id>
		<title>Перечень Интернет ресурсов о OpenBSD</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D1%87%D0%B5%D0%BD%D1%8C_%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82_%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BE%D0%B2_%D0%BE_OpenBSD&amp;diff=437"/>
		<updated>2015-12-29T02:04:13Z</updated>

		<summary type="html">&lt;p&gt;Ssh: Перенёс неработающие ресурсы в раздел неактуальных.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Перечень Интернет ресурсов о OpenBSD ==&lt;br /&gt;
&lt;br /&gt;
=== Действующие ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;background:#FFCC00&amp;quot;|Перечень сайтов&lt;br /&gt;
|-&lt;br /&gt;
!Ресурс||Актуальность||Описание&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.openbsd.org/faq/index.html www.openbsd.org]||ДА||&amp;#039;&amp;#039;&amp;#039;FAQ. Строго обязательно к прочтению!&amp;#039;&amp;#039;&amp;#039; [http://www.openbsd.org/faq/ru/ Русскоязычная версия].&lt;br /&gt;
|-&lt;br /&gt;
|[http://obsd.ru obsd.ru]||ДА||Портал русскоязычного сообщества OpenBSD&lt;br /&gt;
|-&lt;br /&gt;
|[http://undeadly.org undeadly.org]||ДА||Live-журнал OpenBSD&lt;br /&gt;
|-&lt;br /&gt;
|[http://freshbsd.org freshbsd.org]||ДА||Все изменения в коде *BSD проектов, в портах отображаются здесь.&lt;br /&gt;
|-&lt;br /&gt;
|[http://openports.se openports.se]||ДА||Коллекция портов для OpenBSD&lt;br /&gt;
|-&lt;br /&gt;
|[https://stable.mtier.org stable.mtier.org]||ДА||Коллекция портов для OpenBSD для i386 и amd64&lt;br /&gt;
|-&lt;br /&gt;
|[http://distrowatch.com/table.php?distribution=openbsd distrowatch.com]||ДА||Информационно-новостной ресурс сообщающий о составе и релизах открытого ПО (Linux / BSD / др.).&lt;br /&gt;
|-&lt;br /&gt;
|[http://bsdtalk.blogspot.ru bsdtalk.blogspot.ru]||ДА||Аудиозаписи, интервью, размышления на тему *BSD. На английском.&lt;br /&gt;
|-&lt;br /&gt;
|[http://bsdmag.org bsdmag.org]||ДА||BSD magazine. Популярный журнал о BSD системах. Русские переводы выполненные командой энтузиастов [http://bsdmag.su находятся здесь].&lt;br /&gt;
|-&lt;br /&gt;
|[http://home.nuug.no/~peter/pf/en/long-firewall.html home.nuug.no]||ДА||Firewalling with OpenBSD’s PF packet filter.&lt;br /&gt;
Автор: Peter N. M. Hansteen. Основополагающая вещь, читать всем! [http://home.nuug.no/~peter/pf/eurobsdcon2012 Ещё eurobsdcon2012] от него же.&lt;br /&gt;
|-&lt;br /&gt;
|[http://rlworkman.net/howtos/OpenBSD_pf_guide.html rlworkman.net]||Нет||Устаревшая версия 2006 г. Firewalling with OpenBSD’s PF packet filter.&lt;br /&gt;
Автор: Peter N. M. Hansteen.&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.openbsdsupport.org www.openbsdsupport.org]||ДА||OpenBSD Users Documentation project&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.opennet.ru/search.shtml?method=and&amp;amp;format=builtin-long&amp;amp;config=htdig&amp;amp;restrict=&amp;amp;exclude=&amp;amp;words=openbsd www.opennet.ru]||ДА||The OpenNet Project. Популярный портал посвященный открытому ПО. Содержит новости, советы. Имеется форум.&lt;br /&gt;
|-&lt;br /&gt;
|[https://calomel.org calomel.org]||ДА||Богатый сборник how-to по OpenBSD. Актуализирован под OpenBSD 5.x!&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.lissyara.su www.lissyara.su]||4.x||Личный сайт BSD’шника под ником &amp;#039;&amp;#039;&amp;#039;lissyara&amp;#039;&amp;#039;&amp;#039;, богатый справочник по FreeBSD и OpenBSD.&amp;lt;br /&amp;gt;Актуален для старых версий.&lt;br /&gt;
|-&lt;br /&gt;
|[http://habrahabr.ru/search/?q=openbsd habrahabr.ru]||Сомнительно||Сверхпопулярный IT-blog. Доступные на нем записи о OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.kernel-panic.it/openbsd.html www.kernel-panic.it]||Сомнительно||Сборник руководств по OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.monkey.org/misc www.monkey.org]||Неизвестно||OpenBSD is for monkeys&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.trumpetpower.com/OpenBSD/Meta-FAQ www.trumpetpower.com]||Неизвестно||OpenBSD Meta-FAQ&lt;br /&gt;
|-&lt;br /&gt;
|[http://tuxmobil.org/mobile_bsd.html tuxmobil.org]||Неизвестно||FreeBSD, NetBSD, OpenBSD, DragonFly and Mobile Computers (Laptops, Notebooks, PDAs, Mobile Phones)&lt;br /&gt;
|-&lt;br /&gt;
|[http://blog.bronevichok.ru/ blog.bronevichok.ru]||Да||Блог Сергея Бронникова&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.read-and-think.org/openbsd5_tools_xterm_fvwm_fonts.html www.read-and-think.org]||Да||Библия для людей, работающих с командной строкой. Так же по ссылке масса информации по настройке русского языка и шрифтов в OpenBSD и UTF-8.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Отдельные информационные статьи, записки, заметки ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;background:#FFCC00&amp;quot;|Перечень статей&lt;br /&gt;
|-&lt;br /&gt;
!Ресурс||Актуальность||Описание&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.vpnc.org/InteropProfiles/OpenBSD.html www.vpnc.org]||-||OpenBSD Documentation Examples for IPsec Interoperability&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.nomoa.com/bsd/index.html www.nomoa.com]||-||Установка и настройка OpenBSD сервера&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.realo.ca/BSDinstall.html www.realo.ca]||-||A Step-by-Step Guide to Building an OpenBSD PPPoE Gateway, with Firewall&lt;br /&gt;
|-&lt;br /&gt;
|[http://pestilenz.org/~bauerm/tor-openbsd-howto.html pestilenz.org]||-||Установка Tor Wiki в Apache chroot&lt;br /&gt;
|-&lt;br /&gt;
|[http://disorder.ru/archives/category/openbsd disorder.ru]||-||Александр Юрченко является разработчиком OpenBSD из России. Ведёт заметки об OpenBSD на своём блоге&lt;br /&gt;
|-&lt;br /&gt;
|[http://citforum.ru/operating_systems/openbsd citforum.ru]||-|| Документация по OpenBSD на citforum.ru&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Недействующие ==&lt;br /&gt;
&lt;br /&gt;
Информацию можно просмотреть через [http://archive.org/web/web.php archive.org]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FFCC00&amp;quot;|Архив сайтов&lt;br /&gt;
|-&lt;br /&gt;
!Ресурс||Описание&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://openbsd.ru openbsd.ru]||Главный портал русскоязычного сообщества OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://openbsd101.com openbsd101.com]||Сборник how-to для начинающих.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://kaw.ath.cx/openbsd/?FuguIta FuguIta]||Проект FuguIta в рамках которого формируют LiveCD сборки OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://www.synack.ru www.synack.ru]||Хороший blog по *BSD \ Linux \ VoIP и др.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/https://www.dmoz.org www.dmoz.org]||Сборник статей по OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://www.infobsd.org www.infobsd.org]||InfoBSD.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Общая информация]]&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D1%87%D0%B5%D0%BD%D1%8C_%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82_%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BE%D0%B2_%D0%BE_OpenBSD&amp;diff=436</id>
		<title>Перечень Интернет ресурсов о OpenBSD</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D1%87%D0%B5%D0%BD%D1%8C_%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82_%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BE%D0%B2_%D0%BE_OpenBSD&amp;diff=436"/>
		<updated>2015-12-29T02:02:38Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Недействующие */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Перечень Интернет ресурсов о OpenBSD ==&lt;br /&gt;
&lt;br /&gt;
=== Действующие ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;background:#FFCC00&amp;quot;|Перечень сайтов&lt;br /&gt;
|-&lt;br /&gt;
!Ресурс||Актуальность||Описание&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.openbsd.org/faq/index.html www.openbsd.org]||ДА||&amp;#039;&amp;#039;&amp;#039;FAQ. Строго обязательно к прочтению!&amp;#039;&amp;#039;&amp;#039; [http://www.openbsd.org/faq/ru/ Русскоязычная версия].&lt;br /&gt;
|-&lt;br /&gt;
|[http://obsd.ru obsd.ru]||ДА||Портал русскоязычного сообщества OpenBSD&lt;br /&gt;
|-&lt;br /&gt;
|[http://undeadly.org undeadly.org]||ДА||Live-журнал OpenBSD&lt;br /&gt;
|-&lt;br /&gt;
|[http://freshbsd.org freshbsd.org]||ДА||Все изменения в коде *BSD проектов, в портах отображаются здесь.&lt;br /&gt;
|-&lt;br /&gt;
|[http://openports.se openports.se]||ДА||Коллекция портов для OpenBSD&lt;br /&gt;
|-&lt;br /&gt;
|[https://stable.mtier.org stable.mtier.org]||ДА||Коллекция портов для OpenBSD для i386 и amd64&lt;br /&gt;
|-&lt;br /&gt;
|[http://distrowatch.com/table.php?distribution=openbsd distrowatch.com]||ДА||Информационно-новостной ресурс сообщающий о составе и релизах открытого ПО (Linux / BSD / др.).&lt;br /&gt;
|-&lt;br /&gt;
|[http://bsdtalk.blogspot.ru bsdtalk.blogspot.ru]||ДА||Аудиозаписи, интервью, размышления на тему *BSD. На английском.&lt;br /&gt;
|-&lt;br /&gt;
|[http://bsdmag.org bsdmag.org]||ДА||BSD magazine. Популярный журнал о BSD системах. Русские переводы выполненные командой энтузиастов [http://bsdmag.su находятся здесь].&lt;br /&gt;
|-&lt;br /&gt;
|[http://home.nuug.no/~peter/pf/en/long-firewall.html home.nuug.no]||ДА||Firewalling with OpenBSD’s PF packet filter.&lt;br /&gt;
Автор: Peter N. M. Hansteen. Основополагающая вещь, читать всем! [http://home.nuug.no/~peter/pf/eurobsdcon2012 Ещё eurobsdcon2012] от него же.&lt;br /&gt;
|-&lt;br /&gt;
|[http://kaw.ath.cx/openbsd/?FuguIta FuguIta]||ДА||Проект FuguIta в рамках которого формируют LiveCD сборки OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://rlworkman.net/howtos/OpenBSD_pf_guide.html rlworkman.net]||Нет||Устаревшая версия 2006 г. Firewalling with OpenBSD’s PF packet filter.&lt;br /&gt;
Автор: Peter N. M. Hansteen.&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.openbsdsupport.org www.openbsdsupport.org]||ДА||OpenBSD Users Documentation project&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.opennet.ru/search.shtml?method=and&amp;amp;format=builtin-long&amp;amp;config=htdig&amp;amp;restrict=&amp;amp;exclude=&amp;amp;words=openbsd www.opennet.ru]||ДА||The OpenNet Project. Популярный портал посвященный открытому ПО. Содержит новости, советы. Имеется форум.&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.synack.ru www.synack.ru]||ДА||Хороший blog по *BSD \ Linux \ VoIP и др.&lt;br /&gt;
|-&lt;br /&gt;
|[https://calomel.org calomel.org]||ДА||Богатый сборник how-to по OpenBSD. Актуализирован под OpenBSD 5.x!&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.lissyara.su www.lissyara.su]||4.x||Личный сайт BSD’шника под ником &amp;#039;&amp;#039;&amp;#039;lissyara&amp;#039;&amp;#039;&amp;#039;, богатый справочник по FreeBSD и OpenBSD.&amp;lt;br /&amp;gt;Актуален для старых версий.&lt;br /&gt;
|-&lt;br /&gt;
|[http://habrahabr.ru/search/?q=openbsd habrahabr.ru]||Сомнительно||Сверхпопулярный IT-blog. Доступные на нем записи о OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.kernel-panic.it/openbsd.html www.kernel-panic.it]||Сомнительно||Сборник руководств по OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[https://www.dmoz.org www.dmoz.org]||Неизвестно||Сборник статей по OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.monkey.org/misc www.monkey.org]||Неизвестно||OpenBSD is for monkeys&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.trumpetpower.com/OpenBSD/Meta-FAQ www.trumpetpower.com]||Неизвестно||OpenBSD Meta-FAQ&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.infobsd.org/default.htm www.infobsd.org]||Неизвестно||InfoBSD&lt;br /&gt;
|-&lt;br /&gt;
|[http://tuxmobil.org/mobile_bsd.html tuxmobil.org]||Неизвестно||FreeBSD, NetBSD, OpenBSD, DragonFly and Mobile Computers (Laptops, Notebooks, PDAs, Mobile Phones)&lt;br /&gt;
|-&lt;br /&gt;
|[http://blog.bronevichok.ru/ blog.bronevichok.ru]||Да||Блог Сергея Бронникова&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.read-and-think.org/openbsd5_tools_xterm_fvwm_fonts.html www.read-and-think.org]||Да||Библия для людей, работающих с командной строкой. Так же по ссылке масса информации по настройке русского языка и шрифтов в OpenBSD и UTF-8.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Отдельные информационные статьи, записки, заметки ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;background:#FFCC00&amp;quot;|Перечень статей&lt;br /&gt;
|-&lt;br /&gt;
!Ресурс||Актуальность||Описание&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.vpnc.org/InteropProfiles/OpenBSD.html www.vpnc.org]||-||OpenBSD Documentation Examples for IPsec Interoperability&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.nomoa.com/bsd/index.html www.nomoa.com]||-||Установка и настройка OpenBSD сервера&lt;br /&gt;
|-&lt;br /&gt;
|[http://www.realo.ca/BSDinstall.html www.realo.ca]||-||A Step-by-Step Guide to Building an OpenBSD PPPoE Gateway, with Firewall&lt;br /&gt;
|-&lt;br /&gt;
|[http://pestilenz.org/~bauerm/tor-openbsd-howto.html pestilenz.org]||-||Установка Tor Wiki в Apache chroot&lt;br /&gt;
|-&lt;br /&gt;
|[http://disorder.ru/archives/category/openbsd disorder.ru]||-||Александр Юрченко является разработчиком OpenBSD из России. Ведёт заметки об OpenBSD на своём блоге&lt;br /&gt;
|-&lt;br /&gt;
|[http://citforum.ru/operating_systems/openbsd citforum.ru]||-|| Документация по OpenBSD на citforum.ru&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Недействующие ==&lt;br /&gt;
&lt;br /&gt;
Информацию можно просмотреть через [http://archive.org/web/web.php archive.org]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#FFCC00&amp;quot;|Архив сайтов&lt;br /&gt;
|-&lt;br /&gt;
!Ресурс||Описание&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://openbsd.ru openbsd.ru]||Главный портал русскоязычного сообщества OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://openbsd101.com openbsd101.com]||Сборник how-to для начинающих.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://kaw.ath.cx/openbsd/?FuguIta FuguIta]||Проект FuguIta в рамках которого формируют LiveCD сборки OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://www.synack.ru www.synack.ru]||Хороший blog по *BSD \ Linux \ VoIP и др.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/https://www.dmoz.org www.dmoz.org]||Сборник статей по OpenBSD.&lt;br /&gt;
|-&lt;br /&gt;
|[http://web.archive.org/web/*/http://www.infobsd.org www.infobsd.org]||InfoBSD.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Общая информация]]&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=OpenBSD_%D0%BD%D0%B0_%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B9_%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D0%B8&amp;diff=435</id>
		<title>OpenBSD на рабочей станции</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=OpenBSD_%D0%BD%D0%B0_%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B9_%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D0%B8&amp;diff=435"/>
		<updated>2015-12-28T06:21:38Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Настройка производительности */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вольный перевод статьи [http://eradman.com Eric Radman] [http://eradman.com/posts/openbsd-workstation.html An OpenBSD Workstation] с некоторыми дополнениями учитывающими изменения пришедшие в свежих релизах.&lt;br /&gt;
&lt;br /&gt;
== Выключение системы нажатием на кнопку питания ==&lt;br /&gt;
&lt;br /&gt;
Безопасное выключение компьютера нажатием на кнопку питания возможно после передачи ядру параметра: &lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/sysctl.conf&lt;br /&gt;
hw.allowpowerdown=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Параметр может быть установлен только до перехода системы к уровню безопасности 1, подробнее в [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man7/securelevel.7?query=securelevel securelevel(7)].&lt;br /&gt;
&lt;br /&gt;
== Больше никаких раздражающих сигналов ==&lt;br /&gt;
&lt;br /&gt;
Одна из многих вещей, которую узнаешь прочитав [http://nostarch.com/obenbsd2e Absolute OpenBSD] - это как отключить раздражающий [http://en.wikipedia.org/wiki/Bell_character сигнал]:&lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/wsconsctl.conf&lt;br /&gt;
keyboard.bell.volume=0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начиная с релиза [http://www.openbsd.org/54.html 5.4] способ с &amp;#039;&amp;#039;&amp;#039;wsconsctl&amp;#039;&amp;#039;&amp;#039; больше не работает. Отключить сигнал можно так:&lt;br /&gt;
&amp;lt;pre&amp;gt;# ~/.xinitrc&lt;br /&gt;
xset -b&amp;lt;/pre&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/rc.conf.local&lt;br /&gt;
mixerctl inputs.spkr.mute=on&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Монтирование съемных устройств пользователем ==&lt;br /&gt;
&lt;br /&gt;
Удобно, когда можно смонтировать DVD или флеш-носитель без повышения привилегий, используя для этого членство в группе &amp;#039;&amp;#039;&amp;#039;operator&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;# usermod -G operator eradman&lt;br /&gt;
# chmod g=rw /dev/cd0*&amp;lt;/pre&amp;gt;&lt;br /&gt;
Остаётся изменить параметр ядра и можно пользоваться.&lt;br /&gt;
&amp;lt;pre&amp;gt;# sysctl kern.usermount=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mkdir -p mount/cdrom&lt;br /&gt;
$ mount /dev/cd0c mount/cdrom&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Suspend &amp;amp; Resume ==&lt;br /&gt;
&lt;br /&gt;
OpenBSD обладает хорошей поддержкой ACPI, подробнее в [http://www.openbsd.org/cgi-bin/man.cgi?query=apmd&amp;amp;apropos=0&amp;amp;sektion=0&amp;amp;manpath=OpenBSD+Current&amp;amp;arch=i386&amp;amp;format=html apmd(8)]. zzz и ZZZ быстрый способ перехода в режимы suspend и hibernate, если apmd запускается при загрузке.&lt;br /&gt;
&amp;lt;pre&amp;gt;# rc.conf.local&lt;br /&gt;
apmd_flags=&amp;quot;-A&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;-A&amp;#039;&amp;#039;&amp;#039;&amp;quot; будет автоматически масштабировать частоту CPU для оптимального энергопотребления.&lt;br /&gt;
&lt;br /&gt;
Начиная с выпуска [http://www.openbsd.org/56.html 5.6], управление сервисами осуществляется посредством утилиты [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/rcctl.8?query=rcctl rcctl(8)].&lt;br /&gt;
&amp;lt;pre&amp;gt;# rcctl getdef apmd        &lt;br /&gt;
apmd_flags=NO&lt;br /&gt;
&amp;amp;#8230;&lt;br /&gt;
# rcctl enable apmd&lt;br /&gt;
&amp;amp;#8230;&lt;br /&gt;
# rcctl getdef apmd        &lt;br /&gt;
apmd_flags=&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X Configuration: .xinitrc ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# ~/.xinitrc&lt;br /&gt;
&lt;br /&gt;
redshift -O 5600&lt;br /&gt;
&lt;br /&gt;
while true; do&lt;br /&gt;
    batt=&amp;quot;$(sysctl -n hw.sensors.acpibat0.watthour3 | cut -f1,2 -d&amp;quot; &amp;quot;)&amp;quot;&lt;br /&gt;
    xsetroot -name &amp;quot;$batt&amp;quot;&lt;br /&gt;
    sleep 60&lt;br /&gt;
done &amp;amp;&lt;br /&gt;
xsetroot -solid steelblue  &amp;amp;&lt;br /&gt;
exec dwm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://jonls.dk/redshift/ redshift] утилита предназначена для регулировки цветовой температуры экрана в зависимости от вашего окружения. Это работает и в случае ручной регулировки цветовой температуры. Например, подсветка экрана IBM T60p автора статьи по умолчанию &amp;quot;холодная&amp;quot;, поэтому он изменяет значение цветовую температуры с 6500K до 5600K. &lt;br /&gt;
&lt;br /&gt;
Запускаем циклический опрос сенсора времени жизни батареи (battery life (Wh)) с интервалом один раз в 60 сек, а полученное значение выводим &amp;quot;поверх&amp;quot; корневого окна. &lt;br /&gt;
&lt;br /&gt;
Установим цвет фона и запустить свой любимый менеджер окон.&lt;br /&gt;
&lt;br /&gt;
==Переключение на внешний монитор==&lt;br /&gt;
Разрешение дисплея на рабочем месте немного выше чем дисплея ноутбука, небольшой скрипт для переключения на внешний монитор:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
xrandr --output LVDS --off&lt;br /&gt;
xrandr --output VGA-0 --off&lt;br /&gt;
xrandr --output DVI-0 --auto&lt;br /&gt;
redshift -O 6200&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По моему опыту, X11 иногда скрывает курсор мыши, если возобновление работы системы происходило при подключенном внешнем мониторе. Для решения я использовал [http://sourceforge.net/projects/unclutter/ unclutter] - утилиту скрывающую курсор мыши когда он неподвижен и восстанавливающую его как только он переместился.&lt;br /&gt;
&amp;lt;pre&amp;gt;pkill unclutter&lt;br /&gt;
unclutter -idle 1 -root -grab -visible &amp;amp;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Лично мне больше нравится немного другой вариант:&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --query | grep &amp;quot;VGA1 connected&amp;quot; &amp;amp;&amp;amp; xrandr --output LVDS1 --off --output VGA1 --mode 1920x1080&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Подключение проектора==&lt;br /&gt;
&lt;br /&gt;
Если X-сервер запускается когда проектор подключен к VGA порту, то скорее всего сервер установит для встроенного и внешнего дисплеев одинаковое разрешение. На T60 например, это можно изменить:&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --output LVDS --mode 1400x1050&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используя --query можно узнать какие режимы поддерживаются дисплеем, then I set up a viewport that pans with the mouse pointer&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --output VGA-0 --mode 1024x768 --panning 1400x1050&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же, я добавил в .xinitrc команды для автоматической конфигурации дисплеев, если при запуске X-сервера внешний монитор уже подключен:&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --query | grep &amp;quot;DVI-0 connected&amp;quot; &amp;amp;&amp;amp; ~/bin/docked-dvi&lt;br /&gt;
xrandr --query | grep &amp;quot;VGA-0 connected&amp;quot; &amp;amp;&amp;amp; ~/bin/docked-vga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==tmux - мультиплексор терминалов==&lt;br /&gt;
&lt;br /&gt;
Несколько дополнений в мою конфигурацию мультиплексора терминалов. Я часто запускаю [http://entrproject.org/ entr] в небольшой панели снизу. &lt;br /&gt;
&amp;lt;pre&amp;gt;bind-key C-t split-window -p 25&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Не знаю палитры цветов терминала, но её можно распечатать:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/ksh&lt;br /&gt;
&lt;br /&gt;
for i in `jot 255`; do&lt;br /&gt;
  printf &amp;quot;\033[38;5;${i}mcolour${i}\n&amp;quot;&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Фон строки состояния и границы активного окна ярко-зеленый:&lt;br /&gt;
&amp;lt;pre&amp;gt;set -g status-bg colour118&lt;br /&gt;
set -g pane-active-border-fg colour118&lt;br /&gt;
set -g pane-border-fg colour30&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица с сопоставлением [[&amp;quot;Горячие&amp;quot; клавиши tmux и screen | клавиатурных комбинаций для tmux и screen]]&lt;br /&gt;
&lt;br /&gt;
==Использование шифрования для дисков==&lt;br /&gt;
OpenBSD предоставляет программный RAID как виртуальный хост-адаптер шины ([https://ru.wikipedia.org/wiki/HBA HBA]). Также HBA применяется для настройки и использования шифрования дисков. Посредством [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/disklabel.8 disklabel(8)] установим тип раздела RAID (в оригинальной статье автор использует блочное устройство &amp;#039;&amp;#039;&amp;#039;/dev/sd0c&amp;#039;&amp;#039;&amp;#039; как шифрованный том, монтируемый в &amp;#039;&amp;#039;&amp;#039;/home&amp;#039;&amp;#039;&amp;#039;):   &lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo disklabel -E /dev/sd0c&lt;br /&gt;
Label editor (enter &amp;#039;?&amp;#039; for help at any prompt)&lt;br /&gt;
  g:         55641600        100653824    RAID&lt;br /&gt;
&amp;gt; m g&lt;br /&gt;
offset: [100653824]&lt;br /&gt;
size: [55641600]&lt;br /&gt;
FS type: [4.2BSD] RAID&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для настройки шифрования используем [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/bioctl.8 bioctl(8)] с параметром -c C: &lt;br /&gt;
&amp;lt;pre&amp;gt;# bioctl -c C -l /dev/sd0g softraid0&lt;br /&gt;
New passphrase: My Crypto Pass Phrase&lt;br /&gt;
Re-type passphrase: My Crypto Pass Phrase&lt;br /&gt;
softraid0: CRYPTO volume attached as sd1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Монтирование выполняется той же командой, журнал ядра сообщит о появлении нового виртуального устройства:&lt;br /&gt;
&amp;lt;pre&amp;gt;sd1 at scsibus2 targ 1 lun 0: &amp;amp;lt;OPENBSD, SR CRYPTO, 005&amp;amp;gt; SCSI2 0/direct fixed&lt;br /&gt;
sd1: 27168MB, 512 bytes/sector, 55641072 sectors&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разметим и отформатируем шифрованный том:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo disklabel -E /dev/sd1c&lt;br /&gt;
...&lt;br /&gt;
$ sudo newfs /dev/rsd1a&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устройства в OpenBSD могут монтироваться по имени или с использованием disklabel UID, который случайным образом генерируется при разметке:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ disklabel /dev/sd1a | grep uid&lt;br /&gt;
duid: 779d87bac3905122&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полученный UID используется для монтирования тома, что позволяет избежать путаницы при. Код ниже, позволит выполнить четыре попытки ввода ключевой фразы для дешифрации тома:&lt;br /&gt;
&amp;lt;pre&amp;gt;#/etc/rc.local&lt;br /&gt;
for attept in 1 2 3 4; do&lt;br /&gt;
  bioctl -c C -l c3e2f405c96a8e10.g softraid0 &amp;amp;&amp;amp; break&lt;br /&gt;
  sleep 1&lt;br /&gt;
done&lt;br /&gt;
fsck /dev/rsd1a&lt;br /&gt;
mount -o nodev,nosuid,softdep 779d87bac3905122.a /home&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если необходим полностью шифрованный загрузочный том, ознакомьтесь с [http://www.tedunangst.com/flak/post/OpenBSD-softraid-crypto-boot публикацией] Ted Unangst.&lt;br /&gt;
&lt;br /&gt;
==Уменьшим &amp;quot;возню&amp;quot; с паролями с помощью YubiKey==&lt;br /&gt;
&lt;br /&gt;
[https://www.yubico.com/ Yubico] выпускают небольшие аппаратные ключи, которые используются для авторизации с использованием одноразовых паролей ([https://ru.wikipedia.org/wiki/%D0%9E%D0%B4%D0%BD%D0%BE%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9_%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C OTP]). Yubikey-personalization-gui - это QT-приложение, которое может быть использовано для записи приватных ключей в один из двух слотов. Запишите без пробелов 6-байт в файл приватной? идентификации и 16-байт в файл ключа: &lt;br /&gt;
&amp;lt;pre&amp;gt;echo &amp;quot;5c e1 e0 3e 63 a4&amp;quot; \&lt;br /&gt;
        | tr -d &amp;#039; &amp;#039; &amp;gt; /var/db/yubikey/$USER.id&lt;br /&gt;
echo &amp;quot;57 e3 af 3e 9b 51 2b 10 58 7d 33 fb d9 08 ef 7b&amp;quot; \&lt;br /&gt;
        | tr -d &amp;#039; &amp;#039; &amp;gt; /var/db/yubikey/$USER.key&lt;br /&gt;
chmod 600 /var/db/yubikey/$USER.*&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настроим YubiKey в качестве метода локальной авторизации и авторизации через SSH. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# Default allowed authentication styles&lt;br /&gt;
auth-defaults:auth=yubikey,passwd,skey:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перестроим БД авторизации - &amp;#039;&amp;#039;&amp;#039;login.conf&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cap_mkdb /etc/login.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для уменьшения количества вводимых символов, второй слот YubiKey используется как относительно безопасный метод активации [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent&amp;amp;format=html ssh-agent], что позволяет соединяться с удалёнными системами, на которых уже присутствует мой публичный ключ (RSA, DSA, ECDSA). Для этого, используя yubikey-personalization-gui создайте случайный ключ, а затем установите слот 2 в режим &amp;quot;запрос-ответ&amp;quot; (challеnge-response): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hexkey=$(echo &amp;quot;dd b6 68 81 c9 73 f9 64 84 21 7e f0 69 e8 2c 28 1b 6c ad e2&amp;quot; | tr -d &amp;#039; &amp;#039;)&lt;br /&gt;
ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -a $hexkey&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем создайте новую пару SSH-ключей с помощью ответов ykchalresp. Скрипт ykauth, установлен в ~/bin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
ykchalresp -2 &amp;quot;$(whoami)@$(hostname)&amp;quot; | cut -c 1-15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И наконец, настроим автоматическую активацию ключей при входе в систему:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh-add -l &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 || {&lt;br /&gt;
    eval `ssh-agent`&lt;br /&gt;
    DISPLAY=&amp;#039;&amp;#039; SSH_ASKPASS=&amp;#039;/home/eradman/bin/ykauth&amp;#039; ssh-add &amp;lt; /dev/null&lt;br /&gt;
    exec ksh&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройка производительности==&lt;br /&gt;
&lt;br /&gt;
Нет документов описывающих способы адаптации OpenBSD для рабочей станции. Я делаю следующие изменения. Первое, позволяю приложениям использовать больше оперативной памяти:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/login.conf&lt;br /&gt;
staff:\&lt;br /&gt;
        :datasize-cur=2048M:\&lt;br /&gt;
        :datasize-max=2048M:\&lt;br /&gt;
        :datasize=2048M:\&lt;br /&gt;
        :openfiles-cur=1024:\&lt;br /&gt;
        :stacksize-cur=16M:\&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если знаете другие способы улучшить производительность, пожалуйста [mailto:ericshane@eradman.com сообщите] их автору.&lt;br /&gt;
&lt;br /&gt;
==Блокировка экрана==&lt;br /&gt;
&lt;br /&gt;
Для автоматической блокировки экрана после 5 минут неактивности, добавьте указанный ниже код в &amp;#039;&amp;#039;&amp;#039;~/.xinitrc&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;xidle -timeout 300 -program &amp;quot;/usr/X11R6/bin/xlock -mode blank&amp;quot; &amp;amp;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы это сработало когда система переходит в режим сна (suspended), необходимо в &amp;#039;&amp;#039;&amp;#039;/etc/apm/suspend&amp;#039;&amp;#039;&amp;#039; добавить сигнал &amp;#039;&amp;#039;&amp;#039;xidle&amp;#039;&amp;#039;&amp;#039; для запуска программы блокировки. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
pkill -USR1 xidle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Смена сетевого подключения==&lt;br /&gt;
&lt;br /&gt;
Переключение из одной сети в другую, например из беспроводной в проводную, не является очевидным в BSD. &lt;br /&gt;
&lt;br /&gt;
Во-первых, необходимо остановить dhcp-клиент, чтобы исключить попытки повторной активации сетевого интерфейса: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pkill dhclient&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем удалить установленный IP-адрес и деактивировать сетевой интерфейс:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig wpi0 -inet down&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удаление IP-адреса так же сбрасывает локальные маршруты. Сбросить все прочие маршруты:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;route -n flush&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-n предотвращает попытки route пытаться разрешать имена хостов.&lt;br /&gt;
&lt;br /&gt;
Если для подключения к беспроводной сети использовался WPA, следует удалить параметры подключения к сети, чтобы получать широковещательные SSID других сетей: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig wpi0 nwid &amp;quot;Mobile Hotspot&amp;quot; wpa wpakey 09123456789&lt;br /&gt;
ifconfig wpi0 -nwid -wpa -wpakey # use broadcast id&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=OpenBSD_%D0%BD%D0%B0_%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B9_%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D0%B8&amp;diff=434</id>
		<title>OpenBSD на рабочей станции</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=OpenBSD_%D0%BD%D0%B0_%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B9_%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D0%B8&amp;diff=434"/>
		<updated>2015-12-28T06:18:34Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Переключение на внешний монитор */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вольный перевод статьи [http://eradman.com Eric Radman] [http://eradman.com/posts/openbsd-workstation.html An OpenBSD Workstation] с некоторыми дополнениями учитывающими изменения пришедшие в свежих релизах.&lt;br /&gt;
&lt;br /&gt;
== Выключение системы нажатием на кнопку питания ==&lt;br /&gt;
&lt;br /&gt;
Безопасное выключение компьютера нажатием на кнопку питания возможно после передачи ядру параметра: &lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/sysctl.conf&lt;br /&gt;
hw.allowpowerdown=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Параметр может быть установлен только до перехода системы к уровню безопасности 1, подробнее в [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man7/securelevel.7?query=securelevel securelevel(7)].&lt;br /&gt;
&lt;br /&gt;
== Больше никаких раздражающих сигналов ==&lt;br /&gt;
&lt;br /&gt;
Одна из многих вещей, которую узнаешь прочитав [http://nostarch.com/obenbsd2e Absolute OpenBSD] - это как отключить раздражающий [http://en.wikipedia.org/wiki/Bell_character сигнал]:&lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/wsconsctl.conf&lt;br /&gt;
keyboard.bell.volume=0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начиная с релиза [http://www.openbsd.org/54.html 5.4] способ с &amp;#039;&amp;#039;&amp;#039;wsconsctl&amp;#039;&amp;#039;&amp;#039; больше не работает. Отключить сигнал можно так:&lt;br /&gt;
&amp;lt;pre&amp;gt;# ~/.xinitrc&lt;br /&gt;
xset -b&amp;lt;/pre&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/rc.conf.local&lt;br /&gt;
mixerctl inputs.spkr.mute=on&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Монтирование съемных устройств пользователем ==&lt;br /&gt;
&lt;br /&gt;
Удобно, когда можно смонтировать DVD или флеш-носитель без повышения привилегий, используя для этого членство в группе &amp;#039;&amp;#039;&amp;#039;operator&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;# usermod -G operator eradman&lt;br /&gt;
# chmod g=rw /dev/cd0*&amp;lt;/pre&amp;gt;&lt;br /&gt;
Остаётся изменить параметр ядра и можно пользоваться.&lt;br /&gt;
&amp;lt;pre&amp;gt;# sysctl kern.usermount=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mkdir -p mount/cdrom&lt;br /&gt;
$ mount /dev/cd0c mount/cdrom&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Suspend &amp;amp; Resume ==&lt;br /&gt;
&lt;br /&gt;
OpenBSD обладает хорошей поддержкой ACPI, подробнее в [http://www.openbsd.org/cgi-bin/man.cgi?query=apmd&amp;amp;apropos=0&amp;amp;sektion=0&amp;amp;manpath=OpenBSD+Current&amp;amp;arch=i386&amp;amp;format=html apmd(8)]. zzz и ZZZ быстрый способ перехода в режимы suspend и hibernate, если apmd запускается при загрузке.&lt;br /&gt;
&amp;lt;pre&amp;gt;# rc.conf.local&lt;br /&gt;
apmd_flags=&amp;quot;-A&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;-A&amp;#039;&amp;#039;&amp;#039;&amp;quot; будет автоматически масштабировать частоту CPU для оптимального энергопотребления.&lt;br /&gt;
&lt;br /&gt;
Начиная с выпуска [http://www.openbsd.org/56.html 5.6], управление сервисами осуществляется посредством утилиты [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/rcctl.8?query=rcctl rcctl(8)].&lt;br /&gt;
&amp;lt;pre&amp;gt;# rcctl getdef apmd        &lt;br /&gt;
apmd_flags=NO&lt;br /&gt;
&amp;amp;#8230;&lt;br /&gt;
# rcctl enable apmd&lt;br /&gt;
&amp;amp;#8230;&lt;br /&gt;
# rcctl getdef apmd        &lt;br /&gt;
apmd_flags=&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X Configuration: .xinitrc ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# ~/.xinitrc&lt;br /&gt;
&lt;br /&gt;
redshift -O 5600&lt;br /&gt;
&lt;br /&gt;
while true; do&lt;br /&gt;
    batt=&amp;quot;$(sysctl -n hw.sensors.acpibat0.watthour3 | cut -f1,2 -d&amp;quot; &amp;quot;)&amp;quot;&lt;br /&gt;
    xsetroot -name &amp;quot;$batt&amp;quot;&lt;br /&gt;
    sleep 60&lt;br /&gt;
done &amp;amp;&lt;br /&gt;
xsetroot -solid steelblue  &amp;amp;&lt;br /&gt;
exec dwm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://jonls.dk/redshift/ redshift] утилита предназначена для регулировки цветовой температуры экрана в зависимости от вашего окружения. Это работает и в случае ручной регулировки цветовой температуры. Например, подсветка экрана IBM T60p автора статьи по умолчанию &amp;quot;холодная&amp;quot;, поэтому он изменяет значение цветовую температуры с 6500K до 5600K. &lt;br /&gt;
&lt;br /&gt;
Запускаем циклический опрос сенсора времени жизни батареи (battery life (Wh)) с интервалом один раз в 60 сек, а полученное значение выводим &amp;quot;поверх&amp;quot; корневого окна. &lt;br /&gt;
&lt;br /&gt;
Установим цвет фона и запустить свой любимый менеджер окон.&lt;br /&gt;
&lt;br /&gt;
==Переключение на внешний монитор==&lt;br /&gt;
Разрешение дисплея на рабочем месте немного выше чем дисплея ноутбука, небольшой скрипт для переключения на внешний монитор:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
xrandr --output LVDS --off&lt;br /&gt;
xrandr --output VGA-0 --off&lt;br /&gt;
xrandr --output DVI-0 --auto&lt;br /&gt;
redshift -O 6200&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
По моему опыту, X11 иногда скрывает курсор мыши, если возобновление работы системы происходило при подключенном внешнем мониторе. Для решения я использовал [http://sourceforge.net/projects/unclutter/ unclutter] - утилиту скрывающую курсор мыши когда он неподвижен и восстанавливающую его как только он переместился.&lt;br /&gt;
&amp;lt;pre&amp;gt;pkill unclutter&lt;br /&gt;
unclutter -idle 1 -root -grab -visible &amp;amp;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Лично мне больше нравится немного другой вариант:&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --query | grep &amp;quot;VGA1 connected&amp;quot; &amp;amp;&amp;amp; xrandr --output LVDS1 --off --output VGA1 --mode 1920x1080&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Подключение проектора==&lt;br /&gt;
&lt;br /&gt;
Если X-сервер запускается когда проектор подключен к VGA порту, то скорее всего сервер установит для встроенного и внешнего дисплеев одинаковое разрешение. На T60 например, это можно изменить:&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --output LVDS --mode 1400x1050&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используя --query можно узнать какие режимы поддерживаются дисплеем, then I set up a viewport that pans with the mouse pointer&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --output VGA-0 --mode 1024x768 --panning 1400x1050&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же, я добавил в .xinitrc команды для автоматической конфигурации дисплеев, если при запуске X-сервера внешний монитор уже подключен:&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --query | grep &amp;quot;DVI-0 connected&amp;quot; &amp;amp;&amp;amp; ~/bin/docked-dvi&lt;br /&gt;
xrandr --query | grep &amp;quot;VGA-0 connected&amp;quot; &amp;amp;&amp;amp; ~/bin/docked-vga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==tmux - мультиплексор терминалов==&lt;br /&gt;
&lt;br /&gt;
Несколько дополнений в мою конфигурацию мультиплексора терминалов. Я часто запускаю [http://entrproject.org/ entr] в небольшой панели снизу. &lt;br /&gt;
&amp;lt;pre&amp;gt;bind-key C-t split-window -p 25&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Не знаю палитры цветов терминала, но её можно распечатать:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/ksh&lt;br /&gt;
&lt;br /&gt;
for i in `jot 255`; do&lt;br /&gt;
  printf &amp;quot;\033[38;5;${i}mcolour${i}\n&amp;quot;&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Фон строки состояния и границы активного окна ярко-зеленый:&lt;br /&gt;
&amp;lt;pre&amp;gt;set -g status-bg colour118&lt;br /&gt;
set -g pane-active-border-fg colour118&lt;br /&gt;
set -g pane-border-fg colour30&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица с сопоставлением [[&amp;quot;Горячие&amp;quot; клавиши tmux и screen | клавиатурных комбинаций для tmux и screen]]&lt;br /&gt;
&lt;br /&gt;
==Использование шифрования для дисков==&lt;br /&gt;
OpenBSD предоставляет программный RAID как виртуальный хост-адаптер шины ([https://ru.wikipedia.org/wiki/HBA HBA]). Также HBA применяется для настройки и использования шифрования дисков. Посредством [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/disklabel.8 disklabel(8)] установим тип раздела RAID (в оригинальной статье автор использует блочное устройство &amp;#039;&amp;#039;&amp;#039;/dev/sd0c&amp;#039;&amp;#039;&amp;#039; как шифрованный том, монтируемый в &amp;#039;&amp;#039;&amp;#039;/home&amp;#039;&amp;#039;&amp;#039;):   &lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo disklabel -E /dev/sd0c&lt;br /&gt;
Label editor (enter &amp;#039;?&amp;#039; for help at any prompt)&lt;br /&gt;
  g:         55641600        100653824    RAID&lt;br /&gt;
&amp;gt; m g&lt;br /&gt;
offset: [100653824]&lt;br /&gt;
size: [55641600]&lt;br /&gt;
FS type: [4.2BSD] RAID&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для настройки шифрования используем [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/bioctl.8 bioctl(8)] с параметром -c C: &lt;br /&gt;
&amp;lt;pre&amp;gt;# bioctl -c C -l /dev/sd0g softraid0&lt;br /&gt;
New passphrase: My Crypto Pass Phrase&lt;br /&gt;
Re-type passphrase: My Crypto Pass Phrase&lt;br /&gt;
softraid0: CRYPTO volume attached as sd1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Монтирование выполняется той же командой, журнал ядра сообщит о появлении нового виртуального устройства:&lt;br /&gt;
&amp;lt;pre&amp;gt;sd1 at scsibus2 targ 1 lun 0: &amp;amp;lt;OPENBSD, SR CRYPTO, 005&amp;amp;gt; SCSI2 0/direct fixed&lt;br /&gt;
sd1: 27168MB, 512 bytes/sector, 55641072 sectors&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разметим и отформатируем шифрованный том:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo disklabel -E /dev/sd1c&lt;br /&gt;
...&lt;br /&gt;
$ sudo newfs /dev/rsd1a&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устройства в OpenBSD могут монтироваться по имени или с использованием disklabel UID, который случайным образом генерируется при разметке:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ disklabel /dev/sd1a | grep uid&lt;br /&gt;
duid: 779d87bac3905122&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полученный UID используется для монтирования тома, что позволяет избежать путаницы при. Код ниже, позволит выполнить четыре попытки ввода ключевой фразы для дешифрации тома:&lt;br /&gt;
&amp;lt;pre&amp;gt;#/etc/rc.local&lt;br /&gt;
for attept in 1 2 3 4; do&lt;br /&gt;
  bioctl -c C -l c3e2f405c96a8e10.g softraid0 &amp;amp;&amp;amp; break&lt;br /&gt;
  sleep 1&lt;br /&gt;
done&lt;br /&gt;
fsck /dev/rsd1a&lt;br /&gt;
mount -o nodev,nosuid,softdep 779d87bac3905122.a /home&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если необходим полностью шифрованный загрузочный том, ознакомьтесь с [http://www.tedunangst.com/flak/post/OpenBSD-softraid-crypto-boot публикацией] Ted Unangst.&lt;br /&gt;
&lt;br /&gt;
==Уменьшим &amp;quot;возню&amp;quot; с паролями с помощью YubiKey==&lt;br /&gt;
&lt;br /&gt;
[https://www.yubico.com/ Yubico] выпускают небольшие аппаратные ключи, которые используются для авторизации с использованием одноразовых паролей ([https://ru.wikipedia.org/wiki/%D0%9E%D0%B4%D0%BD%D0%BE%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9_%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C OTP]). Yubikey-personalization-gui - это QT-приложение, которое может быть использовано для записи приватных ключей в один из двух слотов. Запишите без пробелов 6-байт в файл приватной? идентификации и 16-байт в файл ключа: &lt;br /&gt;
&amp;lt;pre&amp;gt;echo &amp;quot;5c e1 e0 3e 63 a4&amp;quot; \&lt;br /&gt;
        | tr -d &amp;#039; &amp;#039; &amp;gt; /var/db/yubikey/$USER.id&lt;br /&gt;
echo &amp;quot;57 e3 af 3e 9b 51 2b 10 58 7d 33 fb d9 08 ef 7b&amp;quot; \&lt;br /&gt;
        | tr -d &amp;#039; &amp;#039; &amp;gt; /var/db/yubikey/$USER.key&lt;br /&gt;
chmod 600 /var/db/yubikey/$USER.*&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настроим YubiKey в качестве метода локальной авторизации и авторизации через SSH. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# Default allowed authentication styles&lt;br /&gt;
auth-defaults:auth=yubikey,passwd,skey:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перестроим БД авторизации - &amp;#039;&amp;#039;&amp;#039;login.conf&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cap_mkdb /etc/login.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для уменьшения количества вводимых символов, второй слот YubiKey используется как относительно безопасный метод активации [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent&amp;amp;format=html ssh-agent], что позволяет соединяться с удалёнными системами, на которых уже присутствует мой публичный ключ (RSA, DSA, ECDSA). Для этого, используя yubikey-personalization-gui создайте случайный ключ, а затем установите слот 2 в режим &amp;quot;запрос-ответ&amp;quot; (challеnge-response): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hexkey=$(echo &amp;quot;dd b6 68 81 c9 73 f9 64 84 21 7e f0 69 e8 2c 28 1b 6c ad e2&amp;quot; | tr -d &amp;#039; &amp;#039;)&lt;br /&gt;
ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -a $hexkey&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем создайте новую пару SSH-ключей с помощью ответов ykchalresp. Скрипт ykauth, установлен в ~/bin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
ykchalresp -2 &amp;quot;$(whoami)@$(hostname)&amp;quot; | cut -c 1-15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И наконец, настроим автоматическую активацию ключей при входе в систему:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh-add -l &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 || {&lt;br /&gt;
    eval `ssh-agent`&lt;br /&gt;
    DISPLAY=&amp;#039;&amp;#039; SSH_ASKPASS=&amp;#039;/home/eradman/bin/ykauth&amp;#039; ssh-add &amp;lt; /dev/null&lt;br /&gt;
    exec ksh&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройка производительности==&lt;br /&gt;
&lt;br /&gt;
Нет документов описывающих способы адаптации OpenBSD для рабочей станции. Я делаю следующие изменения. Первое, позволяю приложениям использовать больше оперативной памяти:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/login.conf&lt;br /&gt;
staff:\&lt;br /&gt;
        :datasize-cur=2048M:\&lt;br /&gt;
        :datasize-max=2048M:\&lt;br /&gt;
        :datasize=2048M:\&lt;br /&gt;
        :openfiles-cur=1024:\&lt;br /&gt;
        :stacksize-cur=16M:\&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если знаете другие способы улучшить производительность, пожалуйста [mailto:ericshane@eradman.com сообщите мне].&lt;br /&gt;
&lt;br /&gt;
==Блокировка экрана==&lt;br /&gt;
&lt;br /&gt;
Для автоматической блокировки экрана после 5 минут неактивности, добавьте указанный ниже код в &amp;#039;&amp;#039;&amp;#039;~/.xinitrc&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;xidle -timeout 300 -program &amp;quot;/usr/X11R6/bin/xlock -mode blank&amp;quot; &amp;amp;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы это сработало когда система переходит в режим сна (suspended), необходимо в &amp;#039;&amp;#039;&amp;#039;/etc/apm/suspend&amp;#039;&amp;#039;&amp;#039; добавить сигнал &amp;#039;&amp;#039;&amp;#039;xidle&amp;#039;&amp;#039;&amp;#039; для запуска программы блокировки. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
pkill -USR1 xidle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Смена сетевого подключения==&lt;br /&gt;
&lt;br /&gt;
Переключение из одной сети в другую, например из беспроводной в проводную, не является очевидным в BSD. &lt;br /&gt;
&lt;br /&gt;
Во-первых, необходимо остановить dhcp-клиент, чтобы исключить попытки повторной активации сетевого интерфейса: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pkill dhclient&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем удалить установленный IP-адрес и деактивировать сетевой интерфейс:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig wpi0 -inet down&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удаление IP-адреса так же сбрасывает локальные маршруты. Сбросить все прочие маршруты:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;route -n flush&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-n предотвращает попытки route пытаться разрешать имена хостов.&lt;br /&gt;
&lt;br /&gt;
Если для подключения к беспроводной сети использовался WPA, следует удалить параметры подключения к сети, чтобы получать широковещательные SSID других сетей: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig wpi0 nwid &amp;quot;Mobile Hotspot&amp;quot; wpa wpakey 09123456789&lt;br /&gt;
ifconfig wpi0 -nwid -wpa -wpakey # use broadcast id&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=OpenBSD_%D0%BD%D0%B0_%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B9_%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D0%B8&amp;diff=433</id>
		<title>OpenBSD на рабочей станции</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=OpenBSD_%D0%BD%D0%B0_%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B9_%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D0%B8&amp;diff=433"/>
		<updated>2015-12-28T06:17:57Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Переключение на внешний монитор */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вольный перевод статьи [http://eradman.com Eric Radman] [http://eradman.com/posts/openbsd-workstation.html An OpenBSD Workstation] с некоторыми дополнениями учитывающими изменения пришедшие в свежих релизах.&lt;br /&gt;
&lt;br /&gt;
== Выключение системы нажатием на кнопку питания ==&lt;br /&gt;
&lt;br /&gt;
Безопасное выключение компьютера нажатием на кнопку питания возможно после передачи ядру параметра: &lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/sysctl.conf&lt;br /&gt;
hw.allowpowerdown=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Параметр может быть установлен только до перехода системы к уровню безопасности 1, подробнее в [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man7/securelevel.7?query=securelevel securelevel(7)].&lt;br /&gt;
&lt;br /&gt;
== Больше никаких раздражающих сигналов ==&lt;br /&gt;
&lt;br /&gt;
Одна из многих вещей, которую узнаешь прочитав [http://nostarch.com/obenbsd2e Absolute OpenBSD] - это как отключить раздражающий [http://en.wikipedia.org/wiki/Bell_character сигнал]:&lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/wsconsctl.conf&lt;br /&gt;
keyboard.bell.volume=0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начиная с релиза [http://www.openbsd.org/54.html 5.4] способ с &amp;#039;&amp;#039;&amp;#039;wsconsctl&amp;#039;&amp;#039;&amp;#039; больше не работает. Отключить сигнал можно так:&lt;br /&gt;
&amp;lt;pre&amp;gt;# ~/.xinitrc&lt;br /&gt;
xset -b&amp;lt;/pre&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/rc.conf.local&lt;br /&gt;
mixerctl inputs.spkr.mute=on&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Монтирование съемных устройств пользователем ==&lt;br /&gt;
&lt;br /&gt;
Удобно, когда можно смонтировать DVD или флеш-носитель без повышения привилегий, используя для этого членство в группе &amp;#039;&amp;#039;&amp;#039;operator&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;# usermod -G operator eradman&lt;br /&gt;
# chmod g=rw /dev/cd0*&amp;lt;/pre&amp;gt;&lt;br /&gt;
Остаётся изменить параметр ядра и можно пользоваться.&lt;br /&gt;
&amp;lt;pre&amp;gt;# sysctl kern.usermount=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mkdir -p mount/cdrom&lt;br /&gt;
$ mount /dev/cd0c mount/cdrom&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Suspend &amp;amp; Resume ==&lt;br /&gt;
&lt;br /&gt;
OpenBSD обладает хорошей поддержкой ACPI, подробнее в [http://www.openbsd.org/cgi-bin/man.cgi?query=apmd&amp;amp;apropos=0&amp;amp;sektion=0&amp;amp;manpath=OpenBSD+Current&amp;amp;arch=i386&amp;amp;format=html apmd(8)]. zzz и ZZZ быстрый способ перехода в режимы suspend и hibernate, если apmd запускается при загрузке.&lt;br /&gt;
&amp;lt;pre&amp;gt;# rc.conf.local&lt;br /&gt;
apmd_flags=&amp;quot;-A&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;-A&amp;#039;&amp;#039;&amp;#039;&amp;quot; будет автоматически масштабировать частоту CPU для оптимального энергопотребления.&lt;br /&gt;
&lt;br /&gt;
Начиная с выпуска [http://www.openbsd.org/56.html 5.6], управление сервисами осуществляется посредством утилиты [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/rcctl.8?query=rcctl rcctl(8)].&lt;br /&gt;
&amp;lt;pre&amp;gt;# rcctl getdef apmd        &lt;br /&gt;
apmd_flags=NO&lt;br /&gt;
&amp;amp;#8230;&lt;br /&gt;
# rcctl enable apmd&lt;br /&gt;
&amp;amp;#8230;&lt;br /&gt;
# rcctl getdef apmd        &lt;br /&gt;
apmd_flags=&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X Configuration: .xinitrc ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# ~/.xinitrc&lt;br /&gt;
&lt;br /&gt;
redshift -O 5600&lt;br /&gt;
&lt;br /&gt;
while true; do&lt;br /&gt;
    batt=&amp;quot;$(sysctl -n hw.sensors.acpibat0.watthour3 | cut -f1,2 -d&amp;quot; &amp;quot;)&amp;quot;&lt;br /&gt;
    xsetroot -name &amp;quot;$batt&amp;quot;&lt;br /&gt;
    sleep 60&lt;br /&gt;
done &amp;amp;&lt;br /&gt;
xsetroot -solid steelblue  &amp;amp;&lt;br /&gt;
exec dwm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://jonls.dk/redshift/ redshift] утилита предназначена для регулировки цветовой температуры экрана в зависимости от вашего окружения. Это работает и в случае ручной регулировки цветовой температуры. Например, подсветка экрана IBM T60p автора статьи по умолчанию &amp;quot;холодная&amp;quot;, поэтому он изменяет значение цветовую температуры с 6500K до 5600K. &lt;br /&gt;
&lt;br /&gt;
Запускаем циклический опрос сенсора времени жизни батареи (battery life (Wh)) с интервалом один раз в 60 сек, а полученное значение выводим &amp;quot;поверх&amp;quot; корневого окна. &lt;br /&gt;
&lt;br /&gt;
Установим цвет фона и запустить свой любимый менеджер окон.&lt;br /&gt;
&lt;br /&gt;
==Переключение на внешний монитор==&lt;br /&gt;
Разрешение дисплея на рабочем месте немного выше чем дисплея ноутбука, небольшой скрипт для переключения на внешний монитор:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
xrandr --output LVDS --off&lt;br /&gt;
xrandr --output VGA-0 --off&lt;br /&gt;
xrandr --output DVI-0 --auto&lt;br /&gt;
redshift -O 6200&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
По моему опыту, X11 иногда скрывает курсор мыши, если возобновление работы системы происходило при подключенном внешнем мониторе. Для решения я использовал [http://sourceforge.net/projects/unclutter/ unclutter] - утилиту скрывающую курсор мыши когда он неподвижен и восстанавливающую его как только он переместился.&lt;br /&gt;
&amp;lt;pre&amp;gt;pkill unclutter&lt;br /&gt;
unclutter -idle 1 -root -grab -visible &amp;amp;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Лично мне больше нравится немного другой вариант:&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --query | grep &amp;quot;VGA1 connected&amp;quot; &amp;amp;&amp;amp; xrandr --output LVDS1 --off --output VGA1 --mode 1920x1080&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Подключение проектора==&lt;br /&gt;
&lt;br /&gt;
Если X-сервер запускается когда проектор подключен к VGA порту, то скорее всего сервер установит для встроенного и внешнего дисплеев одинаковое разрешение. На T60 например, это можно изменить:&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --output LVDS --mode 1400x1050&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используя --query можно узнать какие режимы поддерживаются дисплеем, then I set up a viewport that pans with the mouse pointer&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --output VGA-0 --mode 1024x768 --panning 1400x1050&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же, я добавил в .xinitrc команды для автоматической конфигурации дисплеев, если при запуске X-сервера внешний монитор уже подключен:&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --query | grep &amp;quot;DVI-0 connected&amp;quot; &amp;amp;&amp;amp; ~/bin/docked-dvi&lt;br /&gt;
xrandr --query | grep &amp;quot;VGA-0 connected&amp;quot; &amp;amp;&amp;amp; ~/bin/docked-vga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==tmux - мультиплексор терминалов==&lt;br /&gt;
&lt;br /&gt;
Несколько дополнений в мою конфигурацию мультиплексора терминалов. Я часто запускаю [http://entrproject.org/ entr] в небольшой панели снизу. &lt;br /&gt;
&amp;lt;pre&amp;gt;bind-key C-t split-window -p 25&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Не знаю палитры цветов терминала, но её можно распечатать:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/ksh&lt;br /&gt;
&lt;br /&gt;
for i in `jot 255`; do&lt;br /&gt;
  printf &amp;quot;\033[38;5;${i}mcolour${i}\n&amp;quot;&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Фон строки состояния и границы активного окна ярко-зеленый:&lt;br /&gt;
&amp;lt;pre&amp;gt;set -g status-bg colour118&lt;br /&gt;
set -g pane-active-border-fg colour118&lt;br /&gt;
set -g pane-border-fg colour30&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица с сопоставлением [[&amp;quot;Горячие&amp;quot; клавиши tmux и screen | клавиатурных комбинаций для tmux и screen]]&lt;br /&gt;
&lt;br /&gt;
==Использование шифрования для дисков==&lt;br /&gt;
OpenBSD предоставляет программный RAID как виртуальный хост-адаптер шины ([https://ru.wikipedia.org/wiki/HBA HBA]). Также HBA применяется для настройки и использования шифрования дисков. Посредством [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/disklabel.8 disklabel(8)] установим тип раздела RAID (в оригинальной статье автор использует блочное устройство &amp;#039;&amp;#039;&amp;#039;/dev/sd0c&amp;#039;&amp;#039;&amp;#039; как шифрованный том, монтируемый в &amp;#039;&amp;#039;&amp;#039;/home&amp;#039;&amp;#039;&amp;#039;):   &lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo disklabel -E /dev/sd0c&lt;br /&gt;
Label editor (enter &amp;#039;?&amp;#039; for help at any prompt)&lt;br /&gt;
  g:         55641600        100653824    RAID&lt;br /&gt;
&amp;gt; m g&lt;br /&gt;
offset: [100653824]&lt;br /&gt;
size: [55641600]&lt;br /&gt;
FS type: [4.2BSD] RAID&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для настройки шифрования используем [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/bioctl.8 bioctl(8)] с параметром -c C: &lt;br /&gt;
&amp;lt;pre&amp;gt;# bioctl -c C -l /dev/sd0g softraid0&lt;br /&gt;
New passphrase: My Crypto Pass Phrase&lt;br /&gt;
Re-type passphrase: My Crypto Pass Phrase&lt;br /&gt;
softraid0: CRYPTO volume attached as sd1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Монтирование выполняется той же командой, журнал ядра сообщит о появлении нового виртуального устройства:&lt;br /&gt;
&amp;lt;pre&amp;gt;sd1 at scsibus2 targ 1 lun 0: &amp;amp;lt;OPENBSD, SR CRYPTO, 005&amp;amp;gt; SCSI2 0/direct fixed&lt;br /&gt;
sd1: 27168MB, 512 bytes/sector, 55641072 sectors&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разметим и отформатируем шифрованный том:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo disklabel -E /dev/sd1c&lt;br /&gt;
...&lt;br /&gt;
$ sudo newfs /dev/rsd1a&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устройства в OpenBSD могут монтироваться по имени или с использованием disklabel UID, который случайным образом генерируется при разметке:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ disklabel /dev/sd1a | grep uid&lt;br /&gt;
duid: 779d87bac3905122&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полученный UID используется для монтирования тома, что позволяет избежать путаницы при. Код ниже, позволит выполнить четыре попытки ввода ключевой фразы для дешифрации тома:&lt;br /&gt;
&amp;lt;pre&amp;gt;#/etc/rc.local&lt;br /&gt;
for attept in 1 2 3 4; do&lt;br /&gt;
  bioctl -c C -l c3e2f405c96a8e10.g softraid0 &amp;amp;&amp;amp; break&lt;br /&gt;
  sleep 1&lt;br /&gt;
done&lt;br /&gt;
fsck /dev/rsd1a&lt;br /&gt;
mount -o nodev,nosuid,softdep 779d87bac3905122.a /home&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если необходим полностью шифрованный загрузочный том, ознакомьтесь с [http://www.tedunangst.com/flak/post/OpenBSD-softraid-crypto-boot публикацией] Ted Unangst.&lt;br /&gt;
&lt;br /&gt;
==Уменьшим &amp;quot;возню&amp;quot; с паролями с помощью YubiKey==&lt;br /&gt;
&lt;br /&gt;
[https://www.yubico.com/ Yubico] выпускают небольшие аппаратные ключи, которые используются для авторизации с использованием одноразовых паролей ([https://ru.wikipedia.org/wiki/%D0%9E%D0%B4%D0%BD%D0%BE%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9_%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C OTP]). Yubikey-personalization-gui - это QT-приложение, которое может быть использовано для записи приватных ключей в один из двух слотов. Запишите без пробелов 6-байт в файл приватной? идентификации и 16-байт в файл ключа: &lt;br /&gt;
&amp;lt;pre&amp;gt;echo &amp;quot;5c e1 e0 3e 63 a4&amp;quot; \&lt;br /&gt;
        | tr -d &amp;#039; &amp;#039; &amp;gt; /var/db/yubikey/$USER.id&lt;br /&gt;
echo &amp;quot;57 e3 af 3e 9b 51 2b 10 58 7d 33 fb d9 08 ef 7b&amp;quot; \&lt;br /&gt;
        | tr -d &amp;#039; &amp;#039; &amp;gt; /var/db/yubikey/$USER.key&lt;br /&gt;
chmod 600 /var/db/yubikey/$USER.*&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настроим YubiKey в качестве метода локальной авторизации и авторизации через SSH. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# Default allowed authentication styles&lt;br /&gt;
auth-defaults:auth=yubikey,passwd,skey:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перестроим БД авторизации - &amp;#039;&amp;#039;&amp;#039;login.conf&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cap_mkdb /etc/login.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для уменьшения количества вводимых символов, второй слот YubiKey используется как относительно безопасный метод активации [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent&amp;amp;format=html ssh-agent], что позволяет соединяться с удалёнными системами, на которых уже присутствует мой публичный ключ (RSA, DSA, ECDSA). Для этого, используя yubikey-personalization-gui создайте случайный ключ, а затем установите слот 2 в режим &amp;quot;запрос-ответ&amp;quot; (challеnge-response): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hexkey=$(echo &amp;quot;dd b6 68 81 c9 73 f9 64 84 21 7e f0 69 e8 2c 28 1b 6c ad e2&amp;quot; | tr -d &amp;#039; &amp;#039;)&lt;br /&gt;
ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -a $hexkey&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем создайте новую пару SSH-ключей с помощью ответов ykchalresp. Скрипт ykauth, установлен в ~/bin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
ykchalresp -2 &amp;quot;$(whoami)@$(hostname)&amp;quot; | cut -c 1-15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И наконец, настроим автоматическую активацию ключей при входе в систему:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh-add -l &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 || {&lt;br /&gt;
    eval `ssh-agent`&lt;br /&gt;
    DISPLAY=&amp;#039;&amp;#039; SSH_ASKPASS=&amp;#039;/home/eradman/bin/ykauth&amp;#039; ssh-add &amp;lt; /dev/null&lt;br /&gt;
    exec ksh&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройка производительности==&lt;br /&gt;
&lt;br /&gt;
Нет документов описывающих способы адаптации OpenBSD для рабочей станции. Я делаю следующие изменения. Первое, позволяю приложениям использовать больше оперативной памяти:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/login.conf&lt;br /&gt;
staff:\&lt;br /&gt;
        :datasize-cur=2048M:\&lt;br /&gt;
        :datasize-max=2048M:\&lt;br /&gt;
        :datasize=2048M:\&lt;br /&gt;
        :openfiles-cur=1024:\&lt;br /&gt;
        :stacksize-cur=16M:\&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если знаете другие способы улучшить производительность, пожалуйста [mailto:ericshane@eradman.com сообщите мне].&lt;br /&gt;
&lt;br /&gt;
==Блокировка экрана==&lt;br /&gt;
&lt;br /&gt;
Для автоматической блокировки экрана после 5 минут неактивности, добавьте указанный ниже код в &amp;#039;&amp;#039;&amp;#039;~/.xinitrc&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;xidle -timeout 300 -program &amp;quot;/usr/X11R6/bin/xlock -mode blank&amp;quot; &amp;amp;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы это сработало когда система переходит в режим сна (suspended), необходимо в &amp;#039;&amp;#039;&amp;#039;/etc/apm/suspend&amp;#039;&amp;#039;&amp;#039; добавить сигнал &amp;#039;&amp;#039;&amp;#039;xidle&amp;#039;&amp;#039;&amp;#039; для запуска программы блокировки. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
pkill -USR1 xidle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Смена сетевого подключения==&lt;br /&gt;
&lt;br /&gt;
Переключение из одной сети в другую, например из беспроводной в проводную, не является очевидным в BSD. &lt;br /&gt;
&lt;br /&gt;
Во-первых, необходимо остановить dhcp-клиент, чтобы исключить попытки повторной активации сетевого интерфейса: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pkill dhclient&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем удалить установленный IP-адрес и деактивировать сетевой интерфейс:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig wpi0 -inet down&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удаление IP-адреса так же сбрасывает локальные маршруты. Сбросить все прочие маршруты:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;route -n flush&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-n предотвращает попытки route пытаться разрешать имена хостов.&lt;br /&gt;
&lt;br /&gt;
Если для подключения к беспроводной сети использовался WPA, следует удалить параметры подключения к сети, чтобы получать широковещательные SSID других сетей: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig wpi0 nwid &amp;quot;Mobile Hotspot&amp;quot; wpa wpakey 09123456789&lt;br /&gt;
ifconfig wpi0 -nwid -wpa -wpakey # use broadcast id&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=OpenBSD_%D0%BD%D0%B0_%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B9_%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D0%B8&amp;diff=432</id>
		<title>OpenBSD на рабочей станции</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=OpenBSD_%D0%BD%D0%B0_%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B5%D0%B9_%D1%81%D1%82%D0%B0%D0%BD%D1%86%D0%B8%D0%B8&amp;diff=432"/>
		<updated>2015-12-28T05:24:12Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Suspend &amp;amp; Resume */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Вольный перевод статьи [http://eradman.com Eric Radman] [http://eradman.com/posts/openbsd-workstation.html An OpenBSD Workstation] с некоторыми дополнениями учитывающими изменения пришедшие в свежих релизах.&lt;br /&gt;
&lt;br /&gt;
== Выключение системы нажатием на кнопку питания ==&lt;br /&gt;
&lt;br /&gt;
Безопасное выключение компьютера нажатием на кнопку питания возможно после передачи ядру параметра: &lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/sysctl.conf&lt;br /&gt;
hw.allowpowerdown=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
Параметр может быть установлен только до перехода системы к уровню безопасности 1, подробнее в [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man7/securelevel.7?query=securelevel securelevel(7)].&lt;br /&gt;
&lt;br /&gt;
== Больше никаких раздражающих сигналов ==&lt;br /&gt;
&lt;br /&gt;
Одна из многих вещей, которую узнаешь прочитав [http://nostarch.com/obenbsd2e Absolute OpenBSD] - это как отключить раздражающий [http://en.wikipedia.org/wiki/Bell_character сигнал]:&lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/wsconsctl.conf&lt;br /&gt;
keyboard.bell.volume=0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Начиная с релиза [http://www.openbsd.org/54.html 5.4] способ с &amp;#039;&amp;#039;&amp;#039;wsconsctl&amp;#039;&amp;#039;&amp;#039; больше не работает. Отключить сигнал можно так:&lt;br /&gt;
&amp;lt;pre&amp;gt;# ~/.xinitrc&lt;br /&gt;
xset -b&amp;lt;/pre&amp;gt;&lt;br /&gt;
или&lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/rc.conf.local&lt;br /&gt;
mixerctl inputs.spkr.mute=on&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Монтирование съемных устройств пользователем ==&lt;br /&gt;
&lt;br /&gt;
Удобно, когда можно смонтировать DVD или флеш-носитель без повышения привилегий, используя для этого членство в группе &amp;#039;&amp;#039;&amp;#039;operator&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&amp;lt;pre&amp;gt;# usermod -G operator eradman&lt;br /&gt;
# chmod g=rw /dev/cd0*&amp;lt;/pre&amp;gt;&lt;br /&gt;
Остаётся изменить параметр ядра и можно пользоваться.&lt;br /&gt;
&amp;lt;pre&amp;gt;# sysctl kern.usermount=1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mkdir -p mount/cdrom&lt;br /&gt;
$ mount /dev/cd0c mount/cdrom&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Suspend &amp;amp; Resume ==&lt;br /&gt;
&lt;br /&gt;
OpenBSD обладает хорошей поддержкой ACPI, подробнее в [http://www.openbsd.org/cgi-bin/man.cgi?query=apmd&amp;amp;apropos=0&amp;amp;sektion=0&amp;amp;manpath=OpenBSD+Current&amp;amp;arch=i386&amp;amp;format=html apmd(8)]. zzz и ZZZ быстрый способ перехода в режимы suspend и hibernate, если apmd запускается при загрузке.&lt;br /&gt;
&amp;lt;pre&amp;gt;# rc.conf.local&lt;br /&gt;
apmd_flags=&amp;quot;-A&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;quot;&amp;#039;&amp;#039;&amp;#039;-A&amp;#039;&amp;#039;&amp;#039;&amp;quot; будет автоматически масштабировать частоту CPU для оптимального энергопотребления.&lt;br /&gt;
&lt;br /&gt;
Начиная с выпуска [http://www.openbsd.org/56.html 5.6], управление сервисами осуществляется посредством утилиты [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/rcctl.8?query=rcctl rcctl(8)].&lt;br /&gt;
&amp;lt;pre&amp;gt;# rcctl getdef apmd        &lt;br /&gt;
apmd_flags=NO&lt;br /&gt;
&amp;amp;#8230;&lt;br /&gt;
# rcctl enable apmd&lt;br /&gt;
&amp;amp;#8230;&lt;br /&gt;
# rcctl getdef apmd        &lt;br /&gt;
apmd_flags=&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== X Configuration: .xinitrc ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# ~/.xinitrc&lt;br /&gt;
&lt;br /&gt;
redshift -O 5600&lt;br /&gt;
&lt;br /&gt;
while true; do&lt;br /&gt;
    batt=&amp;quot;$(sysctl -n hw.sensors.acpibat0.watthour3 | cut -f1,2 -d&amp;quot; &amp;quot;)&amp;quot;&lt;br /&gt;
    xsetroot -name &amp;quot;$batt&amp;quot;&lt;br /&gt;
    sleep 60&lt;br /&gt;
done &amp;amp;&lt;br /&gt;
xsetroot -solid steelblue  &amp;amp;&lt;br /&gt;
exec dwm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://jonls.dk/redshift/ redshift] утилита предназначена для регулировки цветовой температуры экрана в зависимости от вашего окружения. Это работает и в случае ручной регулировки цветовой температуры. Например, подсветка экрана IBM T60p автора статьи по умолчанию &amp;quot;холодная&amp;quot;, поэтому он изменяет значение цветовую температуры с 6500K до 5600K. &lt;br /&gt;
&lt;br /&gt;
Запускаем циклический опрос сенсора времени жизни батареи (battery life (Wh)) с интервалом один раз в 60 сек, а полученное значение выводим &amp;quot;поверх&amp;quot; корневого окна. &lt;br /&gt;
&lt;br /&gt;
Установим цвет фона и запустить свой любимый менеджер окон.&lt;br /&gt;
&lt;br /&gt;
==Переключение на внешний монитор==&lt;br /&gt;
Разрешение дисплея на рабочем месте немного выше чем дисплея ноутбука, небольшой скрипт для переключения на внешний монитор:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
xrandr --output LVDS --off&lt;br /&gt;
xrandr --output VGA-0 --off&lt;br /&gt;
xrandr --output DVI-0 --auto&lt;br /&gt;
redshift -O 6200&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Лично мне больше нравится немного другой вариант:&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --query | grep &amp;quot;VGA1 connected&amp;quot; &amp;amp;&amp;amp; xrandr --output LVDS1 --off --output VGA1 --mode 1920x1080&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Подключение проектора==&lt;br /&gt;
&lt;br /&gt;
Если X-сервер запускается когда проектор подключен к VGA порту, то скорее всего сервер установит для встроенного и внешнего дисплеев одинаковое разрешение. На T60 например, это можно изменить:&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --output LVDS --mode 1400x1050&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Используя --query можно узнать какие режимы поддерживаются дисплеем, then I set up a viewport that pans with the mouse pointer&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --output VGA-0 --mode 1024x768 --panning 1400x1050&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Так же, я добавил в .xinitrc команды для автоматической конфигурации дисплеев, если при запуске X-сервера внешний монитор уже подключен:&lt;br /&gt;
&amp;lt;pre&amp;gt;xrandr --query | grep &amp;quot;DVI-0 connected&amp;quot; &amp;amp;&amp;amp; ~/bin/docked-dvi&lt;br /&gt;
xrandr --query | grep &amp;quot;VGA-0 connected&amp;quot; &amp;amp;&amp;amp; ~/bin/docked-vga&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==tmux - мультиплексор терминалов==&lt;br /&gt;
&lt;br /&gt;
Несколько дополнений в мою конфигурацию мультиплексора терминалов. Я часто запускаю [http://entrproject.org/ entr] в небольшой панели снизу. &lt;br /&gt;
&amp;lt;pre&amp;gt;bind-key C-t split-window -p 25&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Не знаю палитры цветов терминала, но её можно распечатать:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/ksh&lt;br /&gt;
&lt;br /&gt;
for i in `jot 255`; do&lt;br /&gt;
  printf &amp;quot;\033[38;5;${i}mcolour${i}\n&amp;quot;&lt;br /&gt;
done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Фон строки состояния и границы активного окна ярко-зеленый:&lt;br /&gt;
&amp;lt;pre&amp;gt;set -g status-bg colour118&lt;br /&gt;
set -g pane-active-border-fg colour118&lt;br /&gt;
set -g pane-border-fg colour30&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Таблица с сопоставлением [[&amp;quot;Горячие&amp;quot; клавиши tmux и screen | клавиатурных комбинаций для tmux и screen]]&lt;br /&gt;
&lt;br /&gt;
==Использование шифрования для дисков==&lt;br /&gt;
OpenBSD предоставляет программный RAID как виртуальный хост-адаптер шины ([https://ru.wikipedia.org/wiki/HBA HBA]). Также HBA применяется для настройки и использования шифрования дисков. Посредством [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/disklabel.8 disklabel(8)] установим тип раздела RAID (в оригинальной статье автор использует блочное устройство &amp;#039;&amp;#039;&amp;#039;/dev/sd0c&amp;#039;&amp;#039;&amp;#039; как шифрованный том, монтируемый в &amp;#039;&amp;#039;&amp;#039;/home&amp;#039;&amp;#039;&amp;#039;):   &lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo disklabel -E /dev/sd0c&lt;br /&gt;
Label editor (enter &amp;#039;?&amp;#039; for help at any prompt)&lt;br /&gt;
  g:         55641600        100653824    RAID&lt;br /&gt;
&amp;gt; m g&lt;br /&gt;
offset: [100653824]&lt;br /&gt;
size: [55641600]&lt;br /&gt;
FS type: [4.2BSD] RAID&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для настройки шифрования используем [http://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/bioctl.8 bioctl(8)] с параметром -c C: &lt;br /&gt;
&amp;lt;pre&amp;gt;# bioctl -c C -l /dev/sd0g softraid0&lt;br /&gt;
New passphrase: My Crypto Pass Phrase&lt;br /&gt;
Re-type passphrase: My Crypto Pass Phrase&lt;br /&gt;
softraid0: CRYPTO volume attached as sd1&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Монтирование выполняется той же командой, журнал ядра сообщит о появлении нового виртуального устройства:&lt;br /&gt;
&amp;lt;pre&amp;gt;sd1 at scsibus2 targ 1 lun 0: &amp;amp;lt;OPENBSD, SR CRYPTO, 005&amp;amp;gt; SCSI2 0/direct fixed&lt;br /&gt;
sd1: 27168MB, 512 bytes/sector, 55641072 sectors&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разметим и отформатируем шифрованный том:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sudo disklabel -E /dev/sd1c&lt;br /&gt;
...&lt;br /&gt;
$ sudo newfs /dev/rsd1a&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Устройства в OpenBSD могут монтироваться по имени или с использованием disklabel UID, который случайным образом генерируется при разметке:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ disklabel /dev/sd1a | grep uid&lt;br /&gt;
duid: 779d87bac3905122&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Полученный UID используется для монтирования тома, что позволяет избежать путаницы при. Код ниже, позволит выполнить четыре попытки ввода ключевой фразы для дешифрации тома:&lt;br /&gt;
&amp;lt;pre&amp;gt;#/etc/rc.local&lt;br /&gt;
for attept in 1 2 3 4; do&lt;br /&gt;
  bioctl -c C -l c3e2f405c96a8e10.g softraid0 &amp;amp;&amp;amp; break&lt;br /&gt;
  sleep 1&lt;br /&gt;
done&lt;br /&gt;
fsck /dev/rsd1a&lt;br /&gt;
mount -o nodev,nosuid,softdep 779d87bac3905122.a /home&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если необходим полностью шифрованный загрузочный том, ознакомьтесь с [http://www.tedunangst.com/flak/post/OpenBSD-softraid-crypto-boot публикацией] Ted Unangst.&lt;br /&gt;
&lt;br /&gt;
==Уменьшим &amp;quot;возню&amp;quot; с паролями с помощью YubiKey==&lt;br /&gt;
&lt;br /&gt;
[https://www.yubico.com/ Yubico] выпускают небольшие аппаратные ключи, которые используются для авторизации с использованием одноразовых паролей ([https://ru.wikipedia.org/wiki/%D0%9E%D0%B4%D0%BD%D0%BE%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D1%8B%D0%B9_%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8C OTP]). Yubikey-personalization-gui - это QT-приложение, которое может быть использовано для записи приватных ключей в один из двух слотов. Запишите без пробелов 6-байт в файл приватной? идентификации и 16-байт в файл ключа: &lt;br /&gt;
&amp;lt;pre&amp;gt;echo &amp;quot;5c e1 e0 3e 63 a4&amp;quot; \&lt;br /&gt;
        | tr -d &amp;#039; &amp;#039; &amp;gt; /var/db/yubikey/$USER.id&lt;br /&gt;
echo &amp;quot;57 e3 af 3e 9b 51 2b 10 58 7d 33 fb d9 08 ef 7b&amp;quot; \&lt;br /&gt;
        | tr -d &amp;#039; &amp;#039; &amp;gt; /var/db/yubikey/$USER.key&lt;br /&gt;
chmod 600 /var/db/yubikey/$USER.*&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Настроим YubiKey в качестве метода локальной авторизации и авторизации через SSH. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# Default allowed authentication styles&lt;br /&gt;
auth-defaults:auth=yubikey,passwd,skey:&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Перестроим БД авторизации - &amp;#039;&amp;#039;&amp;#039;login.conf&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cap_mkdb /etc/login.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Для уменьшения количества вводимых символов, второй слот YubiKey используется как относительно безопасный метод активации [http://www.openbsd.org/cgi-bin/man.cgi?query=ssh-agent&amp;amp;format=html ssh-agent], что позволяет соединяться с удалёнными системами, на которых уже присутствует мой публичный ключ (RSA, DSA, ECDSA). Для этого, используя yubikey-personalization-gui создайте случайный ключ, а затем установите слот 2 в режим &amp;quot;запрос-ответ&amp;quot; (challеnge-response): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;hexkey=$(echo &amp;quot;dd b6 68 81 c9 73 f9 64 84 21 7e f0 69 e8 2c 28 1b 6c ad e2&amp;quot; | tr -d &amp;#039; &amp;#039;)&lt;br /&gt;
ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -a $hexkey&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем создайте новую пару SSH-ключей с помощью ответов ykchalresp. Скрипт ykauth, установлен в ~/bin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
ykchalresp -2 &amp;quot;$(whoami)@$(hostname)&amp;quot; | cut -c 1-15&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
И наконец, настроим автоматическую активацию ключей при входе в систему:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh-add -l &amp;gt; /dev/null 2&amp;gt;&amp;amp;1 || {&lt;br /&gt;
    eval `ssh-agent`&lt;br /&gt;
    DISPLAY=&amp;#039;&amp;#039; SSH_ASKPASS=&amp;#039;/home/eradman/bin/ykauth&amp;#039; ssh-add &amp;lt; /dev/null&lt;br /&gt;
    exec ksh&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Настройка производительности==&lt;br /&gt;
&lt;br /&gt;
Нет документов описывающих способы адаптации OpenBSD для рабочей станции. Я делаю следующие изменения. Первое, позволяю приложениям использовать больше оперативной памяти:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# /etc/login.conf&lt;br /&gt;
staff:\&lt;br /&gt;
        :datasize-cur=2048M:\&lt;br /&gt;
        :datasize-max=2048M:\&lt;br /&gt;
        :datasize=2048M:\&lt;br /&gt;
        :openfiles-cur=1024:\&lt;br /&gt;
        :stacksize-cur=16M:\&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Если знаете другие способы улучшить производительность, пожалуйста [mailto:ericshane@eradman.com сообщите мне].&lt;br /&gt;
&lt;br /&gt;
==Блокировка экрана==&lt;br /&gt;
&lt;br /&gt;
Для автоматической блокировки экрана после 5 минут неактивности, добавьте указанный ниже код в &amp;#039;&amp;#039;&amp;#039;~/.xinitrc&amp;#039;&amp;#039;&amp;#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;xidle -timeout 300 -program &amp;quot;/usr/X11R6/bin/xlock -mode blank&amp;quot; &amp;amp;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Чтобы это сработало когда система переходит в режим сна (suspended), необходимо в &amp;#039;&amp;#039;&amp;#039;/etc/apm/suspend&amp;#039;&amp;#039;&amp;#039; добавить сигнал &amp;#039;&amp;#039;&amp;#039;xidle&amp;#039;&amp;#039;&amp;#039; для запуска программы блокировки. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
pkill -USR1 xidle&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Смена сетевого подключения==&lt;br /&gt;
&lt;br /&gt;
Переключение из одной сети в другую, например из беспроводной в проводную, не является очевидным в BSD. &lt;br /&gt;
&lt;br /&gt;
Во-первых, необходимо остановить dhcp-клиент, чтобы исключить попытки повторной активации сетевого интерфейса: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pkill dhclient&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Затем удалить установленный IP-адрес и деактивировать сетевой интерфейс:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig wpi0 -inet down&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Удаление IP-адреса так же сбрасывает локальные маршруты. Сбросить все прочие маршруты:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;route -n flush&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-n предотвращает попытки route пытаться разрешать имена хостов.&lt;br /&gt;
&lt;br /&gt;
Если для подключения к беспроводной сети использовался WPA, следует удалить параметры подключения к сети, чтобы получать широковещательные SSID других сетей: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ifconfig wpi0 nwid &amp;quot;Mobile Hotspot&amp;quot; wpa wpakey 09123456789&lt;br /&gt;
ifconfig wpi0 -nwid -wpa -wpakey # use broadcast id&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=OpenBSD-Wiki:%D0%A2%D0%B5%D0%BA%D1%83%D1%89%D0%B8%D0%B5_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F&amp;diff=427</id>
		<title>OpenBSD-Wiki:Текущие события</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=OpenBSD-Wiki:%D0%A2%D0%B5%D0%BA%D1%83%D1%89%D0%B8%D0%B5_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F&amp;diff=427"/>
		<updated>2015-09-09T06:56:13Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Актуальное */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Актуальное ==&lt;br /&gt;
Собрано всё, что применимо к текущему релизу.&lt;br /&gt;
&lt;br /&gt;
* [[Введение в OpenBSD]]&lt;br /&gt;
* [[Аппаратное обеспечение и вопросы]]&lt;br /&gt;
* [[Деликатное проникновение в частную сеть]]&lt;br /&gt;
* [[IPsec между OpenBSD и Linux Ubuntu]]&lt;br /&gt;
* [[OpenSSH мини-руководство]]&lt;br /&gt;
* [[OpenSSH: настройки, секреты, трюки и советы]]&lt;br /&gt;
* [[OpenSSL: 101 прием работы]]&lt;br /&gt;
* [[RSA/DSA аутентификация в OpenSSH]]&lt;br /&gt;
* [[VPN на базе SSH]]&lt;br /&gt;
* [[Использование файла mk.conf]]&lt;br /&gt;
* [[Использование сетевой файловой системы NFS]]&lt;br /&gt;
* [[Написание OpenBSD Loadable Kernel Modules (LKM)]]&lt;br /&gt;
* [[Настройка sendmail]]&lt;br /&gt;
* [[Настройка PPPoE-сервера]]&lt;br /&gt;
* [[Настройка PPPoE-клиента с помощью pppoe(8)]]&lt;br /&gt;
* [[Новое IPSec howto]]&lt;br /&gt;
* [[Русификация OpenBSD 5.x]]&lt;br /&gt;
* [[Русификация OpenBSD]]&lt;br /&gt;
* [[Русификация консоли OpenBSD]]&lt;br /&gt;
* [[Создание загрузочной флешки]]&lt;br /&gt;
* [[Перечень Интернет ресурсов о OpenBSD]]&lt;br /&gt;
* [[Описание переменных sysctl]]&lt;br /&gt;
* [[Сборник советов с OpenBSD101.com]]&lt;br /&gt;
* [[Работа в качестве DHCP-сервера]]&lt;br /&gt;
* [[OpenBSD на рабочей станции]]&lt;br /&gt;
* [[&amp;quot;Горячие&amp;quot; клавиши tmux и screen]]&lt;br /&gt;
* [[OpenBSD doas]]&lt;br /&gt;
&lt;br /&gt;
=== Переводы ===&lt;br /&gt;
* [[C2k10-marco]]&lt;br /&gt;
* [[C2k10-guenther]]&lt;br /&gt;
* [[C2k10-ajacoutot]]&lt;br /&gt;
* [[C2k10-henning]]&lt;br /&gt;
* [[C2k10-tedu]]&lt;br /&gt;
&lt;br /&gt;
== Устаревшее ==&lt;br /&gt;
Данная информация сохранена для архивных версий.&lt;br /&gt;
&lt;br /&gt;
* [[Зеркалирование данных с помощью ccd]]&lt;br /&gt;
* [[Использование Bluetooth в OpenBSD]]&lt;br /&gt;
* [[Настройка GPRS]]&lt;br /&gt;
* [[Настройка Ethernet Bridge]]&lt;br /&gt;
* [[Привязка IP к MAC с помощью bridge(4) и pf(4)]]&lt;br /&gt;
&lt;br /&gt;
== Прочее ==&lt;br /&gt;
&lt;br /&gt;
* [[Резервная копия Wiki]]&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=OpenBSD-Wiki:%D0%A2%D0%B5%D0%BA%D1%83%D1%89%D0%B8%D0%B5_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F&amp;diff=426</id>
		<title>OpenBSD-Wiki:Текущие события</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=OpenBSD-Wiki:%D0%A2%D0%B5%D0%BA%D1%83%D1%89%D0%B8%D0%B5_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F&amp;diff=426"/>
		<updated>2015-09-09T06:55:39Z</updated>

		<summary type="html">&lt;p&gt;Ssh: /* Актуальное */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Актуальное ==&lt;br /&gt;
Собрано всё, что применимо к текущему релизу.&lt;br /&gt;
&lt;br /&gt;
* [[Введение в OpenBSD]]&lt;br /&gt;
* [[Аппаратное обеспечение и вопросы]]&lt;br /&gt;
* [[Деликатное проникновение в частную сеть]]&lt;br /&gt;
* [[IPsec между OpenBSD и Linux Ubuntu]]&lt;br /&gt;
* [[OpenSSH мини-руководство]]&lt;br /&gt;
* [[OpenSSH: настройки, секреты, трюки и советы]]&lt;br /&gt;
* [[OpenSSL: 101 прием работы]]&lt;br /&gt;
* [[RSA/DSA аутентификация в OpenSSH]]&lt;br /&gt;
* [[VPN на базе SSH]]&lt;br /&gt;
* [[Использование файла mk.conf]]&lt;br /&gt;
* [[Использование сетевой файловой системы NFS]]&lt;br /&gt;
* [[Написание OpenBSD Loadable Kernel Modules (LKM)]]&lt;br /&gt;
* [[Настройка sendmail]]&lt;br /&gt;
* [[Настройка PPPoE-сервера]]&lt;br /&gt;
* [[Настройка PPPoE-клиента с помощью pppoe(8)]]&lt;br /&gt;
* [[Новое IPSec howto]]&lt;br /&gt;
* [[Русификация OpenBSD 5.x]]&lt;br /&gt;
* [[Русификация OpenBSD]]&lt;br /&gt;
* [[Русификация консоли OpenBSD]]&lt;br /&gt;
* [[Создание загрузочной флешки]]&lt;br /&gt;
* [[Перечень Интернет ресурсов о OpenBSD]]&lt;br /&gt;
* [[Описание переменных sysctl]]&lt;br /&gt;
* [[Сборник советов с OpenBSD101.com]]&lt;br /&gt;
* [[Работа в качестве DHCP-сервера]]&lt;br /&gt;
* [[OpenBSD на рабочей станции]]&lt;br /&gt;
* [[&amp;quot;Горячие&amp;quot; клавиши tmux и screen]]&lt;br /&gt;
* [[OpenBSD doas]]&lt;br /&gt;
=== Переводы ===&lt;br /&gt;
* [[C2k10-marco]]&lt;br /&gt;
* [[C2k10-guenther]]&lt;br /&gt;
* [[C2k10-ajacoutot]]&lt;br /&gt;
* [[C2k10-henning]]&lt;br /&gt;
* [[C2k10-tedu]]&lt;br /&gt;
&lt;br /&gt;
== Устаревшее ==&lt;br /&gt;
Данная информация сохранена для архивных версий.&lt;br /&gt;
&lt;br /&gt;
* [[Зеркалирование данных с помощью ccd]]&lt;br /&gt;
* [[Использование Bluetooth в OpenBSD]]&lt;br /&gt;
* [[Настройка GPRS]]&lt;br /&gt;
* [[Настройка Ethernet Bridge]]&lt;br /&gt;
* [[Привязка IP к MAC с помощью bridge(4) и pf(4)]]&lt;br /&gt;
&lt;br /&gt;
== Прочее ==&lt;br /&gt;
&lt;br /&gt;
* [[Резервная копия Wiki]]&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=OpenBSD_doas&amp;diff=425</id>
		<title>OpenBSD doas</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=OpenBSD_doas&amp;diff=425"/>
		<updated>2015-09-09T06:54:35Z</updated>

		<summary type="html">&lt;p&gt;Ssh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ted Unangst (tedu@) представил [http://www.tedunangst.com/flak/post/doas doas] — «легкую» замену &amp;#039;&amp;#039;&amp;#039;sudo&amp;#039;&amp;#039;&amp;#039; в OpenBSD, поддерживающую только основные функции. Начиная с OpenBSD 5.8, &amp;#039;&amp;#039;&amp;#039;doas&amp;#039;&amp;#039;&amp;#039; входит в состав базовой системы. Использовать &amp;#039;&amp;#039;&amp;#039;doas&amp;#039;&amp;#039;&amp;#039; очень просто, достаточно создать файл конфигурации &amp;#039;&amp;#039;&amp;#039;/etc/doas.conf&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
* Либеральная OpenBSD система:&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;permit nopass keepenv { ENV PS1 SSH_AUTH_SOCK } :wheel&amp;lt;/pre&amp;gt; Пользователи из группы &amp;#039;&amp;#039;&amp;#039;wheel&amp;#039;&amp;#039;&amp;#039; выполняют команды как &amp;#039;&amp;#039;&amp;#039;root&amp;#039;&amp;#039;&amp;#039; (используется по умолчанию, если не указан иной пользователь). Разрешено запускать любые команды без запроса пароля, значения переменных &amp;#039;&amp;#039;&amp;#039;ENV&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;PS1&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;SSH_AUTH_SOCK&amp;#039;&amp;#039;&amp;#039; наследуются.&lt;br /&gt;
&lt;br /&gt;
* То же, что и выше, но с запросом пароля пользователя:&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;permit keepenv {ENV PS1 SSH_AUTH_SOCK} :wheel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Разрешает пользователю bob выполнить &amp;#039;&amp;#039;&amp;#039;/bin/sh&amp;#039;&amp;#039;&amp;#039; как fred:&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;permit bob as fred cmd /bin/sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Запретить всё пользователям группы &amp;#039;&amp;#039;&amp;#039;wheel&amp;#039;&amp;#039;&amp;#039;:&amp;lt;br /&amp;gt;&amp;lt;pre&amp;gt;deny :wheel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Правила в &amp;#039;&amp;#039;&amp;#039;doas.conf&amp;#039;&amp;#039;&amp;#039; читаются сверху вниз, поэтому если запрещающее правило следует сразу за разрешающим, то разрешающее будет действовать, так как имеет приоритет. Кроме того, &amp;#039;&amp;#039;&amp;#039;doas.conf&amp;#039;&amp;#039;&amp;#039; должен завершаться пустой строкой.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.badbug.id.au/doas-or-how-i-use-sudo-on-openbsd-5-8/ По мотивам]&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
	<entry>
		<id>http://www.qbsd.ru/index.php?title=OpenBSD_doas&amp;diff=424</id>
		<title>OpenBSD doas</title>
		<link rel="alternate" type="text/html" href="http://www.qbsd.ru/index.php?title=OpenBSD_doas&amp;diff=424"/>
		<updated>2015-09-09T03:51:14Z</updated>

		<summary type="html">&lt;p&gt;Ssh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ted Unangst (tedu@) представил [http://www.tedunangst.com/flak/post/doas doas] - замену &amp;#039;&amp;#039;&amp;#039;sudo&amp;#039;&amp;#039;&amp;#039; для OpenBSD, небольшую и поддерживающую только основные функции.&lt;br /&gt;
&lt;br /&gt;
Начиная с OpenBSD 5.8, &amp;#039;&amp;#039;&amp;#039;doas&amp;#039;&amp;#039;&amp;#039; входит в состав базовой системы. Использовать &amp;#039;&amp;#039;&amp;#039;doas&amp;#039;&amp;#039;&amp;#039; очень просто, достаточно создать файл конфигурации &amp;#039;&amp;#039;&amp;#039;/etc/doas.conf&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Либеральная OpenBSD система:&lt;br /&gt;
&amp;lt;pre&amp;gt;permit nopass keepenv { ENV PS1 SSH_AUTH_SOCK } :wheel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пользователи группы &amp;#039;&amp;#039;&amp;#039;wheel&amp;#039;&amp;#039;&amp;#039;, выполняют команды от пользователя &amp;#039;&amp;#039;&amp;#039;root&amp;#039;&amp;#039;&amp;#039; (root используется по умолчанию, если не указан иной пользователь). Разрешено запускать любые команды без запроса пароля, значения переменных &amp;#039;&amp;#039;&amp;#039;ENV&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;PS1&amp;#039;&amp;#039;&amp;#039; и &amp;#039;&amp;#039;&amp;#039;SSH_AUTH_SOCK&amp;#039;&amp;#039;&amp;#039; наследуются.&lt;br /&gt;
&lt;br /&gt;
Тоже, что и выше, но с запросом пароля пользователя:&lt;br /&gt;
&amp;lt;pre&amp;gt;permit keepenv {ENV PS1 SSH_AUTH_SOCK} :wheel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Разрешает пользователю bob выполнить &amp;#039;&amp;#039;&amp;#039;/bin/sh&amp;#039;&amp;#039;&amp;#039; как fred:&lt;br /&gt;
&amp;lt;pre&amp;gt;permit bob as fred cmd /bin/sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запретить всё пользователям группы &amp;#039;&amp;#039;&amp;#039;wheel&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;pre&amp;gt;deny :wheel&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Правила в &amp;#039;&amp;#039;&amp;#039;doas.conf&amp;#039;&amp;#039;&amp;#039; читаются сверху вниз, поэтому если запрещающее правило следует сразу за разрешающим, то разрешающее будет действовать, так как имеет приоритет. Кроме того, &amp;#039;&amp;#039;&amp;#039;doas.conf&amp;#039;&amp;#039;&amp;#039; должен завершаться пустой строкой.&lt;br /&gt;
&lt;br /&gt;
[http://www.badbug.id.au/doas-or-how-i-use-sudo-on-openbsd-5-8/ По мотивам]&lt;/div&gt;</summary>
		<author><name>Ssh</name></author>
	</entry>
</feed>