月額263円からのかわいいサーバー!ロリポップ!
  DDNSでメールメールサーバーをたてよう

今までDDNS(ダイナミックDNS)に加入しながらhttp、ftpしか使用していなかったのですが、MAILサーバーを構築してみました。

ディストリビューションはRedhat9 です。

デフォルトでMTAとしてsendmailが導入されます。これを用いての設定をしました。

デフォルトの状態でローカルサーバー内でのメール送受信は可能です。
さて、今回はDDNSサービスとして no-ipを使用しています。

前提事項として既にDDNSに登録されており、ドメイン名でサーバーへのアクセスが可能であるとします。
更に、Mail Option のMXレコードにサーバー名が登録されていることを確認して下さい。


デフォルトではlocalhostマシンからのメールだけを受け取るようになっているので
/etc/mail/sendmail.mc の以下の部分を行頭に dnl をつけて無効にします。

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

そしてsendmail.cfを再作成します。 Redhat9の場合

mc /etc/mail/sendmail.mc > /etc/mail.sendmail.cf

です。
もし、/usr/share/sendmail-cf/m4/cf.m4: No such file or directory
と表示されたら sendmail-cf がインストールされているか確認して下さい。

成功したらsendmailを再起動します。

# service sendmail restart


これで既に加入しているプロバイダー等から自分のサーバーに向けてメールは送信すれば受信可能なはずです。
もし受信できなかった場合はファイアーウォールの確認をして下さい。

・ルーターでtcp25番ポートが開かれているか?
・linuxのファイルアーウォールで25番が開かれているか?

redhatの場合はlokittコマンドでSMTPの25番ポートを開くことができます。

また外部から自宅サーバーに向けてtelnetで25番ポートにアクセスして確認することもできます。

$ telnet xxxx.no-ip.org 25
Trying xxx.xxx.xxx.xxx...
Connected to xxxxxxxxxxxxx.
Escape character is '^]'.
220 xxxx.no-ip.org ESMTP Sendmail 8.12.8/8.12.8; Fri, 1 Aug 2003 18:21:46 -09
00
このように表示されたら外部からの接続はOKです。



送信ですが、デフォルトではスパムメール防止の為にローカル環境からは任意の宛先にメール送信可能ですが、外部から外部へのメール送信はできません。
/etc/mail/access にrelayさせるホスト/ドメインを記述すれば記述した先へは送信可能になります。

例えば以下のようにすればローカル以外にyahoo.co.jpドメインにメール送信可能です。
localhost.localdomain           RELAY
localhost                       RELAY
127.0.0.1                       RELAY
yahoo.co.jp                     RELAY

~ ただしこのままでは有効にならないのでaccess.dbを構築します。

# makemap -v hash /etc/mail/access.db < /etc/mail/access
sendmailを再起動します。

/etc/init.d/sendmail restart

これでローカル環境からは任意の送受信、外部からは受信と特定の宛先への送信が可能となります。


また outlook等のwindowsクライアントからアクセスしたい場合はpop3を導入すれば満足のいくメールサーバーを構築できると思います。

qpopperの導入方法はこちらです。



       [へなちょこlinuxのコーナーへ]    [ホームへ]