![]() |
LINUX |
Postfix (SSL対応) のインストール
・Maildir形式のsmtpサーバの構築をします
・postfix-2.8.5をソースからインストールし、設定します
・postscreenを有効にしてRBLをメールフィルターに使います
・tls接続、DOVCOT_SASLを利用したsmtp-authに対応しています
・既存のsendmailを停止し、postfixのsendmailに置き換えます
・浅見秀雄さんのS25Rスパム対策と佐藤潔さんのStarpitを使っています
・make はメンテナンスマシンで行っています
・ソースの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します
・ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
・設定ファイルで "#" で始まる行はコメントとして解釈されます
関連サイト| :postfix-2.8.5.tar.gz | (http://www.postfix.org/) |
| :white.list.txt | (http://gabacho.reto.jp/anti-spam/) |
| :postfix-sleep.patch | (http://k2net.hakuba.jp/) |
| :tarpit_client | (http://k2net.hakuba.jp/) |
参照ファイル:パッケージの追加
:最初の設定 (Xen)
:opensslのインストール
インストール環境| :OS | CentOS 5.6 |
| :selinux | disabled or permissive |
| :インストール先 | |
| :作業 | /usr/src |
| :言語 | LANG=en_US.UTF-8 |
| :ユーザー | rootで実行 |
・メンテナンスの場合は一般ユーザから行います
postfix-2.8.5
専用ユーザ・グループの作成
[root@jupiter:~]
# useradd -u 89 -d /dev/null -s /bin/false postfix
# groupadd -g 90 postdrop
sendmailの停止
[root@jupiter:~]
# service sendmail stop
# chkconfig --del sendmail
# mv /usr/sbin/sendmail /usr/sbin/sendmail-OLD
# mv /usr/bin/mailq /usr/bin/mailq-OLD
# mv /usr/bin/newaliases /usr/bin/newaliases-OLD
・setuid権限を削除 (2755→0755)
# chmod 755 /usr/sbin/sendmail.sendmail
ソースの展開・インストール・htmlドキュメントを適当なディレクトリに保存して利用しましょう
・sleep中に相手が接続を切ったら、smtpdプロセスを終了するパッチを当てます
・dovecot_saslを使う設定です
# cd /usr/src [root@jupiter:/usr/src] # tar zxvf postfix-2.8.5.tar.gz # chown -R root:root postfix-2.8.5 # cd postfix-2.8.5 [root@jupiter:/usr/postfix-2.8.5]
・パッチを当てます(下記参照)
・パッチは/usr/srcディレクトリに置きます
# patch -p1 < ../postfix-2.8-sleep.patch
# make tidy
・コンフィグシェルスクリプトを実効します
・同じディレクトリで実行します
・pfixcfg.sh (詳細別記)
# source pfixcfg.sh # make # make install ・・・・・・・・・・・・・・・・・・・ install_root: [/] tempdir: [/usr/src/postfix-2.8.5] config_directory: [/etc/postfix] command_directory: [/usr/sbin] daemon_directory: [/usr/libexec/postfix] data_directory: [/var/lib/postfix] html_directory: [no] mail_owner: [postfix] mailq_path: [/usr/bin/mailq] manpage_directory: [/usr/local/man] newaliases_path: [/usr/bin/newaliases] queue_directory: [/var/spool/postfix] readme_directory: [no] sendmail_path: [/usr/sbin/sendmail] setgid_group: [postdrop] ・・・・・・・・・・・・・・・・・・・ # cd .. [root@jupiter:/usr/src] # tar jcvf postfix-2.8.5-110904.tar.bz2 postfix-2.8.5/
・postfix-sleep.patchを参考に修正しています
・必須ではありません、問題があれば保留して下さい
aliasesファイルを編集します (変更追加分):/etc/aliases (root root 644)
・設定例です
・sendmail用のaliasesを使用しています
・/dev/nullを指定すると配送されません
・root宛のメールは専用ユーザに配送します 専用ユーザ (luna)
・9文字以上のユーザー名にしたい場合、aliasesとcanonicalで設定します
root: luna starlight: star moonlight: moon webmaster: /dev/null
:aliases.dbを作ります
# cd /etc
[root@jupiter:/etc]
# rm aliases.db
# newaliases
canonicalファイルを編集します:/etc/postfix/canonical (root root 644)
・設定例です
star starlight moon moonlight
:canonical.dbを作ります
# cd /etc/postfix
[root@jupiter:/etc/postfix]
# postmap /etc/postfix/canonical
S25R+Starpit用のファイル:/etc/postfix/white.list.txt (root root 644)
:/etc/postfix/tarpit_client (root root 644)
・関連サイトにアクセスし、十分理解した上で使用します
accessファイルを編集します:/etc/postfix/access (root root 644)
・設定例です
・良く不正リレーメールが来るので必要なければ拒否します
・smtpd_sender_restrictionsで使用しています
・書式は各自学習してください
jss.cn REJECT jxs.cn REJECT sds.cn REJECT bjs.cn REJECT hns.cn REJECT tjs.cn REJECT yns.cn REJECT
:access.dbを作ります
[root@jupiter:/etc/postfix]
# postmap /etc/postfix/access
JUNKMAILを拒否・添付ファイルをチェックします:/etc/postfix/header_checks (root root 644)
・設定例です
・マニュアルは"$ man 5 header_checks"
・正規表現またはPCREが使える?
・まともな方法で送られてくるスパムメールを、headerをチェックして拒否します
・nameのチェックはheader_checksで行ないます
/^X-Mailer:.*PostMaster General/ REJECT /^Return-Path:.*<#.*@.*>/ REJECT /^From:.*<#.*@.*>/ REJECT /^subject: more money$/ REJECT /^subject:.*I LOVE YOU/ REJECT /^to: our valued customer$/ REJECT /^from: your friend$/ REJECT
/^content-type:.*name.*\.scr.*/ REJECT /^content-type:.*name.*\.exe.*/ REJECT /^content-type:.*name.*\.inf.*/ REJECT /^content-type:.*name.*\.pif.*/ REJECT /^content-type:.*name.*\.bat.*/ REJECT /^content-type:.*name.*\.dll.*/ REJECT /^content-type:.*name.*\.vbs.*/ REJECT /^content-type:.*name.*\.reg.*/ REJECT
/^Content-Type: text\/html/ REJECT HTML not allowed.
/GyRCTCQ+NUJ6OS05cCIoGyhC/ REJECT /wkPjVCejktOXAiK/ REJECT /MJD4lQno5LTlwIi/ REJECT
・日本語のBASE64エンコード
[root@jupiter:/etc/postfix] $ echo -n "未承諾広告※"|nkf -MB GyRCTCQ+NUJ6OS05cCIoGyhC
:/etc/postfix/body_checks (root root 644)
・設定例です
・マニュアルは"$ man 5 header_checks"
・正規表現またはPCREが使える?
・メール本文をcheckします
・logwachのpostfixレポートに対処します
・logwatchのpostfixレポートで接頭語(例 bdck:)を付けています
・bdck:が付いていない場合は if〜endif間の構文をチェックします
if !/bdck:/ /^(|[^>].*)carecough\.ru/ REJECT /8\\5R%j%9%H/ REJECT endif
・日本語のiso-2022-jp 7bitエンコード
[root@jupiter:/etc/postfix] $ echo -n "顧客リスト"|nkf -j|awk '{gsub(/\x1B[$(]B/,"");print}' 8\5R%j%9%H
・正規表現で使われる文字を\でエスケープします
8\\5R%j%9%H
postscreenのaccess_listでの制御:/etc/postfix/postscreen_access
・設定例です
・permit (postscreenをスルーしてSMTP server processに渡されます)
・reject (postscreen_blacklist_actionパラメータで制御されます)
# 203.141.136.4 permit # 211.166.9.0/24 reject
main.cfを編集します・証明書の作成は 認証局と証明書の発行 を参照してください
master.cfを変更します (変更分)・初段のsmtp(smtpdコマンド)行を無効にします
・postscreenを使う場合 赤色文字
・TLS(SSL)接続を使う場合 緑色文字
・OEがTLSラッパーモードでアクセスするのでsmtps (port465) を開放します
#smtp inet n - n - - smtpd
smtps inet n - n - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o milter_macro_daemon_name=ORIGINATING
・省略
smtp inet n - n - 1 postscreen
smtpd pass - - n - - smtpd
dnsblog unix - - n - 0 dnsblog
tlsproxy unix - - n - 0 tlsproxy
postfixパラメータの確認・デフォルトのパラメータを表示
[root@jupiter:/etc/postfix]
# postconf -d
・修正したパラメータの表示
# postconf -n
iptablesの設定・Netfilter (iptables) で制御している場合、ポートを開けてください
postfix起動スクリプトを作ります:/étc/rc.d/init.d/postfix (詳細別記)
selinuxヘの対応 (selinuxが有効の場合):新規インストールファイルのselinuxラベルを修正
# cd ~
[root@jupiter:~]
# restorecon -Rv /etc
# restorecon -Rv /usr
# restorecon -Rv /var
自動起動スクリプトをonにし、postfixを起動します
[root@jupiter:~]
# chkconfig --add postfix
# service postfix start
(参考)
localオンリー:/etc/postfix/main.cf (変更部分)
・マシンのIPアドレスを指定します
mynetworks = 192.168.0.22/32, 127.0.0.0/8 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases mail_spool_directory = /var/spool/mail
smtp のレスポンスコード![]() |
Copyright(c) 528p.com All Rights Reserved. |

