|
|
|
|
|
|
|
Postfixのインストールと設定(基礎編) |
|
|
MailサーバのPostfixをインストールします。
*なお、今回は、mail1.hogehoge.***.com=192.168.100.3にインストールするとします。
ユーザーとグループを作成します。
#groupadd postdrop
#useradd -d /dev/null
-s /bin/false postfix
ソースの取得とインストール
FreeBSDでは、portからインストールするのがお薦め、パッチも適応してくれなす。
http://www.postfix.orgか
ら、postfix-2.0.16.tar.gzを入手しま
す。
#tar zxvf
postfix-2.0.16.tar.gz -C /usr/local/src
#cd
/usr/local/src/postfix-2.0.16
#make
*つぎにmake installです。このとき、どこにインストールするか聞いて来ますので、適時設定します。
#make install
*質問事項
install_root
既定値=/
推奨=既定値
インストールのベースディレクトリを指定。
tempdir
既定値=カレントディレクトリ
推奨=既定値
インストールする時のテンポラリディレクトリ。
config_directory
既定値=/etc/postfix
推奨=既定値
設定ファイルの保存場所。
daemon_directory
既定値=/usr/libexec/postfix
推奨=/usr/local/libexec/postfix
Postfixのdaemonをインストールするディレクトリ。
command_directory
既定値=/usr/sbin
推奨=/usr/local/sbin
Postfixのコマンドインストールディレクトリ。
queue_directory
既定値=/var/spool/postfix
推奨値=既定値
メールキューを保存するディレクトリ。
sendmail_path
既定値=/usr/sbin/sendmail
推奨値=/usr/local/srbin/sendmail
sendmial互換コマンドのインストールディレクトリ。
newaliases_path
既定値=/usr/sbin/newaliases
推奨値=/usr/local/sbin/newaliases
sendmail互換のnewaliasesプログラムのパス。
mailq_path
既定値=/usr/bin/mailq
推奨値=/usr/local/bin/mailq
sendmail互換のmailqプログラムのパス。
mail_owner
既定値=postfix
推奨値=postfix
Postfixが使うキューの所有者。
setgid_group
既定値=postdrop
推奨値=postdrop
メールの投稿とキューの管理をするグループ。
manpage_directory
既定値=/usr/local/man
推奨値=既定値
manのインストールディレクトリ。
sample_directory
既定値=/etc/postfix
推奨値=既定値
設定サンプルファイルのインストールディレクトリ。
readme_directory
既定値=なし
推奨値=指定無し
READMEをインストールするディレクトリ。
適時質問に答えると、インストールは終了です。
Postfixの基本設定と起動。
Postfixの設定ファイルは、以下の2つで行ないます。
/etc/postfix/master.cf=デーモンの設定
/etc/postfix/main.cf=メール配送の設定
インストール後は、雛型のファイルが作成されているので、これを変更していきます。
まずは確認。
ホスト名とDNSの確認をします。
ローカルホストの確認。
%hostname
mail1.hogehoge.***.com
/etc/hostsの確認
%cat /etc/hosts
127.0.0.1 mail1
mail1.localdomain localhost
192.168.100.3 mail1 mail1.hogehoge.***.com
DNSには、ドメインの正引き用設定ファイルに、以下があるか確認。詳しく、BIND9の導入を参考に。
mail1 IN A 192.168.100.3
*できれば、digコマンドで確認してください。
設定の確認
/etc/postfix/master.cfで、Postfixがchroot環境に設定されているか確認してください。
今回はchroot環境は使用しませんので、master.cfファイルの、chroot列の値をすべて'no'に変更してください。
/etc/postfix/main.cf
mynetworks =
192.168.100.0/24, 127.0.0.1
*メールの不正中継防止のため、取り敢えず外部からPostfixを使用して外部へメールを送ることを規制します。
起動
#/usr/local/sbin/postfix
start
起動の確認
#ps -aux|grep post
root 5420 0.0 0.1
2692 888 ?
S 22:24 0:00
/usr/local/libexec/postfix/master
postfix 5421 0.0 0.1 2680 856
? S
22:24 0:00 pickup -l -t fifo -u
postfix 5422 0.0 0.1 2724 932
? S
22:24 0:00 qmgr -l -t fifo -u
ログは、/var/log/maillogに出力されます。
配送テスト
ローカル配送テスト
Postfixの起動に成功したら、ローカルで配送テストをします。
テストには、/bin/mailを使用し、ユーザー:mailUserへ配送します。
%/bin/mail -s
"testMail" mailUser@mail1.hogehoge.***.com
First Test Mail *本分を入力。入力修了後[Ctrl]+d
CC:
*CCを聞いて来るが、そのままEnter
これでメールのテスト配信が終ります。
受信確認
ユーザー:mailUserで、
/bin/mail
No mail for mailUser と出力されたら失敗です。
通常は
"/var/spool/mail/mailUser: 1 message 1 new
>N 1 root@mail1.mail Sat Sep 27 23:35
18/746 "testMail"
と出力されます。
1を押すとメールが表示されます。
受信メールを削除する場合は、'd'
/bin/mailの終了は、'q'です。
外部へのメール配送。
Postfixでは、外部にメール配送する場合DNSを参照します。
手軽に、同一ドメイン内のPCでテストすることにします。
DNSに同一ドメイン内のPC=pchoge1と配送テストをします。
DNSにpchoge1のAレコードがドメインの正引き、逆引き用設定ファイルに在ることを確認してください。
hogepc1からmail1への配送テスト
[mailUser@hogepc1]mail
-s "test from hogepc1" mailUser@mail1.hogehoge.***.com
*mail1のmailUserユーザーで、メール受信の確認をしてください。
mail1からhogepc1への配送テスト
[mail1@hogepc1]mail -s
"test from mail1" mailUser@hogepc1.hogehoge.***.com
*hogepc1のmailUserユーザーで、メール受信の確認をしてください。
ドメイン宛てのメール配送
いままでは、メールを送るのに'ホスト名.ドメイン名'を使用していましたが、今度はドメイン指定でメールを送受信出来るようにします。
そのためには、DNSとPostfixのmain.cfの設定を変更します。
DNSは、ドメインの正引き用設定ファイルに、以下があるか確認。詳しく、BIND9の導入を参考に。
IN MX 10
mail1.hogehoge.***.com
mail1 IN A 192.168.100.3
確認は、
#host -t mx
hogehoge.***.com
hogehoge.***.com mail is handled by 10 mail1.hoeghoge.***.com.
/etc/postfix/main.cfの
変更。
myorigin行とmydestination行を変更します。
すでに設定する行は用意されていますので、以下のようになるように、#(コメント)を変更してください。
#myorigin =
$myhostname
myorigin = $mydomain
#mydestination =
$myhostname, localhost.$mydomain
mydestination =
$myhostname, localhost.$mydomain $mydomain
変更したら、設定ファイルをリロードします。
#/usr/local/sbin/postfix
reload
これで、外部からの'mailUser@hogehoge.***.com宛てのメールが受信できます。
ただし送信は、/bin/mailではmailUser@mail1.hogehoge.***.comをヘッダーに付加します。
これは、メールクライアントを使用すれば解決します。
これで、PostfixのインストールはほぼOKですが、この設定では、内部から外部への配送と外部から内部への配送は可能ですが、外部から
Postfixを利用して外部へ配送出来ません。
main.cfのmynetworksをコメントアウトすれば出来ますが、SPAMの不正中継に利用されるおそれが在りますので、実際使用するとなると、
SMTP AUTH(不正中継防止)を組みこむ必要があるでしょう。
そして、メールサービス用のサーバとして考えると、POPやIMAPの利用も必要になって来ます。
tips.1
送信専用メールサーバの構築。
送信専用にする場合は、TCP/25番ポートをオープンする必要は在りません。
で、どうするか、
まず、/etc/postfix/main.cfを以下のよ
うに編集してください。
myorigin = $mydomain
relayhost =
$mydomain
local_transport =
error:local delivery is disabled
つぎに/etc/postfix/master.cfで、
smtpdとlocalをコメントアウトします。
#smtp
inet n
-
n
-
- smtpd
#local
unix -
n
n
-
- local
この設定でPostfixを起動して、tcp/25に接続してもデーモンは起動しません。
外部への送信専用として使うには、この設定で使用できます。
tips.2
telnetによる、メールサーバの応答テスト。
mailサーバは、telnetで確認するとわかりやすい。で、使いかたです。
% telnet localhost 25
Trying 127.0.0.1...
Connected to rx7 (127.0.0.1).
Escape character is '^]'.
220 mail1.hogehoge.***.com ESMTP Postfix
helo hogehoge.***.com
250 mail1.hogehoge.***.com
mail from:
mailUser@hogehoge.***.com
250 Ok
rcpt to:
myUser@hoge.***.jp
250 Ok
data
354 End data with <CR><LF>.<CR><LF>
Subject: TEST
Test Mail
250 Ok: queued as D47GB7A2172
quit
220 Bye
非常に駆け足で設定、配送テストを説明してきました。
Postfixは、最近Linuxディストリビューションにも標準で搭載されるなど、Sendmailの代替として期待できます。
設定はかなり柔軟にできます。詳しくはPostfixの書籍などを探してみてください。
もう少し突っ込んだ書籍が出てくれるとうれしいのですが、、、。
|
|
|
|
|
|
|
Producted by Tomoya Sakurai
|
|
|