2012年10月15日月曜日

SMTP認証専用のdovecot

最近は、PostfixでSMTP認証をする際にdovecotを利用するケースが増えてきたのだが、SMTP認証のためだけにPOP/IMAPサーバを起動するのが嫌な場合(というよりPOP/IMAPのサービスが不要であればこちらを推奨する)は、dovecotを認証専用のサービスとして起動すればいい。

具体的には、まず /etc/dovecot/dovecot.conf でprotocolsを以下のように設定する。
 
        protocols = none

その上で、dovecotのドキュメントにあるように、/etc/dovecot/conf.d/10-master.confに
以下のように設定する。


   service auth {
      unix_listener /var/spool/postfix/private/auth {
        group = postfix
        mode = 0666
       user = postfix
      }
    }

あとは、dovecotが認証に利用する情報に合わせて/etc/dovecot/conf.d/10-auth.confあたりを編集してdovecotを起動すればいい。


起動後、netstatで確認すると以下のようになる。

[root@fc17 ~]# netstat -ant | egrep '110|143|993|995'
[root@fc17 ~]#
※POP/IMAP関連のポートはオープンしていない


なお、Postifx側の設定は(詳細はドキュメントで要確認)、main.cfに以下の記述をすれば良い。

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

2012年10月8日月曜日

yum パッケージのダウングレード

パッケージを最新にアップデートしたものの何かしら不具合が見つかり、古いバージョンに戻したいといった場合は以下のようにする。

 例えば、Fedora17でdovecotをダウングレードする場合
※Ver2.1.10からVer2.1.5へダウングレード

 [root@fc17 ~]# rpm -q dovecot 
dovecot-2.1.10-1.fc17.x86_64
[root@fc17 ~]#
[root@fc17 ~]# yum downgrade dovecot

読み込んだプラグイン:langpacks, presto, refresh-packagekit
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ dovecot.x86_64 1:2.1.5-1.fc17 は ダウングレード です
---> パッケージ dovecot.x86_64 1:2.1.10-1.fc17 は 削除 です
--> 依存性解決を終了しました。

依存性を解決しました

========================================================================
 Package        アーキテクチャ               バージョン                          リポジトリー                  容量
========================================================================
ダウングレード中:
 dovecot           x86_64                       1:2.1.5-1.fc17                      fedora                       2.3 M

トランザクションの要約
========================================================================
ダウングレード  1 パッケージ

総ダウンロード容量: 2.3 M
これでいいですか? [y/N]


これと同じ事をyumではなくrpmコマンドで実施する場合は、ローカルに古いバージョンのパッケージを用意して、以下のようにする。

# rpm -Uvh --oldpackage [pakage名]



なお、yumでバージョンまで調べようとした場合、最新のパッケージしか調べられない(表示されない)と思うが、/etc/yum.confの[main]セクションに以下の記述を追記することにより、全てのバージョンが調べられるようになる。

showdupesfromrepos=1

例えばdovecotを調べると、以下のようになる。

[root@fc17 ~]# yum list | grep dovecot
dovecot.x86_64                         1:2.1.10-1.fc17               @updates
dovecot.i686                           1:2.1.5-1.fc17                fedora
dovecot.x86_64                         1:2.1.5-1.fc17                fedora
dovecot.i686                           1:2.1.10-1.fc17               updates
dovecot.x86_64                         1:2.1.10-1.fc17               updates
dovecot-devel.i686                     1:2.1.5-1.fc17                fedora
dovecot-devel.x86_64                   1:2.1.5-1.fc17                fedora
dovecot-devel.i686                     1:2.1.10-1.fc17               updates
dovecot-devel.x86_64                   1:2.1.10-1.fc17               updates
dovecot-mysql.x86_64                   1:2.1.5-1.fc17                fedora
dovecot-mysql.x86_64                   1:2.1.10-1.fc17               updates
dovecot-pgsql.x86_64                   1:2.1.5-1.fc17                fedora
dovecot-pgsql.x86_64                   1:2.1.10-1.fc17               updates
dovecot-pigeonhole.x86_64              1:2.1.5-1.fc17                fedora
dovecot-pigeonhole.x86_64              1:2.1.10-1.fc17               updates
[root@fc17 ~]#