harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

GNU/Linux infra MAIL network postfix サーバー

postfix SMTP-auth + TLSの実装

投稿日:2004年12月28日

▼smtp-auth + TLSの実装

 2004/12/28

 別項で記載したUNIXパスワードでのsmtp-auth実装に
 暗号化を強化するためpostfixにTLSを追加して再コンパイル。
 これでOutlook ExpressのLOGIN認証でもある程度の強度を確保できる。
 ※smtp-authは(一応)実装済み

【参照サイト】お世話になっています!!

http://www.aln1.net/network/postfix+tls+smtp-auth.html

SMTP Auth + TLSの導入(Postfix2.0編)/パソコンおやじ
http://acorn.zive.net/~oyaji/mail2/smtp-auth-tls.htm

【使用したアプリケーション】

postfix-2.1.5
pfixtls-0.8.18-2.1.3-0.9.7d
openssl-0.9.7d
※opensslはすでにインストール済みなのでここでは説明を割愛します。

【postfix用TLSのダウンロードサイト】

http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/
postfixのバージョンに合わせてpfixtlsのバージョンが決まっている。
使用しているpostfixのバージョンが2.1.5なので
ここからpfixtlsのバージョン0.8.18をダウンロード。

1)ソースのダウンロードと展開

[[email protected] user]$ su -
Password: 
[[email protected] root]# cd /usr/local/src/
[[email protected] src]# wget ftp://ftp.aet.tu-cottbus.de/pub/postfix_tls/
pfixtls-0.8.18-2.1.3-0.9.7d.tar.gz
[[email protected] src]# 
[[email protected] src]# tar -zxvf pfixtls-0.8.18-2.1.3-0.9.7d.tar.gz 

2)postfixへパッチをあて、再コンパイル

[[email protected] src]$ cd postfix-2.1.5
[[email protected] postfix-2.1.5]$ patch -p1 < ../pfixtls-0.8.18-2.1.3-
0.9.7d/pfixtls.diff

3)postfixインストール

  インストール時のオプションが長いので注意。
  ※自分のインストール環境を確認しておくこと。

[[email protected] postfix-2.1.5]$ make makefiles CCARGS="-DUSE_SASL_AUTH 
-DHAS_SSL -I/usr/local/include/sasl -I/usr/include/openssl" AUXLIBS="-
L/usr/local/lib -L/ usr/lib -lsasl2  -lssl -lcrypto"
[[email protected] postfix-2.1.5]$ make
[[email protected] postfix-2.1.5]$ su root -c "make upgrade"

4)SSLkeyの作成

▼/etc/postfix以下にsslディレクトリを作成

[[email protected] postfix-2.1.5]$ su 
[[email protected] postfix-2.1.5]# cd /etc/postfix/
[[email protected] postfix]# mkdir ssl
[[email protected] postfix]# cd ssl
[[email protected] ssl]# ls
[[email protected] ssl]# ls -al
合計 8
drwxr-xr-x    2 root     root         4096 12 28 14:56 .
drwxr-xr-x    3 root     root         4096 12 28 14:56 ..

▼SSLkeyの生成

1:秘密鍵の生成

[[email protected] ssl]# openssl genrsa -out server.key 1024
Generating RSA private key, 1024 bit long modulus
..................++++++
...++++++
e is 65537 (0x10001)
[[email protected] ssl]# 
[[email protected] ssl]# ls
server.key
[[email protected] ssl]# ls -al
合計 12
drwxr-xr-x    2 root     root         4096 12 28 14:56 .
drwxr-xr-x    3 root     root         4096 12 28 14:56 ..
-rw-r--r--    1 root     root          887 12 28 14:56 server.key
[[email protected] ssl]# 

2:自署証明書の生成

[[email protected] ssl]# openssl req -new -x509 -key server.key -out server.crt
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Docoka
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example.Inc
Organizational Unit Name (eg, section) []:*****
Common Name (eg, YOUR name) []:admin
Email Address []:[email protected]
[[email protected] ssl]# 

5)main.cfにTLS対応ディレクティブを追記。

[[email protected] postfix]# cp main.cf main.cf.20041228_no_TLS
[[email protected] postfix]# vi main.cf

記述内容は以下のとおり。
main.cfの一番下に追記すればOK。
# 証明書ファイルの置き場所の指定
smtpd_tls_cert_file = /etc/postfix/ssl/server.crt

# smtpd_tls_key_file = 秘密鍵ファイルの置き場所の指定
smtpd_tls_key_file = /etc/postfix/ssl/server.key

# smtpd_tls_session_cache_database = TLSセッションキャッシュデータベースの指定
#smtpd_tls_session_cache_database = sdbm:/etc/postfix/ssl/smtpd_scache

# smtpd_tls_loglevel = TLSのログレベル指定
smtpd_tls_loglevel = 3

# smtpd_use_tls starttlsコマンドの利用の指定
smtpd_use_tls = yes

6)postfixを再起動

[[email protected] postfix]# postfix reload
postfix/postfix-script: refreshing the Postfix mail system
[[email protected] postfix]# 

7)動作確認

▼ポート接続テスト

[[email protected] postfix]# telnet localhost 25
Trying 127.0.0.1...

Connected to localhost. 

Escape character is '^]'.

220 mail.example.jp ESMTP Postfix
ehlo localhost
250-mail.example.jp
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS			←ここの応答があればOK!!
250-AUTH LOGIN PLAIN OTP DIGEST-MD5 CRAM-MD5
250-AUTH=LOGIN PLAIN OTP DIGEST-MD5 CRAM-MD5
250 8BITMIME
quit
221 Bye
Connection closed by foreign host.
[[email protected] postfix]# 
[[email protected] postfix]# 

▼メール配信テスト

 Outlook Express、Becky!から配信テストを行う。
 ポートは指定していないのでメーラー側でのポートの変更は不要。
 

-GNU/Linux, infra, MAIL, network, postfix, サーバー
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


関連記事

nagios snmp ディスク使用率表示スクリプトのカスタマイズ

もともとcheck_snmp_storageを使用していたが、nagiosgraphでグラフを出力させるための perfdataの表示を、nagiosgraph側でパーティション指定を認識できるようカ …

no image

[メモ]ディレクトリ”/srv”の使いみち

WebサーバーやDBサーバーをセットアップする際、RedHat、Fedora、CentOSなどでRPMパッケージでセットアップする場合は /var/wwwや/var/lib/mysqlなどあらかじめ用 …

no image

[メモ]cdコマンドで、ひとつ前のディレクトリに戻る場合[bash]

シェルでの作業中に、ふたつのディレクトリを行ったり来たり、ということが多いとき cdとかのオプションで指定できないかな?とmanを探っていたら、ふつーにあった(汗 $ cd – (オプション&quot …

no image

courier-imapのインストール(RPMパッケージの作成)

▼courier-imapのインストール(RPMパッケージの作成) ※CentOS4 ■courier-authlibのパッケージ作成とインストール 1)ダウンロードとRPMパッケージ作成。 2)パッ …

[AWS] EC2 HVMタイプを使う時のファイルシステム周りの作業2(swap追加)

さしあたりAWSだから、t2インスタンスだから、というわけでは全くないけどメモ。 t2インスタンスは、もともとスワップ領域がないインスタンスタイプのため、スワップが必要な場合は、EBSを追加してmks …