15.3. メール転送エージェント (MTA)
Red Hat Enterprise Linux 7 には、Postfix と Sendmail の 2 つの主要 MTA が装備されています。Postfix がデフォルトの MTA として設定されており、Sendmail は非推奨となっています。デフォルトの MTA を Sendmail に変更する必要がある場合は、Postfix をアンインストールするか、root で次のコマンドを使用して Sendmail に切り替えます。
alternatives --config mta
~]# alternatives --config mta
以下のコマンドを使用して、希望のサービスを有効にすることもできます。
systemctl enable service
~]# systemctl enable service
同様に、サービスを無効にするには、シェルプロンプトで以下を入力します。
systemctl disable service
~]# systemctl disable service
Red Hat Enterprise Linux 7 でシステムサービスを管理する方法は、10章systemd によるサービス管理 を参照してください。
15.3.1. postfix リンクのコピーリンクがクリップボードにコピーされました!
当初、IBM のセキュリティーエキスパートであるプログラマーの Wietse Venema 氏によって開発された Postfix は、Sendmail 互換の MTA で、セキュア、高速、かつ容易に設定できるように設計されています。
セキュリティー向上のために、Postfix ではモジュラー型設計を採用しており、権限が限定された小さなプロセスは、マスター デーモンが起動します。より小さく、権限の低いプロセスは、メール配信の様々な段階に関連する非常に特殊なタスクを実行してルートディレクトリーが変更された環境で稼働し、攻撃の影響を制限します。
Postfix がローカルコンピューター以外のホストからのネットワーク接続を受け入れるよう設定するには、設定ファイルを多少変更するだけでできます。さらに、より複雑なニーズのために、Postfix は様々な設定オプションだけでなくサードパーティーのアドオンも提供するため、多用途でフル機能の MTA となっています。
Postfix の設定ファイルは人間に解読可能で、250 以上のディレクティブに対応しています。Sendmail とは異なり、変更を反映するためにマクロ処理は必要なく、また最も一般的に使用されるオプションの大部分は、多数のコメントが付いたファイルで説明されています。
15.3.1.1. Postfix のデフォルトインストール リンクのコピーリンクがクリップボードにコピーされました!
Postfix 実行可能ファイルは postfix です。このデーモンは、メール配信の処理に必要なすべての関連プロセスを起動します。
Postfix は設定ファイルを /etc/postfix/ ディレクトリーに格納します。以下は、一般的に使用されるその他のファイルのリストです。
-
access: アクセス制御に使用します。このファイルは、Postfix に接続可能なホストを指定します。 -
main.cf: グローバル Postfix 設定ファイル設定オプションの大部分がこのファイルで指定されています。 -
master.cf: メール配信を完了するために Postfix が様々なプロセスとやりとりを行う方法を指定します。 -
transport: 電子メールアドレスをリレーホストにマッピングします。
aliases ファイルは /etc ディレクトリーにあります。このファイルは Postfix と Sendmail 間で共有されます。ユーザー ID エイリアスを記述するメールプロトコルが必要な設定可能なリストです。
デフォルトの /etc/postfix/main.cf ファイルでは、Postfix はローカルコンピューター以外のホストからのネットワーク接続を受け付けられないように設定されています。Postfix を他のクライアント用のサーバーとして設定する方法は 「Postfix の基本設定」 を参照してください。
/etc/postfix/ ディレクトリーにある設定ファイルのオプションに変更を加えた後には、変更を反映させるために postfix サービスを再起動してください。これを行うには、root で以下のコマンドを実行します。
systemctl restart postfix
~]# systemctl restart postfix
15.3.1.2. 以前のリリースからのアップグレード リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux 7 の設定は、以前のリリースとは異なります。
-
disable_vrfy_command = no: Sendmail のデフォルトとは異なり、これはデフォルトで無効になります。yesに変更した場合は、電子メールアドレスを収集する一部の方法を回避できます。 -
allow_percent_hack = yes: これはデフォルトで有効になります。これにより、電子メールの%文字を削除できるようになります。パーセント記号を使用したハックは、電子メールを送信者が制御してルーティングできるようにする古い回避策です。DNSと電子メールのルーティングの信頼性は非常に高まりましたが、Postfix はこのハックを引き続きサポートします。パーセント記号の書き換えを無効にするには、allow_percent_hackをnoに設定します。 -
smtpd_helo_required = no: 一部のアプリケーションが電子メールを送信できなくなることがあるため、Sendmail の場合と同様に、これはデフォルトで無効になります。MAIL、FROM、または ETRN コマンドを送信する前にクライアントが HELO または EHLO コマンドを送信するようにするには、yesに変更します。
15.3.1.3. Postfix の基本設定 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Postfix はローカルホスト以外のホストからのネットワーク接続を受け付けません。ネットワーク上の他のホストを対象としたメール配信を有効にするには、root で以下のステップを実行します。
-
viなどのテキストエディターで/etc/postfix/main.cfファイルを編集します。 -
mydomain行のハッシュ記号 (#) を削除してコメント解除してから、domain.tld の箇所をexample.comなどのメールサーバーがサービスを提供しているドメインに置き換えます。 -
myorigin = $mydomain行のコメントを解除します。 -
myhostname行のコメントを解除し、host.domain.tld をマシンのホスト名に置き換えます。 -
mydestination = $myhostname, localhost.$mydomain行のコメントを解除します。 -
mynetworks行のコメントを解除して、168.100.189.0/28 の箇所を、サーバーに接続可能なホスト用の有効なネットワーク設定に置き換えます。 -
inet_interfaces = all行のコメントを解除します。 -
inet_interfaces = localhostをコメント化します。 -
postfixサービスを再起動します。
これらの手順が完了したら、ホストは配信のため外部の電子メールを受け入れるようになります。
Postfix には様々な設定オプションがあります。Postfix の設定方法を学習する最適な方法の 1 つは、/etc/postfix/main.cf 設定ファイルのコメントを読むことです。Postfix 設定、SpamAssassin 統合、/etc/postfix/main.cf パラメーターの詳細などの補足情報は http://www.postfix.org/ で参照できます。
POODLE: SSLv3 脆弱性 (CVE-2014-3566) で説明されている脆弱性のため、Red Hat は、SSL を無効にし、TLSv1.1 または TLSv1.2 のみを使用することを推奨します。詳細は、Postfix および Dovecot における POODLE SSL 3.0 脆弱性問題 (CVE-2014-3566) の解決方法 を参照してください。
15.3.1.4. LDAP での Postfix の使用 リンクのコピーリンクがクリップボードにコピーされました!
Postfix は LDAP ディレクトリーを様々なルックアップテーブルのソースとして利用できます (たとえば、aliases、virtual、canonical など)。これにより LDAP は階層的なユーザー情報を保存でき、Postfix は LDAP クエリーの結果を必要な場合にのみ知らされます。この情報をローカルに保存しないことで、管理者は容易に管理することができます。
15.3.1.4.1. /etc/aliases ルックアップのサンプル リンクのコピーリンクがクリップボードにコピーされました!
以下は /etc/aliases ファイルをルックアップする LDAP を使用する基本的な例です。/etc/postfix/main.cf ファイルに以下の内容が含まれていることを確認してください。
alias_maps = hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf
alias_maps = hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf
/etc/postfix/ldap-aliases.cf ファイルがない場合は作成し、以下の内容を追加します。
server_host = ldap.example.com search_base = dc=example, dc=com
server_host = ldap.example.com
search_base = dc=example, dc=com
ldap.example.com、example、com パラメーターは、既存の利用可能な LDAP サーバーの仕様と置き換える必要があります。
/etc/postfix/ldap-aliases.cf ファイルは、LDAP SSL と STARTTLS を有効にするパラメーターなどの様々なパラメーターを指定できます。詳細は、ldap_table(5) man ページを参照してください。
LDAP の詳細は、System-Level Authentication Guide の OpenLDAP を参照してください。
15.3.2. Sendmail リンクのコピーリンクがクリップボードにコピーされました!
Sendmail の主な目的は、他の MTA と同様に、通常 SMTP プロトコルを使用して、ホスト間で電子メールを安全に転送することです。Sendmail は非推奨とみなされており、可能な場合は Postfix の使用が推奨されます。詳細は、「postfix」 を参照してください。
15.3.2.1. 用途と制約 リンクのコピーリンクがクリップボードにコピーされました!
認識すべき重要な点は、Sendmail ができないことではなく、Sendmail が何であるか、何ができるのかということです。複数のロールを果たすモノリシックなアプリケーションの時代には、Sendmail は組織内で電子メールサーバーを稼働するために必要な唯一のアプリケーションと思われるかもしれません。Sendmail は各ユーザーのディレクトリーにメールを送信し、ユーザー用にアウトバウンドメールを送信できるため、技術的にはこれが当てはまります。Sendmail はメールを各ユーザーのディレクトリーにスプールして、ユーザーに送信メールを配信できるからです。ユーザーは通常、POP または IMAP を使用してメッセージをローカルマシンにダウンロードする MUA を使用してメールと対話したい場合があります。ユーザーは通常、POP または IMAP を使用する MUA で電子メールとやりとりを行い、ローカルマシンにメッセージをダウンロードする方法を望みます。こうした他のアプリケーションを Sendmail と連動させることは可能ですが、実際、それらが存在する理由は異なり、独立して機能することができます。
Sendmail で設定すべき、また設定できるすべての用途の説明は、本セクションの対象外となります。Sendmail には文字どおり数百におよぶ様々なオプションやルールセットがあるため、Sendmail のあらゆる機能や問題修正方法に関する専門的な資料が多くあります。Sendmail リソースのリスト 「関連情報」 についてはを参照してください。
本セクションでは、Sendmail と共にデフォルトでインストール済みのファイルを概説し、迷惑メール (スパム) の停止方法や LDAP での Sendmail の拡張方法など基本設定の変更について説明します。
15.3.2.2. Sendmail のデフォルトのインストール リンクのコピーリンクがクリップボードにコピーされました!
Sendmail を使用するには、root で以下を実行し、まず使用中のシステムに sendmail パッケージがインストールされていることを確認します。
yum install sendmail
~]# yum install sendmail
Sendmail を設定するには、root で実行して、お使いのシステムに sendmail-cf パッケージがインストールされていることを確認します。
yum install sendmail-cf
~]# yum install sendmail-cf
yum を使用したパッケージのインストールは 「パッケージのインストール」 を参照してください。
Sendmail を使用する前に、デフォルトの MTA が Postfix から切り替わっている必要があります。デフォルトの MTA の切り替え方法は、「メール転送エージェント (MTA)」 を参照してください。
Sendmail 実行可能ファイルは /sendmail です。
Sendmail 設定ファイルは /etc/mail/sendmail.cf に保存されます。sendmail.cf ファイルを直接編集しないでください。sendmail で設定を変更するには、/etc/mail/sendmail.mc ファイルを編集し、元々の /etc/mail/sendmail.cf ファイルのバックアップを取得し、sendmail サービスを再起動します。再起動時に、sendmail.cf ファイル、およびデータベースの全バイナリー表現がすべて再構築されます。
systemctl restart sendmail
# systemctl restart sendmail
Sendmail の設定に関する詳細は 「Sendmail の一般的な設定変更」 を参照してください。
以下のような様々な Sendmail 設定ファイルが、/etc/mail/ ディレクトリーにインストールされています。
-
access: 電子メールの送信に Sendmail を使用できるシステムを指定します。 -
domaintable: ドメイン名のマッピングを指定します。 -
local-host-names: ホストのエイリアスを指定します。 -
mailertable: 特定のドメインのルーティングを上書きする方法を指定します。 -
virtusertable: ドメイン固有のエイリアス形式を設定し、1 台のマシンに複数の仮想ドメインのホスティングを可能にします。
access、domaintable、mailertable、virtusertable など、/etc/mail/ ディレクトリーにあるいくつかの設定ファイルには、Sendmail が設定変更を使用できるようになる前に、データベースファイルに情報を保存します。
データベースファイルの設定に変更を追加する場合は、以下のコマンドを実行します。
systemctl restart sendmail
# systemctl restart sendmail
15.3.2.3. Sendmail の一般的な設定変更 リンクのコピーリンクがクリップボードにコピーされました!
Sendmail 設定ファイルを変更する場合は、既存ファイルを編集せずに、新たに /etc/mail/sendmail.cf ファイルを生成するのが最適な方法です。
sendmail.cf ファイルを置き換えたり変更したりする前に、バックアップコピーを作成してください。
希望する機能を Sendmail に追加する場合は、root で /etc/mail/sendmail.mc ファイルを編集します。編集が終了したら、sendmail サービスを再起動します。m4 パッケージがインストールされている場合は、m4 マクロプロセッサーが新しい sendmail.cf 設定ファイルを自動的に生成します。
systemctl restart sendmail
~]# systemctl restart sendmail
デフォルトの sendmail.cf ファイルでは、Sendmail はローカルコンピューター以外のホストからのネットワーク接続を受け入れないように設定されています。Sendmail を他のクライアント用のサーバーとして設定するには、/etc/mail/sendmail.mc ファイルを編集して、DAEMON_OPTIONS ディレクティブの Addr= オプションで指定されているアドレスを、127.0.0.1 から、アクティブなネットワークデバイスの IP アドレスに変更するか、行頭に dnl を付けて、 DAEMON_OPTIONS ディレクティブをすべてコメントアウトします。終了したら、サービスを再起動して /etc/mail/sendmail.cf を再生成します。
systemctl restart sendmail
~]# systemctl restart sendmail
Red Hat Enterprise Linux のデフォルト設定は、ほとんどの SMTP 専用サイトで機能します。
/usr/share/sendmail-cf/ ディレクトリー下のディレクトリーにあるファイルを編集する前に、/usr/share/sendmail-cf/README ファイルを確認してください。/etc/mail/sendmail.cf ファイルの今後の設定に影響を及ぼす場合があるためです。
15.3.2.4. マスカレーディング リンクのコピーリンクがクリップボードにコピーされました!
一般的な Sendmail の設定の 1 つとして、1 台のマシンがネットワーク上の全マシンのメールのゲートウェイとして機能するように設定する方法があります。たとえば、ある企業が mail.example.com という名前のマシンですべての電子メールを処理して、すべての送信メールに対して一貫した返信アドレスを割り当てるとします。
このような状況では、Sendmail サーバーは、返信アドレスが user@host.example.com ではなく user@example.com となるように、その企業のネットワーク上のマシン名をマスカレードする必要があります。
これを行うには、/etc/mail/sendmail.mc に以下の行を追加します。
sendmail.mc で変更した設定から新しい sendmail.cf ファイルを生成したら、以下のコマンドを実行して sendmail サービスを再起動します。
systemctl restart sendmail
# systemctl restart sendmail
メールサーバー、DNS サーバーおよび DHCP サーバー、またプロビジョニングアプリケーションの管理者は、組織内で使用するホスト名のフォーマットに合意するべきであることに注意してください。推奨される命名プラクティスの詳細は Red Hat Enterprise Linux 7 ネットワークガイド を参照してください。
15.3.2.5. Spam の停止 リンクのコピーリンクがクリップボードにコピーされました!
電子メールのスパムは、通信を要求したことがないユーザーから受信した、不要な迷惑メールとして定義することができます。これは、破壊的でコストがかかる、広く蔓延したインターネット通信標準の悪用です。
Sendmail を使用すると、迷惑メールの送信に使用されている新たなスパム技術を比較的に簡単にブロックすることができます。さらに、数多くの一般的なスパム手法もデフォルトでブロックします。Sendmail で利用できる主要なアンチスパム機能は ヘッダーのチェック、リレーの否認 (バージョン 8.9 からデフォルト)、アクセスのデータベース、送信者情報の確認 です。
たとえば、リレーとも呼ばれる SMTP メッセージの転送は、Sendmail バージョン 8.9 以降デフォルトでは無効になっています。この変更前には、Sendmail はメールホスト (x.edu) に対して、ある当事者 (y.com) からのメッセージを受け入れるよう指示し、そのメッセージを別の当事者 (z.net) に送信していました。しかし、現在は任意のドメインがサーバーを介してメールをリレーするよう Sendmail を設定する必要があります。リレードメインを設定するには、/etc/mail/relay-domains ファイルを編集して Sendmail を再起動してください。
systemctl restart sendmail
~]# systemctl restart sendmail
ただし、インターネット上のサーバーからスパムメッセージを送信することもあります。その場合は、/etc/mail/access ファイルで利用可能な Sendmail のアクセス制御機能を使用して、迷惑なホストからの接続を阻止することができます。以下の例は、このファイルを使用したブロックの方法と Sendmail サーバーへのアクセスを具体的に許可する方法を示しています。
badspammer.com ERROR:550 "Go away and do not spam us anymore" tux.badspammer.com OK 10.0 RELAY
badspammer.com ERROR:550 "Go away and do not spam us anymore" tux.badspammer.com OK 10.0 RELAY
この例では、badspammer.com から送信された電子メールはいずれも 550 RFC-821 準拠のエラーコードでブロックされ、メッセージは送り返されます。tux.badspammer.com のサブドメインから送信される電子メールは受け入れられます。最後の行は、10.0.. ネットワークから送信された電子メールはいずれもメールサーバーを通してリレー可能であることを示しています。
/etc/mail/access.db ファイルがデーターベースであるため、以下のコマンドを使用して変更を更新します。
systemctl restart sendmail
# systemctl restart sendmail
上記の例は、アクセスの許可や阻止に関する Sendmail が持つ機能のほんの一部です。詳細情報とその他の例は、/usr/share/sendmail-cf/README ファイルを参照してください。
Sendmail は、メールの配信時に Procmail MDA を呼び出すため、SpamAssassin のようなスパムフィルタリングプログラムを使用して、ユーザーに対してスパムを識別してファイルに保存することも可能です。SpamAssassin の詳細な使用方法は、「spam フィルター」 を参照してください。
15.3.2.6. LDAP での Sendmail の使用 リンクのコピーリンクがクリップボードにコピーされました!
LDAP の使用は、大規模なグループからある特定のユーザーに関する特定の情報を検索する、非常に迅速かつ強力な方法です。たとえば、LDAP サーバーを使用すると、一般的な企業ディレクトリーから特定の電子メールアドレスをユーザーの苗字で検索できます。この種の実装では、LDAP はほどんど Sendmail から分離されており、LDAP が階層別のユーザー情報を保存し、Sendmail は事前にアドレスが入力された電子メールメッセージの形式で LDAP のクエリー結果を知らされるだけです。
ただし、Sendmail は LDAP とのより優れた統合をサポートします。この場合、LDAP を使用して、中規模レベルの組織をサポートするさまざまなメールサーバーで、/etc/aliases や /etc/mail/virtusertables などのメンテナンスされたファイルを置き換えます。つまり、LDAP はメールルーティングレベルを Sendmail と、その別個の設定ファイルから、様々なアプリケーションで活用できる強力な LDAP クラスターに抽象化します。
Sendmail の現行版は LDAP に対応しています。LDAP を使用して Sendmail を拡張するには、最初に OpenLDAP などの LDAP サーバーを稼働して、適切な設定を行います。次に、/etc/mail/sendmail.mc を編集して以下を追加します。
LDAPROUTE_DOMAIN('yourdomain.com')dnl
FEATURE('ldap_routing')dnl
LDAPROUTE_DOMAIN('yourdomain.com')dnl
FEATURE('ldap_routing')dnl
これは LDAP を使用した非常に基本的な Sendmail の設定にすぎません。実際の設定は LDAP の実装に従い、これとは大幅に異なる可能性があります。特に、共通の LDAP サーバーを使用するために数種の Sendmail マシンを設定する場合がそうです。
詳しい LDAP のルーティング設定に関する説明と例は、/usr/share/sendmail-cf/README を参照してください。
次に、m4 マクロプロセッサーを実行し、再び Sendmail を再起動して、/etc/mail/sendmail.cf ファイルを再作成します。手順については 「Sendmail の一般的な設定変更」 を参照してください。
LDAP の詳細は、System-Level Authentication Guide の OpenLDAP を参照してください。
15.3.3. Fetchmail リンクのコピーリンクがクリップボードにコピーされました!
Fetchmail は、リモートサーバーから電子メールを取得してローカルの MTA に配信する MTA です。多くのユーザーは、リモートサーバー上にあるメッセージをダウンロードするプロセスと、MUA で電子メールを読み取り、整理するプロセスを別々にする機能性を評価してます。ダイアルアップユーザーのニーズを踏まえて設計されている Fetchmail は、POP3 や IMAP などのプロトコルを使用して、メールスプールファイルに接続し、すべての電子メールメッセージを迅速にダウンロードします。また、必要に応じて、電子メールメッセージを SMTP サーバーに転送することもできます。
Fetchmail を使用するには、最初に root で以下を実行し、使用中のシステムに fetchmail パッケージがインストールされていることを確認します。
yum install fetchmail
~]# yum install fetchmail
yum を使用したパッケージのインストールは 「パッケージのインストール」 を参照してください。
Fetchmail は、各ユーザーのホームディレクトリー内の .fetchmailrc ファイルを使用して、それぞれのユーザーに設定されています。これがない場合は、ホームディレクトリーに .fetchmailrc ファイルを作成してください。
Fetchmail は .fetchmailrc ファイル内の詳細設定を使用して、リモートサーバー上にある電子メールを確認し、ダウンロードします。次に、電子メールをローカルマシン上のポート 25 に配信し、ローカルの MTA を使用して電子メールを適正なユーザーのスプールファイルに配置します。Procmail が利用できる場合は起動して電子メールをフィルターし、MUA が読み込むことができるようにメールボックスに配置します。
15.3.3.1. Fetchmail の設定オプション リンクのコピーリンクがクリップボードにコピーされました!
Fetchmai を実行する時にすべての必要なオプションをコマンドラインで渡し、リモートサーバー上の電子メールを確認することは可能ですが、.fetchmailrc ファイルを使用した方がはるかに簡単です。希望の設定オプションを .fetchmailrc ファイル内に設定し、それらのオプションが、fetchmail コマンドを実行するときに毎回使用されるようにします。Fetchmail の実行時にオプションを上書きしたい場合は、コマンドラインでそのオプションを指定します。
ユーザーの .fetchmailrc ファイルには、3 つのクラスの設定オプションが格納されています。
- グローバルオプション: プログラムの動作を制御する、または電子メールを確認する全接続の設定を提供する指示を Fetchmail に指定します。
- server options: ポーリングされるサーバーに必要な情報を指定します。ホスト名をはじめ、確認するポートやタイムアウトになるまでの秒数など、特定の電子メールサーバーの設定などです。こうしたオプションは、該当するサーバーを使用する全ユーザーに影響を及ぼします。
- ユーザーオプション: 指定された電子メールサーバーを使用して、電子メールの認証や確認を行うにあたって必要なユーザー名、パスワードなどの情報を格納します。
グローバルオプションは .fetchmailrc ファイルの上部に表示され、その後に 1 つ以上のサーバーオプションが表示されます。各オプションは Fetchmail がチェックする異なるメールサーバーを指定します。ユーザーオプションは、そのメールサーバーをチェックする各ユーザーアカウントのサーバーオプションに従います。サーバーオプションと同様に、複数のユーザーオプションを指定することで特定のサーバーでの使用、同一サーバー上の複数の電子メールアカウントの確認を行うことができます。
サーバーオプションを .fetchmailrc ファイルで利用するには、サーバーの情報の先頭に poll または skip などの特別なオプションの動詞を使用します。poll アクションは、Fetchmail の実行時にこのサーバーオプションを使用して、指定されたユーザーオプションで電子メールを確認するよう Fetchmail に指示します。ただし、skip アクションの後にあるサーバーオプションは、Fetchmail が呼び出された時にサーバーのホスト名が指定されていない限り確認されません。skip オプションは、特定して呼び出された時にスキップされたサーバーのみを確認し、現在稼働中の設定には影響を及ぼさないため .fetchmailrc ファイルの設定をテストする時に役立ちます。
以下は、.fetchmailrc ファイルの例です。
この例では、グローバルオプションにより、最終手段としてユーザーに電子メールが送信されるように指定されており (postmaster オプション)、すべての電子メールエラーは送信者ではなく、ポストマスターに送信されます (bouncemail オプション)。set アクションは、この行にグローバルオプションが含まれていることを Fetchmail に伝えます。その後、2 つのメールサーバーが指定されており、もう 1 つは POP3 を使用してチェックするように設定されます。1 つは user1 を使用して確認するように設定され、もう 1 つは様々なプロトコルを試みて機能するものを見つけるように設定されます。これにより、1 つの MUA 受信トレイに表示され、複数のサーバーで複数のクラスを確認できます。各ユーザーの固有の情報は、user アクションで開始します。
ユーザーはパスワードを .fetchmailrc ファイルに配置する必要はありません。with password 'password' のセクションを省略すると、Fetchmail は起動時にパスワードを要求するようになります。
Fetchmail には、グローバルオプション、サーバーオプション、ローカルオプションが多数あります。これらの多くのオプションは、ほとんど使用されないか、非常に特殊な状況にのみ適用されます。fetchmail の man ページに、各オプションの詳細が記載されていますが、最も一般的なものを以下の 3 セクションで説明します。
15.3.3.2. グローバルオプション リンクのコピーリンクがクリップボードにコピーされました!
グローバルオプションは、set アクションの後に、それぞれ 1 行ずつ配置する必要があります。
-
daemon seconds: Fetchmail がバックグラウンドに残るデーモンモードを指定します。seconds を、Fetchmail がサーバーをポーリングするまでの待機時間の秒数に置き換えます。 -
postmaster: 配信に問題が生じた場合にローカルユーザーがメールを送信するよう指定します。 -
syslog: エラーとステータスメッセージのログファイルを指定します。デフォルトは/var/log/maillogです。
15.3.3.3. サーバーオプション リンクのコピーリンクがクリップボードにコピーされました!
サーバーオプションは、.fetchmailrc 内の poll アクションまたは skip アクションの後の行にそれぞれ追加する必要があります。
-
auth auth-type: auth-type を、使用する認証のタイプに置き換えます。デフォルトでは、password認証が使用されますが、一部のプロトコルは、他のタイプの認証 (kerberos_v5、kerberos_v4、およびsshなど) をサポートしています。anyの認証タイプを使用した場合、Fetchmail は、パスワードを必要としない方法を最初に試みます。次に、パスワードをマスクする方法を試みた後、最後にサーバーに暗号化されていないパスワードを送信して認証を試みます。 -
interval number: 指定されたサーバーを、numberで指定した時間間隔でポーリングし、設定された全サーバーの電子メールを確認します。このオプションは、通常のユーザーがほとんどメッセージを受信しない電子メールサーバーに使用されます。 -
port port-number: port-number をポート番号に置き換えます。この値は、指定されたプロトコルのデフォルトのポート番号を上書きします。 -
proto protocol: protocol を、サーバーのメッセージを確認する時に使用するpop3やimapなどのプロトコルに置き換えます。 -
timeout seconds: seconds を、Fetchmail が接続の試行をやめてからサーバーが非アクティブとなる秒数に置き換えます。この値を設定しないと、デフォルトの300秒が使用されます。
15.3.3.4. ユーザーオプション リンクのコピーリンクがクリップボードにコピーされました!
ユーザーオプションは、サーバーオプションの下の各行に置かれる場合と、サーバーオプションと同じ行に置かれる場合があります。いずれの場合も、定義されるオプションは user オプション (以下で説明) に従う必要があります。
-
fetchall: 既読メッセージを含め Fetchmail がキューにあるすべてのメッセージをダウンロードするように命令します。デフォルトでは、Fetchmail は新規メッセージのみをダウンロードするようになっています。 -
fetchlimit number: number を、停止する前に取得するメッセージ数に置き換えます。 -
flush: 新規メッセージを取得する前に、キューにあるすべての既読メッセージを削除します。 -
limit max-number-bytes: max-number-bytes を、Fetchmail で取得する時に許容されているメッセージの最大バイトサイズに置き換えます。このオプションでは低速のネットワークリンクが提供されるため、サイズが大きいメッセージのダウンロードに時間がかかりすぎる場合に有用です。 -
password 'password': password を、ユーザーのパスワードに置き換えます。 -
preconnect "command": command を、ユーザー宛のメッセージを取得する前に実行するコマンドに置き換えます。 -
postconnect "command": command を、ユーザー宛のメッセージを取得した後に実行するコマンドに置き換えます。 -
ssl: SSL 暗号化を有効にします。この英語版が公開された時点で、デフォルトのアクションではSSL2、SSL3、SSL23、TLS1、TLS1.1、およびTLS1.2から最良のものを使用します。SSL2は廃止されたものと見なされ、POODLE: SSLv3 脆弱性 (CVE-2014-3566) のため、SSLv3を使用しないようにする必要があります。ただし、TLS1 以降の使用を強制できないため、接続するメールサーバーがSSLv2とSSLv3を使用しないよう設定する必要があります。サーバーがSSLv2およびSSLv3を使用しないように設定できな場合は、stunnelを使用します。 -
sslproto: 許可された SSL プロトコルまたは TLS プロトコルを定義します。可能な値はSSL2、SSL3、SSL23、およびTLS1です。sslprotoが省略された場合、未設定の場合、または無効な値に設定された場合のデフォルトの値はSSL23です。デフォルトのアクションはSSLv2、SSLv3、TLSv1、TLS1.1、およびTLS1.2から最適なものを使用します。SSL または TLS の他の値を設定すると、他のすべてのプロトコルが無効になることに注意してください。POODLE: SSLv3 脆弱性 (CVE-2014-3566) のため、このオプションを省略するか、SSLv23に設定し、対応するメールサーバーが SSLv2 とSSLv3を使用しないよう設定することが推奨されます。サーバーがSSLv2およびSSLv3を使用しないように設定できな場合は、stunnelを使用します。 -
user "username": username を、Fetchmail がメッセージの取得に使用するユーザー名に置き換えます。このオプションは、他のすべてのユーザーオプションの前に付ける必要があります。
15.3.3.5. Fetchmail のコマンドオプション リンクのコピーリンクがクリップボードにコピーされました!
fetchmail コマンドの実行時にコマンドライン上で使用される Fetchmail オプションの大半は、.fetchmailrc 設定オプションを反映します。この方法では、Fetchmail は設定ファイルの有無を問わず使用できます。これらの設定オプションは、.fetchmailrc ファイルに残しておいた方が簡単なため、多くの場合はコマンドライン上では使用しません。
fetchmail コマンドは、特定の用途のオプションと併せて実行した方が望ましい場合もあります。コマンドラインで指定されるオプションはいずれも設定ファイルオプションを上書きするため、エラーが発生した場合は、コマンドオプションを使用して、エラーの原因になっている .fetchmailrc 設定を一時的に上書きすることが可能です。
15.3.3.6. 情報提供またはデバッグのオプション リンクのコピーリンクがクリップボードにコピーされました!
fetchmail コマンドの後に使用されるオプションの一部は、重要な情報を提供する場合があります。
-
--configdump:.fetchmailrcおよび Fetchmail のデフォルト値からの情報に基づいた可能なオプションをすべて表示します。このオプションを使用すると、どのユーザーの電子メールも取得されません。 -
-s: Fetchmail をサイレントモードで実行し、fetchmailコマンドの後にエラー以外のメッセージが表示されないようにします。 -
-v: Fetchmail を verbose モードで実行し、Fetchmail とリモート電子メールサーバー間のすべての通信を表示します。 -
-V: 詳細なバージョン情報の表示、グローバルオプションのリスト表示、電子メールプロトコルや認証メソッドなどの各ユーザーと使用する設定の表示を行います。このオプションを使用すると、どのユーザーの電子メールも取得されません。
15.3.3.7. 特殊なオプション リンクのコピーリンクがクリップボードにコピーされました!
これらのオプションは .fetchmailrc ファイルによく見られるデフォルト値を上書きする時に役立つ場合があります。
-
-a: Fetchmail は、新規または既読を問わず、すべてのメッセージをリモートの電子メールサーバーからダウンロードします。デフォルトでは、Fetchmail は新規メッセージのみをダウンロードします。 -
-k: Fetchmail はメッセージをダウンロードした後、リモートの電子メールサーバー上にメッセージを残します。このオプションを使用すると、メッセージをダウンロード後に削除するデフォルトの動作は上書きされます。 -
-l max-number-bytes: Fetchmail は一定のサイズを超えるメッセージはダウンロードせず、リモートの電子メールサーバー上に残します。 -
--quit: Fetchmail デーモンのプロセスを終了します。
その他のコマンドと .fetchmailrc オプションは、fetchmail の man ページを参照してください。
15.3.4. メール転送エージェント (MTA) の設定 リンクのコピーリンクがクリップボードにコピーされました!
Mail Transport Agent (MTA) は電子メールの送信に不可欠です。Evolution や Mutt などの Mail User Agent (MUA) を使用してメールの読み取り、作成を行うことができます。ユーザーが MUA から電子メールを送信すると、メッセージは MTA に渡されます。MTA は一連の MTA を通じて、メッセージが送信先に届くまで送信します。
ユーザーがシステムから電子メールを送信する予定でなくても、一部の自動化されたタスクまたはシステムプログラムは、mail コマンドを使用して、ログメッセージを含む電子メールをローカルシステムの root ユーザーに送信する場合があります。
Red Hat Enterprise Linux 7 は Postfix と Sendmail の 2 つの MTA を提供します。両方がインストールされている場合は、Postfix がデフォルトの MTA になります。