Webmasterにメールが届かない!?

メールサーバの話の続きです。

クライアントの動作も良好なので用途に応じたアカウントをいくつか作ってメール転送の試験を実施。しかし一つだけ不思議な現象が…

サイト管理用にwebmasterというアカウントを作成してそのアカウントにメールを送ろうとするが、メールが届かない。調べてみるとrootのアカウントにメールが配信されている!

なぜだろうと考えながらアカウントを再作成したり、sendmailの再起動をするも現象は解決しない。不思議に思いながらネットをサーチするとありました。原因は以下のファイルでした。

/etc/aliases

このファイルの中に、Emailのあて先のaliasテーブルがあって、例えばsystemとかapacheとかをメールのあて先に指定するとアカウントの有無にかかわらずrootに配信されるという設定。確かに、アプリなどがエラーをメールするときには便利な設定ですが、このなかにwebmasterがあり、rootに転送される仕組みになっていました。この設定を変更したり、消してみてもいいのですが、なるべくデフォルトの設定をいじりたくないので自分のサイト管理者用のアカウント名はこれとは異なるものに設定しようと思います。managerなんてaliasもあるので注意が必要ですが….

カテゴリー: AWS

メールクライアントを設定(IMAP/POP3)

メールサーバで送受信ができるようになりましたので、PCのメールクライアントで楽チンに使用できるように考えました。

調べるとOutlook Expressはもうアップデートされていないようで、後継ソフトはWindows Live Mailとのこと。早速PCにダウンロード&インストールする。ここで問題が…忘れていましたが、メールクライアントとサーバ間はIMAPやPOP3で通信することを思い出しました。(遥か昔の記憶です….)

EC2上にはSendmailが動作していて、厳密にはSendmailに付属のソフトがmbox形式でメールを保存していることを理解(/var/mail/ディレクトリ以下のアカウント名のファイルですね)

mbox形式をサポートしているメールサーバを探してみると、DovecotとかCourier-IMAPあたりが現在の主流の様子。EC2のyumで少し探してみるとDovecotは見つかったが、Courier-IMAPは無さそうなので、とりあえず、Dovecotで行くことに決定。

yum dovecot install

でパッケージをインストール。

/etc/dovecot/dovecot.conf

には以下の設定を入れる。プロトコルの設定ですね。sは着いていませんが、imapsやpop3sも同時に有効になるようです。

protocols = imap pop3

/etc/dovecot/conf.d/10-mail.conf

には

mail_location = mbox:~/mail:INBOX=/var/mail/%u

をコメントアウト。mbox形式のサポートをここで指定。

sendmail側では/etc/sendmail/accessに

自分のPCのIPアドレスを入れておきます。実際にはPCからインターネットに出て行くときのIPアドレスになります。これでPCからの送信メールをsendmailがインターネット上の他のメールサーバに転送してくれるようになります。

そしてEC2のコンソールでsecurity groupでPCのIPアドレスに対してpop3, pot3s, imap, imapsのポートを開きます。

あとはEC2のサーバでアカウントを作って、そのアカウント情報をWindows Live Mailに設定します。クライアント側でメール受信用のサーバを設定する際にはSSLを設定しないとplain textのログインが拒否されます。本当はsecureはauthenticationを設定したいところですが、まだそのあたりの設定方法がわかりませんので、現時点ではこんな感じです。SSLなのと、Mail Clientとの通信はIPアドレスで絞っているのでまあ、大丈夫かなと思っています。sendmail(SMTP)がその性質上インターネット上の全てのアドレスからのアクセスを許容しているので、HTTPと並んでちょっとセキュリティ的には心配なところです。

 

 

 

カテゴリー: AWS

メールサーバ始動!

最近ちょっとご無沙汰でしたが、メールサーバでメールの送受信可能になりました。

AWSの起動時からsendmailが動作していて、メールの送信はできましたが
受信はできませんでした。
もちろんメールサーバへのルーティングができないので当然ですが、Route53で
メールのドメインも設定できるようになったので挑戦してみました。

まずはメールのルーティングのためにRoute53にMXレコードの追加

nantoka7.com MX 10 54.248.89.83

といった感じでMXレコードとしてドメインとアドレスのマッピングを設定。
ちなみにnslookupでMXレコードの検索も可能。

[root@ip-10-162-38-78 ~]# nslookup -type=mx nantoka7.com
Server: 172.16.0.23
Address: 172.16.0.23#53

Non-authoritative answer:
nantoka7.com mail exchanger = 10 54.248.89.83.

Authoritative answers can be found from:

他のサイトでチェックするとMXレコードはIPアドレスを設定しているのではなく、mail.xxxx.com
のようなドメイン名で設定している例が多いのでそのうち直しましょう。

さらにEC2のSecurity Groupでポート25を開けます。
ちょっと怖いですが、httpと同様に全てのIPアドレスに対してオープンしました。

さらに、sendmailの設定ですが、まず以下のファイルを編集します。

/etc/mail/local-host-name
にメールのドメインを設定します。
nantoka7.com
これでxxxx@nantoka7.comのメールアドレスを受け付けるようになります。

最後に以下のファイルを編集します。
/etc/mail/sendmail.cf

以下の行をコメントに変更します。
O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA

そしてsendmailの再起動
/etc/init.d/sendmail restart

netstatで再起動前後のポート25の状態を確認すると、変更前はlocalhostに対してのみ
ポート25(smtp)がオープンしていますが、変更後には全てのIPアドレスに対してポートが
開かれます。

以上でEC2上のsendmailでメールの送受信が可能になりました。

いつものことですが、動いてしまえば簡単ですね。

カテゴリー: AWS

MySQLが上がらない!?

今朝の通勤途中、携帯から自分のサイトにアクセスするといくつかのページがうまく表示されない。少しチェックしていくと、DBのアクセスがうまく動かないことを理解。理由は思いつかなかったが、もしやハッカー?とか考えながらオフィスからサーバにアクセスして確認してみるとMySQLが起動していないことを発見。マニュアルで再起動するも動かず….ログをみるとInoDBのInitializeに失敗している。ログに128Mというメモリの割当量が記載されている。まさかと思いながらtopを打つと確かにメモリ使用率が高く100M程度したfree領域がない。TomcatやApacheを再起動したところメモリ領域は開放されて問題なくMySQLが起動するようになった。

おそらく、昨日、Wordpressのふたつ目のサイト設定を行ったりして、Apacheが専有するメモリ領域が拡大したみたい。やはりAWSのマイクロインスタンスでは600M程度のメモリ領域しかないので、色々試験をしようとすると制約が出てくる感じ。

ところで、AWSのモニター画面にはメモリーの使用率は表示されないみたい。自分でスクリプトやチェック画面を作っておいたほうがいいかも知れない。

 

 

カテゴリー: AWS

横浜の朝

最近仕事で通っていた横浜の風景。

久しぶりに横浜に通ってビックリしたのは東口の北のあたり、運河を挟んでそごうの反対側がとても素敵に開発されている。

駅から空中にに遊歩道が続いていて、車道や運河を越えてベイクォーターという商業施設まで快適に歩いていける。そこのマクドナルドは運河越しに高層ビルを眺めながらテラスでコーヒーが飲める。10月ごろの朝の気温は屋外で過ごすにも最適。