サーバー用の Ubuntu コマンドライン電子メールツール

サーバー用の Ubuntu コマンドライン電子メールツール

ログ ファイルをバックアップするスクリプトをいくつか書き始めました。ログ ファイルにエラーが見つかった場合は、必ず自分にメールを送信します。ただし、smtp/mail をインストールするとハッカーに新しい選択肢が開かれると聞いたので、サーバーが侵害されないように注意したいと思います。

メールを受信できず、送信のみ可能なツールはありますか? また、インストール時にセキュリティ上の考慮が必要なことは何ですか?

答え1

しかし、smtp/mailをインストールするとハッカーに新たな選択肢が開かれると聞いたので、サーバーが侵害されないようにしたい。

どれでもこのサービスは「ハッカーにとって新たな選択肢となる」可能性がある。書き方が下手です。しかし、メールに関しては、Postfix も Exim4 も非常に安全です。

(一般的に、10 年前の Sendmail を使用しない限りは問題ありません。現在のバージョンは安全ですが、とにかく Sendmail は使用しないことをお勧めします。構成ファイルは人間が読める形式ではありません。)

メールを受信できず、送信のみできるツールはありますか?

どの MTA (Postfix、Exim4、Sendmail) でもこの方法で動作できます。ループバック アドレスのみ (::1および127.0.0.1) をリッスンするように設定してください。SMTP コンポーネントを完全に無効にすることもできます。ほとんどの Unix プログラムは SMTP を必要とせず、/usr/sbin/sendmail1経由でメールを送信するため、SMTP は不要になります。

しかし、「ハッカー」に対しては、これは本当に必要ではありません。 適切な MTA で起こり得る最悪の事態は、リレーに対して開かれたままにすることです。そして、デフォルト設定で既にそれが処理されています。

もう 1 つのオプションは ですがmsmtp、これは完全な SMTP サポートさえ備えていません。Gmail や ISP などの別のメール サーバーを介してメールを中継することしかできません。これは、パーソナル コンピューターには便利ですが、サーバー環境にはあまり適していません。


1/usr/sbin/sendmail」は付属のプログラムです全てMTAは「Sendmail」という名前で、特定のMTA。

答え2

標準の MTA (Postfix、Exim4、Sendmail など) がインストールされていれば、シェル スクリプトからメールを送信するのは非常に簡単です。通常、送信するには、mail適切な引数を指定したコマンドを使用して、メールの内容をプログラムにエコーします。たとえば、次のようになります。

echo "Error occurred in script at `date`" | mail -s "Error running script" [email protected]

引数-sで件名を指定し、その後に電子メールの受信者を指定します。

もう一つの例

grep -i error /path/to/yourfile.log | mail -s "Errors from script execution" [email protected]

man mailその他のオプションを確認してください。

cron 経由でスクリプトを実行している場合のもう 1 つのオプションは、スクリプトの出力を cron が自動的に電子メールで送信するようにすることです。MAILTO次のようにして、crontab にオプションを追加します。

[email protected]

スクリプトが実行されるたびに、stdout からの出力が電子メールで届きます。

セキュリティに関しては、電子メールの送信と受信はまったく別のものです。受信メール サーバーを実行せずにサーバーから電子メールを送信できます。このサーバー経由で電子メールを受信する必要がない場合は、単に SMTP デーモンを実行しないか、ファイアウォール経由で受信ポート 25 (SMTP) へのアクセスをブロックします。

関連情報