メールサーバの構築
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
*exim4 … SMTPサーバ [#qd856600]
-''はじめに''~
以下のプログラムを使用してメール環境を構築したときのメモ...
--SMTPサーバ … exim4 (debianのデフォルトメールサーバ)
--IMAPサーバ … dovecot (もれなくPOP3もついてくる)
--WEBメール … SquirrelMail~
~
-''参考ページ''~
次のページを参考にしました。~
--[[exim4でSMTP@Linux Home Server Memo:http://asshole.dip...
--[[FreeBSDでEximを使ってみる:http://www5e.biglobe.ne.jp/...
~
-''SMTP(Port25)のフォワード''~
LANDISKがメールの送受信を行えるよう、ADSLモデム(ルータ)の...
具体的には、smtpポート(25番)をLANDISK側へフォワードするよ...
&color(red){ADSLモデムの設定変更やリセットでWAN側IPアドレ...
&color(red){DynamicDNSの更新も同時に行ってくださいね。私...
~
-''exim4の設定''~
#pre{{
landisk:~# dpkg-reconfigure exim4-config
}}
--Split configuration into small files?~
&color(red){No};~
--General type of mail configuration:~
&color(red){internet site; mail is sent and received dire...
--System mail name:~
&color(red){eggplant.ddo.jp};~
--IP-addresses to listen on for incoming SMTP connections:~
&color(red){空白};~
--Other destinations for which mail is accepted:~
&color(red){eggplant.ddo.jp};~
--Domains to relay mail for:~
&color(red){空白};~
--Machines to relay mail for:~
&color(red){空白};~
--Keep number of DNS-queries minimal (Dial-on-Demand)?~
&color(red){No};~
--Root and postmaster mail recipient:~
&color(red){landisk}; ← システムからの(各種ログ等の)メ...
~
-''mail保存形式をmboxからMaildirへ変更''~
/etc/exim4/update-exim4.conf.confの最終行へ追加。~
#pre{{
dc_localdelivery='maildir_home'
}}
次に、ユーザのホームディレクトリにMaildirを作成します。~
例えば、ユーザ landiskの場合。~
#pre{{
landisk:~# su landisk
landisk@landisk:/root$ cd
landisk@landisk:~$ mkdir Maildir
landisk@landisk:~$ chmod 700 Maildir
landisk@landisk:~$ exit
landisk:~#
}}
-''設定が終了したらexim4を再起動します。''~
#pre{{
landisk:~# /etc/init.d/exim4 reload
Reloading exim4 configuration files
}}
*Dovecot … IMAP/POP3サーバ [#ud31271e]
-''インストール&設定''~
dovecotというIMAP/POP3サーバを使用してみようと思います。~
#pre{{
landisk:~# apt-get install dovecot
}}
補足:debian26-etch版では、
#pre{{
landisk:~# apt-get install dovecot-common dpvecot-imapd d...
}}
/etc/dovecot/dovecot.conf の protocolsの行を次のように編...
(POP3サーバも動作させたい場合は、pop3を追加。)~
#pre{{
protocols = imap
# protocols = imap pop3
}}
-''%%inetd経由で起動%% &color(red){追記:何故だかゾンビが...
%%メモリ消費を抑えるため、inetdから呼び出すように設定しま...
%%/etc/inetd.confに次を追加します。%%~
#pre{{
%%imap stream tcp nowait root /usr/sbin/tcpd /usr/lib...
%%#imaps stream tcp nowait root /usr/sbin/tcpd /usr/li...
%%pop3 stream tcp nowait root /usr/sbin/tcpd /usr/lib...
%%#pop3s stream tcp nowait root /usr/sbin/tcpd /usr/li...
}}
%%inetdを再起動します。%%~
#pre{{
%%landisk:~# /etc/init.d/inetd restart%%
}}
%%この状態で、IMAP/POP3対応のメーラーからアクセスできると...
%%なお、必要に応じて、TCPWapper(/etc/hosts.allow、/etc/ho...
-''Dovecotの起動''~
#pre{{
landisk:~# /etc/init.d/dovecot start
}}
この状態で、IMAP/POP3対応のメーラーからアクセスできると思...
*SquirrelMail … WEBメール [#b328e993]
-''&color(red){注意};''~
&color(red){本節では、HTTPSではなく、通常のHTTPプロトコル...
&color(red){従って、インターネット上を平文のまま、パスワ...
&color(red){万が一に備え、WEBメール専用のアカウントで...
&color(red){(それほど神経質にならなくても良いと思います...
-''インストール&設定''~
--インストール~
次のパッチを当てたパッケージを用意しました。~
---[[日本語文字化けパッチ:http://sanguine.jp/pipermail/sq...
---[[1.4.3a用のXSS脆弱性を修正するパッチ:http://internap....
---+α(SquirrelMailコンフィグ設定済み)~
--
#pre{{
landisk:~# apt-get install squirrelmail locales
}}
※localesでは、''ja_JP.eucJP'' にチェックが必要~
~
--/etc/apache/conf.d/squirrelmail.conf を次の内容で用意~
#pre{{
Alias /squirrelmail /usr/share/squirrelmail
<Directory /usr/share/squirrelmail>
# php_value register_globals On # refer to Debian bug #1...
php_flag register_globals on
Options Indexes FollowSymLinks
<Files configtest.php>
order deny,allow
deny from all
allow from 127.0.0.1
allow from 192.168.1.0/24
allow from 192.168.0.0/24
</Files>
</Directory>
}}
--apacheの再起動~
#pre{{
landisk:/# apachectl configtest
Syntax OK
landisk:/# /etc/init.d/apache restart
Restarting apache.
}}
-''SquirrelMailへ接続''~
ブラウザから、http//MY_LANDISK/squirrelmail/で、SquirrelM...
~
CENTER:
&ref(squirrelmail.png,nolink);
~
~
*補足 … exim4 トラブルシューティング [#x31fe2cb]
-''MXレコードの確認''~
nslookupを使用してMXレコードが正しく得られるか確認します。~
(nslookupコマンドは、dnsutilsパッケージに入っいます。)~
#pre{{
landisk:~# apt-get install dnsutils
}}
MXレコードを取得してみます。~
#pre{{
landisk:~# nslookup -type=mx eggplant.ddo.jp
Server: 123.145.167.134
Address: 123.145.167.134#53
Non-authoritative answer:
eggplant.ddo.jp mail exchanger = 50 eggplant.ddo.jp.
Authoritative answers can be found from:
eggplant.ddo.jp internet address = 123.145.167.177
}}
正しく取得できました。~
~
DNSが正しく引けない場合は次のようなメッセージが出力される...
#pre{{
;; connection timed out; no servers could be reached
}}
(私の場合、プロバイダが指定するDNSサーバを/etc/resolv.con...
~
-''配送テスト''~
メールの送受信テスト(シミュレート)を行います。~
(シュミレートなので、実際には、メールの送受信は行われませ...
~
--内部から内部への送受信テスト~
チェックポイントの箇所がそれぞれ、次のようになっていると...
#pre{{
landisk:~# exim4 -bt
> &color(red){landsik}; ...
R: system_aliases for landisk@eggplant.ddo.jp
R: userforward for landisk@eggplant.ddo.jp
R: procmail for landisk@eggplant.ddo.jp
R: maildrop for landisk@eggplant.ddo.jp
R: local_user for landisk@eggplant.ddo.jp
landisk@eggplant.ddo.jp
router = local_user, transport = maildir_home &color(...
> &color(red){landsik@eggplant.ddo.jp}; ...
R: system_aliases for landisk@eggplant.ddo.jp
R: userforward for landisk@eggplant.ddo.jp
R: procmail for landisk@eggplant.ddo.jp
R: maildrop for landisk@eggplant.ddo.jp
R: local_user for landisk@eggplant.ddo.jp
landisk@eggplant.ddo.jp
router = local_user, transport = maildir_home &color(...
> &color(orange){CTRL+Cで一旦抜ける};
}}
--外部への送信テスト~
(実験にyahooのSMTPサーバを使わせて頂く。)~
チェックポイントの箇所が、次のようになっているとOKらし...
#pre{{
landisk:~# exim4 -bt
> &color(red){postmaster@yahoo.co.jp}; ...
R: dnslookup for postmaster@yahoo.co.jp
postmaster@yahoo.co.jp
router = dnslookup, transport = remote_smtp &color(o...
host mta05.mail.yahoo.co.jp [202.93.83.211] MX=10
host mta06.mail.yahoo.co.jp [202.93.83.236] MX=10
host mta09.mail.yahoo.co.jp [202.93.87.209] MX=10
host mta02.mail.yahoo.co.jp [202.93.87.212] MX=10
host mta08.mail.yahoo.co.jp [202.93.87.210] MX=10
host mta07.mail.yahoo.co.jp [202.93.87.211] MX=10
host mta16.mail.yahoo.co.jp [203.141.44.225] MX=100
> &color(orange){CTRL+Cで一旦抜ける};
}}
--外部からの受信テスト~
次のコマンドを実行すると、<IP address>から届いた<email ad...
受信/拒否判定が確認できるらしい。~
#pre{{
exim_checkaccess <IP address> <email address>
}}
では実際に実験を行ってみます。~
#pre{{
正常ケース
landisk:~# exim_checkaccess 123.123.123.123 landisk@egg...
Accepted
ドメイン正常でユーザが存在しないケース
landisk:~# exim_checkaccess 123.123.123.123 baduser@egg...
Rejected:
550 unknown user
ドメインが正常でないケース(踏み台にされないことのチェッ...
landisk:~# exim_checkaccess 123.123.123.123 landisk@car...
Rejected:
550 relay not permitted
}}
-''第三者中継テストがパスしない''~
exim4は、不当なsmtpコマンドが連続して発行された場合、コネ...
クローズする機能を有する。(不当な攻撃に対する防衛処置)~
本機能が「アダ」となって、テストが続行できない。~
--[[RBL.JP:http://www.rbl.jp/svcheck.php]]~
#pre{{
>>> RSET
relay NOT accepted!!
中継テスト その13
}}
--[[abuse.net home page:http://www.abuse.net/relay.html]]~
#pre{{
Relay test 12
>>> RSET
<<< 554 Too many nonmail commands
Relay test result
Could not reset connection, test failed.
}}
--テスト時だけ、制限を緩和する。~
/etc/exim4/exim4.conf.templateへ次の2行を追加してデーモ...
#pre{{
smtp_accept_max_nonmail=20
smtp_max_synprot_errors=10
}}
(テストが終わったら追加した2行を削除し、元に戻しておくの...
~
~
#counter
終了行:
*exim4 … SMTPサーバ [#qd856600]
-''はじめに''~
以下のプログラムを使用してメール環境を構築したときのメモ...
--SMTPサーバ … exim4 (debianのデフォルトメールサーバ)
--IMAPサーバ … dovecot (もれなくPOP3もついてくる)
--WEBメール … SquirrelMail~
~
-''参考ページ''~
次のページを参考にしました。~
--[[exim4でSMTP@Linux Home Server Memo:http://asshole.dip...
--[[FreeBSDでEximを使ってみる:http://www5e.biglobe.ne.jp/...
~
-''SMTP(Port25)のフォワード''~
LANDISKがメールの送受信を行えるよう、ADSLモデム(ルータ)の...
具体的には、smtpポート(25番)をLANDISK側へフォワードするよ...
&color(red){ADSLモデムの設定変更やリセットでWAN側IPアドレ...
&color(red){DynamicDNSの更新も同時に行ってくださいね。私...
~
-''exim4の設定''~
#pre{{
landisk:~# dpkg-reconfigure exim4-config
}}
--Split configuration into small files?~
&color(red){No};~
--General type of mail configuration:~
&color(red){internet site; mail is sent and received dire...
--System mail name:~
&color(red){eggplant.ddo.jp};~
--IP-addresses to listen on for incoming SMTP connections:~
&color(red){空白};~
--Other destinations for which mail is accepted:~
&color(red){eggplant.ddo.jp};~
--Domains to relay mail for:~
&color(red){空白};~
--Machines to relay mail for:~
&color(red){空白};~
--Keep number of DNS-queries minimal (Dial-on-Demand)?~
&color(red){No};~
--Root and postmaster mail recipient:~
&color(red){landisk}; ← システムからの(各種ログ等の)メ...
~
-''mail保存形式をmboxからMaildirへ変更''~
/etc/exim4/update-exim4.conf.confの最終行へ追加。~
#pre{{
dc_localdelivery='maildir_home'
}}
次に、ユーザのホームディレクトリにMaildirを作成します。~
例えば、ユーザ landiskの場合。~
#pre{{
landisk:~# su landisk
landisk@landisk:/root$ cd
landisk@landisk:~$ mkdir Maildir
landisk@landisk:~$ chmod 700 Maildir
landisk@landisk:~$ exit
landisk:~#
}}
-''設定が終了したらexim4を再起動します。''~
#pre{{
landisk:~# /etc/init.d/exim4 reload
Reloading exim4 configuration files
}}
*Dovecot … IMAP/POP3サーバ [#ud31271e]
-''インストール&設定''~
dovecotというIMAP/POP3サーバを使用してみようと思います。~
#pre{{
landisk:~# apt-get install dovecot
}}
補足:debian26-etch版では、
#pre{{
landisk:~# apt-get install dovecot-common dpvecot-imapd d...
}}
/etc/dovecot/dovecot.conf の protocolsの行を次のように編...
(POP3サーバも動作させたい場合は、pop3を追加。)~
#pre{{
protocols = imap
# protocols = imap pop3
}}
-''%%inetd経由で起動%% &color(red){追記:何故だかゾンビが...
%%メモリ消費を抑えるため、inetdから呼び出すように設定しま...
%%/etc/inetd.confに次を追加します。%%~
#pre{{
%%imap stream tcp nowait root /usr/sbin/tcpd /usr/lib...
%%#imaps stream tcp nowait root /usr/sbin/tcpd /usr/li...
%%pop3 stream tcp nowait root /usr/sbin/tcpd /usr/lib...
%%#pop3s stream tcp nowait root /usr/sbin/tcpd /usr/li...
}}
%%inetdを再起動します。%%~
#pre{{
%%landisk:~# /etc/init.d/inetd restart%%
}}
%%この状態で、IMAP/POP3対応のメーラーからアクセスできると...
%%なお、必要に応じて、TCPWapper(/etc/hosts.allow、/etc/ho...
-''Dovecotの起動''~
#pre{{
landisk:~# /etc/init.d/dovecot start
}}
この状態で、IMAP/POP3対応のメーラーからアクセスできると思...
*SquirrelMail … WEBメール [#b328e993]
-''&color(red){注意};''~
&color(red){本節では、HTTPSではなく、通常のHTTPプロトコル...
&color(red){従って、インターネット上を平文のまま、パスワ...
&color(red){万が一に備え、WEBメール専用のアカウントで...
&color(red){(それほど神経質にならなくても良いと思います...
-''インストール&設定''~
--インストール~
次のパッチを当てたパッケージを用意しました。~
---[[日本語文字化けパッチ:http://sanguine.jp/pipermail/sq...
---[[1.4.3a用のXSS脆弱性を修正するパッチ:http://internap....
---+α(SquirrelMailコンフィグ設定済み)~
--
#pre{{
landisk:~# apt-get install squirrelmail locales
}}
※localesでは、''ja_JP.eucJP'' にチェックが必要~
~
--/etc/apache/conf.d/squirrelmail.conf を次の内容で用意~
#pre{{
Alias /squirrelmail /usr/share/squirrelmail
<Directory /usr/share/squirrelmail>
# php_value register_globals On # refer to Debian bug #1...
php_flag register_globals on
Options Indexes FollowSymLinks
<Files configtest.php>
order deny,allow
deny from all
allow from 127.0.0.1
allow from 192.168.1.0/24
allow from 192.168.0.0/24
</Files>
</Directory>
}}
--apacheの再起動~
#pre{{
landisk:/# apachectl configtest
Syntax OK
landisk:/# /etc/init.d/apache restart
Restarting apache.
}}
-''SquirrelMailへ接続''~
ブラウザから、http//MY_LANDISK/squirrelmail/で、SquirrelM...
~
CENTER:
&ref(squirrelmail.png,nolink);
~
~
*補足 … exim4 トラブルシューティング [#x31fe2cb]
-''MXレコードの確認''~
nslookupを使用してMXレコードが正しく得られるか確認します。~
(nslookupコマンドは、dnsutilsパッケージに入っいます。)~
#pre{{
landisk:~# apt-get install dnsutils
}}
MXレコードを取得してみます。~
#pre{{
landisk:~# nslookup -type=mx eggplant.ddo.jp
Server: 123.145.167.134
Address: 123.145.167.134#53
Non-authoritative answer:
eggplant.ddo.jp mail exchanger = 50 eggplant.ddo.jp.
Authoritative answers can be found from:
eggplant.ddo.jp internet address = 123.145.167.177
}}
正しく取得できました。~
~
DNSが正しく引けない場合は次のようなメッセージが出力される...
#pre{{
;; connection timed out; no servers could be reached
}}
(私の場合、プロバイダが指定するDNSサーバを/etc/resolv.con...
~
-''配送テスト''~
メールの送受信テスト(シミュレート)を行います。~
(シュミレートなので、実際には、メールの送受信は行われませ...
~
--内部から内部への送受信テスト~
チェックポイントの箇所がそれぞれ、次のようになっていると...
#pre{{
landisk:~# exim4 -bt
> &color(red){landsik}; ...
R: system_aliases for landisk@eggplant.ddo.jp
R: userforward for landisk@eggplant.ddo.jp
R: procmail for landisk@eggplant.ddo.jp
R: maildrop for landisk@eggplant.ddo.jp
R: local_user for landisk@eggplant.ddo.jp
landisk@eggplant.ddo.jp
router = local_user, transport = maildir_home &color(...
> &color(red){landsik@eggplant.ddo.jp}; ...
R: system_aliases for landisk@eggplant.ddo.jp
R: userforward for landisk@eggplant.ddo.jp
R: procmail for landisk@eggplant.ddo.jp
R: maildrop for landisk@eggplant.ddo.jp
R: local_user for landisk@eggplant.ddo.jp
landisk@eggplant.ddo.jp
router = local_user, transport = maildir_home &color(...
> &color(orange){CTRL+Cで一旦抜ける};
}}
--外部への送信テスト~
(実験にyahooのSMTPサーバを使わせて頂く。)~
チェックポイントの箇所が、次のようになっているとOKらし...
#pre{{
landisk:~# exim4 -bt
> &color(red){postmaster@yahoo.co.jp}; ...
R: dnslookup for postmaster@yahoo.co.jp
postmaster@yahoo.co.jp
router = dnslookup, transport = remote_smtp &color(o...
host mta05.mail.yahoo.co.jp [202.93.83.211] MX=10
host mta06.mail.yahoo.co.jp [202.93.83.236] MX=10
host mta09.mail.yahoo.co.jp [202.93.87.209] MX=10
host mta02.mail.yahoo.co.jp [202.93.87.212] MX=10
host mta08.mail.yahoo.co.jp [202.93.87.210] MX=10
host mta07.mail.yahoo.co.jp [202.93.87.211] MX=10
host mta16.mail.yahoo.co.jp [203.141.44.225] MX=100
> &color(orange){CTRL+Cで一旦抜ける};
}}
--外部からの受信テスト~
次のコマンドを実行すると、<IP address>から届いた<email ad...
受信/拒否判定が確認できるらしい。~
#pre{{
exim_checkaccess <IP address> <email address>
}}
では実際に実験を行ってみます。~
#pre{{
正常ケース
landisk:~# exim_checkaccess 123.123.123.123 landisk@egg...
Accepted
ドメイン正常でユーザが存在しないケース
landisk:~# exim_checkaccess 123.123.123.123 baduser@egg...
Rejected:
550 unknown user
ドメインが正常でないケース(踏み台にされないことのチェッ...
landisk:~# exim_checkaccess 123.123.123.123 landisk@car...
Rejected:
550 relay not permitted
}}
-''第三者中継テストがパスしない''~
exim4は、不当なsmtpコマンドが連続して発行された場合、コネ...
クローズする機能を有する。(不当な攻撃に対する防衛処置)~
本機能が「アダ」となって、テストが続行できない。~
--[[RBL.JP:http://www.rbl.jp/svcheck.php]]~
#pre{{
>>> RSET
relay NOT accepted!!
中継テスト その13
}}
--[[abuse.net home page:http://www.abuse.net/relay.html]]~
#pre{{
Relay test 12
>>> RSET
<<< 554 Too many nonmail commands
Relay test result
Could not reset connection, test failed.
}}
--テスト時だけ、制限を緩和する。~
/etc/exim4/exim4.conf.templateへ次の2行を追加してデーモ...
#pre{{
smtp_accept_max_nonmail=20
smtp_max_synprot_errors=10
}}
(テストが終わったら追加した2行を削除し、元に戻しておくの...
~
~
#counter
ページ名: