Product SiteDocumentation Site

5.6. Securing the mail service

あなたのサーバがメールシステムでなければ、メールデーモンが外部からの接続に 応答する必要は本当はありませんが、たとえば設置している警告システムからの root ユーザへのメールを受けとるなどのために、ローカルのメールが配達される ようにしたいかもしれません。
If you have exim you do not need the daemon to be working in order to do this since the standard cron job flushes the mail queue. See 第 3.5.1 節「デーモンサービスを停止する」 on how to do this.

5.6.1. Configuring a Nullmailer

You might want to have a local mailer daemon so that it can relay the mails sent locally to another system. This is common when you have to administer a number of systems and do not want to connect to each of them to read the mail sent locally. Just as all logging of each individual system can be centralized by using a central syslog server, mail can be sent to a central mailserver.
Such a relay-only system should be configured properly for this. The daemon could, as well, be configured to only listen on the loopback address.
The following configuration steps only need to be taken to configure the exim package in the Debian 3.0 release. If you are using a later release (such as 3.1 which uses exim4) the installation system has been improved so that if the mail transport agent is configured to only deliver local mail it will automatically only allow connections from the local host and will not permit remote connections.
In a Debian 3.0 system using exim, you will have to remove the SMTP daemon from inetd:
$ update-inetd --disable smtp
そして loopback インターフェイスにのみ応答するようにメーラデーモンを 設定します。exim (デフォルトの MTA) ではこれは /etc/exim.conf ファイルを編集して以下の行を追加することによって行えます:
local_interfaces = "127.0.0.1"
両方のデーモン (inetd と exim) を再起動すると exim は 127.0.0.1:25 ソケットに のみ応答するようになります。注意してください、最初に inetd を停止しましょう。 そうしないと exim は起動しません。なぜなら inetd デーモンがすでに外部からの 接続を扱っているからです。
postfix については /etc/postfix/main.conf をこう編集しましょう:
inet_interfaces = localhost
もしローカルのメールだけが望みなら、この方法はメーラデーモンに tcp wrapper を 使ったりファイアウォールの規則を追加してアクセスを制限したりするのより よいです。しかし、他のインターフェイスにも応答させる必要があるなら、inetd から 起動して、外部からの接続を /etc/hosts.allow/etc/hosts.deny でチェックできるよう tcp wrapper を追加することを 検討してもいいです。そして、上で述べたような方法のどれかで記録するように 正しく設定していれば、許可されていないアクセスがメーラデーモンに対して いつ行われようとしたかわかるでしょう。
In any case, to reject mail relay attempts at the SMTP level, you can change /etc/exim/exim.conf to include:
receiver_verify = true
Even if your mail server will not relay the message, this kind of configuration is needed for the relay tester at http://www.abuse.net/relay.html to determine that your server is not relay capable.
If you want a relay-only setup, however, you can consider changing the mailer daemon to programs that can only be configured to forward the mail to a remote mail server. Debian provides currently both ssmtp and nullmailer for this purpose. In any case, you can evaluate for yourself any of the mail transport agents [36] provided by Debian and see which one suits best to the system's purposes.

5.6.2. Providing secure access to mailboxes

If you want to give remote access to mailboxes there are a number of POP3 and IMAP daemons available.[37] However, if you provide IMAP access note that it is a general file access protocol, it can become the equivalent of a shell access because users might be able to retrieve any file that they can through it.
Try, for example, to configure as your inbox path {server.com}/etc/passwd if it succeeds your IMAP daemon is not properly configured to prevent this kind of access.
Of the IMAP servers in Debian the cyrus server (in the cyrus-imapd package) gets around this by having all access to a database in a restricted part of the file system. Also, uw-imapd (either install the uw-imapd or better, if your IMAP clients support it, uw-imapd-ssl) can be configured to chroot the users mail directory but this is not enabled by default. The documentation provided gives more information on how to configure it.
Also, you might want to run an IMAP server that does not need valid users to be created on the local system (which would grant shell access too), courier-imap (for IMAP) and courier-pop, teapop (for POP3) and cyrus-imapd (for both POP3 and IMAP) provide servers with authentication methods beside the local user accounts. cyrus can use any authentication method that can be configured through PAM while teapop might use databases (such as postgresql and mysql) for user authentication.
FIXME: Check: uw-imapd might be configured with user authentication through PAM too.

5.6.3. メールを安全に受けとる

メールを読んだり受けとったりするのは最も一般的な平文のプロトコルです。 メールを受けとるのに POP3 か IMAP を使っていれば、平文のパスワードを ネット経由で送っているので、今後ほとんどだれでもあなたのメールを読むことが できることになります。かわりに、メールを受けとるのに SSL (Secure Sockets Layer) を使いましょう。POP または IMAP サーバとして働いているマシンに シェルアカウントを持っていれば、ほかの選択肢は ssh です。これををやって みせる基本的な fetchmailrc がこれです:
poll my-imap-mailserver.org via "localhost"
  with proto IMAP port 1236
      user "ref" there with password "hackme" is alex here warnings 3600
    folders
      .Mail/debian
    preconnect 'ssh -f -P -C -L 1236:my-imap-mailserver.org:143 -l ref
     my-imap-mailserver.org sleep 15 </dev/null > /dev/null'
preconnect が重要な行です。これは ssh セッションを開始して必要なトンネルを 作ります。それが自動的に localhost の 1236 番ポートから IMAP メールサーバへの 接続を暗号化して転送します。ほかの可能性は ssl 機能つきの fetchmail を 使うことです。
POP や IMAP のような暗号化されたメールサービスを提供したいなら、 apt-get install stunnel してデーモンをこのように起動してください:
stunnel -p /etc/ssl/certs/stunnel.pem -d pop3s -l /usr/sbin/popd
これは与えられたデーモン (-l) を指定されたポート (-d) へラップして、指定された ssl cert (-p) を使います。


[36] To retrieve the list of mailer daemons available in Debian try:
$ apt-cache search mail-transport-agent
The list will not include qmail, which is distributed only as source code in the qmail-src package.
[37] A list of servers/daemons which support these protocols in Debian can be retrieved with:
$ apt-cache search pop3-server
$ apt-cache search imap-server