<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="http://www.seirios.org/seirios/dokuwiki/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>ほほほのほ - serverapp</title>
        <description></description>
        <link>http://www.seirios.org/seirios/dokuwiki/</link>
        <lastBuildDate>Thu, 07 May 2026 11:31:02 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>http://www.seirios.org/seirios/dokuwiki/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
            <title>ほほほのほ</title>
            <link>http://www.seirios.org/seirios/dokuwiki/</link>
        </image>
        <item>
            <title>Database Server</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:database</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;database_server&quot;&gt;Database Server&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;em class=&quot;u&quot;&gt;&lt;strong&gt; Last Update: 2014/01/21 &lt;/strong&gt;&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Database Server&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;database_server&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-67&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;目次&quot;&gt;目次&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;div&gt;&lt;div id=&quot;nojs_indexmenu_67760960668564e5800b2f&quot; data-jsajax=&quot;%26sort%3Dt%26msort%3Dindexmenu_n%26group%3D1&quot; class=&quot;indexmenu_nojs&quot;&gt;
&lt;ul class=&quot;idx&quot;&gt;
&lt;li class=&quot;open&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:database:mariadb&quot; class=&quot;indexmenu_idx_head&quot; data-wiki-id=&quot;serverapp:database:mariadb&quot;&gt;MariaDB&lt;/a&gt;&lt;/div&gt;
&lt;ul class=&quot;idx&quot;&gt;
&lt;li class=&quot;level2&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:database:mariadb:initial-config&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:database:mariadb:initial-config&quot; data-wiki-id=&quot;serverapp:database:mariadb:initial-config&quot;&gt;MariaDBの初期設定&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level2&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:database:mariadb:inst-centos&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:database:mariadb:inst-centos&quot; data-wiki-id=&quot;serverapp:database:mariadb:inst-centos&quot;&gt;OSにMariaDBをInsatll&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;open&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:database:mysqld&amp;amp;idx=serverapp:database:mysqld&quot; class=&quot;indexmenu_idx open&quot; data-wiki-id=&quot;&quot;&gt;mysqld&lt;/a&gt;&lt;/div&gt;
&lt;ul class=&quot;idx&quot;&gt;
&lt;li class=&quot;level2&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:database:mysqld:semisyncrep&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:database:mysqld:semisyncrep&quot; data-wiki-id=&quot;serverapp:database:mysqld:semisyncrep&quot;&gt;MySQLdを冗長構成にする&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:database:techmemo&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:database:techmemo&quot; data-wiki-id=&quot;serverapp:database:techmemo&quot;&gt;その他技術関連メモ&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;script type=&#039;text/javascript&#039;&gt;
&lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--
var indexmenu_67760960668564e5800b2f = new dTree(&#039;indexmenu_67760960668564e5800b2f&#039;,&#039;bj-tango.png&#039;);
indexmenu_67760960668564e5800b2f.config.urlbase=&#039;/seirios/dokuwiki/doku.php?id=&#039;;
indexmenu_67760960668564e5800b2f.config.sepchar=&#039;:&#039;;
indexmenu_67760960668564e5800b2f.config.useCookies=false;
indexmenu_67760960668564e5800b2f.config.jsajax=&#039;%26sort%3Dt%26msort%3Dindexmenu_n%26group%3D1&#039;;
indexmenu_67760960668564e5800b2f.add(&#039;serverapp:database&#039;,0,-1,&quot;Database Server&quot;,&#039;serverapp:database&#039;);
indexmenu_67760960668564e5800b2f.add(&#039;serverapp:database:mariadb&#039;,1,0,&quot;MariaDB&quot;,&#039;serverapp:database:mariadb&#039;,1,0);
indexmenu_67760960668564e5800b2f.add(&#039;serverapp:database:mariadb:initial-config&#039;,2,1,&quot;MariaDB\u306e\u521d\u671f\u8a2d\u5b9a&quot;,0,0,0);
indexmenu_67760960668564e5800b2f.add(&#039;serverapp:database:mariadb:inst-centos&#039;,3,1,&quot;OS\u306bMariaDB\u3092Insatll&quot;,0,0,0);
indexmenu_67760960668564e5800b2f.add(&#039;serverapp:database:mysqld&#039;,4,0,&quot;mysqld&quot;,0,1,0);
indexmenu_67760960668564e5800b2f.add(&#039;serverapp:database:mysqld:semisyncrep&#039;,5,4,&quot;MySQLd\u3092\u5197\u9577\u69cb\u6210\u306b\u3059\u308b&quot;,0,0,0);
indexmenu_67760960668564e5800b2f.add(&#039;serverapp:database:techmemo&#039;,6,0,&quot;\u305d\u306e\u4ed6\u6280\u8853\u95a2\u9023\u30e1\u30e2&quot;,0,0,0);
document.write(indexmenu_67760960668564e5800b2f);
jQuery(function(){indexmenu_67760960668564e5800b2f.init(0,1,&quot;1 4&quot;,1,0);});
//--&gt;&lt;!]]&gt;
&lt;/script&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u76ee\u6b21&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u76ee\u6b21&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;68-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 04 Nov 2014 06:36:46 +0000</pubDate>
        </item>
        <item>
            <title>DNS Server</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:dns</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dns_server&quot;&gt;DNS Server&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;&lt;em class=&quot;u&quot;&gt; Last Update : 2014/02/27 &lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:dns:named-old&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:dns:named-old&quot; data-wiki-id=&quot;serverapp:dns:named-old&quot;&gt;古いの(Bind)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
昔々はDNS Serverと言えば(DJBdnsは個人的に嫌いなので)&lt;a href=&quot;https://www.isc.org/downloads/bind/&quot; class=&quot;urlextern&quot; title=&quot;https://www.isc.org/downloads/bind/&quot;&gt;Bind&lt;/a&gt;しか実質選択できなかったが、今では様々な実装がある。
&lt;/p&gt;

&lt;p&gt;
実装毎の比較は&lt;a href=&quot;https://en.wikipedia.org/wiki/Comparison_of_DNS_server_software&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/Comparison_of_DNS_server_software&quot;&gt;Comparison_of_DNS_server_software&lt;/a&gt;を参照すれば良いが、個人的都合により、以下を考える事にする。
&lt;/p&gt;
&lt;div class=&quot;table sectionedit2&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; 実装 &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; 記事 &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;a href=&quot;http://www.nlnetlabs.nl/projects/nsd/&quot; class=&quot;urlextern&quot; title=&quot;http://www.nlnetlabs.nl/projects/nsd/&quot;&gt;NSD&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:dns:nsd&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:dns:nsd&quot; data-wiki-id=&quot;serverapp:dns:nsd&quot;&gt;NSD&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;a href=&quot;http://unbound.net&quot; class=&quot;urlextern&quot; title=&quot;http://unbound.net&quot;&gt;Unbound&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:dns:unbound&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:dns:unbound&quot; data-wiki-id=&quot;serverapp:dns:unbound&quot;&gt;(N/A) Unbound&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;a href=&quot;https://www.knot-dns.cz/index.html&quot; class=&quot;urlextern&quot; title=&quot;https://www.knot-dns.cz/index.html&quot;&gt;knot DNS&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:dns:knot&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:dns:knot&quot; data-wiki-id=&quot;serverapp:dns:knot&quot;&gt;knot DNS&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; (予定) &lt;a href=&quot;https://www.powerdns.com&quot; class=&quot;urlextern&quot; title=&quot;https://www.powerdns.com&quot;&gt;PowerDNS&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; N/A &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; (余力があれば) &lt;a href=&quot;https://www.isc.org/downloads/bind/&quot; class=&quot;urlextern&quot; title=&quot;https://www.isc.org/downloads/bind/&quot;&gt;bind&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; N/A &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;459-828&amp;quot;} --&gt;
&lt;p&gt;
情報源
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://unbound.jp&quot; class=&quot;urlextern&quot; title=&quot;http://unbound.jp&quot;&gt;日本Unboundユーザー会&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DNS Server&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dns_server&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-894&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;目次&quot;&gt;目次&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;div&gt;&lt;div id=&quot;nojs_indexmenu_16479127568564c468b2e5&quot; data-jsajax=&quot;%26sort%3Dt%26msort%3Dindexmenu_n%26group%3D1&quot; class=&quot;indexmenu_nojs&quot;&gt;
&lt;ul class=&quot;idx&quot;&gt;
&lt;li class=&quot;open&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:database&quot; class=&quot;indexmenu_idx_head&quot; data-wiki-id=&quot;serverapp:database&quot;&gt;Database Server&lt;/a&gt;&lt;/div&gt;
&lt;ul class=&quot;idx&quot;&gt;
&lt;li class=&quot;closed&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:database:mariadb&quot; class=&quot;indexmenu_idx_head&quot; data-wiki-id=&quot;serverapp:database:mariadb&quot;&gt;MariaDB&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;closed&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:database:mysqld&amp;amp;idx=serverapp:database:mysqld&quot; class=&quot;indexmenu_idx&quot; data-wiki-id=&quot;&quot;&gt;mysqld&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level2&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:database:techmemo&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:database:techmemo&quot; data-wiki-id=&quot;serverapp:database:techmemo&quot;&gt;その他技術関連メモ&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;open&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:dns&quot; class=&quot;indexmenu_idx_head&quot; data-wiki-id=&quot;serverapp:dns&quot;&gt;DNS Server&lt;/a&gt;&lt;/div&gt;
&lt;ul class=&quot;idx&quot;&gt;
&lt;li class=&quot;level2&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:dns:unbound&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:dns:unbound&quot; data-wiki-id=&quot;serverapp:dns:unbound&quot;&gt;(N/A) Unbound&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level2&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:dns:named-old&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:dns:named-old&quot; data-wiki-id=&quot;serverapp:dns:named-old&quot;&gt;(Obsolate)DNS Serverを建てる&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level2&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:dns:knot&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:dns:knot&quot; data-wiki-id=&quot;serverapp:dns:knot&quot;&gt;knot DNS&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level2&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:dns:nsd&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:dns:nsd&quot; data-wiki-id=&quot;serverapp:dns:nsd&quot;&gt;NSD&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;open&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:httpd&quot; class=&quot;indexmenu_idx_head&quot; data-wiki-id=&quot;serverapp:httpd&quot;&gt;HTTPd&lt;/a&gt;&lt;/div&gt;
&lt;ul class=&quot;idx&quot;&gt;
&lt;li class=&quot;closed&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:httpd:nginx&quot; class=&quot;indexmenu_idx_head&quot; data-wiki-id=&quot;serverapp:httpd:nginx&quot;&gt;NGiNX&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;open&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:logging&quot; class=&quot;indexmenu_idx_head&quot; data-wiki-id=&quot;serverapp:logging&quot;&gt;log収集関係&lt;/a&gt;&lt;/div&gt;
&lt;ul class=&quot;idx&quot;&gt;
&lt;li class=&quot;level2&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:logging:fluentd&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:logging:fluentd&quot; data-wiki-id=&quot;serverapp:logging:fluentd&quot;&gt;Fluentd&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level2&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:logging:syslog&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:logging:syslog&quot; data-wiki-id=&quot;serverapp:logging:syslog&quot;&gt;syslog Server&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;open&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:openldap&quot; class=&quot;indexmenu_idx_head&quot; data-wiki-id=&quot;serverapp:openldap&quot;&gt;OpenLDAP&lt;/a&gt;&lt;/div&gt;
&lt;ul class=&quot;idx&quot;&gt;
&lt;li class=&quot;level2&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:openldap:old1&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:openldap:old1&quot; data-wiki-id=&quot;serverapp:openldap:old1&quot;&gt;OpenLDAP Serverを建てる&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:mail&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:mail&quot; data-wiki-id=&quot;serverapp:mail&quot;&gt;Mail Server&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:openssl&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:openssl&quot; data-wiki-id=&quot;serverapp:openssl&quot;&gt;OpenSSLで自己認証証明書(おれおれCA)を作成&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;script type=&#039;text/javascript&#039;&gt;
&lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--
var indexmenu_16479127568564c468b2e5 = new dTree(&#039;indexmenu_16479127568564c468b2e5&#039;,&#039;bj-tango.png&#039;);
indexmenu_16479127568564c468b2e5.config.urlbase=&#039;/seirios/dokuwiki/doku.php?id=&#039;;
indexmenu_16479127568564c468b2e5.config.sepchar=&#039;:&#039;;
indexmenu_16479127568564c468b2e5.config.useCookies=false;
indexmenu_16479127568564c468b2e5.config.jsajax=&#039;%26sort%3Dt%26msort%3Dindexmenu_n%26group%3D1&#039;;
indexmenu_16479127568564c468b2e5.add(&#039;serverapp&#039;,0,-1,&quot;Server Application&quot;,&#039;serverapp&#039;);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:database&#039;,1,0,&quot;Database Server&quot;,&#039;serverapp:database&#039;,1,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:database:mariadb&#039;,2,1,&quot;MariaDB&quot;,&#039;serverapp:database:mariadb&#039;,1,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:database:mariadb:initial-config&#039;,3,2,&quot;MariaDB\u306e\u521d\u671f\u8a2d\u5b9a&quot;,0,0,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:database:mariadb:inst-centos&#039;,4,2,&quot;OS\u306bMariaDB\u3092Insatll&quot;,0,0,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:database:mysqld&#039;,5,1,&quot;mysqld&quot;,0,1,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:database:mysqld:semisyncrep&#039;,6,5,&quot;MySQLd\u3092\u5197\u9577\u69cb\u6210\u306b\u3059\u308b&quot;,0,0,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:database:techmemo&#039;,7,1,&quot;\u305d\u306e\u4ed6\u6280\u8853\u95a2\u9023\u30e1\u30e2&quot;,0,0,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:dns&#039;,8,0,&quot;DNS Server&quot;,&#039;serverapp:dns&#039;,1,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:dns:unbound&#039;,9,8,&quot;(N\/A) Unbound&quot;,0,0,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:dns:named-old&#039;,10,8,&quot;(Obsolate)DNS Server\u3092\u5efa\u3066\u308b&quot;,0,0,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:dns:knot&#039;,11,8,&quot;knot DNS&quot;,0,0,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:dns:nsd&#039;,12,8,&quot;NSD&quot;,0,0,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:httpd&#039;,13,0,&quot;HTTPd&quot;,&#039;serverapp:httpd&#039;,1,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:httpd:nginx&#039;,14,13,&quot;NGiNX&quot;,&#039;serverapp:httpd:nginx&#039;,1,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:httpd:nginx:lb&#039;,15,14,&quot;NGiNX\u3067Proxy\/LoadBalancer\u3092\u4f5c\u308b&quot;,0,0,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:logging&#039;,16,0,&quot;log\u53ce\u96c6\u95a2\u4fc2&quot;,&#039;serverapp:logging&#039;,1,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:logging:fluentd&#039;,17,16,&quot;Fluentd&quot;,0,0,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:logging:syslog&#039;,18,16,&quot;syslog Server&quot;,0,0,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:openldap&#039;,19,0,&quot;OpenLDAP&quot;,&#039;serverapp:openldap&#039;,1,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:openldap:old1&#039;,20,19,&quot;OpenLDAP Server\u3092\u5efa\u3066\u308b&quot;,0,0,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:mail&#039;,21,0,&quot;Mail Server&quot;,0,0,0);
indexmenu_16479127568564c468b2e5.add(&#039;serverapp:openssl&#039;,22,0,&quot;OpenSSL\u3067\u81ea\u5df1\u8a8d\u8a3c\u8a3c\u660e\u66f8(\u304a\u308c\u304a\u308cCA)\u3092\u4f5c\u6210&quot;,0,0,0);
document.write(indexmenu_16479127568564c468b2e5);
jQuery(function(){indexmenu_16479127568564c468b2e5.init(0,1,&quot;1 8 13 16 19&quot;,1,0);});
//--&gt;&lt;!]]&gt;
&lt;/script&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u76ee\u6b21&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u76ee\u6b21&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;895-994&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;tips等&quot;&gt;Tips等&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.eis.co.jp/engineers-notes/bind9_src_build_5&quot; class=&quot;urlextern&quot; title=&quot;http://www.eis.co.jp/engineers-notes/bind9_src_build_5&quot;&gt;http://www.eis.co.jp/engineers-notes/bind9_src_build_5&lt;/a&gt; SOAの設定の意味等&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://dnscheck.jp&quot; class=&quot;urlextern&quot; title=&quot;http://dnscheck.jp&quot;&gt;JPRS DNS Checker&lt;/a&gt; 登録されているDNS情報の比較等を行ってくれる&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Tips\u7b49&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tips\u7b49&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;995-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 15 Jan 2015 04:21:28 +0000</pubDate>
        </item>
        <item>
            <title>HTTPd</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:httpd</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;httpd&quot;&gt;HTTPd&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
以下、HTTPdに関する記事
&lt;/p&gt;

&lt;p&gt;
&lt;em class=&quot;u&quot;&gt;&lt;em&gt;&lt;strong&gt; Last Modified: 2016/04/26 &lt;/strong&gt;&lt;/em&gt;&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HTTPd&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;httpd&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-95&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;目次&quot;&gt;目次&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;div&gt;&lt;div id=&quot;nojs_indexmenu_10334179576856b673e1309&quot; data-jsajax=&quot;%26sort%3Dt%26msort%3Dindexmenu_n%26group%3D1&quot; class=&quot;indexmenu_nojs&quot;&gt;
&lt;ul class=&quot;idx&quot;&gt;
&lt;li class=&quot;open&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:httpd:nginx&quot; class=&quot;indexmenu_idx_head&quot; data-wiki-id=&quot;serverapp:httpd:nginx&quot;&gt;NGiNX&lt;/a&gt;&lt;/div&gt;
&lt;ul class=&quot;idx&quot;&gt;
&lt;li class=&quot;level2&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:httpd:nginx:lb&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:httpd:nginx:lb&quot; data-wiki-id=&quot;serverapp:httpd:nginx:lb&quot;&gt;NGiNXでProxy/LoadBalancerを作る&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;&lt;script type=&#039;text/javascript&#039;&gt;
&lt;!--//--&gt;&lt;![CDATA[//&gt;&lt;!--
var indexmenu_10334179576856b673e1309 = new dTree(&#039;indexmenu_10334179576856b673e1309&#039;,&#039;bj-tango.png&#039;);
indexmenu_10334179576856b673e1309.config.urlbase=&#039;/seirios/dokuwiki/doku.php?id=&#039;;
indexmenu_10334179576856b673e1309.config.sepchar=&#039;:&#039;;
indexmenu_10334179576856b673e1309.config.useCookies=false;
indexmenu_10334179576856b673e1309.config.jsajax=&#039;%26sort%3Dt%26msort%3Dindexmenu_n%26group%3D1&#039;;
indexmenu_10334179576856b673e1309.add(&#039;serverapp:httpd&#039;,0,-1,&quot;HTTPd&quot;,&#039;serverapp:httpd&#039;);
indexmenu_10334179576856b673e1309.add(&#039;serverapp:httpd:nginx&#039;,1,0,&quot;NGiNX&quot;,&#039;serverapp:httpd:nginx&#039;,1,0);
indexmenu_10334179576856b673e1309.add(&#039;serverapp:httpd:nginx:lb&#039;,2,1,&quot;NGiNX\u3067Proxy\/LoadBalancer\u3092\u4f5c\u308b&quot;,0,0,0);
document.write(indexmenu_10334179576856b673e1309);
jQuery(function(){indexmenu_10334179576856b673e1309.init(0,1,&quot;1&quot;,1,0);});
//--&gt;&lt;!]]&gt;
&lt;/script&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u76ee\u6b21&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u76ee\u6b21&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;96-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 26 Apr 2016 01:25:26 +0000</pubDate>
        </item>
        <item>
            <title>log収集関係</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:logging</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;log収集関係&quot;&gt;log収集関係&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 19 Oct 2018 09:22:56 +0000</pubDate>
        </item>
        <item>
            <title>Mail Server</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:mail</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;mail_server&quot;&gt;Mail Server&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Mail Serverと一括りに言うが、実際にサーバーとして作る場合、MTAとMDAを準備する必要がある。
&lt;/p&gt;

&lt;p&gt;
InternetでMTAと言えば、SMTP Serverであり、これには様々なものがある。古くからあるsendmail、qmail、postfixやexim、courier-MTA等。
&lt;/p&gt;

&lt;p&gt;
また、一般に広く利用されているMDAプロトコルには POP3/IMAP があり、それ様のサーバーも非常にたくさんある。Cyrus-IMAP/POP, Courier-IMAP/POP, Dovecot, UW-IMAP, Qpopper等。
&lt;/p&gt;

&lt;p&gt;
今回はSMTP Serverとしてpostfixを選択、POP3/IMAP ServerとしてDovecotを利用することにしたので、そのメモを。
&lt;/p&gt;

&lt;p&gt;
最近では、LinuxやMacOS-X等も含めてSMTP ServerにPostfixを利用しているOSが多い。これは、&lt;a href=&quot;http://www.sendmail.com&quot; class=&quot;urlextern&quot; title=&quot;http://www.sendmail.com&quot;&gt;sendmail&lt;/a&gt;と比較して初心者でも設定が（比較的）簡単であるからだろうと思われる。
&lt;/p&gt;

&lt;p&gt;
現時点(2010/04)で筆者の知っているSMTP Serverと言えば
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.sendmail.com/&quot; class=&quot;urlextern&quot; title=&quot;http://www.sendmail.com/&quot;&gt;sendmail&lt;/a&gt; これが最も基本であり、最も古く、最も高機能であり、（恐らく）最も難しい&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.qmail.org/&quot; class=&quot;urlextern&quot; title=&quot;http://www.qmail.org/&quot;&gt;qmail&lt;/a&gt; 一時期非常によく利用された（今は知らない）SMTPサーバー。今でもメンテナンスされているのかしらん？&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.exim.org/&quot; class=&quot;urlextern&quot; title=&quot;http://www.exim.org/&quot;&gt;EXIM&lt;/a&gt; debianとubuntuの標準MTAらしい。これももう10年以上使われているような気がする。少なくとも1999年にはpkgsrcにあった。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.courier-mta.info/modules/bwiki/&quot; class=&quot;urlextern&quot; title=&quot;http://www.courier-mta.info/modules/bwiki/&quot;&gt;Courier-MTA&lt;/a&gt; 日本語でも情報が準備されています。imapやpop等と組み合わせて1setでシステム作る場合にはいいかも。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.postfix.org/&quot; class=&quot;urlextern&quot; title=&quot;http://www.postfix.org/&quot;&gt;postfix&lt;/a&gt; &lt;a href=&quot;http://www.postfix-jp.info/&quot; class=&quot;urlextern&quot; title=&quot;http://www.postfix-jp.info/&quot;&gt;postfix-jp&lt;/a&gt; 今回のお題。BSD系やRedHatなど様々なシステムが標準に採用している。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
ちなみに、POP3 ServerやIMAP Serverとなると更に多数あるので、ここでは取り上げない。
&lt;/p&gt;

&lt;p&gt;
なお、Mail ServerはDNS Queryを多数発行するので、Mail ServerはDNS Cache Serverと同時に動かすことが望ましい。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Mail Server&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mail_server&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-2144&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;mta_smtp_server&quot;&gt;MTA/SMTP Server&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
ここから、MTA/SMTP Serverに関する基本的な設定などを記載する。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;MTA\/SMTP Server&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mta_smtp_server&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;2145-2258&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;install&quot;&gt;Install&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=os:netbsd:pkgsrc:packages:postfix&quot; class=&quot;wikilink2&quot; title=&quot;os:netbsd:pkgsrc:packages:postfix&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;os:netbsd:pkgsrc:packages:postfix&quot;&gt;postfix&lt;/a&gt;を参照。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Install&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;install&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2259-2327&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;configuration&quot;&gt;Configuration&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
個人ドメインでのMail Server運用なので、それに合わせた設定を行う。
&lt;/p&gt;

&lt;p&gt;
細かい点はManualを参照のこと。差分のみ記載する。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;myhostname = mail2.example.net						← 指定しなければ自動で設定される
mydomain = example.net							← 同上
myorigin = $mydomain							← 同上
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain	← example.net向けのMailを受信するようにする。
mynetworks = $config_directory/mynetworks				← 無条件で信用するNetworkを記載するファイルを指定
home_mailbox = Maildir/							← Maildir形式でメールを保存
debugger_command =							← Xとかとばしたくないので、こっちにする
      PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
      echo where) | gdb $daemon_directory/$process_name $process_id 2&amp;gt;&amp;amp;1
      &amp;gt;$config_directory/$process_name.$process_id.log &amp;amp; sleep 5

biff = no								← biffを止める
mailbox_size_limit = 0							← メールボックスのサイズ制限をなくす
message_size_limit = 104857600						← 個々のメッセージのサイズを10MByteまでに制限

allow_mail_to_commands = alias,include					← メーリングリスト管理用設定

disable_vrfy_command = yes						← SMTP VRFYコマンドを禁止
smtpd_helo_required = yes						← SMTP HELOを必須にする

smtpd_client_restrictions    =						← TCP接続時の制限
	permit_mynetworks						← $mynetworksと一致していればOK
	check_client_access cidr:$config_directory/client		← 指定されたファイルに記載されているデータベースを確認
	warn_if_reject reject_rbl_client all.rbl.jp			← RBL.jpを参照する。もし引っかかった場合、logに記載されるが、rejectはしない
	warn_if_reject reject_rbl_client zen.spamhaus.org		← SPAMHAUSを参照する。もし引っかかった場合、logに記載されるが、rejectはしない
	reject_unknown_client						← いわゆるParanoid Check. IP Address→PTR→Aで一致しなければ却下
	permit								← あとは許可

smtpd_helo_restrictions     =						← SMTP HELO時での制限
	reject_unauth_pipelining					← 正しくないパイプを利用することを禁止
	reject_invalid_hostname						← ホスト名が以上である場合却下
	warn_if_reject reject_non_fqdn_hostname				← ホスト名がFQDNで記載されていなければlogに記載
	warn_if_reject reject_unknown_hostname				← ホスト名がDNSで引けない場合logに記載
	permit								← あとは許可

smtpd_sender_restrictions    =						← SMTP MAIL FROM:時での制限
	reject_unauth_pipelining					← 正しくないパイプを利用することを禁止
	reject_non_fqdn_sender						← FQDN出なければ却下
	reject_unknown_sender_domain					← ドメインがDNSで引けなければ却下
	warn_if_reject reject_sender_login_mismatch			← クライアントがloginしていない場合にlogを出す。SASL/SMTP Auth等で有効
	reject_unlisted_sender						← 受信者が特定できない場合に却下
	warn_if_reject reject_unverified_sender				← 送信者が特定できない場合にlogを出す。通信量が増え、反応が鈍るので要注意。
	permit								← あとは許可

smtpd_recipient_restrictions =						← SMTP RCPT TO:時での制限
	reject_unauth_pipelining					← 正しくないパイプを利用することを禁止
	permit_auth_destination						← 配信先が承認されている場合 OK
	warn_if_reject reject_non_fqdn_recipient			← 配信先がFQDNでない場合 log
	warn_if_reject reject_unknown_recipient_domain			← 配信先のアドレスに AもしくはMXレコードがない場合に log
	warn_if_reject reject_unverified_recipient			← 受信者が特定できない場合 log
	reject_unauth_destination					← 配信先が承認されていない場合却下
	reject_multi_recipient_bounce					← Envelope FROMがNULLであり、Envelope RCPTが複数ある場合要求を拒否
	permit								← あとは許可

smtpd_data_restrictions     =						← SMTP DATA時での制限
	reject_unauth_pipelining					← 正しくないパイプを利用することを禁止
	reject_multi_recipient_bounce					← Envelope FROMがNULLであり、Envelope RCPTが複数ある場合要求を拒否
	permit								← あとは許可&lt;/pre&gt;

&lt;p&gt;
で、mynetworksを作成し以下の様に設定。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# ----- localhost
[::1]/128
127.0.0.1/32

# ----- home network
10.11.12.0/26

# ----- Office network
192.168.128.0/25&lt;/pre&gt;

&lt;p&gt;
次に、clientファイルを作成し、以下の様に記載。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# White List
10.11.12.0/26		OK
192.168.128.0/25	OK

# Black List
10.11.12.64/26		NG
10.11.12.128/25		NG
192.168.0.128/25	NG&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Configuration&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;configuration&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2328-7157&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;注意点&quot;&gt;注意点&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; OP25B に引っかからないようにする&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 今時、SMTPを単純に利用できないように、OP25Bが仕掛けられている。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Mail Serverをこのような機能を持つISPの下部に置く場合、設定を変えて、submission portを利用し、メールを転送するように設定する必要がある。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; S25Bに引っかかっている場合&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Sender port 25 Blockingによって、IPアドレスベースでのフィルターが為されている場合がある。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; この場合は、残念ながら、受信側に「今は大丈夫だから空けて」と言うしかない。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 特に、ISPの固定アドレスサービスなどを利用して、過去にSPAMを送信していたであろうところに関しては、Filter outされている可能性が高いので注意が必要。&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; というか、SPF位見てくれよ。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 既にpostfixがinstallされていて、システムが動いている場合に、postfixのversionを上げた場合&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; とにかく変更点を確認する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; /usr/pkg/sbin/postfix upgrade-configurationを実行する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; postfixを再起動する&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u6ce8\u610f\u70b9&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u6ce8\u610f\u70b9&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;7158-8335&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;mda_pop3_imap_server&quot;&gt;MDA/pop3,IMAP Server&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
次に、メール配送関連の設定を行う。要するにMDAとしてpop3やIMAPを設定する。
&lt;/p&gt;

&lt;p&gt;
今回は、MDAにdovecotを利用する。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;MDA\/pop3,IMAP Server&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mda_pop3_imap_server&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;8336-8519&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;install1&quot;&gt;Install&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=os:netbsd:pkgsrc:packages:dovecot&quot; class=&quot;wikilink2&quot; title=&quot;os:netbsd:pkgsrc:packages:dovecot&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;os:netbsd:pkgsrc:packages:dovecot&quot;&gt;Dovecot&lt;/a&gt; 参照。
&lt;/p&gt;

&lt;p&gt;
加えて、SSLを利用するなら&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:openssl&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:openssl&quot; data-wiki-id=&quot;serverapp:openssl&quot;&gt;OpenSSLで自己認証証明書(おれおれCA)を作成&lt;/a&gt;を参照。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Install&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;install1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;8520-8715&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;設定&quot;&gt;設定&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
いくつか考慮する点がある。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Mailの保存先をNFSにした&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; dovecotでSSLを利用して通信を保護する&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
というわけで、そう言う設定を入れてある。
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?do=export_code&amp;amp;id=serverapp:mail&amp;amp;codeblock=3&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_conf&quot;&gt;dovecot.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;protocols = imaps					← dovecotではimapsのみを提供
listen = *, [::]					← IPv4/IPv6の両方でLISTENする

disable_plaintext_auth = no				← plaintextでの認証を許可する(system passwordを利用するため)

ssl = yes						← SSLを利用する
ssl_cert_file = /etc/dovecot/certs/serv.cert		← サーバー証明書ファイル名
ssl_key_file = /etc/dovecot/private/serv_key.pem	← サーバー秘密鍵のファイル名
# ssl_key_password = xxxxxxxx				← サーバー秘密鍵のパスワード。今回はパスワードをはずしてあるので設定不要
ssl_ca_file = /etc/dovecot/certs/CAs.pem		← サーバー証明書が利用するための中間証明書やroot証明書をcatしたファイル名

mail_location = maildir:~/Maildir			← mailが保存されているDirectoryが${HOME}/Maildirであり、その形式がMaildir形式である

namespace private {					← IMAPにおける名前空間の定義(courierからの移行に伴う措置。移行ではない場合不要
  separator = .						← courier-imapに合わせる
  prefix = INBOX.
  inbox = yes
}

mmap_disable = yes					← mmapを利用しない(NFS対策)
fsync_disable = no					← fsyncを利用しない(NFS対策)
mail_nfs_storage = yes					← mail保存先がNFSであることを明示(NFS対策)
mail_nfs_index = yes					← mailのindex保存先がNFSであることを明示(NFS対策)

protocol imap {						← imap関連の設定。今回は特に設定なし
}

protocol pop3 {						← pop3関連の設定。今回は特に設定なし
}

protocol lda {						← dovecotのlocal配送システムを利用する場合の設定(今回はない)
}

auth default {						← 認証関係の設定
  mechanisms = plain login				← 認証メカニズム。今回はplainとloginだけ。CRAM-MD5とかを利用する方法は今のところ不明
  passdb passwd {					← password情報はシステム標準のpasswdを利用する
  }
  userdb passwd {					← user情報はシステム標準のpasswdを利用する
  }
  user = root						← password databaseを検索する時のUserID
  }
}

dict {							← dovecotが利用する辞書に関する情報。pluginが利用する場合が多いらしい
}

plugin {						← dovecot pluginに関する設定。今回は設定しない
}&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u8a2d\u5b9a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;8716-11276&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;mta_mda_のsasl認証連携&quot;&gt;MTA/MDA のSASL認証連携&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
postfixにはSASL機能がない。従って、SASLでの認証を行うには、Cyrus-SASLを利用するか、dovecotのSASL機能を利用する必要がある。
&lt;/p&gt;

&lt;p&gt;
管理するアプリケーションが増えると運用が大変になるので今回はdovecotのSASL機能を利用する。
&lt;/p&gt;

&lt;p&gt;
postfixのmain.cfに以下の設定を追加
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# For SASL
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = /var/spool/postfix/private/auth
smtpd_sasl_security_options = noanonymous&lt;/pre&gt;

&lt;p&gt;
今回の環境では、systemのパスワードファイルを使って認証する関係で、noplaintextを指定してはいけない。これを指定すると認証方法がなくなる。
なお、Virtual Hosting/Domainを利用する際に、LDAPと連動させてSystemのアカウントとMailのアカウントを分離する方法を記載する。
&lt;/p&gt;

&lt;p&gt;
main.cfの各restrictionに以下を加える
&lt;/p&gt;
&lt;div class=&quot;table sectionedit10&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; restriction                  &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; parameter &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; smtpd_helo_restrictions      &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; permit_sasl_authenticated &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; smtpd_recipient_restrictions &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; permit_sasl_authenticated &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;12241-12407&amp;quot;} --&gt;
&lt;p&gt;
dovecotのdovecot.confに以下を加える
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ssl = yes 						← SSLを生かす
ssl_cert_file = /etc/dovecot/certs/serv.cert		← Server証明書を指定
ssl_key_file = /etc/dovecot/private/serv_key.pem	← Server証明書の鍵を指定
ssl_ca_file = /etc/dovecot/certs/CAs.pem		← Server証明書に署名している中間証明書ファイルをcatしたもの

....(省略)....

auth default {					← 既に存在するはず
  # Postfix SMTP Auth
  socket listen {				← 存在しているかもしれない
    client {					← 追加
      path = /var/spool/postfix/private/auth	← 追加。Directoryはpostfixの設定と合わせること
      mode = 0660				← 追加
      user = postfix				← postfixの実行時のUID
      group = postfix				← postfixの実行時のGID
    }						← 追加
  }						← 存在しているかもしれない
}

===== postfixでTLS =====
ここまでが全部設定できたら、MTAのTLS対応を行う。

機能を一つ一つじっくり試しながら実装しないと、結局最初からやり直しになってしまう事が多く、Debugもはかどらないので注意。

まず、main.cfにTLS関係の設定を入れる
&amp;lt;code&amp;gt;
# for TLS
smtpd_use_tls = yes 							← smtpdはTLSを許容する
smtpd_tls_CAfile = /etc/dovecot/certs/CAs.pem				← Server証明書に署名している中間証明書ファイルをcatしたもの
smtpd_tls_cert_file = /etc/dovecot/certs/serv.cert			← サーバー証明書ファイル
smtpd_tls_key_file = /etc/dovecot/private/serv_key.pem			← サーバー秘密鍵ファイル
smtpd_tls_session_cache_database = btree:/var/db/postfix/smtpd_scache	← TLS sessionのキャッシュデータ
smtpd_tls_loglevel = 1							← TLSのdebug用 logレベル
#smtpd_tls_loglevel = 3							← 細かいDebugをするなら、loglebelを3にする&lt;/pre&gt;

&lt;p&gt;
今回は、Wildcard証明書を発行したので、証明書も共用する。しかし、証明書は本来ホスト毎、サービス毎に分けるのが筋なので、別々に証明書を作って利用しても良い。
その場合いには、証明書ファイルを適切な名前に置き換えること。
&lt;/p&gt;

&lt;p&gt;
次に、OP25B対策として、submission関連の設定をする。また、smtpdに関する設定も行う。master.cfに以下の様な変更を加える。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 標準では、submission portの設定はoffになっているので、これを生かす&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 標準ではsmtpsの設定はoffになっているので、これを生かす&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 標準ではtlsmgrのtimeoutが長いので変更&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;....(省略) ....
smtp      inet  n       -       n       -       -       smtpd		← 標準
submission inet n       -       n       -       -       smtpd		← コメントを外して生かす（この行末のsmtpdをsmtpd -vに置き換えると、debugに便利）
  -o smtpd_enforce_tls=yes						← submissionでの通信では、TLSを強制する
  -o smtpd_sasl_auth_enable=yes						← SASL認証を生かす
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject		← SASL認証を行ったclientに対してはClient確認を行わない
smtps     inet  n       -       n       -       -       smtpd		← コメントを外して生かす（この行末のsmtpdをsmtpd -vに置き換えると、debugに便利）
  -o smtpd_tls_wrappermode=yes						← smtpdがTLSをWrapperとして利用できるようにする
  -o smtpd_sasl_auth_enable=yes						← SASL認証を生かす
#  -o smtpd_client_restrictions=permit_sasl_authenticated,reject	← この行を生かせという記述が散見されるが、これを生かすとなぜかエラーになる。
#628       inet  n       -       n       -       -       qmqpd
.... (省略) ....
tlsmgr    unix  -       -       n       300     1       tlsmgr		← 1000?を300に置き換える
.... (snip) ....&lt;/pre&gt;

&lt;p&gt;
これでpostfixを再起動すると、postfixがTLSで通信するようになる。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;MTA\/MDA \u306eSASL\u8a8d\u8a3c\u9023\u643a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mta_mda_\u306esasl\u8a8d\u8a3c\u9023\u643a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;11277-16370&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;webmail&quot;&gt;Webmail&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
ここまで設定すると、Web Mailも利用できるようになると嬉しい。というわけで、Webmailに関する設定を行う。
&lt;/p&gt;

&lt;p&gt;
今回はWeb MailのシステムとしてSquirrel Mailを利用する。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Webmail&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;webmail&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;16371-16610&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;install2&quot;&gt;Install&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Installはpkgsrcから行った。&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=os:netbsd:pkgsrc:packages:squirrelmail&quot; class=&quot;wikilink2&quot; title=&quot;os:netbsd:pkgsrc:packages:squirrelmail&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;os:netbsd:pkgsrc:packages:squirrelmail&quot;&gt;Squirrelmail&lt;/a&gt;を参照
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Install&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;install2&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;16611-16728&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;設定1&quot;&gt;設定&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Squirrelmail側はほとんど設定することがない。こちら側の設定は&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=os:netbsd:pkgsrc:packages:squirrelmail&quot; class=&quot;wikilink2&quot; title=&quot;os:netbsd:pkgsrc:packages:squirrelmail&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;os:netbsd:pkgsrc:packages:squirrelmail&quot;&gt;Squirrelmail&lt;/a&gt;を参照。
&lt;/p&gt;

&lt;p&gt;
今回は、dovecotとsquirrelmailを同じサーバーで動かしているので、IMAPsを利用する必要がない。これは、UNIX Domain Socket(localhost)を利用して通信するため。
そのため、dovecotに以下の設定を追加。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; localhostからの通信だけ、imapを許容する。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
この設定は、dovecot.confに以下の行を追加することで設定できる。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;protocols = imaps imap			← imapを追加

protocol imap {
  listen = 127.0.0.1:143 [::1]:143	← 127.0.0.1/::1からだけimapでの通信を許可
  ssl_listen = *:993 [::]:993		← SSLでの通信はどこからでも許可
}&lt;/pre&gt;

&lt;p&gt;
これで、SquirrelMailが利用できるようになる。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u8a2d\u5b9a1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;16729-17607&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;milter&quot;&gt;milter&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
postfixは、sendmail互換のMilterを利用できる。
&lt;/p&gt;

&lt;p&gt;
milterは、Mailに対するFilterとして動作するため、これを利用することで様々な制御が行えるようになる。
&lt;/p&gt;

&lt;p&gt;
今回は、j-checkmail(Mail Filter)とenma(SPF対応)を利用することにする。なお、将来dkimに対応するため、dkim-milterも入れてはあるのだが今回はまだ設定しない。
&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/detail.php?id=serverapp%3Amail&amp;amp;media=construct.gif&quot; class=&quot;media&quot; title=&quot;construct.gif&quot;&gt;&lt;img src=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/fetch.php?media=construct.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;milter&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;milter&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;17608-18052&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;debug&quot;&gt;Debug&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
SSL/TLSは、本質的には暗号化をするので、Debugが大変である。また、SASLは認証なので、十分にテストすべきである。しかし、telnetだけでチェックをするのはなかなか難しかった。
&lt;/p&gt;

&lt;p&gt;
今回はまったErrorに関して
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;cannot get RSA certificate from file&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; よく見たら、&lt;code&gt;smtpd_tls_cert_file&lt;/code&gt;で指定しているファイル名が間違っていた。当然SSL/TLS出来るわけがない。修正して問題は解決&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;Error: command not recognized&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; SSLでうまく通信できていなかったので、postfixのmain.cfに&lt;code&gt;smtpd_tls_loglevel = 3&lt;/code&gt;を加え、master.cfのsmtpdに-vを加えてみた&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 原因がちっとも判らなかったのだが、色々ためしてみた結果、master.cfで&lt;code&gt;-o smtpd_client_restrictions=permit_sasl_authenticated,reject&lt;/code&gt;を指定しているとこのエラーになった。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; main.cfでsmtpd_client_restrictionsを設定しているので思い切って消したら正常に動作した。これはこれでBugのような気もするが、とりあえずOK&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 当然、SSLを使っている場合のRelay Checkも行う必要がある。&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; この場合は、各Restrictionに定義してある permit_sasl_authenticatedをコメントアウトして、メールを送る際のFrom:行を適当に置き換えてCheckするなどしなければならない。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
なおDebugの際、wiresharkを利用してtcp.port==25とかtcp.port==587とかでfilterしながらpacketを見ると、SSL通信しているかどうかが判る。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Debug&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;debug&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;18053-19654&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit16&quot; id=&quot;virtual_hosting&quot;&gt;Virtual Hosting&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Mail ServerでVirtual Hostingする場合の設定。
&lt;/p&gt;

&lt;p&gt;
MailのVirtual Hostを提供する場合、ユーザー管理がまず問題になる。今回は、LDAPを利用してユーザー管理を行う事にする。
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:openldap&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:openldap&quot; data-wiki-id=&quot;serverapp:openldap&quot;&gt;OpenLDAP&lt;/a&gt; Open LDAPをInstallする&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;#mta_smtp_server&quot; title=&quot;serverapp:mail ↵&quot; class=&quot;wikilink1&quot;&gt;MTA/SMTP Server&lt;/a&gt; SMTP Serverをとりあえず動かす&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;#mda_pop3_imap_server&quot; title=&quot;serverapp:mail ↵&quot; class=&quot;wikilink1&quot;&gt;MDA/pop3,IMAP Server&lt;/a&gt;をとりあえず動かす&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
今回参考にしたページ
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://unixlife.jp/unixlife/linux/s-postfix.jsp&quot; class=&quot;urlextern&quot; title=&quot;http://unixlife.jp/unixlife/linux/s-postfix.jsp&quot;&gt;Postfix+Dovecot+OpenLDAPでメールサーバ&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.maruko2.com/mw/Postfix_で_Submission_ポート設定_(OP25B対策)&quot; class=&quot;urlextern&quot; title=&quot;http://www.maruko2.com/mw/Postfix_で_Submission_ポート設定_(OP25B対策)&quot;&gt;Postfix で Submission ポート設定 (OP25B対策)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/detail.php?id=serverapp%3Amail&amp;amp;media=serverapp:mailsystemdiagram.png&quot; class=&quot;media&quot; title=&quot;serverapp:mailsystemdiagram.png&quot;&gt;&lt;img src=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/fetch.php?media=serverapp:mailsystemdiagram.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;今回のL4構成&quot; alt=&quot;今回のL4構成&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/detail.php?id=serverapp%3Amail&amp;amp;media=serverapp:ldap-structure.png&quot; class=&quot;media&quot; title=&quot;serverapp:ldap-structure.png&quot;&gt;&lt;img src=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/fetch.php?media=serverapp:ldap-structure.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;今回のLDAPの構造&quot; alt=&quot;今回のLDAPの構造&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Virtual Hosting&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;virtual_hosting&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;19655-20479&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;事前準備&quot;&gt;事前準備&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
* postfixの送受信に関するポリシーは、&lt;a href=&quot;#mta_smtp_server&quot; title=&quot;serverapp:mail ↵&quot; class=&quot;wikilink1&quot;&gt;MTA/SMTP Server&lt;/a&gt;と同じとする
* POP/IMAPの利用に関するポリシーは、&lt;a href=&quot;#mda_pop3_imap_server&quot; title=&quot;serverapp:mail ↵&quot; class=&quot;wikilink1&quot;&gt;MDA/pop3,IMAP Server&lt;/a&gt;と同じとする
&lt;/p&gt;

&lt;p&gt;
LDAPを利用するので、以下の項目に関して事前に決めておく。
&lt;/p&gt;
&lt;div class=&quot;table sectionedit18&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; 管理する仮想ドメイン                   &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; example.net , example.com &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; メール管理アカウント(for postfix)      &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; virtmail (UID: 900) &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; メール保存ディレクトリ                 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; /var/mail/example.net, /var/mail/example.com &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; LDAP Data構造                          &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 図参照 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; LDAP suffix                            &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; o=example &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; LDAP bind DN                           &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; cn=Manager, o=example &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; LDAP bind passwd                       &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; ldap-pass &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;20771-21261&amp;quot;} --&gt;
&lt;p&gt;
また、LDAPの管理にはphpLDAPadminを利用する
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u4e8b\u524d\u6e96\u5099&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u4e8b\u524d\u6e96\u5099&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;20480-21318&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;openldapの設定&quot;&gt;OpenLDAPの設定&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
次にOpenLDAPの設定を行う。
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LDAP標準のschemaではpostfixを使う際に色々不足しているので、新たにschemaを作成する。ファイルは/usr/pkg/etc/openldap/schema/mail.schemaとする&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?do=export_code&amp;amp;id=serverapp:mail&amp;amp;codeblock=8&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_schema&quot;&gt;mail.schema&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;attributetype (1.1.2.1.1.1 NAME &amp;#039;mailForward&amp;#039;
    DESC &amp;#039;forward address&amp;#039;
    EQUALITY caseExactIA5Match
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)

attributetype (1.1.2.1.1.2 NAME &amp;#039;mailAlias&amp;#039;
    DESC &amp;#039;alias address&amp;#039;
    EQUALITY caseExactIA5Match
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)

attributetype (1.1.2.1.1.4 NAME &amp;#039;mailDir&amp;#039;
    DESC &amp;#039;path of maildir&amp;#039;
    EQUALITY caseExactIA5Match
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
    
attributetype (1.1.2.1.1.7 NAME &amp;#039;accountActive&amp;#039;
    DESC &amp;#039;active or not active&amp;#039;
    EQUALITY booleanMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE)

attributetype (1.1.2.1.1.8 NAME &amp;#039;domainName&amp;#039;
    DESC &amp;#039;domain name&amp;#039;
    EQUALITY caseIgnoreIA5Match
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)

attributetype (1.1.2.1.1.10 NAME &amp;#039;transport&amp;#039;
    DESC &amp;#039;transport&amp;#039;
    EQUALITY caseIgnoreIA5Match
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)

attributetype (1.1.2.1.1.11 NAME &amp;#039;mailDrop&amp;#039;
    DESC &amp;#039;drop address&amp;#039;
    EQUALITY caseExactIA5Match
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)

objectClass (1.1.2.2.1.1 NAME &amp;#039;mailGroup&amp;#039;
   DESC &amp;#039;ML Group Account Object&amp;#039;
   SUP inetOrgPerson
   MUST ( accountActive $ domainName $ mailDrop ))

objectClass (1.1.2.2.1.2 NAME &amp;#039;mailUser&amp;#039;
    DESC &amp;#039;mail user Object&amp;#039;
    SUP inetOrgPerson
    MUST ( transport $ mailDir $ homeDirectory $ accountActive $ domainName $ userPassword )
    MAY  ( mailForward $ mailAlias ))&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; slapd.confを修正し、mail.schemaを読み込むようにする。またindexの指定を行う&lt;pre class=&quot;code&quot;&gt;include         /usr/pkg/etc/openldap/schema/mail.schema		← 追加
....(省略)....
index   uid,mail	eq,pres,sub					← もし指定されていなければ、追加&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 一度openldapを起動し、問題なく起動できたら再度停止する。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; openldapのindexファイルを作り直す&lt;pre class=&quot;code&quot;&gt;# /usr/pkg/sbin/slapindex&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; slapdを起動&lt;pre class=&quot;code&quot;&gt;/etc/rc.d/slapd start&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 初期データを作成する。&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 大本のTopを作成する。&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?do=export_code&amp;amp;id=serverapp:mail&amp;amp;codeblock=12&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_ldif&quot;&gt;Top.LDIF&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;# Root node
dn: o=example				← dnの定義
objectClass: organization
o: example				← dnで指定した値を記載

dn: ou=vmail,o=example			← vmailがexampleの配下にあることを示す(vmailコンテナーの作成)
objectClass: organizationalUnit
ou: vmail				← ou=vmailを定義&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 管理するドメインのTreeを作成する。&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?do=export_code&amp;amp;id=serverapp:mail&amp;amp;codeblock=13&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_ldif&quot;&gt;Vdom.LDIF&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;# example.net
dn: dc=example.net,ou=vmail,o=example		← example.netコンテナーの作成
objectClass: dcObject				← 必ずdcObjectであることを定義する
objectClass: organization
dc: example.net					← dcObjectであるので、dcを定義。
o: example					← Organization情報を記載。

# user container
dn: ou=user,dc=example.net,ou=vmail,o=example	← User格納用コンテナーの作成
objectClass: organizationalUnit
ou: User

# example.com
dn: dc=example.com,ou=vmail,o=example		← example.netコンテナーの作成
objectClass: dcObject				← 必ずdcObjectであることを定義する
objectClass: organization
dc: example.com					← dcObjectであるので、dcを定義。
o: example					← Organization情報を記載。

# user container
dn: ou=user,dc=example.com,ou=vmail,o=example	← User格納用コンテナーの作成
objectClass: organizationalUnit
ou: User&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; それぞれのドメイン毎に利用者を作成する&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?do=export_code&amp;amp;id=serverapp:mail&amp;amp;codeblock=14&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_ldif&quot;&gt;example.net.users.LDIF&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;# 実ユーザーの場合
# test1		メール転送無し
dn: uid=test1,ou=User,dc=example.net,ou=vmail,o=example		←アカウントの情報 ou以下はコンテナー情報
objectClass: mailUser						← mail.schemaで定義したObject Classを記載
cn: TEST							← 一般には名字(Last name/Family name)
sn: Test-1							← 一般には名前(First name)
uid: test1							← UID (dnで定義した値)
userPassword: himitu						← パスワード。ここではPlainで記載した。
homeDirectory: /home/vmail/example.net/test1			← Home Directory
mailDir: example.net/test1/Maildir/				← Mail Directory
mail: test1@example.net						← Mail address
transport: virtual						← postfix用定義。virtual transportを利用する
accountActive: TRUE						← Accountが有効かどうか
domainName: example.net						← ドメイン名

# test2		メール転送あり
dn: uid=test2,ou=User,dc=example.net,ou=vmail,o=example
objectClass: mailUser
cn: TEST
sn: Test-2
uid: test2
userPassword: himitu
homeDirectory: /home/vmail/example.net/test2
mailDir: example.net/test2/Maildir/
mail: test2@example.net
mailForward: test2@example.com					← メールの転送先
transport: virtual
accountActive: TRUE
domainName: example.net

# いわゆるalias。
# postmaster	メール管理者。作成するべき
dn: uid=postmaster,ou=User,dc=example.net,ou=vmail,o=example
objectClass: mailGroup						← Alias定義
mail: postmaster@example.net					← Mail Address
uid: postmaster							← UID
cn: postmaster
sn: ML User
domainName: example.net
accountActive: TRUE
mailDrop: test1@example.net					← postmaster当てのメールを転送するユーザー
mailDrop: test2@example.com

# webmaster
dn: uid=webmaster,ou=User,dc=example.net,ou=vmail,o=example
objectClass: mailGroup
mail: webmaster@example.net
uid: webmaster
cn: webmaster
sn: ML User
domainName: example.net
accountActive: TRUE
mailDrop: test2@example.net&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; それぞれのファイルが作成できたら、LDAPに登録する&lt;pre class=&quot;code&quot;&gt;Topの作成
$ ldapadd -x -h ldap.server.hostname -D &amp;quot;cn=Manager,o=example&amp;quot; -w ldap-pass -f Top.ldif
ドメインの登録
$ ldapadd -x -h ldap.server.hostname -D &amp;quot;cn=Manager,o=example&amp;quot; -w ldap-pass -f Vdom.ldiff
ユーザの登録
$ ldapadd -x -h ldap.server.hostname -D &amp;quot;cn=Manager,o=example&amp;quot; -w ldap-pass -f example.net.ldif&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; errorが出なければ登録されている。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;OpenLDAP\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;openldap\u306e\u8a2d\u5b9a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;21319-27434&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit20&quot; id=&quot;mailschemaの説明&quot;&gt;mail.schemaの説明&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
今回の設定では、LDAPに登録するmail情報のために mail.schemaを利用している。
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;オブジェクトクラス&quot;&gt;オブジェクトクラス&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;div class=&quot;table sectionedit21&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; objectClass名 &lt;/th&gt;&lt;th class=&quot;col1 leftalign&quot;&gt; 説明                     &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; mailUser      &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; ユーザ用メールアカウント &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;27602-27706&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h5 id=&quot;スキーマのデータ属性_attributetype&quot;&gt;スキーマのデータ属性(attributetype)&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;div class=&quot;table sectionedit22&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; 属性名        &lt;/th&gt;&lt;th class=&quot;col1 leftalign&quot;&gt; 説明                                         &lt;/th&gt;&lt;th class=&quot;col2 leftalign&quot;&gt; 参照先           &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; transport     &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; SMTPのtransport設定(基本的に“virtual”で固定) &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; Postfix          &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; domainName    &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; 所属ドメイン名                               &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; Postfix          &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; mailDir       &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; SMTPのメール配送先ディレクトリ               &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; Postfix          &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; accountActive &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; アカウントの有効/無効をTRUE/FALSEで指定      &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Postfix、Dovecot &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; mailForward   &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; 転送先メールアドレス                         &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; Postfix          &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; mailAlias     &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; 別名メールアドレス(エイリアス)               &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; Postfix          &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;27761-28425&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h5 id=&quot;今回登録されるユーザー情報構造&quot;&gt;今回登録されるユーザー情報構造&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;div class=&quot;table sectionedit23&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt; 属性名         &lt;/th&gt;&lt;th class=&quot;col1 leftalign&quot;&gt; 説明                                      &lt;/th&gt;&lt;th class=&quot;col2 leftalign&quot;&gt; 値の例                       &lt;/th&gt;&lt;th class=&quot;col3&quot;&gt; 必項属性 &lt;/th&gt;&lt;th class=&quot;col4 leftalign&quot;&gt;                                    &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; cn             &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; ラストネーム                              &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; TEST                         &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 必項     &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;                                    &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; sn             &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; ファーストネーム                          &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; Test-1                       &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 必項     &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;                                    &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; uid            &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; ユーザID                                  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; test                         &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 必項     &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 今回は必ずしも数字である必要はない &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; userPassword   &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; パスワード                                &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; HIMITSUNOMOJIRETU            &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 必項     &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;                                    &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; homeDirectory  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; ユーザのホームディレクトリ                &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; /home/vmail/examplenet/[uid] &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 必項     &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;                                    &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; mailDir        &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; ユーザのMailDirディレクトリ(SMTPの配送先) &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; example.net/[uid]/MailDir/   &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 必項     &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;                                    &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; mail           &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; ユーザのメールアドレス                    &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; test1.example.net            &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 必項     &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;                                    &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; mailForword    &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; 転送先メールアドレス                      &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; foo@some.domain              &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 任意     &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;                                    &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; mailAlias      &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; 別名メールアドレス(Alias)                 &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; postmaster@example.net       &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 任意     &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;                                    &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; accountActive  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; アカウントの有効/無効をTRUE/FALSEで指定   &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; TRUE                         &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 必項     &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;                                    &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; domainName     &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; 所属ドメイン名(dn:のdc=の値)              &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; example.net                  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 必項     &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;                                    &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table4&amp;quot;,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;28480-30337&amp;quot;} --&gt;&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 属性の詳細&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; uid&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; 今回は利用しない。Unixへのlogin等を管理する場合には数字を入れておく。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; mailForword&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; mail及びmailAlias宛に来たメールを転送する転送先。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; mail&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; ユーザーのメールアドレス。今回は認証にこの情報を利用する&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; mailAlias&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; 設定されたメールアドレス宛のメールを受信する&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; accountActive&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; “FALSE”に設定すると、一時的にこのアカウントの利用を停止できる&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;mail.schema\u306e\u8aac\u660e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mailschema\u306e\u8aac\u660e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:16,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;27435-30882&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit24&quot; id=&quot;postfix設定&quot;&gt;postfix設定&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
ここまで設定できれば、あとは postfixがLDAPの情報を利用できるようにするだけである。
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;maincfの更新&quot;&gt;main.cfの更新&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
main.cfに以下の設定を加える
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# for Virtual Domains with LDAP
virtual_mailbox_limit = 104857600						← 少なくともmessage_size_limit以上にすること
transport_maps = ldap:/etc/postfix/transport.cf					← transportの検索(LDAP)
virtual_alias_maps = ldap:/etc/postfix/account.cf,ldap:/etc/postfix/group.cf	← アカウントやグループデータの検索(LDAP)
virtual_mailbox_base = /home/vmail						← メールボックスを置くディレクトリ
virtual_mailbox_domains = ldap:/etc/postfix/VIRTUAL/vdomain.cf			← 仮想ドメインの検索(LDAP)
virtual_mailbox_maps = ldap:/etc/postfix/VIRTUAL/maildir.cf			← Mail保存ディレクトリの検索(LDAP)
virtual_uid_maps = static:900							← 仮想メールボックスのUID(固定)
virtual_gid_maps = static:900							← 仮想メールボックスのUID(固定)
local_transport = local								← 仮想domain出はない場合のtransport手法の指定&lt;/pre&gt;

&lt;/div&gt;

&lt;h5 id=&quot;いくつかのファイルの追加&quot;&gt;いくつかのファイルの追加&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
main.cfで定義したファイルの作成
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?do=export_code&amp;amp;id=serverapp:mail&amp;amp;codeblock=17&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_cf&quot;&gt;transport.cf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;server_host = localhost
#server_host = ldap1.some.domain, ldap2.some.domain				← サーバーが複数ある場合
search_base = ou=vmail,o=example
query_filter = (&amp;amp;(objectClass=mailUser)(|(mail=%s)(mailAlias=%s))(accountActive=TRUE))
result_attribute = transport&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?do=export_code&amp;amp;id=serverapp:mail&amp;amp;codeblock=18&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_cf&quot;&gt;account.cf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;server_host = localhost
#server_host = ldap1.some.domain, ldap2.some.domain				← サーバーが複数ある場合
search_base = ou=vmail,o=example
query_filter = (&amp;amp;(objectClass=mailUser)(|(mail=%s)(mailAlias=%s))(accountActive=TRUE))
result_attribute = mail, mailForward&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?do=export_code&amp;amp;id=serverapp:mail&amp;amp;codeblock=19&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_cf&quot;&gt;group.cf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;server_host = localhost
#server_host = ldap1.some.domain, ldap2.some.domain				← サーバーが複数ある場合
search_base = ou=vmail,o=example
query_filter = (&amp;amp;(objectClass=mailGroup)(mail=%s)(accountActive=TRUE))
result_attribute = mailDrop&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?do=export_code&amp;amp;id=serverapp:mail&amp;amp;codeblock=20&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_cf&quot;&gt;vdomain.cf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;server_host = localhost
#server_host = ldap1.some.domain, ldap2.some.domain				← サーバーが複数ある場合
search_base = ou=vmail,o=example
query_filter = (domainName=%s)
result_attribute = domainName&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?do=export_code&amp;amp;id=serverapp:mail&amp;amp;codeblock=21&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_cf&quot;&gt;maildir.cf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;server_host = localhost
#server_host = ldap1.some.domain, ldap2.some.domain				← サーバーが複数ある場合
search_base = ou=vmail,o=example
query_filter = (&amp;amp;(objectClass=mailUser)(|(mail=%s)(mailAlias=%s))(accountActive=TRUE))
result_attribute = mailDir&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;postfix再起動&quot;&gt;postfix再起動&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
通常どおり、postfixを再起動する。
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;テスト&quot;&gt;テスト&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
通常どおり、メールの試験をする。特に、Mailの送受信に関しては、正しくメールが配送されているかを確認すること。
/var/log/maillogや、main.cfで指定したhome dir、mail dir等を見ながら、何が起こっているのか確認する必要がある。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;postfix\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;postfix\u8a2d\u5b9a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:16,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;30883-33901&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit25&quot; id=&quot;dovecot設定&quot;&gt;dovecot設定&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
dovecotの設定を行う。これは非常に簡単。
&lt;/p&gt;

&lt;p&gt;
auth defaultで、ldapでの認証を行う
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;auth default { &amp;lt;---認証の設定

 mechanisms = plain

 passdb ldap {
	args = /usr/pkg/etc/dovecot-ldap.conf
 }
 userdb ldap {
	args = /usr/pkg/etc/dovecot-ldap.conf
 }&lt;/pre&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?do=export_code&amp;amp;id=serverapp:mail&amp;amp;codeblock=23&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_conf&quot;&gt;dovecot-ldap.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;# Debug
#debug_level = 3			← Debug用

hosts = localhost

tls = no
auth_bind=yes
ldap_version = 3

base = ou=vmail,o=example
deref = never
scope = subtree
user_attrs = homeDirectory=home
user_filter = (&amp;amp;(objectClass=mailUser)(mail=%u)(accountActive=TRUE))
pass_attrs = uid=mail
pass_filter = (&amp;amp;(objectClass=mailUser)(mail=%u)(accountActive=TRUE))
default_pass_scheme = PLAIN&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
これで設定は終了。通常どおりに再起動して、試験を行うこと。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;dovecot\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dovecot\u8a2d\u5b9a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:22,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;33902-34715&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit26&quot; id=&quot;phpldapadmin&quot;&gt;phpLDAPadmin&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
phpLDAPadminは、WubGUIでLDAPのデータを管理するための管理ツールである。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page&quot; class=&quot;urlextern&quot; title=&quot;http://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page&quot;&gt;php LDAP Admin&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/detail.php?id=serverapp%3Amail&amp;amp;media=construct.gif&quot; class=&quot;media&quot; title=&quot;construct.gif&quot;&gt;&lt;img src=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/fetch.php?media=construct.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;phpLDAPadmin&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;phpldapadmin&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:24,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;34716-34939&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit27&quot; id=&quot;download&quot;&gt;Download&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://phpldapadmin.sourceforge.net/wiki/index.php/Download&quot; class=&quot;urlextern&quot; title=&quot;http://phpldapadmin.sourceforge.net/wiki/index.php/Download&quot;&gt;Downloadページ&lt;/a&gt;から最新版のphpLDAPadminをダウンロードする。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Download&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;download&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:24,&amp;quot;secid&amp;quot;:27,&amp;quot;range&amp;quot;:&amp;quot;34940-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 14 May 2018 04:12:43 +0000</pubDate>
        </item>
        <item>
            <title>OpenLDAP</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:openldap</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;openldap&quot;&gt;OpenLDAP&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:openldap:old1&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:openldap:old1&quot; data-wiki-id=&quot;serverapp:openldap:old1&quot;&gt;過去の記録-1&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;OpenLDAP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;openldap&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-75&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;openldap_server_を建てる&quot;&gt;OpenLDAP Server を建てる&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
NetBSDのpkgsrcを用いたOpenLDAP Server構築（古い記事）は&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:openldap:old1&quot; class=&quot;wikilink1&quot; title=&quot;serverapp:openldap:old1&quot; data-wiki-id=&quot;serverapp:openldap:old1&quot;&gt;こちら&lt;/a&gt;を参照のこと。
&lt;/p&gt;

&lt;p&gt;
今回は、FreeBSDを用いたOpenLDAP Serverを建てることを目標にする。
なお、実際には、Installに関してはおそらくどのPlatformでも同様で、Install後の設定ファイルなどの配置が異なるだけだと思われる。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;OpenLDAP Server \u3092\u5efa\u3066\u308b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;openldap_server_\u3092\u5efa\u3066\u308b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;76-508&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;freebsd_102にopenldap_serverをinstallする&quot;&gt;FreeBSD 10.2にOpenLDAP ServerをInstallする&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
至極簡単。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; pkg install openldap-server&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; pkg install openldap-client&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
で良い。
&lt;/p&gt;

&lt;p&gt;
なお、FreeBSDでpkgでinstallした場合、通常 ldap が利用するUID/GIDは、389/389 となる。
&lt;/p&gt;

&lt;p&gt;
FreeBSDの場合、各種設定ファイルは、/usr/local/etc/openldap 下に配置される。
&lt;/p&gt;

&lt;p&gt;
起動時にOpenLDAP Serverを動作させるには、/etc/rc.confに以下を記載する。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;slapd_enable=&amp;quot;YES&amp;quot;
#slapd_flags=&amp;#039;-h &amp;quot;ldapi:///var/run/openldap/ldapi/ ldap://0.0.0.0/&amp;quot;&amp;#039;	# ←おそらく不要
#slapd_sockets=&amp;quot;/var/run/openldap/ldapi&amp;quot;				# ←おそらく不要&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;FreeBSD 10.2\u306bOpenLDAP Server\u3092Install\u3059\u308b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;freebsd_102\u306bopenldap_server\u3092install\u3059\u308b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;509-1158&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;初期設定&quot;&gt;初期設定&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
OpenLDAP関連の設定は
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Server用の設定: /usr/(local|pkg)/etc/openldap/slapd.conf&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; client用の設定: /usr/(local|pkg)/etc/openldap/ldap.conf&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
で行う。
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?do=export_code&amp;amp;id=serverapp:openldap&amp;amp;codeblock=1&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_conf&quot;&gt;slapd.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code&quot;&gt;#######################################################################
# OpenLDAP slapd Configuration File.
# See slapd.conf(5) for details on configuration options.

# Database Schema
include         /usr/local/etc/openldap/schema/core.schema
include		/usr/local/etc/openldap/schema/cosine.schema
include		/usr/local/etc/openldap/schema/inetorgperson.schema
include		/usr/local/etc/openldap/schema/nis.schema
include		/usr/local/etc/openldap/schema/mail.schema
	# mail.schema/postLDAPadmin.schemaは別途追加する

# System File
pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args

# Allow LDAPv2 client connections. This is NOT the default.
allow           bind_v2

#######################################################################
# Load dynamic backend modules:
modulepath      /usr/local/libexec/openldap
moduleload      back_mdb
# moduleload    back_ldap
moduleload      back_monitor
moduleload      syncprov						# 必要に応じて

#######################################################################
# syslog
# loglevel 0 is not output openldap log.
# log is output for syslog (local4.*)
#loglevel       960
loglevel        256

#######################################################################
# Access Control List.
access to dn.subtree=&amp;quot;ou=vmail,o=example&amp;quot; attrs=userPassword
        by self write
        by anonymous auth
        by * none

access to *
        by self write
        by * read

#######################################################################
# MDB database definitions
#######################################################################

database        mdb
maxsize         1073741824
suffix          &amp;quot;o=example.net&amp;quot;
rootdn          &amp;quot;cn=Manager,o=example&amp;quot;
rootpw          secret
directory       /var/db/openldap-data
index           objectClass                     eq,pres
index           ou,cn,mail,surname,givenname    eq,pres,sub
index           uidNumber,gidNumber,loginShell  eq,pres
index           uid,memberUid                   eq,pres,sub
index           nisMapName,nisMapEntry          eq,pres,sub

#######################################################################
# Replication ( Share )
index           entryCSN,entryUUID              eq

# Replication ( Provider )
overlay         syncprov
syncprov-sessionlog     100
serverID        1

# Replication ( Consumer )
#syncrepl rid=001
#        provider=ldap://xxx.xxx.xxx.xxx
#        bindmethod=simple
#        binddn=&amp;quot;cn=Manager,o=example&amp;quot;
#        credentials=secret
#        searchbase=&amp;quot;o=example&amp;quot;
#        schemachecking=on
#        type=refreshAndPersist
#        retry=&amp;quot;10 +&amp;quot;
 
#syncrepl rid=002
#        provider=ldap://xxx.xxx.xxx.yyy
#        bindmethod=simple
#        binddn=&amp;quot;cn=Manager,o=example&amp;quot;
#        credentials=secret
#        searchbase=&amp;quot;o=example&amp;quot;
#        schemachecking=on
#        type=refreshAndPersist
#        retry=&amp;quot;10 +&amp;quot;

#mirrormode on&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;passwordの作り方&quot;&gt;Passwordの作り方&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
上記slapd.conf内のrootpwには、RootDNのパスワードを入力する必要がある。
このパスワードは、以下の方法で作成する。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ /usr/pkg/sbin/slappasswd -h [CRYPT|MD5|SMD5|SSHA|SHA] -s secret&lt;/pre&gt;

&lt;p&gt;
標準のHASH方式はSSHAなので、&lt;code&gt;slappasswd -s secret&lt;/code&gt;でパスワードを作成すればOK
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ slappasswd -s 12345678
{SSHA}tTTZQEwu7eair4ISCNmxrS/U2Qn8laHO
$ &lt;/pre&gt;

&lt;p&gt;
この結果を貼り付ければok
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u521d\u671f\u8a2d\u5b9a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u521d\u671f\u8a2d\u5b9a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1159-4805&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;openldap起動&quot;&gt;openldap起動&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
ここまで問題がなければ、
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# service slapd onestart&lt;/pre&gt;

&lt;p&gt;
でslapd(OpenLDAP Server)が起動する。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;openldap\u8d77\u52d5&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;openldap\u8d77\u52d5&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4806-4952&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;基本ディレクトリ作成&quot;&gt;基本ディレクトリ作成&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
とにかくまず、LDAPを動かすために必要な最小限のデータは登録しなければならない。
何はともあれ、基本ディレクトリと、その管理者を登録する。
&lt;/p&gt;

&lt;p&gt;
基本ディレクトリ構造は以下の通り
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/detail.php?id=serverapp%3Aopenldap&amp;amp;media=os:netbsd:pkgsrc:packages:openldap-dit.png&quot; class=&quot;media&quot; title=&quot;os:netbsd:pkgsrc:packages:openldap-dit.png&quot;&gt;&lt;img src=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/fetch.php?media=os:netbsd:pkgsrc:packages:openldap-dit.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; title=&quot;OpenLDAPの初期状態のDIT&quot; alt=&quot;OpenLDAPの初期状態のDIT&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
この構造に合わせたLDIFファイルを作成する
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/doku.php?do=export_code&amp;amp;id=serverapp:openldap&amp;amp;codeblock=5&quot; title=&quot;この部分をダウンロード&quot; class=&quot;mediafile mf_ldif&quot;&gt;init.ldif&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code Initldif&quot;&gt;dn: o=example, c=net
objectClass: organization
o: example
&amp;nbsp;
dn: cn=Manager, o=example, c=net
objectClass: organizationalRole
cn: Manager&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
その後、以下のコマンドを入力して、DataをLDAP Serverに投入する
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ ldapadd -x -D &amp;quot;cn=Manager, o=example&amp;quot; -W -f init.ldif
Enter LDAP Password: 
adding new entry &amp;quot;o=example&amp;quot;

adding new entry &amp;quot;cn=Manager, o=example&amp;quot;&lt;/pre&gt;

&lt;p&gt;
これで最小限の設定は終了。あとはApplication毎の設定を投入するだけ。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u57fa\u672c\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4f5c\u6210&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u57fa\u672c\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4f5c\u6210&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4953-5904&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;いくつかのコマンドのメモ&quot;&gt;いくつかのコマンドのメモ&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; LDAPにデータを登録する&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code&quot;&gt;ldapadd -x -h localhost -D &amp;quot;cn=Manager,o=example&amp;quot; -w 12345654321 -f LDIF-file&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; とにかく見てみる&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code&quot;&gt;ldapsearch -x -h localhost -b &amp;#039;&amp;#039; -s base +&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; example/vmail/example.netからuidがtest1のデータを検索する&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code&quot;&gt;ldapsearch -x -h localhost -b &amp;#039;dc=example.net,ou=vmail,o=example&amp;#039; uid=test1&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; indexを更新する&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code&quot;&gt;slapindex -v -b o=example -f /usr/pkg/etc/openldap/slapd.conf&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u3044\u304f\u3064\u304b\u306e\u30b3\u30de\u30f3\u30c9\u306e\u30e1\u30e2&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u3044\u304f\u3064\u304b\u306e\u30b3\u30de\u30f3\u30c9\u306e\u30e1\u30e2&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;5905-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 14 May 2018 04:13:48 +0000</pubDate>
        </item>
        <item>
            <title>OpenSSLで自己認証証明書(おれおれCA)を作成</title>
            <link>http://www.seirios.org/seirios/dokuwiki/doku.php?id=serverapp:openssl</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;opensslで自己認証証明書_おれおれca_を作成&quot;&gt;OpenSSLで自己認証証明書(おれおれCA)を作成&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
一般に、公的な証明書発行機関の証明書にはそれなりにお金がかかるわけで、個人で、個人向けにサービスをするなら自己認証証明書で済ましておくのがお金がかからなくて幸せ。
&lt;/p&gt;

&lt;p&gt;
というわけで、自己認証証明書とおれおれCAの作成メモ。
&lt;/p&gt;

&lt;p&gt;
参考URL
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.linux.or.jp/JF/JFdocs/SSL-Certificates-HOWTO/index.html&quot; class=&quot;urlextern&quot; title=&quot;http://www.linux.or.jp/JF/JFdocs/SSL-Certificates-HOWTO/index.html&quot;&gt;SSL Certificates HOWTO&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h5 id=&quot;注意&quot;&gt;注意&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 自己認証証明書はあくまで身内で利用するためだけにしましょう&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 公的なサービスに自己認証証明書を利用するのはよろしくありません&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; この手段を使う場合、ブラウザーなどにRootCAの証明書の登録が必要です&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;OpenSSL\u3067\u81ea\u5df1\u8a8d\u8a3c\u8a3c\u660e\u66f8(\u304a\u308c\u304a\u308cCA)\u3092\u4f5c\u6210&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;openssl\u3067\u81ea\u5df1\u8a8d\u8a3c\u8a3c\u660e\u66f8_\u304a\u308c\u304a\u308cca_\u3092\u4f5c\u6210&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-810&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;準備をする&quot;&gt;準備をする&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
動作環境はNetBSDとする。opensslを使うので、恐らく他のPlatformでも動くとは思うけど。
&lt;/p&gt;

&lt;p&gt;
NetBSD 5.1 RC1には、defaultでOpenSSLがInstallされている。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; CA用のOpenSSLワークディレクトリを決める&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 今回は、/etc/openssl/CAとする&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 複数のDomainでそれぞれのCAを作るなら、/etc/openssl/[domains-yyyymmdd]などとするとわかりやすくて便利&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; openssl.cnfを作成し、/etc/openssl/openssl.cnfに設置&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ひな形は /usr/share/examples/openssl/openssl.cnf&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u6e96\u5099\u3092\u3059\u308b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u6e96\u5099\u3092\u3059\u308b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;811-1386&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;今回のcaの構造&quot;&gt;今回のCAの構造&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
今回はRoot CAと、その下にSubsidiary CA（中間認証局）を構築することを目標とし、個人認証用やServer認証用の証明書はすべてSubsidiary CAから発行するものとする。
&lt;/p&gt;

&lt;p&gt;
Root CAは下位のCAに署名することのみ行う
&lt;/p&gt;

&lt;p&gt;
Subsidiary CAは、下位のHostや個人用の証明書に署名することのみ行う。
&lt;/p&gt;

&lt;p&gt;
;#;
&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/detail.php?id=serverapp%3Aopenssl&amp;amp;media=serverapp:ca.png&quot; class=&quot;media&quot; title=&quot;serverapp:ca.png&quot;&gt;&lt;img src=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/fetch.php?media=serverapp:ca.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
;#;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u4eca\u56de\u306eCA\u306e\u69cb\u9020&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u4eca\u56de\u306eca\u306e\u69cb\u9020&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1387-1816&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;root_caの作成&quot;&gt;Root CAの作成&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/detail.php?id=serverapp%3Aopenssl&amp;amp;media=construct.gif&quot; class=&quot;media&quot; title=&quot;construct.gif&quot;&gt;&lt;img src=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/fetch.php?media=construct.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Root CA\u306e\u4f5c\u6210&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;root_ca\u306e\u4f5c\u6210&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1817-1865&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;subsidiary_caの作成&quot;&gt;Subsidiary CAの作成&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/detail.php?id=serverapp%3Aopenssl&amp;amp;media=construct.gif&quot; class=&quot;media&quot; title=&quot;construct.gif&quot;&gt;&lt;img src=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/fetch.php?media=construct.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Subsidiary CA\u306e\u4f5c\u6210&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;subsidiary_ca\u306e\u4f5c\u6210&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1866-1920&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;サーバー証明書の作成&quot;&gt;サーバー証明書の作成&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
ここまででRootCA/SubsidiaryCAの作成は出来たので、あとは、各種証明書を作成するだけ。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;=== 秘密鍵の作成 ===
# openssl genrsa -des3 -out mailservkey.pem 2048				←とりあえず Mail Serverの証明書を作ってみる
# openssl rsa -in mailservkey.pem -out mailservnopasskey.pem			←サーバーの起動時にpassphrase入力を要求されても対応は難しいから外しておく
=== CSR作成 ===
# openssl req -new -days 365 -key mailservkey.pem -out mailservcsr.pem		←passphrase付きの鍵を使うこと
Country Name (2 letter code)[AU]:　JP						←国コード（まぁ、日本だし、JPだよね）
State or Province Name (full name)[Some-State]: Tokyo				←都道府県、州等を入力
Locality Name (eg, city)[]: Suginami-Ku						←市区町村を入力
Organization Name(eg, company)[example.net]: example.net			←会社名などを入力
Organization Unit Name (eg, section)[]:						←部署など
Common Name (eg, your name or your server&amp;#039;s hostname)[]:mail.example.net	←サーバー名や個人名などをFQDNで入力
Email Address []:postmaster@example.net						←連絡先を入力

Please enter the following &amp;#039;extra&amp;#039; attributes
to be sent with your certificate request
A challenge password []:							←特に入力しなくても良い
An optional company name []:							←特に入力しなくても良い
=== 署名 ===
Subsidiary CAにloginして、署名処理を行う&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u30b5\u30fc\u30d0\u30fc\u8a3c\u660e\u66f8\u306e\u4f5c\u6210&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u30b5\u30fc\u30d0\u30fc\u8a3c\u660e\u66f8\u306e\u4f5c\u6210&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1921-3435&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit7&quot; id=&quot;注意重要&quot;&gt;注意:重要&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
いわゆるhttps(HTTP+SSL)を、virtual hostingで利用したい場合、それぞれの仮想ドメイン毎にSSL証明書を発行して、ssl通信をしたくなる。
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; IPベースでVirtual Hostingをするならば、問題なく仮想ドメイン毎にSSL通信できる。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 名前ベースでIP addressをshareしている場合、仮想ドメイン毎にSSL通信することは不能&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
ということになる。
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;理由&quot;&gt;理由&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
SSL通信はLayer 4で行われる。これは、要するにTCP層で処理されると言うことである。（だからport番号が違う。httpは80番ポート、httpsは443番ポート）
&lt;/p&gt;

&lt;p&gt;
HTTPはTCP層の上位Layerのプロトコルであり、TCP通信が成立していることが前提となる。
&lt;/p&gt;

&lt;p&gt;
従って、通信は以下の順序で行われる
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTTPの場合&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ServerのIP Address(以下Addr(s))において、httpポートでsocket(以下sock(80))をLISTENする&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ClientがAddr(s)のsock(80)に接続要求する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; TCPがEstablishしたらpayload(HTTP要求)をWeb Server(以下httpd)に渡す&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; httpdはHTTP要求を見て、処理を行う。この段階で仮想ホストに対するアクセスなども処理される&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; HTTPsの場合&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Addr(s)において、httpsポートでsocket(以下sock(443))をLISTENする&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ClientがAddr(s)のsock(443)に接続要求する&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; SSLの処理を行う。この処理は、IP Addressのみを元にして行われる&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; TCPがEstablishしたらpayload(HTTP要求)をWeb Server(以下httpd)に渡す&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; httpdはHTTP要求を見て、処理を行う。この段階で仮想ホストに対するアクセスなども処理される&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
このような流れである以上、named virtual hostの処理をhttpdが行う前にSSLがEstablishしていなければならない。
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u6ce8\u610f:\u91cd\u8981&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u6ce8\u610f\u91cd\u8981&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3436-5279&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;個人証明書の作成&quot;&gt;個人証明書の作成&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/detail.php?id=serverapp%3Aopenssl&amp;amp;media=construct.gif&quot; class=&quot;media&quot; title=&quot;construct.gif&quot;&gt;&lt;img src=&quot;http://www.seirios.org/seirios/dokuwiki/lib/exe/fetch.php?media=construct.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u500b\u4eba\u8a3c\u660e\u66f8\u306e\u4f5c\u6210&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u500b\u4eba\u8a3c\u660e\u66f8\u306e\u4f5c\u6210&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;5280-5337&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;証明書のpassphraseをはずす&quot;&gt;証明書のPassPhraseをはずす&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
LighttpdやDovecot等、Server Applicationで証明書を利用する場合、証明書のpassphraseを外しておきたいことがある。
&lt;/p&gt;

&lt;p&gt;
Dovecotはconfigファイルにpasswordを書けるようだが、記載できないServer Applicationが多いので、しょうがないからPassPhraseをはずす方法を。
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# openssl rsa -in server.key -out server.key&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u8a3c\u660e\u66f8\u306ePassPhrase\u3092\u306f\u305a\u3059&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u8a3c\u660e\u66f8\u306epassphrase\u3092\u306f\u305a\u3059&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;5338-5769&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;注意点&quot;&gt;注意点&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
証明書の運用上注意すべき点を挙げる。
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 今回作ったCAはあくまでも「おれおれCA」である。従って、公的な証明には全くならないので注意すること&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 各証明書が失効すると再度証明書を発行する必要がある。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 暗号アルゴリズムは危殆化するので、あまり長期間の証明書を作成すると更新が大変。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; これらの面倒を負えないなら、コストをかけて証明書を購入するべき。&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
無料の証明書発行サイト
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.thawte.com/&quot; class=&quot;urlextern&quot; title=&quot;http://www.thawte.com/&quot;&gt;Thawte Inc.&lt;/a&gt; 解説記事は &lt;a href=&quot;http://www.atmarkit.co.jp/fwin2k/win2ktips/647freeca/freeca01.html&quot; class=&quot;urlextern&quot; title=&quot;http://www.atmarkit.co.jp/fwin2k/win2ktips/647freeca/freeca01.html&quot;&gt;無料でデジタル証明書を取得する（1）&lt;/a&gt;にあります。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.cacert.org/&quot; class=&quot;urlextern&quot; title=&quot;http://www.cacert.org/&quot;&gt;cacert.org&lt;/a&gt; 解説記事は &lt;a href=&quot;http://freebsd.fkimura.com/cacert-a0.html&quot; class=&quot;urlextern&quot; title=&quot;http://freebsd.fkimura.com/cacert-a0.html&quot;&gt;CACert.orgで無料のSSLサーバを動かすメモ&lt;/a&gt;にあります。&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.startssl.com/&quot; class=&quot;urlextern&quot; title=&quot;https://www.startssl.com/&quot;&gt;startssl&lt;/a&gt; 解説記事は&lt;a href=&quot;http://futuremix.org/2009/02/startssl&quot; class=&quot;urlextern&quot; title=&quot;http://futuremix.org/2009/02/startssl&quot;&gt;無料 SSL 証明書 StartSSL を使う&lt;/a&gt;にあります。&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u6ce8\u610f\u70b9&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u6ce8\u610f\u70b9&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;5770-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 14 May 2018 04:11:43 +0000</pubDate>
        </item>
    </channel>
</rss>
