ホームページ  >  記事  >  php教程  >  この質問はここですべきではありません。 SENDMAIL の構成を見てみましょう。しかし、さらに詳しく学びたい場合は、他の情報を見つける必要があります。

この質問はここですべきではありません。 SENDMAIL の構成を見てみましょう。しかし、さらに詳しく学びたい場合は、他の情報を見つける必要があります。

WBOY
WBOYオリジナル
2016-06-21 09:13:181276ブラウズ

質問

Sendmail の設定


一般のシステム管理者にとって、Sendmail は、多くの場合、あえて触れない「禁断のゾーン」です。システムのほとんどのユーザーは、電子メールに対する要求と依存度が非常に高いため、電子メールへの依存度が非常に高いためです。ほんのわずかな間違いでも、システム管理者は嵐のような抗議と苦情を受けることを覚悟しています。 Sendmail の「内部文字」については、少し理解するのが難しいようです。設定に関係する sendmail.cf ファイルは、かなり苦労しないと、聖書を読むようなものになります。中に何が入っているかだけがわかります 英語の単語と
数字があります!したがって、ほとんどの人は、使える限り、常にじっとしていられます。しかし、残念ながら、sendmail には通常、マシンに付属する恐ろしい「追加機能」が常にあります。つまり、退屈な人々の侵入手段として使用できるいくつかのバグやバックドアが存在することが多く、バグによっては侵入者が侵入することもできます。 Sendmail 経由で root の最高権限を取得してください! root 権限が剥奪されると、マシンが任意に破壊され、最悪の場合、システムが破壊される可能性があります。

中国ではSunは多くの人に使われており、筆者もSunについては少し詳しいです。しかし、Sun の Sendmail はまったくお世辞にも言えません。「頻繁に」パッチを適用せずに Sun の Sendmail を使用している限り、システムのセキュリティについて話す必要はありません。まだ Sun の Sendmail を使用している場合、システムに
不規則* がある場合、注意を払わないといつでも爆発する可能性があります:(。CERT または 8lgm をチェックしてこの点を確認できます。もうすぐです。
sendmail に問題がある限り、ほとんどの場合は失敗します...他のシステムの Sendmail は、Sun ほど稼働率は高くありませんが、一方では問題が頻繁に発生します。 Sendmail 8.6.9 以前のバージョンでは ident に関する
バグが発見されましたので、ご都合が悪い場合は、
バージョンに修正してください。 v8.6.5 以降。sendmail.cf に次の行を追加します。
Orident=0
ident チェックを行わないことを意味します
v8.6.5 より前のバージョンは最新バージョンに置き換える必要があります

このソフトウェアは現在 で最も評価が高いです。システム セキュリティの観点から、既知のバグはすべて修正されています。主な理由は、もちろん、作者である Eric Allman がメジャーなバージョンを見つけ次第、ソフトウェアの新しいバージョンをリリースできるからです。このソフトウェアの開発者はいくつかの必要な設定手順を自動化しているため、このソフトウェアのインストールは想像ほど難しくありません。
コンパイル時間を含めると、すべてがうまくいけば、30 分以内にインストールされます。つまり、「Mai はショックを受けています」:


3. Sendmail をインストールします



3.1 Sendmail のバージョン


Sendmail の最新バージョンは ftp://ftp.sendmail.org/pub/sendmail/ から入手できます!
sendmail.8.9.3.tar.gz など 記事公開時点の最新バージョン、サイズ: 1068290byte
最新バージョンのリリースについては、Sendmail のホームページ http://www.sendmail.org をご覧ください


3.2 Sendmailのインストール
rootとしてログインするかrootとして実行した後、まずtar.gzパッケージtar fvxz sendmail.8.9.3.tar.gzを解凍し、make
-fを使用してコンパイルを開始します コンパイル後完了すると、システムは sendmail.cf というシステム設定ファイルを生成します (通常、このファイルは /etc に保存されます)

次に、次の手順に従ってインストールを続行します: (注: ~/sendmail は解凍された sendmail ディレクトリです) )

1. 設定ファイルディレクトリ ~/sendmail/cf/cf に切り替えてください。ご使用のシステムに適した XXXX.mc ファイルを見つけてください。著者は通常、uucp を必要としないファイル tcpproto.mc を使用します。 tcpproto.mc ファイルを使用する場合、solaris
2.3 で試してみました。ファイルに次の行を追加することを忘れないでください:
OSTYPE(solaris2) Sun 4.1.3 いいえ、他のシステムは知りません。 ~/sendmail/cf/ostype ディレクトリには OSTYPE() 可能なファイルがいくつかあります。このディレクトリにデータがあるファイルのみが OSTYPE() 可能です。また、システムVの/bin/mailの場合はOSTYPE()を追加する必要があるようです。 古いことわざ、詳細についてはドキュメントを参照してください: ~/sendmail/cf/README。経験豊富な友人がこれに追加できることを願っています:)
OSTYPE() を追加するのをうっかり忘れた場合はどうなりますか?何も起こらず、「不明なメーラーエラー」エラー
だけが表示され、メールを受信できません。
皆さんに思い出していただきたいのは、~/sendmail/cf/cf にあるさまざまなシステムの .mc ファイルはすべて、Sendmail 8.6.x の作者である Eric Allman によって「実証」されているため、ファイル名が
これらのファイルをそのまま使用すると必ずエラーが発生します。変更すべき点がかなりたくさんあるので、ペン
のような怠け者にとっては、tcpproto.mc を使用するのが比較的簡単でエラーもありません :)

2. 目的の .mc ファイルを選択した後、m4 を実行して .cf ファイルを生成できます。次のコマンドを入力してください:
# m4 XXX.mc > YYY.cf sun 4.1.3 の場合、システムは m4 のバージョンが古すぎるというメッセージを表示することがあります。それでは、試してみてください:
# /usr/5bin/m4 XXX.mc >YYY.cf
それでも動作しない場合は、新しいバージョンの m4 を取得してコンパイルしてください (http: //www.gnu.org gnu
m4)。

このステップは、コンパイルされたファイルをシステムにインストールすることです。

もう一度注意してください: 古いファイルはバックアップしましたか?

コンパイル結果はエラーもなく非常に問題なく、.cf ファイルの生成プロセスには特筆すべき点は何もないと仮定します
。生成された .cf ファイルも変更されています。そして最も重要なことは、古いファイルのバックアップを作成することです (怖がらせるつもりはありません。これは念のためです)。

1. 上司がメールを使用していない時間を選び、すぐにディレクトリ ~/sendmail/src に切り替えて、次のコマンドを発行します:
# make -f Makefile.XXX install
システムがコンパイルします~/sendmail/ src/sendmail と man ドキュメントを、あるべきディレクトリにコピーします (
したがって、/usr/lib/sendmail をバックアップしていない場合は、戻ったときに問題がないことをすぐに祈ります。さもなければ、涙を覚悟してください
泣く!
古いものはコンパイルからのsendmailによって上書きされるため)

2. ディレクトリ~/sendmail/cf/cfに切り替え、生成されたsendmail.cfファイルをこのシステムにコピーします。
の場所、
例: /etc または /etc/mail。

3. 古いsendmailデーモンプロセスを強制終了します。 (これで手間が省けるはずです! ps -ax |grep
sendmail |grep -v grep を使用して、古いデーモン (または head -1/etc/sendmail.pid または head -1
/etc/mail) のプロセスを見つけます。 /sendmail .pid)、次に kill -9 processID を使用して強制終了します (または直接 kill -9 `head -1
/etc/sendmail.pid` を使用します)

4. たとえば、次のコマンドを使用します:
/usr /lib. /sendmail -bd -q30m
もちろん、保守的に古いデーモンがどのように動作するかを確認してください。パラメータを通常どおりに設定しても問題ありません
この時点で、初期インストールは完了です。 sendmail の設定を参照してください


3.3. Sendmail のインストールに関する注意事項
インストールが失敗した場合は、次の質問を参照してください:
以下のように、vi または任意のエディタを使用してメイクファイルを編集し、必要な変更をいくつか加えます。

1."CC="元のファイルで使用されているコンパイラが当社のシステムのものではない場合、これを変更する必要があります

2. このシステムには Berkerlay の新しいデータベースがインストールされています。そうでない場合は (例: 通常、SunOS がインストールされていない)、これらの行を変更してください (以下では例として Makefile.SunOS が使用されていますが、他のシステムも同様です)。 :

A. DBMDEF= -DNDBM -DNEWDB -DNIS 行を次のように変更してください: DBMDEF= -DNDBM -DNIS (つまり、-DNEWDB を削除します)

B. これらの 2 行に注意してください: INCDIRS=-I/ usr/sww/include /db --> #
INCDIRS=-I/usr/sww/include/db
LIBDIRS=-L/usr/sww/lib --> # LIBDIRS=-L/usr/sww/lib

C. LIBS= -ldb -ldbm -lresolv の行を次のように変更します: LIBS= -ldbm -lresolv (つまり、-db を削除します)

3. nroff の「-mandoc」パラメータを「-man」に変更します。一般的なシステムでは受け入れられます (もちろん、これはシステムによって異なります。groff を使用している場合は、このパラメータを変更せずに直接使用できます:)。ただし、フォーマットされたsendmail関連ファイルに移動するだけでは表示されません。

DIRECTORY PERMISSIONSの問題に関しては、次の2つのコマンドを実行する必要があります:

chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
chown root / /etc /etc / mail /usr /var /var/spool /var/spool/mqueue

多くのシステムのスプール ディレクトリは、/var/spool の代わりに /usr/spool を使用します。必要に応じて、エイリアス etc/mail を /etc に設定します。 sendmail.cf で RunAsUser 権限オプションを設定します。ディレクトリ /var/spool/mqueue には RunAsUser ユーザーの権限が必要です。次に、Sendmail のコンパイルを開始し、sendmail -v -bi

エイリアス データベースを初期化します。それは次のように表示されます:

警告: 書き込み可能なディレクトリ /etc
警告: 書き込み可能なディレクトリ /usr/spool/mqueue
その後、このディレクトリには不適切な書き込み権限がリストされており、さまざまなセキュリティ攻撃から回避する必要があります。


4.1 Sendmail.cfを設定する

メールを正常に受信するには、生成されたYYY.cfを通常は別の場所に変更する必要があります。元の .cf ファイルで「Cw」を探してください。Cw は、localhost の後に受信アドレスとして使用できるすべてのマシンのホスト名を追加してください。
例えば、私は ftp.games.net.cn という名前のマシンを持っています、そしてそれは gopher.games.net.cn とも呼ばれます、
そしてこのマシンが両方の名前のメールを受信できることを願っています、そうしますこれ :
Cwlocalhost ftp.games.net.cn gopher.games.net.cn

ちなみに、Cwの後にはこのマシンの名前のみを書いて、他のマシンの名前は書いてはいけません
、それ以外の場所に送信できる場合は、書かれたものを送信してはいけません。

上記は実際には簡略化された説明です。DNS に精通している場合は、このセクションを参照して Cw
の後に記述する必要があるかどうかを判断できます。それ以外の場合は、このセクションをスキップして、目を閉じて、このマシンで使用されているすべての名前を書き留めてください:)

1. マシン上で、複数の名前 (ホスト名) がある場合は、次のように CNAME を使用して作成します。 $ORIGIN games.net.cn
ftp IN A 140.119.1.2
gopher IN CNAME ftp

そうするとCwに指定する必要はありません。システムは DNS を通じてその正規名を見つけます。

2. ただし、マシンに複数の名前がある場合、それぞれの名前は A レコードを使用して作成されます。例:
$ORIGIN games.net.cn.
ftp IN A 192.168.25.2
gopher IN A 192.168.25.2
この場合、Cwの後にメールを受信したい名前を忘れずに書く必要があります。これを書き忘れると、どんな問題が起きるのでしょうか

外部マシンから送信されたレターがあるかもしれないことを忘れていましたが、書かれていないマシン名はレターを受信せず、マシンは次のように訴えます:
「ローカル構成エラー」。

例: sendmail.cf の Cw 行は次のとおりです: Cw games.net.cn
その後、このアドレスは使用できなくなります:
username@games.net.cn
ただし、使用できるのは
だけですusername@ftp.games.net.cn それ以外の場合は、上記のエラーが発生します。

間違いを見つけたらそのまま追加してください。

3. マシンに複数のインターフェースがある場合、各インターフェースは独自の名前を持ち、メッセージを受信する必要があります。
この場合、Cwの後にメールを受信するためのホスト名もすべてメモしておく必要があります。

OK! 標準の sendmail.cf ファイルが設定されました。


4.2 アクセスを設定します
/etc/mail/access を開くと、表示されます (一部のシステム アクセス ファイルが /etc/mail の下に存在しないことに注意してください。見つからない場合は、whereis を使用して検索するか、インストールが正常かどうかを確認してください )

# /usr/doc/sendmail-8.9.3/README.cf ファイルでこのファイルの形式の説明を確認してください
# (ファイル内で access_db を検索してください)
# /usr/doc/sendmail -8.9.3/README.cf は sendmail-doc
#
#
.25.11 の一部です、ファイルの最後の 3 行に 192.168.25.11 RELAY
を追加してください。

localhost.localdomain RELAY
localhost RELAY
192.168.25.11 RELAY

この文を追加すると、sendmail を使用してメールを送受信できるようになります。ただし、他の人が sendmail を使用できるようにしたい場合は、その IP が 202.168.25.22 であるため、ファイルの最後の行に 202.168.25.22 RELAY
を追加します。ファイルの最後の 4 行は次のようになります。

localhost.localdomain RELAY
localhost RELAY
192.168.25.11 RELAY
192.168.25.22 RELAY

ここで質問があると思いますが、sendmail を使用するために 50 人を設定したい場合、50 個の IP を追加する必要がありますか? ?
おい、必要ない、それだけだ。sendmail が複数のユーザーを考慮する場合、クラス C のアドレス全体を追加できる(クラス B でも大丈夫です
、私は試していません!)
形式は次のとおりです。 :

localhost .localdomain RELAY
localhost RELAY
192.168.25 RELAY

このようにして、このタイプ C アドレスのユーザーがシステムにアカウントを持っている場合、192.168.52 の C 全体を追加します。 sendmail を使用して手紙を送受信できます。


4.3 Pop3のセットアップ


メールの受信にpop3が必要な場合は、pop3ポートを開く必要があります

vi /etc/inetd.conf 見つけてください
# Pop-3 stream tcp nowait root /usr/sbin /tcpd ipop3d
# 番号を削除します。 vi /etc/services found
#pop-3 110/tcp # POP version 3
# 記号を削除します。

このようにして、inetdを再起動すると、pop3のポート110がメッセージを受信できるようになりました!それでも動作しない場合は、pop
3 ポートがインストールされているかどうかを確認してください。


4.4 sendmail を再起動する方法; inetd と注意事項


皆さんに思い出していただきたいのは、sendmail を再起動するには "kill -9 [pid-of-sendmail]" を使用することです
kill -HUP を使用すると、このようなことは起こりませんそれは動作します! (これは多くの人がよく遭遇する問題です、覚えておいてください!)
redhat6 で /etc/rc.d/init.d/sendmail restart を使用してください!

inetdは/etc/rc.d/init.d/inetd restart
5.1 sendmailのエイリアスとフォワード



(1)IPアドレスを使った直接レター送信について

mail user@[166.111.IP.アドレス】
IPアドレスを[]で囲むだけ (2)エイリアスについて

Sendmail には、/etc の下に aliases と aliases.db という 2 つのファイルがあります。後者は、前者が newaliases を使用して生成したエイリアス データベースです。/etc/aliases を手動で編集して、newaliases を実行してデータベースを更新できます (実際、newaliases はエイリアスです)。 sendmail へのシンボリックリンク)

例:ニックネーム : user@hotmail.com
エイリアス名: real-user-account

そして将来的には、メールのニックネームで user@hotmail.com にレターを送信できるようになります
そして他の人もそうするでしょうsend it to alias-name@ The Letter of your.domain.name will be forwarded to the real user
real-user-account

(3) forwardについて

$HOMEディレクトリ配下の.forwardファイルを編集し、転送の目的を電子メール
アドレスまたはローカル ユーザー名に指定すると、メッセージは対応するアドレス

に自動的に転送されます。例: .forward: user@hotmail.com
または other-user-account
その後、電子メールこの人に与えられます Forward to hotmail or other-user-account

(4) 休暇について

休暇パッケージを見つけて(例えば、RedHat の contrib に休暇 rpm があります)、インストールすると、
/usr/bin/vacation プログラムと A man
まず、vacation を実行すると、$HOME/.vacation.msg ファイルを編集するよう求められます。これは、相手に送り返すためです
。今は手紙を読みたくない場合は、$HOME/.forward ファイルを編集して、
"|/usr/bin/vacation username" のようにユーザー名を書き込みます。ユーザー名を自分のものに変更してから、vacation を実行する必要があります。
$HOME/.vacation.db を作成します (詳細については man を参照してください)

(5) sendmail に関するいくつかのファイル

/var/log/maillog Sendmail のログ、エラー分析に役立ちます
/var/spool/mail/ $USER 受信文字、ユーザーごとに 1 つのファイル
/var/spool/mqueue メールキュー、キューで待機しているメッセージを表示するには mailq を使用できます
(mailq は sendmail のシンボリックリンクでもあります)
dfxxxxxx これは、 Letter
qfxxxxxx レターの件名とその他の情報です(とにかく、各文字に1つの番号があり、ペアになっています)
/etc/sendmail.cf sendmailの設定ファイル、変更するときは注意してください
/etc/sendmail。 cw マシンに多くのエイリアスがある場合は、
このファイルに名前を書いて、書いた人なら誰でも受信できるようにします レター


5.2 メールのサイズを制限する
/etc/sendmail.cf:
Mlocal, P を変更する=/bin/mail, F=lsDFMrmn, S=10, R=20/40,
Maxsize=1000000,
A=mail -d $u
Mprog, P=/usr/local/sendmail/smrsh, F=lsDFMeu , S=10, R=20/40, D=$z:/,
Maxsize=1000000,
A= sh -c $u

これにより、smrsh と /bin/mail によって処理される受信メールが 100 万バイトに制限されます

Mstmp、Mesmtp、Mrelay ステートメントでも同様に送信メールの
サイズを制限できます。
Mstmp、Mesmtp、Mrelay ステートメントでも同様に送信メールの
サイズを制限できます。メールも




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。