カテゴリー

アクセスカウンター


since 1996/06/14

Count per Day

  • 3今日の訪問者数:
  • 38昨日の訪問者数:
  • 810月別訪問者数:
  • 0現在オンライン中の人数:

pop3サーバメモ

注意ここのページは書きかけで放置されています(汗
qmail系のpop3サーバ等については、「qmailでメールサーバ」を参考にしてください。
 

dracのインストール

POP before SMTPができるらしい。
 

入手方法

http://mail.cc.umanitoba.ca/drac/からダウンロード
この辺↓
ftp://ftp.cc.umanitoba.ca/src/drac.tar.Z
 

インストール手順

コンパイル準備とコンパイル

※解答するときにサブディレクトリを作らないので、事前に作っておかないとイタイ目にあう。

$ mkdir drac
$ cd drac
$ wget ftp://ftp.cc.umanitoba.ca/src/drac.tar.Z
$ tar zxvf drac.tar.Z
$ vi Makefile

FedoraCore5の場合は、Makefileの設定を以下のような感じにする。
※ソースは後半の設定ほど優先なので、既存の「MANADM = 1m」の後ろあたりにコピペしてもオッケー。

INSTALL = install
EBIN = /usr/local/sbin
MAN = /usr/local/man/man
DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C
CC = gcc
RANLIB = :
CFLAGS = $(DEFS) -g
LDLIBS = -ldb
TSTLIBS = -L. -ldrac
RPCGENFLAGS = -C -I
MANLIB = 3
MANADM = 8

$ make
$ su –
# make install

/etc/mailディレクトリが無い場合は、作成しておく。

# mkdir /etc/mail

作成しておかないと、↓こんな感じで死ぬ。

# /usr/local/sbin/rpc.dracd&
1 2330
#
1+  Exit 3                  /usr/local/sbin/rpc.dracd

起動設定

あとは起動ファイルの作成。

# cp -p dracd-setup.linux /etc/init.d/drac
# vi /etc/init.d/drac
※「daemon rpc.dracd&」を「daemon /usr/local/sbin/rpc.dracd&」に変更。
※「#!/bin/sh -」の後ろに以下の三行も追加。
# chkconfig: 235 99 99
# description: for POP before SMTP
# processname: rpc.dracd

自動起動設定にする。

# chkconfig –add drac
# chkconfig –list drac
drac            0:off   1:off   2:on    3:on    4:off   5:on    6:off

ちなみに、portmapも起動設定になっていないとダメ。

# chkconfig –list portmap
portmap         0:off   1:off   2:on    3:on    4:on    5:on    6:off

※fedora11くらいだと、portmapではなくrpcbindっぽい。

あと、/etc/mail/dracd.allowを作っておく。内容は「255.255.255.255 127.0.0.1」だけでいいみたい。

次への布石

これをやっておかないと、teapopのインストールが失敗します。
# cp -p libdrac.a /usr/local/lib
# cp -p drac.h /usr/local/include/

teapopのインストール

入手方法

http://www.toontown.org/teapop/
ftp://ftp.toontown.org/pub/teapop/teapop-latest.tar.gz

インストール

コンパイル準備とコンパイルとインストール

うちの場合は、POP before SMTPでDRACを使用するのと、qmailからのデータ移植を考えてMaildir対応。

$ wget ftp://ftp.toontown.org/pub/teapop/teapop-latest.tar.gz
$ tar zxvf teapop-latest.tar.gz
$ cd teapop-x.x.x
$ ./configure \
–enable-homespool=Maildir/ \
–with-drac=/usr/local/lib \
–with-dracinc=/usr/local/include
$ make
# make install

起動設定

 以下、xinetdを使う場合。
「/etc/xinetd.d/pop3」を作成する。内容はだいたい以下の通り。

service pop3
{
  flags           = REUSE
  socket_type     = stream
  wait            = no
  server          = /usr/local/libexec/teapop
  server_args     = teapop -n -p 127.0.0.1
  log_on_failure  += USERID
  user            = root
  disable         = no
}

 serverはteapopへのフルパス(そこにファイルが無いと意味がないので確認するとよい)。
 DRACでPOP before SMTPの機能を使う場合は、server_argsが必要です(オプションの意味は、ローカル(127.0.0.1)のDRACに繋げるよって意味)。

 あとは、xinetdを上げ直せばOK。
 

teapopとdracの動作確認

1,teapop(POP3=TCP110番)につなげてみる。

# telnet localhost 110
Trying 127.0.0.1…
Connected to localhost.
Escape character is '^]'.
+OK Teapop 0.3.8 – Teaspoon …(略)
user UNIXユーザ名
+OK Welcome, do you have any type of ID?
pass 上記ユーザアカウントのパスワード
+OK I'm ready to serve you, Master.
QUIT
+OK It has been a pleasure serving you.

パスワードを入れた後に「+OK…」と出れば、とりあえずOK。
2,接続元のIPアドレスが記録されているか確認。

# db_dump -p /etc/mail/dracd.db
VERSION=3
format=print
type=btree
db_pagesize=512
HEADER=END
127.0.0.1
1158976165
DATA=END

 「HEADER=END」の後にIPアドレスが記録されていれば成功。
ちなみに、うちのサーバにはdb_dumpが入ってなかった。入ってない場合は、「yum install db4_utils」とかでインストールされます。

※RPM(yum)でインストールしたなら、以下の方法で確認できる。
# rpm -ql db4-utils | grep db_dump
/usr/bin/db_dump
:

teapop+dracとPostfixの連携

手動でメールを送ってみる

 まずは、POP before SMTPを使わずにメールを送ってみます。
Postfixが正常に動いているかのテストにもなります。
できればリモート、ダメであればローカルから、telnetを使って接続します。
メールサーバが「192.168.1.xxx」だとします。
下線が手入力箇所、手入力直前のサーバからの応答です。
 

$ telnet 192.168.1.xxx 25
Trying 192.168.1.xxx…
Connected to 192.168.1.xxx.
Escape character is '^]'.
220 xxx.example.com ESMTP
helo DomainName ←ここの「DomainName」は適当でも通ります。
250 xxx.example.com
mail from:username@example.com
250 Ok
rcpt to:username@example.com
250 Ok
data
<<354 End data with <CR><LF>.<CR><LF>>>
TEST
.
250 Ok: queued as D8A657533
quit

メールがサーバに届いていれば成功です。失敗した場合はサーバのログを追って原因を探りましょう。

Postfixとdracの連携

postfixの設定

 まず、/etc/postfix/main.cfあたりに以下の行を追加します。
※関連する行は無いはずなので、最後にでも追加しちゃいます。

smtpd_recipient_restrictions = permit_mynetworks,
       check_client_access btree:/etc/mail/dracd
       check_relay_domains

「/etc/mail/dracd」はdracd.dbの所在を指定。「.db」は省略しないとエラーになります。
上記の設定をしたら、念のためPostfixを再起動してもいいですが、「手動でメールを送ってみる」と同じ方法でメールを送るとログに以下のようなメッセージが出ます。

Sep 25 22:40:34 hostname postfix/smtpd2377: warning: support for restriction "check_relay_domains" will be removed from Postfix; use "reject_unauth_destination" instead

上記のログが残って、メールが受信できていなければ成功です。

手動でPOP3へ接続

 POP before SMTPはPOP3認証が通らないとメールが送れないですが、以下の方法でPOP3認証を行うことができます。

$ telnet 192.168.1.xxx 110
Trying 192.168.1.xxx…
Connected to 192.168.1.xxx.
Escape character is '^]'.
+OK Teapop 0.3.8 – Teaspoon stirs around…
user username
+OK Welcome, do you have any type of ID?
pass password
+OK I'm ready to serve you, Master.
quit
+OK It has been a pleasure serving you.
Connection closed by foreign host.

これでPOP before SMTPが有効であれば、認証成功から30分間メールを送ることが可能になります。

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  

  

  

Time limit is exhausted. Please reload CAPTCHA.