カテゴリー
Linux

ドメイン設定も含めSendmailでメール送受信ができるようになるまで試行錯誤まとめ

※注意※

この投稿は、自分自身の悪戦苦闘の記録であり、証です。

ここをいじってダメ、あそこをいじってダメ、ふて寝する、何か思いついた気がして、また別のところをいじってやっぱりダメ、別のところをいじってうまくいったかと思ったらダメ、またさっきのところをいじってダメ、別の視点で調べてみたら結局最初のところがダメくさかった、最初の設定をいじったら、できた!!!!!という記録を、そのまんま載せています。

要するに、まとまっていません、ポイントを押さえていませんことをお断りしておきます。

やるまえの3大不安

  1. 結びつきがわからんくて不安!Sendmailの設定やドメインのメール設定など、個々については詳細に説明しているサイトが多くあるけれど、それらをトータルで結びつけて説明してるサイトはなかったです。すごく不安だった。
  2. ドメインの設定するところが多すぎて不安!!Sendmailなどパッケージの設定ファイルにドメインの記述、ドメイン取得したサービス会社のサイトでドメイン設定を記述、サーバを借りたサービス会社のサイトでドメイン設定を記述。。。いったいどれだけ記述すればいいんじゃい!!!わかりません!
  3. 初めてで不安!!!ApacheやPHPは触ったことがあっても、メール系はさっぱり。SMTP?mailコマンド?リレー?踏み台?なんですそれ?

やってみました環境

  • 使用サービス ServersMan@VPS CentOS32bit シンプルセット
  • ドメイン お名前.com
  • OS CentOS 5.7 (Final)
    cat /etc/redhat-release
    CentOS release 5.7 (Final)
  • Sendmail 8.13.8-8.1.el5_7
    yum list installed | grep sendmail
    Repository 'vz-base' is missing name in configuration, using id
    Repository 'vz-updates' is missing name in configuration, using id
    sendmail.i386                      8.13.8-8.1.el5_7                    installed
    sendmail-cf.i386                   8.13.8-8.1.el5_7                    installed
    sendmail-doc.i386                  8.13.8-8.1.el5_7                    installed

まずは、ウォーミングアップがてらメール送受信テストです。

設定前の状態でメール送受信をテストしてみます。まずは、VPSからGMail宛てに送信しました。

mail -v -s test test@example.com
本文
Cc: WARNING: local host name (dti-vps-srv57) is not qualified; see cf/README: WHO AM I?
test@example.com... Connecting to [127.0.0.1] via relay...
220 dti-vps-srv57 ESMTP Sendmail 8.13.8/8.13.8; Tue, 7 Feb 2012 20:39:29 +0900
>>> EHLO dti-vps-srv57
250-dti-vps-srv57 Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> MAIL From: SIZE=44
250 2.1.0 ... Sender ok
>>> RCPT To:
>>> DATA
250 2.1.5 ... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 q17BdTVC014146 Message accepted for delivery
test@example.com... Sent (q17BdTVC014146 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 dti-vps-srv57 closing connection

届いた!でもWARNINGが。。。しかもドメインが取得したものになっていないじゃないですか、VPSの会社の名前っぽいドメインじゃないですか。。。とりあえず放置。

GMailからVPSへメールしても、届かない気がするけど、予想は予想、やってみます。具体的にはGmailに届いたメールの差出人(VPSの会社っぽいやつのドメイン)に送ろうとしましたが、送信後にエラーメールが返ってきてできませんでした。一応、取得したドメイン に送ってみます。受信箱をチェック。

mail
No mail for root

無慈悲な。。。届いていない。念のためログもチェックしたが、送信のログのみ。もしかして受信ログはここに載らない?などと考え始める(実際のところ、そんなことはありません。送受信の情報がログにはちゃんと反映されます。tail -50f /var/log/maillog とか叩いてメール送受信を眺めるのも一興ですよ)。

tail -f /var/log/maillog
Feb 7 20:39:29 dti-vps-srv57 sendmail[14145]: q17BdTqk014145: from=root, size=44, class=0, nrcpts=1, msgid=, relay=root@localhost
Feb 7 20:39:29 dti-vps-srv57 sendmail[14146]: q17BdTVC014146: from=, size=315, class=0, nrcpts=1, msgid=, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
Feb 7 20:39:29 dti-vps-srv57 sendmail[14145]: q17BdTqk014145: to=GMail, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30044, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (q17BdTVC014146 Message accepted for delivery)
Feb 7 20:39:30 dti-vps-srv57 sendmail[14148]: STARTTLS=client, relay=gmail-smtp-in.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=RC4-SHA, bits=128/128
Feb 7 20:39:31 dti-vps-srv57 sendmail[14148]: q17BdTVC014146: to=, ctladdr= (0/0), delay=00:00:02, xdelay=00:00:02, mailer=esmtp, pri=120315, relay=gmail-smtp-in.l.google.com. [74.125.127.27], dsn=2.0.0, stat=Sent (OK 1328614771 h6si25291153pbn.73)

気にせず進めましょう。ネットを漁って調べてわかった編集すべき項目を設定していきます。

★sendmail.mcの編集と設定

バックアップを作成しました。

cp -a /etc/mail/sendmail.mc /etc/mail/sendmail.mc.org

ホスト外からの送信の許可設定

◇sendmail.mcの編集と設定◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆が参考になりました。他のページもこのサイトはとても参考に、そして勉強になりました。おすすめです。

vim /etc/mail/sendmail.mc
:set nu

構築中のLinuxサーバー以外から送信されるメールも受け付けるように該当行をコメント化します。が、最初からコメント化されていたためそのままとしました。

dnl DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl

名前解決できないMTAからのリレーを禁止するために、下記行をコメント化しました。

dnl FEATURE(`accept_unresolvable_domains')dnl

ほかに、「送信するメールのサイズの制限」と、「同時に送信できるメールコピーの上限数の設定を新たに追加」は今回行わないことにしました。

★sendmail.cfの作成

バックアップを作成しました。

cp -a /etc/mail/sendmail.mc /etc/mail/sendmail.mc.org

sendmail.cfの作成を実行しました。

cd /etc/mail/
m4 sendmail.mc > sendmail.cf
ll sendmail.cf
-rw-r--r-- 1 root root 58325 2月 7 22:07 sendmail.cf

★local-host-namesを編集し、受信するホスト名を設定

バックアップを作成しました。

cp -a /etc/mail/local-host-names /etc/mail/local-host-names.org

“@” 以降のドメイン名を記述して、自ホストに保存すべきメールアドレスを設定します。

vim /etc/mail/local-host-names
# local-host-names - include all aliases for your machine here.
oki2a24.com

ここで、Gmailから VPS 宛てにメールしてみました。

が、ダメ。

(後から思うと、sendmail.cfの作成だけでなく、再起動しないとダメ。それに、sendmail.mcの設定も、実は間違っていたのです、涙。後述します。そこで解決します。)

★ホスト名毎のメールの振分け

複数ドメインは今回扱わないので /etc/mail/virtusertable は触りません。

★受信/転送に関する設定

バックアップを作成しました。

cp -a /etc/mail/access /etc/mail/access.org

配信の踏み台とならないように、受信と自ホストへの保存のみを許可します。

vim /etc/mail/access

最初から下記のような想定どおりの設定で一切触る必要がありませんでした。

# Check the /usr/share/doc/sendmail/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY

一応勉強も兼ねて access.db を作っておきます。

cd /etc/mail/
makemap -v hash access.db < access
key=`connect:localhost.localdomain', val=`RELAY'
key=`connect:localhost', val=`RELAY'
key=`connect:127.0.0.1', val=`RELAY'

踏み台チェックサイト RBL.JP にて ドメインを設定してチェックしてみます。

なんかそもそもの設定がいけてない?みたいで。。。そもそも接続ができません。どうしましょう。

第三者中継テスト
第三者中継テストのためoki2a24.comに接続しています...
エラー: oki2a24.comに接続できません。

★再起動

“/etc/mail/sendmail.cf”、”/etc/mail/local-host-names”の修正を有効にするには、再起動 or リスタートが必要だということを初々しい私は。。。知らんかったですよ。

sendmailをリスタートします。

/etc/init.d/sendmail restart
sm-client を停止中: [ OK ]
sendmail を停止中: [ OK ]
sendmail を起動中: [ OK ]
sm-client を起動中: [ OK ]

ここで再度、GmailからVPSにメール送ってみました。

が、受信ボックスにも、ログにもなにもなし。。。

困りました。

さて、ここから試行錯誤が始まります。Sendmailの設定は一通りした(と思っている)ので、そこ以外の設定を見直していきます。まずはVPS内部の設定を見ていきます。

★ホストネームを設定

レンタルサーバーを借りたら必ずやる事2 ServersMan@VPS|MAKIZOU.COMともうひとつ、sendmail設定(1)必要最小限の設定で使ってみるが参考になりました。

ホストネームを確認します。

hostname
dti-vps-srv57

ホストネームを変更します。

hostname oki2a24.com

変更されているかどうか一度確認します。

hostname
oki2a24.com

★hosts を設定

vim /etc/hosts
127.0.0.1 localhost.localdomain localhost

127.0.0.1 oki2a24.com localhost.localdomain localhost

★サーバー再起動後もホストネームを保持するよう設定

vim /etc/sysconfig/network
:set nu
NETWORKING="yes"
GATEWAY="192.0.2.1"
NETWORKING_IPV6="yes"
IPV6_DEFAULTDEV="venet0"

HOSTNAME="oki2a24.com"
NETWORKING="yes"
GATEWAY="192.0.2.1"
NETWORKING_IPV6="yes"
IPV6_DEFAULTDEV="venet0"

ネットワークを再起動して設定を反映させます。

/etc/rc.d/init.d/network restart
インターフェース venet0 を終了中:                          [  OK  ]
ループバックインターフェースを終了中                       [  OK  ]
error: "Operation not permitted" reading key "vm.mmap_min_addr"
SIOCGIFFLAGS: No such device
error: "Operation not permitted" reading key "vm.mmap_min_addr"
ループバックインターフェイスを呼び込み中                   [  OK  ]
インターフェース venet0 を活性化中:  広域 IPv6 転送は設定で無効になっていますが、現時点でカーネル内では無効にされていません
'/sbin/service network restart' でネットワークを再起動してください。
SIOCADDRT: ネットワークに届きません
                                                           [  OK  ]

テストします。GMail にメールしてみました。

なんだか今度はいい感じかな。最初のテスト送信時にWARNINGが出ていたけど、出なくなりました!一歩前進。

mail -v -s test GMail
てすと愛Cc: GMail... Connecting to [127.0.0.1] via relay...
220 dti-vps-srv57 ESMTP Sendmail 8.13.8/8.13.8; Tue, 7 Feb 2012 23:43:25 +0900 >>> EHLO oki2a24.com
250-dti-vps-srv57 Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> MAIL From: SIZE=50
250 2.1.0 ... Sender ok
>>> RCPT To:
>>> DATA
250 2.1.5 ... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 q17EhPmE011770 Message accepted for delivery
GMail... Sent (q17EhPmE011770 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 dti-vps-srv57 closing connection

受信は、だめです。相変わらずできません。。。

mail
No mail for root

ログも、送信時のもののみ。ふぅ。今日はもう、ふて寝します。おやすみなさい。

気を取り直して次の日以降にやったこと。VPSのコマンドは使いません。今度は視点を変えてVPSから離れます。ドメインの設定を、ドメインを取得したサイトで設定したり、VPSを契約したサイトで設定してみます。

★ドメイン取得した会社でレンタルDNSレコード設定を編集

お名前.com のドメインNaviで レンタルDNSレコード設定を編集してみます。すでにAタイプのドメインとVPSのIPアドレスの結びつけは完了しています(こういう表現でいいのかな?まあ、いいや)。つまり https://oki2a24.com または http://www.oki2a24.com にアクセスしたらIPアドレス 59.157.5.147 のVPSウェブサーバーにアクセスするね♪ってことができています。

今回は、ドメイン宛に送られたメールを察知して、それを自分のVPSに誘導するような設定をします(こういう表現でいいのかな?やっぱりわからないよ。まあ、いいや)。

追加したのはこれ。あてずっぽうですけど、mail.oki2a24.com に来たものは 59.157.5.147 に渡してくださいね~♪、というのが一行目で、oki2a24.com と、mail.oki2a24.comはおなじですからね~♪、というのが二行目の意味だと思っています。ぜんぜん違うかもしれませんし、微妙にあってるけどこのままだと変に勘違いして痛い目にあうよって感じかもしれませんね。

HOST mail.oki2a24.com    TYPE A     VALUE 59.157.5.147
HOST oki2a24.com         TYPE MX    mail.oki2a24.com

ああそうそう、例によって例のごとくですよ、メールはVPSに届きませんでした。お休みぃ、また明日。

どうしましょう。なんだか打つ手がなくなってきました。何をしていいかわかりません。今までの設定を見直してみます。

★local-host-namesを編集し、受信するホスト名を設定、その2

/etc/mail/local-host-names を見直して、2行追加しました。追加した @mail.oki2a24.com でも @www.oki2a24.com へのメールでも受け取るよ♪という設定なのだと思います。実際にこんな形でメールを送る人、いるのでしょうか?今は、気にしない気にしない。

# local-host-names - include all aliases for your machine here.
mail.oki2a24.com
oki2a24.com
www.oki2a24.com

それで、メールを VPS に送りましたが、まただめでした。シクシク。おやすみなさい。

一通り設定するところは設定しつくした、と思っていますので、メールを送信してから受信箱に届くまでの経路を意識して要所要所のアクセスを調査してみます(要所要所といっても、結局ファイアウォールしかみなかったのですけどね♪)。

★VPS外部からSMTPポート25番をチェック

VPSへメールを送ったとき、どこで止まっているのでしょう?送信元サーバ?さすがにそんなことはないでしょう。VPSの入り口的なところ?それもとSendmail?大きくこの2つの関門があると仮定し、まずはVPSの入り口的なところを調べてみます。ポートチェック【外部からポート開放確認】、このサイトからVPSのポートへアクセスしてみます。

21(FTP) アクセスできない
22(一般的なSSH) アクセスできない
25(SMTP) アクセスできない
53(DNS) アクセスできない
80(HTTP) アクセスできた
110(POP3) アクセスできない
3333(自分のSSH) アクセスできた

。。。あ、そういうこと!?思わず叫んでしまいましたけど、詳しいことは実際のところはわかってません。ただ、Sendmailの設定ではなくVPSの入り口的な部分、ファイヤーウォールとか?でアクセスを遮断するようにしているのだろうと予想しました(成功してから見直すと、見当違いもいいとこでした。どういうことかは、後述です。)。

★iptablesでファイアウォール設定

では、Linuxのファイヤーウォール、iptablesを設定していきます。 iptables の設定を保持する(iptables-save と iptables-restore)(バックアップ)および、iptables(ファイアウォール)設定 ServersMan@VPS|MAKIZOU.COM、がとても参考になりました。参考に、というか、そのまんまです。最初に受け入れるものを決めて、次にそれ以外を全部拒否する、という方針です。そしてここでの最終目的はSMTPポート25番を確実に開放する、です。

ポリシーを決めます。

iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

ルールをクリアします。

iptables -F

icmp(ping)と自端末からの入力を許可します。

iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

ssh(3333),smtp(25),http(80),pop3(110),https(443) による接続を許可します。

iptables -A INPUT -p tcp --dport 3333 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

TCPの接続開始と応答、FTPデータなどを許可します。

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

他の接続はすべて破棄します。

iptables -P INPUT DROP

設定をセーブします。

iptables-save
# Generated by iptables-save v1.3.5 on Thu Feb 9 22:19:18 2012
*mangle
:PREROUTING ACCEPT [62617:28615373]
:INPUT ACCEPT [62617:28615373]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [67306:15086828]
:POSTROUTING ACCEPT [67306:15086828]
COMMIT
# Completed on Thu Feb 9 22:19:18 2012
# Generated by iptables-save v1.3.5 on Thu Feb 9 22:19:18 2012
*filter
:INPUT DROP [1:40]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [383:61872]
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3333 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Thu Feb 9 22:19:18 2012
# Generated by iptables-save v1.3.5 on Thu Feb 9 22:19:18 2012
*nat
:PREROUTING ACCEPT [4372:252723]
:POSTROUTING ACCEPT [2559:160650]
:OUTPUT ACCEPT [2559:160650]
COMMIT
# Completed on Thu Feb 9 22:19:18 2012

iptables を再起動してポリシー・ルールを適用します。

/etc/init.d/iptables restart
ファイアウォールルールを適用中: [ OK ]
チェインポリシーを ACCEPT に設定中mangle filter nat [ OK ]
iptables モジュールを取り外し中 [ OK ]

最後、モジュールを取り外してOK!!!という状態で終了しているのが気になります。気になりますが、、、ここはひとまず気にせず先に進めてみます。

iptables自動起動の確認しました。このままでOKです。

chkconfig --list iptables
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off

設定結果を確認します。

iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

もーんだーい発生!!なぜ反映されない?????モジュールを取り外してOK!!!という状態で終了しているのが問題なのでしょうけど・・・とりあえずふて寝します。また明日。

流れうんぬんと言ったわりに、あ!設定できそうなところまだある!と気づいたので寄り道してやってみています。VPSのウェブブラウザからできる設定項目をいじりますよ。

★VPSを借りた会社で「他社管理ドメイン設定」

ぜんぜん突破口が見えませんので、今度はVPSのウェブブラウザのコントロールパネルであるMyDTIからドメインとVPSサーバを結びつける何かの設定を試みます。がんばろー。

契約中サービス > 確認・変更 > 他社管理ドメイン設定 > 設定、とページを移動します。そして、ホスト名、つまりドメイン!?でいいのかな?をテキストボックスに記述して、設定をクリック、もう一回要求されましたので設定をクリックしました。

oki2a24.com

さてどうかな?テストメール送信!!!・・・はい!おやすみなさいませー!

だめだったですねー。ちょっと前まで取り組んでいた、ファイアウォールにもどりますよ。

★iptablesでファイアウォール設定、その2

iptablesの設定が反映されませんので、パッケージの不具合を疑いました。そこでアンインストールして、インストールしなおしてみます。ちょっとやけ気味です。

yum remove iptables
yum install iptables

だめだった。 restart したら、最後iptables モジュールを取り外し中 [ OK ] ってなってやっぱりだめだったーですよー。

しぶとくファイアウォール!!!あることを思いついたので、テンション高めです。やったね!うまくいくといいね!

iptables-save するときにファイル書き出しすればいいんじゃね?

これは、参考にしたサイトでは行っていなかったことです。いや、正確には設定の書き出し方法として紹介はされていましたけど、バックアップとしてというニュアンスであり、参考サイトではファイルとして書く出す操作は一切やっていなかったのです。私は発想を変えました。ないのなら、作る!と。

バックアップ作成、ポリシーを決める、ルールをクリア、icmp(ping)と自端末からの入力を許可、ssh(3333),smtp(25),http(80),pop3(110),https(443) による接続を許可、TCPの接続開始と応答、FTPデータなどを許可、他の接続はすべて破棄、まですでに書いた通りに行いました。

そしてセーブするときに、ほかのサイトで記述されていたiptablesの設定ファイルのパス、ファイル名をしれっと指定します。

iptables-save > /etc/sysconfig/iptables
/etc/init.d/iptables restart
ファイアウォールルールを適用中: [ OK ]
チェインポリシーを ACCEPT に設定中mangle filter nat [ OK ]
iptables モジュールを取り外し中 [ OK ]
iptables ファイアウォールルールを適用中: [ OK ]

やった!!!!前進です!モジュール取り外しの後、ファイアウォールルールを適用!と出ています。なんかうまくいっているかのようなテキストです!ちなみに、ファイアなんですね、ファイヤじゃなく。。。どうでもいいですね。

さて、わくわくしながら設定を確認してみます。

iptables -L -nv
Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
24 1872 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3333
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 20 packets, 3968 bytes)
pkts bytes target prot opt in out source destination

あれぇ、SMTPの25はいまだ閉じたままです。なんで!なんで?ここまで来てなんですが、別の問題だったり、するのでしょうか???ですがなんとかSMTPポート25番の開放設定は完了しました。そこだけは安心して、、、ふて寝しましょう。また明日。

ファイアウォールはもう設定するところない!完璧!、、、と思っていますので、ほかのコマンドを使って調査続行ですよ。

★netstat – ホストのネットワーク統計や状態を確認するコマンドで調査

Nmap で公開ポートの確認ができると聞いて、やってみます。

nmap localhost
-bash: nmap: command not found

インストール面倒です。なので後回し。

もうひとつ得た情報である、netstat – ホストのネットワーク統計や状態を確認するコマンドを試してみます。

netstat -nl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
…略…
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
…略…

ん?

5行目に違和感を感じます。なぜなら、 127.0.0.1 はローカルを示すアドレスだからです。怪しい。調べてみました。

明示的にIPアドレスが振られている場合には、そのIPアドレスへの接続のみと通信する。

つまり、

原因は25番ポートは、localhost、127.0.0.1、つまり自分自身にしか接続していなかったから、、、、だと。

★sendmail.mcの編集と設定、その2。なんといまさら

おそるおそる、sendmail.mcの設定を、再び◇sendmail.mcの編集と設定◇初心者のためのLinuxサーバー構築講座(CentOS 自宅サーバー対応)☆お便利サーバー.com☆を参考に見直してみると、、、

デフォルト の Sendmail は、 ループバックアドレス 、つまり 構築中のLinuxサーバー から送信されるメールのみを受け付けるようになっています。
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
と書き換えて、この設定を無効にしてください。

Oh!これです!これが設定されていなかった。。。

vim /etc/mail/sendmail.mc

早速コメントにしました。

dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

設定ファイルを作成し、日付を確認します。あせるな自分!おちつけ!

cd /etc/mail
m4 sendmail.mc > sendmail.cf
ll sendmail.cf

sendmailをリスタート!

/etc/init.d/sendmail restart

★最終確認!そして開通!ばんzぁい

ポート25と、どのIPアドレスが接続されているかチェック。よしよし!

netstat -nl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
…略…
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
…略…

iptables、パケットフィルタリングチェック。よし!!!!!よし!よし!よし!よし!25番がパケットを受け入れています!

iptables -L -nv
Chain INPUT (policy DROP 154 packets, 8649 bytes)
pkts bytes target prot opt in out source destination
15 856 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
30 2892 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
661 57845 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3333
4 216 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
4223 665K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
6 288 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
2286 2652K ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 7617 packets, 5860K bytes)
pkts bytes target prot opt in out source destination

ポートチェック【外部からポート開放確認】、してみます。どどどどどどどどどどどd、どうかな?

ホスト:oki2a24.com ポート:25 にアクセスできました。
応答時間は 0.011秒 でした。

おおおおおおおおおおおおおおおおおおおおおお!!!!!!!!!!!!!!!

GMailからVPSにメールしてみます。

mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/root": 1 message 1 new
>N 1 GMail Tue Feb 14 22:14 29/1414 "=?ISO-2022-JP?B?GyRCRk8kMSEqGyhC?="

とどいたああああああああああ!!!!!!!

★おわりに

今回の試行錯誤で学んだことを切り分けたり、まとめたりしていこうと思います。

また、Sendmailを使おう!の発展形としてメルマガシステムの構築(って書くとなんだかかっこいい!)を試したいと思います。

あとひっそりと、この試行錯誤の道中で感じていたことを思い出しては追記、修正して以降と思います。ひっそりとね。

「ドメイン設定も含めSendmailでメール送受信ができるようになるまで試行錯誤まとめ」への6件の返信

コメントを残す