OpenBlocks200+ssdlinux+Postfix+SMTP-AUTH(送信メールサーバ)

関連サイト: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


上へ
 トップページへ