メールサーバには2つあって、送信・転送を行うSMTPサーバと、受信したメールをパソコンに送るPOPサーバがあります。ここでは以下の2つをインストールしています。

 

SMTP:メール送信サーバであるPostfixをインストール

POP:受信サーバであるpopa3dをインストール

 

まずはメールの送信と受信を行うSMTPサーバの設定を行います。(POPサーバはSMTPサーバで受信したメールを取り出すためのプログラムです) ここでの設定はセキュリティを考え、自宅LAN内のパソコンからのメール送信のみ許可しています (つまり自宅以外のパソコンからは使用できません)。だって自宅サーバなんだし、自宅以外使いませんから。

あと、多くのプロバイダはスパムメール対策のために自宅サーバの管理者泣かせのOP25B (Outbound Port 25 Blocking:契約しているプロバイダ指定のメールサーバ以外からの送信を遮断)という制御を行っているのでその回避方法も掲載します。

メール転送プログラムは多数ありますが私はPostfixを使用します。(使っている人が多いし、たまたまPostfixに関する参考書があったから)

 

# apt-get install postfix

 

インストール中に以下の質問をされますので答えていきます。

 サーバーの形式 → internet site

 rootへのメールの場所 → NONE

 メールネームの設定 → 収得した玄箱のドメイン名

 整形の設定(append domain to simple address) → No

 受信ドメイン名 → 収得した玄箱のドメイン名, localhost.dyndns.org, local host  ←ここではあまり余計な情報を載せない方がいいと思います

※後で設定をやりなおすことができます。

# dpkg-reconfigure postfix

 

Postfixの設定ファイルを編集します。

ファイル編集:/etc/postfix/main.cf

smtpd_banner = $myhostname ESMTP ←外部に余計な情報を出さないように設定

biff = no

append_dot_mydomain = no

myhostname = 収得した玄箱のドメイン名

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

myorigin = /etc/mailname

mydestination = 収得した玄箱のドメイン名, localhost.dyndns.org, localhost

relayhost =

mynetworks = 127.0.0.0/8 192.168.0.0/24 

LAN内のパソコンからメールを送信できるように設定。デフォルトのままだと telnetやsshでサーバ

ログインしたユーザーしか使えません

mailbox_size_limit = 0

recipient_delimiter = +

inet_interfaces = all


Postfixを再起動して設定を反映させます

# /etc/init.d/postfix reload

 

■不正中継テスト
 

不正中継テストを下記のサイトで実施する。SMTPサーバはスパムメールやメールボムの送信元として不正使用される可能性がありますので気をつけましょう。
RBL.jp

 

■OP25B対策
 

最近では迷惑メール対策として多くのプロバイダがOP25B(契約しているプロバイダ指定のSMTPサーバ以外へのアクセスを遮断)を導入しています。
導入されると自宅サーバからの外部へのメール送信が全て遮断されてしまいます (契約しているプロバイダの情報を参照してください)。それに対処するために自宅サーバから一度プロバイダ指定のサーバにアクセスしてから 外部へメールを送信する手法があります。

 

経由するサーバを指定

#vi /etc/postfix/main.cf
relayhost = [契約しているプロバイダのSMTPサーバ]

 

設定を反映させる

# /etc/init.d/postfix reload

 

 

 

POPサーバ:popa3d


メール受信サーバであるPOPサーバのインストールと設定を行います。
※他にもimap対応のサーバなど多数ありますのでどれををインストールしても良いです。

popa3dのインストール


# apt-get install popa3d
スタンドアロン設定:yes ←Noならinetdの管理下におかれる


■メールユーザの追加
 ここで作成した「POPメールアカウント」=「サーバ上でのユーザ」となるのでセキュリティのためにメールアカウントユーザのサーバ上での 権限を無くしておきます。(「POPメールのパスワード」=「サーバへのログインのパスワード」であるため)

/etc/shellsに下記の文字を追加します。これでユーザ登録の際に、シェルを/bin/falseと指定されたユーザは メールログインが出来てメールコマンドは通りますが、一般シェルの操作はできずに余計な操作をされるのを防ぎます

#vi /etc/shells
/bin/false

コマンド:メールユーザ追加

まずは基本的なシェルコマンドを使えないユーザを作成します。この名前がメールアドレスの@の前の文字列になります

# useradd -s /bin/false ユーザ名

作成したいメールのパスワードを設定します

# passwd ユーザー名  ←メールのパスワード入力

もしも、すでに作成されているユーザーのシェル権限を変更するには下記のコマンドを実行します

# usermod -s /bin/false ユーザ名

 上記で追加したユーザ名がメールアドレスの@の前の部分になります、メールパスワードもユーザ追加時に入力したパスワードとなります。
 LAN内から外部へのメールしか使用しないのでOutlookExpress等でのPOPサーバとSMTPサーバアドレスを玄箱のアドレス(例えば192.168.0.10など)に設定します。

 上記の設定を行ってもメールが送られてこない場合、もしかしたらエイリアスの設定でメールの受信者が他のユーザーになっている可能性がありますので 下記の設定を確認します。この機能は通常、複数のメールアドレスを1つのユーザーが受信させるために使用します。

コマンド:aliasesの設定

# vi /etc/aliases
メールアカウント名 : 受信するメールアカウント名 ←必要が無けれは削除します

エイリアスの変更を行ったら下記のコマンドで設定を反映させます。

# newaliases

 

 

Postfix実用ガイドPostfix実用ガイド
Kyle D. Dent 菅野 良二

DNS & BINDクックブック―ネームサーバ管理者のためのレシピ集 Postfix実践入門 (Essential Software Guide Book) DNS & BIND 第5版 Postfix詳解―MTAの理解とメールサーバの構築・運用 サーバ構築の実際がわかる Apache[実践]運用/管理 (Software Design plus)

by G-Tools