メ−ルサ−バ−(sendmail 8.11.6-3 RedHat7.2J)の使用                戻る

RedHatに組み込んであるsendmailLAN上で使用し,メ−ル送受信など体験して見たいと思った事で,外部への接続は考えておりません. (カスタムで全部を選択してインスト−ルしてあり,sendmail,sendmail-cf は組み込み済みのようでした)

Linuxが起動した時点で,sendmailは動いており,同一ホスト内ではメ−ルの交換が可能となっており,
mail asuzuki などで,asuzukiにメ−ルが届きました.初めアカウントをASUZUKIと大文字を使用しておりましたら,User不明のエラ−が出て届きませんでした. どうも大文字のアカウントは駄目のようで,小文字に変更しました.
他のホストからOutlook Express など使用して見ましたが送受信できず,調べてみたら sendmail.mc などを利用し,sendmail.cfを変更しないとだめのようでした. また,ntsysv で ipop3 などにもチェックを入れました

ダイアルアップ ル−タ−を使用し,LANで各コンピュウタ−を繋ぎ,各コンピュウタ−のゲ−トウエイのIPをル−タ−(192.168.1.1)に, DNSのIPもル−タ−の簡易DNS機能を利用しており 192.168.1.1 に設定した状態で使用しております. インタ−ネットに接続していないと,メ−ルの送信が非常に遅く,設定に問題があるのでしょうか,不明です

Fedora Coreから POP3/IMAPサ−バ−がimapからdovecotに変更となり
/etc/dovecot.confに protocols = imap imaps pop3 pop3s  を追加しないとPort 110が開かないようです。その後,# service dovecot restart で再起動

(注)sendmailの解説をする能力は私にはなく,以下に書いた事は,私が実験的に設定した時のメモでしかありません

















































sendmail.cf
の編集は の3通りの方法があるようでした.RedHatに7.2,3Jでのsendmailの設定法が載っており,m4を利用しました.

/etc/mail/sendmai.mc の編集箇所
変更前
変更後
EXPOSED_USER(’root’)dnl
dnl EXPOSED_USER('root')dnl
DEMON_OPTIONS(’port=smtp,Addr=127.0.0.1,Name=MTA’)
dnl DEMON_OPTIONS('port=smtp,Addr=127.0.0.1,Name=MTA')

の2箇所をコメント(dnl)としました.( l は小文字のエルで,数字の1と紛らわしく,初め間違えてしまいました)

root# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf

を実行し, service sendmail restart とすると,変更が反映されるようです

注) RedHat8.0 では m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf に変更
m4 が使えるかは, #rpm -q sendmail−cf で確認,インスト−ルされていなければ
インスト−ルCDの 3/3 に sendmail−cf があるのでインスト−ル

この変更後,他のホストのOutlook Expressから,メ−ルの送受信が可能となりました.
(アカウント,パスワ−ドはLinuxと同じとし,SMTP,POP3はLinuxサ−バ−のIPを設定)
一応,上記の変更で,LANでホスト間のメ−ルの送受信は可能となりましたが,メ−ルサ−バ−の設定など詳細は良く理解できません.

その他,/etc/mail/に  があり,それぞれに access.db などのような .db フアイルがあります.

sendmailは*.dbを利用して動作するようで,access など編集した時は db フアイルに変換しないと駄目なようです

変換は

makemap hash /etc/mail/access.db < /etc/mail/access

などを実行すれば良いようです

































sendmail.mc


sendmail.mcの解説は 設定方法いろいろ, 本田さんに詳しく載っておりました

(注)リンクは検索ソフトで探したもので,トップ ペ−ジ が良く判りません

/usr/share/sendmail−cf/README に sendmail configuration files の説明があるようです

(注)実験時の設定はFEATURE(relay_local_from)dnlと同じで,自分で試した事を並べて見ました. 































FEATURE(use_cw_file)dnl, MASQUERADE_AS
  FC2(TEST2) sendmail-8.12.11-4.6

sendmailを立ち上げた状態では,suzuki@barton.giga.gr.jpとしないとメ−ルが届かず,suzuki@giga.gr.jpとして メ−ル送りたく試行錯誤しました。下記の設定をしたところ outlook express,mozillaメ−ルで from suzuki@giga.gr.jp to suzuki@giga.gr.jp と表示され,送信も suzuki@giga.gr.jp で可能となりました,余り自信がありませんが一応動きました ------------------ giga.gr.jp.zone ---------------------------------------------- $TTL 86400 giga.gr.jp. IN SOA barton.giga.gr.jp. root.giga.gr.jp. ( 省略  ) giga.gr.jp. IN NS barton.giga.gr.jp. giga.gr.jp. IN MX 10 barton giga.gr.jp. IN A 192.168.253.12 duron IN A 192.168.253.10 barton IN A 192.168.253.12 ------------------- local-host-names ------------------------------------------------------ # local-host-names - include all aliases for your machine here. giga.gr.jp ------------------- sendmail.mc --------------------------------------------------- divert(-1)dnl dnl # dnl # This is the sendmail macro config file for m4. If you make changes to divert(0)dnl include(`/usr/share/sendmail-cf/m4/cf.m4')dnl VERSIONID(`setup for Red Hat Linux')dnl OSTYPE(`linux')dnl FEATURE(use_cw_file)dnl FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl FEATURE(`access_db',`hash -T<TMPF> -o /etc/mail/access.db')dnl dnl EXPOSED_USER(`root')dnl dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl FEATURE(`allmasquerade')dnl FEATURE(`masquerade_envelope')dnl FEATURE(`masquerade_entire_domain')dnl MASQUERADE_AS(`giga.gr.jp')dnl MASQUERADE_DOMAIN(`barton.giga.gr.jp')dnl MAILER(smtp)dnl MAILER(procmail)dnl ------------------------------------------------------------------------- FEATURE(use_cw_file)dnlにより,/etc/mail/local_host_namesが読み込まれるようで,このファイルにgiga.gr.jpなど 書き込んでおくと,suzuki@giga.gr.jpとしてメ−ルが送れました。

MASQUERADE_AS('giga.gr.jp')dnlにより,メ−ルの From,Toが suzuki@giga.gr.jp と表示されました

ゾ−ン ファイルで MX barton.giga.gr.jp も設定しておかないと駄目なようです 。
































3: FEATURE(`access.db',`hash −o /etc/mail/access.db')dnl


この設定により,access.db が参照されるようになり,`blacklist_recipients’ も access.db を利用しているようです.
`blacklist_recipients'は単独では設定出来ず,`access.db',`hash −o /etc/mail/access.db'が必要のようでした.

 の access.db に asuzuki@server.giga.gr.jp REJECT を設定した所,送受信共に asuzuki@server.giga.gr.jp  は拒絶されました.
(設定は access を変更し,makemap hash /etc/mail/access.db < /etc/mail/access を実行)

(注)実験条件はFEATURE(relay_local_from)dnlと同じ設定です





























1 : FEATURE(relay_local_from)dnl

    インタ−ネット
       |
    ダイアルアップル−タ−(192.168.1.1)
       |
  --------LAN---------------------------------------------------
  |        |                      |
 Windows(C)     Linux(メ−ルサ−バ− A)      Linux(メ−ルサ−バ− B)
 (athlon)    (tbird)             (server.giga.gr.jp)
 192.168.1.104     192.168.1.120                192.168.1.110

 OutLook Expressの設定( C )       KMailの設定( B )
 SMTP tbird.giga.gr.jp           SMTP  server.giga.gr.jp 
 POP3 tbird.giga.gr.jp           POP3  server.giga.gr.jp
 ID    asuzuki                   ID    asuzuki
 パスワ−ド ******                       パスワ−ド ****** 

 tbird,server の ID,パスワ−ドは共に asuzuki,asuzuki に設定

同じネットワ−ク上にメ−ル サ−バ− を二つ作って,上記の条件で,C → B に A を経由してメ−ルを出して見ました.
当然,A→Bに転送されると思っておりましたが,ホスト不明でエラ−メッセ−ジが戻ってきました.どうも,同じドメインに対しては,転送されないようででした.
また,本屋さんの売り上げに貢献 ? し,「Linuxのためのsendomail(リチャ−ド ブルム)」を買い,色々と読んで見た所,relay_local_from を設定すればなんとかなりそうで試して見ました(書いてある事が,具体的でなく,よく理解できませんでした).
Aに設定(Bは未設定)し C から To:asuzuki@server.giga.gr.jp として,Aに送信した所,B に転送され,B で受信出来ました.
Bから,asuzuki@tbird.giga.gr.jpとAに対し送信してみましたが,B→A には転送されず,ホスト不明となりました.

その後,Aの relay_local_from を削除,B に設定して見ましたが,B → A に転送されず,A → B は可能で理由が判らず,試行錯誤が始まりました.
ル−タ−の簡易DNS機能を利用しておりましたが,sendmail では,うまく動かず, の /etc/hosts に 192.168.1.120 tbird を書き加えたら,B → A も可能となりました.
うっかりしておりましたが,A の hosts には,Linuxのインスト−ル時に,server,tbird を書き加えてありましたので A → B はスム−ズに転送されたようです.

お遊びとしては,面白いのですが,スパム メ−ルなどの対策のため使用しないようです.






























2: FEATURE(`nullclient',`[192.168.1.120]')dnl


解説を読んでも,なかなか理解できず relay_local_from と同じく状態で接続し,試してみました.

serverのsendmail.mc を,
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

divert(−1)
include(.....
defeine( ....
  .
  .
FEATURE(`nullclient',`[192.168.1.120]')dnl
  .
MAILER(smtp)dnl
MAILER(procmail)dnl
CWlocalhost.localdomain

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
上記のように変更しました.FEATUREはnullclientのみを設定,他のFEATUREは全て削除しました.
defineなど他の設定はそのままとしました.

変更後   m4 /etc/mail/sendmail.mc > /etc/sendmail.cf
       service sendmail restart

を行いました.

serverで #mail root, #mail asuzuki@server.giga.gr.jp など行ってみました( B → B ).
mailはserverには届かず,tbirdに届いておりました
  −−−−−−−−−−−−−−−−−−−−−−−−−
 From: root@tbird.giga.gr.jp,To:root@tbird.giga.gr.jp
 From: asuzuki@tbird.giga.gr.jp,To:asuzuki@tbird.giga.gr.jp
  −−−−−−−−−−−−−−−−−−−−−−−−−
server宛のメ−ルはロ−カルメ−ルも全て,192.168.1.120 に tbirdからのメ−ルとして転送されてしまうようです.









































sendmail.cfのテスト


編集し,m4 で sendmail.mc → sendmail.cf に変換後,動作を試験するために

#sendmail -bt -C /etc/sendmail.cf
  注) ーC 以下は /etc/sendmail.cf をテストするなら省略可

を実行すると プロンプト > が出て,コマンドを受け付けるようになる.

>0 root
... <ruleset> <address>
parse
input: root
Parse0
input: root
Parse0
returns: root
  .

  .

Parse1
returns: $# local $: root
parse
returns: $# local $: root

などと,設定の状態が表示されました.
        -------------------------------------------------------

sendmail   -ba,d,D,h,H,i,m,p,s,t,v .. t はテストモ−ド
           -C 設定ファイル(/etc/sendmail.cf)
           -d1,2,4,5,9,15   デバッグ レベル 
        -------------------------------------------------------
sendmail は -b,-C,-d などのパラメ−タ−に t などの値をつけて起動すると,テスト,デバッグなどの動作をするようです

ル−ルセット

配送エ−ジェントの選択

全ての送信者アドレスを処理

全てのの受信者アドレスを処理

全てのアドレスの前処理

全てのアドレスの後処理
kj
エイリアスを使用せず,ロ−カルアドレスとする