関連サイト:http://www.postfix.org/
:http://asg.web.cmu.edu/sasl/
###########################################################
###まずSMTP-AUTHを実現するためにsaslをインストールします###
###########################################################
###ソースをダウンロード###
wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.21.tar.gz
###展開###
tar zxfv cyrus-sasl-2.1.21.tar.gz
###移動###
cd cyrus-sasl-2.1.21
###Makefile設定###
./configure --enable-cram --enable-login --enable-plain
--enable-digest
###コンパイル###
make
###インストールディレクトリ設定###
/usr/lib/sasl2にディレクトリがないとwarnningになりそのまま進んでも
/etc/sasldb2が出来ないので、シンボリックリンクを張ります。
ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
###インストール###
make install
###ユーザを作成###
/usr/local/sbin/saslpasswd2 -c -u machtype.com yoshiwo
パスワードを入力
###ユーザ作成を確認###
/usr/local/sbin/sasldblistusers2
yoshiwo@hogehoge: cmusaslsecretOTP
yoshiwo@hogehoge: userPassword
###saslpasswd2で認証するように設定###
vi /usr/local/lib/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: cram-md5 digest-md5 plain login
###########################################################
###postfixをインストールします ###
###########################################################
###デフォルトで入っているsendmailをバックアップ###
mv /usr/sbin/sendmail /usr/sbin/sendmail.org
###インストール先のディレクトリを作成###
mkdir /etc/postfix
mkdir /usr/libexec/postfix
mkdir /var/spool/postfix
###メール保存先のディレクトリを作成
mkdir /usr/spool/
mkdir /usr/spool/mail
#初回メール受信時にユーザ個人の権限でメールボックスを作成しに行くので
#メール一般ユーザが所属するグループに書き込み権限を与える
chown root:users /usr/spool/mail
chmod -R 770 /usr/spool/mail
###ソースをダウンロード###
wget http://mirror.postfix.jp/postfix-release/official/postfix-2.1.6.tar.gz
###展開###
tar zxfv postfix-2.1.6.tar.gz
###移動###
cd postfix-2.1.6
###Makefile設定###
make tidy
make makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/local/include/sasl"
AUXLIBS="-L/usr/local/lib -lsasl2"
###コンパイル###
make
###postfix動作の為のグループとアカウントを作成###
groupadd postfix
groupadd postdrop
useradd postfix -d /nonexistent -g postfix -s /sbin/nologin
###インストール###
make install
###インストール環境設定(デフォルトなのでエンターだけ)###
install_root: [/]
tempdir: [/root/postfix-2.1.6]
config_directory: [/etc/postfix]
daemon_directory: [/usr/libexec/postfix]
command_directory: [/usr/sbin]
queue_directory: [/var/spool/postfix]
sendmail_path: [/usr/sbin/sendmail]
newaliases_path: [/usr/bin/newaliases]
mailq_path: [/usr/bin/mailq]
mail_owner: [postfix]
setgid_group: [postdrop]
html_directory: [no]
manpage_directory: [/usr/local/man]
readme_directory: [no]
useradd postfix
groupadd postdropp
manpage_directory: [/usr/local/man]
readme_directory: [no]
###postfix宛メールをrootに転送###
vi /etc/aliases
postfix: root
###aliases.dbを作成【/etc/aliases.db】が無いとログにエラーが残るのでやっておく###
/usr/bin/newaliases
###postfix設定ファイルmain.cfを編集###
###基本設定###
vi /etc/postfix/main.cf
#下記で転送制限「smtpd_recipient_restrictions」に知らない配送先は拒否「reject_unauth_destination」に
#しているので、メールアドレスの@以降が「mydestination」に一致しないと拒否してしまう
#
#例)Jan 14 19:46:23 miyako postfix/smtpd[8292]: NOQUEUE: reject: RCPT
from bay102-f32.bay102.hotmail.com[64.4.61.4
2]: 550 <yoshiwo@machtype.com>: Recipient address rejected: User unknown
in local recipient table; from=<macht
ype@hotmail.com> to=<yoshiwo@machtype.com> proto=ESMTP helo=<hotmail.com>
#
#初めは「myhostname」にホスト名「miyako」ドメイン名「machtype」
#配送先に「$myhostname, localhost.$mydomain, localhost」(サンプルの一番上を何の考えもなしに)設定していたが
#認証されていない配送先「unauth_destination」を拒否る設定ならばauth_destinationは何処だ!!
#と思って探したら「mydestination」でした。
myhostname = miyako
mydomain = machtype.com
mydestination = $mydomain, $myhostname, $myhostname.$mydomain, localhost.$mydomain,
localhost
#つまり、mydestinationは受け取る@以降のメールドメインを示しています。
#この設定では 「mydestination = miyako, machtype.com miyako.machtype.com, miyako.machtype.com,
miyako
#同じものが2回出てきてますが、localhostが何らかの理由で取得できなかったときの為、又は
#localhostが何らかの理由で変更されたときのために、myhostname版とlocalhost版を2パターンセットしました。
#ローカル配送の@以降を「$mydomain」に設定
myorigin = $mydomain
#メールを受け取る際に送信元制限をしない
inet_interfaces = all
#同じネットワーク無いのPCやサーバが乗っ取られスパムを送信されないとは限らないので
#信頼できるネットワークを自分のみに設定
mynetworks_style = host
#エイリアス設定 rootをyoshiwoに配送させたいときなどに利用
#alias_mapsはローカルシステムのものを参照 alias_databaseはpostfix用のエイリアス
#今回特に分ける必要もないので、同じものを指定
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
#受信メールの保存先を指定、ここで設定すると「/usr/spool/mail/アカウント名」という形でメールボックスが作成される
mail_spool_directory = /usr/spool/mail
###SMTP-AUTH設定###
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_sasl_authenticated reject_unauth_destination
###サブミッションポート port 587 を有効に###
######ついにスパム対策にプロバイダが動き出しました
######動的IPアドレスから契約プロバイダ以外のメールサーバに25番ポートで
######メールを送ろうとするとフィルタリングするらしいです。
######SMTP-AUTHであろうが関係なしです、と言うわけでport 587でメール送信を受け付けるようにします。
###コメントアウトされているsubmissionポートを有効にしSMTP-AUTHの設定もする###
vi /etc/postfix/master.cf
submission inet n - n - - smtpd
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_etrn_restrictions=reject
###サービス一覧にサブミッションポートを追加
vi /etc/services
submission 587/tcp mail # smtp submission port
###起動###
postfix start
上へ トップページへ