FreeBSD:Postfix-2.5.1設定

提供:KinusatiWiki
移動: 案内, 検索

目次

Postfix-2.5.1設定

メールサーバ構築のため、Postfix-2.5.1をインストールする。STARTTLS/SMTP認証/POP before SMTPを有効にするため、以下のportsが必要。

  • security/cyrus-sasl2
  • security/cyrus-sasl2-saslauthd
  • mail/drac
  • devel/pcrc
  • database/db46

cyrus-sasl2インストール

SMTP認証のためcyrus-sasl2を導入する。

portsインストール

portinstall security/cyrus-sasl2
portinstall security/cyrus-sasl2-saslauthd

自動起動設定

/etc/rc.confに以下を追加

saslauthd_enable="YES"

dracインストール

POP before SMTP認証のため、dracをインストールする

プログラムインストール

portsそのままで導入するとbdb41を参照するため、以下の手順を踏んでインストールする。 パッチまで適用する

# cd /usr/ports/mail/drac
# WITH_POSTFIX=yes WITH_POSTFIX_DB41=yes make patch
# cd work

Makefileを手動で編集し、bdb46を参照するように修正する

# vi Makefile
=> BerkeleyDB4.6を参照させるため以下を追加
CFLAGS+=       -I${LOCALBASE}/include/db46
LDLIBS+=       -L${LOCALBASE}/lib/db46 -ldb-4

インストール

# WITH_POSTFIX=yes LOCALBASE=/usr/local make
# mv rpc.dracd  /usr/local/sbin/
# cp libdrac.a /usr/local/lib/
# cp drac.h /usr/local/include/

自動起動

起動スクリプトを手動で編集

# cd /usr/ports/mail/drac/files
# sed -e 's|%%PREFIX%%|/usr/local|' -e 's|%%RC_SUBR%%|/etc/rc.subr|' dracd.sh.in  > /usr/local/etc/rc.d/dracd.sh
# chmod 755 /usr/local/etc/rc.d/dracd.sh

/etc/rc.confに自動起動設定を追加

# vi /etc/rc.conf
=> 以下を追加
rpcbind_enable="YES"
dracd_enable="YES"

dracdに対してアクセス可能ネットワークの編集

dracdに対してrpc通信を許可するホストを登録する。

255.255.255.255 127.0.0.1
255.255.255.255 <自ホストのIP>

postfixインストール

# WITH_BDB_VER=46 portinstall mail/postfix

インストール時に、オプション指定画面が表示される。以下の項目にチェックが入っていることを確認する。pcre, bdb46は依存性で同時にインストールされる

  • PCRE
  • SASL2
  • TLS
  • BDB

sendmail系定期コマンド実行を停止

/etc/periodic.confに以下を追加

daily_clean_hoststat_enable="NO"
daily_status_mail_rejects_enable="NO"
daily_status_include_submit_mailq="NO"
daily_submit_queuerun="NO"

各種sendmailコマンドに対してのエイリアス修正

/etc/mail/mailer.confを以下に修正

sendmail        /usr/local/sbin/sendmail
send-mail       /usr/local/sbin/sendmail
mailq           /usr/local/sbin/sendmail
newaliases      /usr/local/sbin/sendmail
hoststat        /usr/local/sbin/sendmail
purgestat       /usr/local/sbin/sendmail

自動起動設定

/etc/rc.confに以下を追加

postfix_enable="YES"
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"

初期設定・受付ドメインの設定

/usr/local/etc/postfix/main.cfに以下を追加

mydestination = test.com, test.net
myorigin = test.com
mynetworks = 127.0.0.0/8, xxx.xxx.xxx.xxx/yy
home_mailbox = Maildir/

POP before SMTP連携のためDRAC設定

/usr/local/etc/postfix/main.cfのmynetworksを修正

mynetworks = 127.0.0.0/8, xxx.xxx.xxx.xxx/yy, btree:/usr/local/etc/dracd

SSL/TLSの設定

まず自己証明書を作成する。

秘密鍵作成

# openssl genrsa -des3 -out server.key 1024 <= 秘密鍵作成
Enter pass phrase for server.key: <= パスフレーズ
Verifying - Enter pass phrase for server.key: <= パスフレーズ(確認)

パスフレーズを抜く

# openssl rsa -in server.key -out server.key
Enter pass phrase for server.key: <= 秘密鍵作成時のパスフレーズ入力

サーバ用公開鍵作成

# openssl req -new -key server.key -out server.csr -days 3650 <= 公開鍵作成
Country Name (2 letter code) [AU]:JP <= 国名
State or Province Name (full name) [Some-State]: Tokyo <= 都道府県名
Locality Name (eg, city) []:Ikebukuro <= 市町村名
Organization Name (eg, company) [Internet Widgits Pty Ltd]:FOO.BAR <= サイト名
Organizational Unit Name (eg, section) []: <= 空ENTER
Common Name (eg, YOUR name) []:mail.foo.bar.com <= ホスト名
Email Address []:webmaster@foo.bar.com <= 管理者用メールアドレス
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <= 空ENTER
An optional company name []: <= 空ENTER

サーバ用証明書の作成

# openssl x509 -in server.csr -out server.pem -req -signkey server.key -days 3650
Signature ok
subject=/C=JP/ST=Tokyo/L=Ikebukuro/O=FOO.BAR/CN=mail.foo.bar.com/emailAddress=webmaster@foo.bar.com
Getting Private key

一式をディレクトリにコピー

# mv server.key server.csr server.pem /usr/local/etc/postfix/ssl

/usr/local/etc/postfix/main.cfに以下を追加

smtpd_tls_cert_file = /usr/local/etc/postfix/ssl/server.pem
smtpd_tls_key_file  = /usr/local/etc/postfix/ssl/server.key
smtpd_tls_session_cache_database = hash:/usr/local/etc/postfix/ssl/smtpd_scache
smtpd_tls_loglevel = 3

/usr/local/etc/postfix/master.cfに以下を追加

submission inet n       -       n       -       -       smtpd
  -o smtpd_enforce_tls=yes
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

SMTP認証の設定

/usr/local/lib/sasl2/smtpd.confの作成

pwcheck_method: saslauthd
mech_list: plain login

postfix 再起動

postfix stop; postfix start
個人用ツール