qmail-toasterでメール

サーバー運用がかなり厳しいので寄付をしてくれる人がいたらこちら
メインPCもボロボロになってきたので、ついにほしいものリスト公開

ということで、本家が更新しなくなったので、netqmail-1.06で使えるようにtoasterパッチいじってうち専用のものに変えてみましたよ

qmail-toasterといういろんなパッチのあたったコピペだけで
すぐに使えるメールサーバの設定サイトがあるのですが、
そこの一部を若干変更してうちでは利用します。

HP: http://shupp.org/toaster/

本家がおわたらしくgithubから勝手にフォークしろとのこと?なので、後ほどうちでミラー?しておきます?

ソース類の取得

unalias rm mv cp rpm -e --nodeps sendmail postfix umask 0022 mkdir -p /var/src/tar cd /var/src/tar wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz wget http://qmail.org/netqmail-1.06.tar.gz wget http://sourceforge.net/projects/domainkeys/files/libdomainkeys/0.69/libdomainkeys-0.69.tar.gz wget http://ftp.momo-i.org/pub/toaster/libdomainkeys-0.69.diff wget http://ftp.momo-i.org/pub/toaster/qmail-toaster-0.9.2.patch.bz2 wget http://sourceforge.net/projects/vpopmail/files/vpopmail-devel/5.4.33/vpopmail-5.4.33.tar.gz wget http://www.inter7.com/devel/autorespond-2.0.5.tar.gz wget http://sourceforge.net/projects/qmailadmin/files/qmailadmin-devel/qmailadmin-1.2.16.tar.gz wget http://sourceforge.net/projects/qmailadmin/files/qmailadmin-help/1.0.8/qmailadmin-help-1.0.8.tar.gz wget http://cr.yp.to/software/ezmlm-0.53.tar.gz wget http://ftp.momo-i.org/pub/toaster/ezmlm-idx-0.443.tar.gz wget http://ftp.momo-i.org/pub/toaster/courier-authlib-0.59.1.tar.bz2 wget http://ftp.momo-i.org/pub/toaster/courier-imap-4.1.2.tar.bz2 wget http://ftp.momo-i.org/pub/toaster/daemontools-0.76.errno.patch wget http://ftp.momo-i.org/pub/toaster/ucspi-tcp-0.88.errno.patch wget http://ftp.momo-i.org/pub/toaster/toaster-scripts-0.9.0.tar.gz

DaemonToolsのインストール

mkdir -p /package chmod 1755 /package cd /package tar -xpzf /var/src/tar/daemontools-0.76.tar.gz cd admin/daemontools-0.76 patch -p1 < /var/src/tar/daemontools-0.76.errno.patch package/install cd ../ mkdir clear touch clear/down cat > clear/run <

ucspi-tcpのインストール

x86_64の人はconf-ccファイルの-O2を消して下さい。

cd /var/src/ tar -xzf tar/ucspi-tcp-0.88.tar.gz cd ucspi-tcp-0.88 patch -p1 < /var/src/tar/ucspi-tcp-0.88.errno.patch make make setup check

Qmailのインストール

mkdir /var/qmail groupadd nofiles useradd -g nofiles -d /var/qmail/alias alias useradd -g nofiles -d /var/qmail qmaild useradd -g nofiles -d /var/qmail qmaill useradd -g nofiles -d /var/qmail qmailp groupadd qmail useradd -g qmail -d /var/qmail qmailq useradd -g qmail -d /var/qmail qmailr useradd -g qmail -d /var/qmail qmails cd /var/src tar -xzf tar/toaster-scripts-0.9.0.tar.gz tar -xzf tar/netqmail-1.06.tar.gz cd netqmail-1.06 ln -s /usr/kerberos/include/com_err.h \ /usr/kerberos/include/krb5.h \ /usr/kerberos/include/profile.h \ /usr/include/ rm /usr/sbin/sendmail make make setup check echo 3 > /var/qmail/control/spfbehavior (cd ~alias; echo " webmaster@example.com " > .qmail-postmaster ;\ echo " webmaster@example.com " > .qmail-mailer-daemon ;\ echo " webmaster@example.com " > .qmail-root ) chmod 644 ~alias/.qmail* ./config-fast `hostname --long` cd /var/src cp toaster-scripts-0.9.0/rc /var/qmail/rc chmod 755 /var/qmail/rc mkdir /var/log/qmail echo ./Maildir/ >/var/qmail/control/defaultdelivery cp toaster-scripts-0.9.0/qmailctl /var/qmail/bin/ chmod 755 /var/qmail/bin/qmailctl ln -s /var/qmail/bin/qmailctl /usr/bin ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail ln -s /var/qmail/bin/sendmail /usr/lib/sendmail mkdir -p /var/qmail/supervise/qmail-send/log mkdir -p /var/qmail/supervise/qmail-smtpd/log mkdir -p /var/qmail/supervise/qmail-pop3d/log mkdir -p /var/qmail/supervise/qmail-pop3ds/log cp /var/src/toaster-scripts-0.9.0/send.run /var/qmail/supervise/qmail-send/run cp /var/src/toaster-scripts-0.9.0/send.log.run /var/qmail/supervise/qmail-send/log/run cp /var/src/toaster-scripts-0.9.0/smtpd.run /var/qmail/supervise/qmail-smtpd/run cp /var/src/toaster-scripts-0.9.0/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run cp /var/src/toaster-scripts-0.9.0/pop3d.run /var/qmail/supervise/qmail-pop3d/run cp /var/src/toaster-scripts-0.9.0/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run cp /var/src/toaster-scripts-0.9.0/stunnel.conf /var/qmail/supervise/qmail-pop3ds/ cp /var/src/toaster-scripts-0.9.0/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run cp /var/src/toaster-scripts-0.9.0/pop3ds.log.run /var/qmail/supervise/qmail-pop3ds/log/run echo 20 > /var/qmail/control/concurrencyincoming chmod 644 /var/qmail/control/concurrencyincoming chmod 755 /var/qmail/supervise/qmail-send/run chmod 755 /var/qmail/supervise/qmail-send/log/run chmod 755 /var/qmail/supervise/qmail-smtpd/run chmod 755 /var/qmail/supervise/qmail-smtpd/log/run chmod 755 /var/qmail/supervise/qmail-pop3d/run chmod 755 /var/qmail/supervise/qmail-pop3d/log/run chmod 755 /var/qmail/supervise/qmail-pop3ds/run chmod 755 /var/qmail/supervise/qmail-pop3ds/log/run mkdir -p /var/log/qmail/smtpd mkdir -p /var/log/qmail/pop3d mkdir -p /var/log/qmail/pop3ds chown -R qmaill /var/log/qmail ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service sleep 5 qmailctl stat vi /etc/man_db.conf --- MANDATORY_MANPATH /var/qmail/man MANPATH_MAP /var/qmail/bin /var/qmail/man ---

もしStunnelのバージョン4を使ってたら下のpop3ds.runの
記述をpop3ds.run.v4に置き換えて下さい。
以下のコマンドで確認可能です。

stunnel -version #V4の場合 stunnel -V #V3の場合

V4だった場合は以下をコピーします。

cp /var/src/toaster-scripts-0.9.0/stunnel.conf /var/qmail/supervise/qmail-pop3ds/ cp /var/src/toaster-scripts-0.9.0/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run

後でDomain-Keyで遊んでみるので以下をコンパイルします。

cd /var/src tar -xzf tar/libdomainkeys-0.69.tar.gz cd libdomainkeys-0.69 patch -p0 < ../tar/libdomainkeys-0.69.diff make

Vpopmailのインストール

groupadd -g 89 vchkpw useradd -u 89 -g vchkpw vpopmail cd /var/src tar -xzf tar/vpopmail-5.4.33.tar.gz cd vpopmail-5.4.33 #x86_64 CFLAGS=-fPIC ./configure --enable-logging=v #ix86 ./configure --enable-logging=v make make install-strip echo '127.:allow,RELAYCLIENT=""' > ~vpopmail/etc/tcp.smtp (cd ~vpopmail/etc ; tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp) cp ../toaster-scripts-0.9.0/vpopmailctl /var/qmail/bin/vpopmailctl ln -s /var/qmail/bin/vpopmailctl /usr/bin cd /var/src/netqmail-1.06 bunzip2 -c ../tar/qmail-toaster-0.9.2.patch.bz2 | patch -p1 make clean make qmailctl stop make setup check chown -R vpopmail:vchkpw /var/qmail/spam make cert make tmprsadh

そしてCronに以下を追加

01 01 * * * /var/qmail/bin/update_tmprsadh > /dev/null 2>&1 qmailctl start ln -s /var/qmail/supervise/qmail-pop3d /var/qmail/supervise/qmail-pop3ds /service sleep 5 vpopmailctl stat

Courier-authlibのインストール

0.60.3以降でauthvchkpwが無くなったので、古いままやります

cd /var/src tar -xjf tar/courier-authlib-0.59.1.tar.bz2 cd courier-authlib-0.59.1 ./configure --with-redhat make make install-strip make install-configure cp courier-authlib.sysvinit /etc/init.d/courier-authlib chmod 755 /etc/init.d/courier-authlib ln -s ../init.d/courier-authlib /etc/rc0.d/K30courier-authlib ln -s ../init.d/courier-authlib /etc/rc1.d/K30courier-authlib ln -s ../init.d/courier-authlib /etc/rc2.d/S80courier-authlib ln -s ../init.d/courier-authlib /etc/rc3.d/S80courier-authlib ln -s ../init.d/courier-authlib /etc/rc4.d/S80courier-authlib ln -s ../init.d/courier-authlib /etc/rc5.d/S80courier-authlib ln -s ../init.d/courier-authlib /etc/rc6.d/K30courier-authlib

/usr/local/etc/authlib/authdaemonrc

authmodulelist="..."とあるのを
authmodulelist="authvchkpw"に変更します。

/etc/init.d/courier-authlib start

Courier-imapのインストール

こっちも同様に最新版だとauthlibの0.6xが必要なので古いので。。。

cd /var/src tar -xjf tar/courier-imap-4.1.2.tar.bz2 cd courier-imap-4.1.2 chown -R vpopmail:vchkpw ../courier-imap-4.1.2 su vpopmail umask 0022 ./configure --with-redhat gmake exit gmake install-strip gmake install-configure cp courier-imap.sysvinit /etc/init.d/courier-imap chmod 755 /etc/init.d/courier-imap ln -s ../init.d/courier-imap /etc/rc0.d/K30courier-imap ln -s ../init.d/courier-imap /etc/rc1.d/K30courier-imap ln -s ../init.d/courier-imap /etc/rc2.d/S80courier-imap ln -s ../init.d/courier-imap /etc/rc3.d/S80courier-imap ln -s ../init.d/courier-imap /etc/rc4.d/S80courier-imap ln -s ../init.d/courier-imap /etc/rc5.d/S80courier-imap ln -s ../init.d/courier-imap /etc/rc6.d/K30courier-imap

/usr/lib/courier-imap/etc/imapd

IMAPDSTART=NOの部分を
IMAPDSTART=YESに変更
AUTH=CRAM-MD5をIMAP_CAPABILITYに追加して
CRAM-MD5を使えるようにします。

/usr/lib/courier-imap/etc/imapd-ssl

IMAPDSSLSTART=NOの部分を
IMAPDSSLSTART=YESに変更

/etc/init.d/courier-imap start

これでとりあえずメール鯖としての動作はするはずです。
以下のコマンドで接続可能か確認をして見ます。

telnet localhost 25 telnet localhost 110 telnet localhost 143

接続が確認できたら、まずはドメインの追加をしましょう。

cd /home/vpopmail/bin ./vadddomain momo-i.org Please enter password for postmaster: xxxxx(不可視) enter password again: xxxxx(不可視)

次にユーザの追加をします。

./vadduser webmaster@momo-i.org Please enter password for webmaster@momo-i.org: enter password again: xxxxx(不可視)

もちろん、MXレコード(Aレコード)さえ登録してあれば、
サブドメインいくつでも作ることができます。

メールアドレスを作成すると以下のディレクトリが作成され、
そこに飛んできたメールが格納されます。

/home/vpopmail/domains/momo-i.org/webmaster

そしたらメールクライアントの設定をしましょう。
メールサーバ(SMTP・POP)のアドレスにはサーバのIPアドレスを入れます。
SSL対応クライアントの場合はPOPはポート番号993を、SMTPは25を指定します。
SMTPはSTARTTLSを使うようにしないとエラーになります。

メールクライアントでSTARTTLSが使えないとか、設定が面倒って人は
tcpserverをSSL化して、違うポートで立ち上げると良いです。

cd /var/src/ucspi-tcp-0.88 wget http://www.nrg4u.com/qmail/ucspi-tcp-ssl-20050405.patch.gz gzip -dc ucspi-tcp-ssl-20050405.patch.gz | patch make cp tcpserver /usr/local/bin/tcpserver-ssl

次にqmail-smtpdsを作成します。

cd /var/qmail/supervise cp -r qmail-smtpd qmail-smtpds cd qmail-smtpds vi run --- /usr/local/bin/tcpserver -v -H -R -l 0 \ ↓ /usr/local/bin/tcpserver-ssl -s -v -H -R -l 0 \ -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \ ↓ -u "$QMAILDUID" -g "$NOFILESGID" -n /var/qmail/control/servercert.pem 0 smtps \ --- vi log/run --- exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd ↓ exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpds --- mkdir /var/log/qmail/smtpds chown qmaill /var/log/qmail/smtpds ln -s /var/qmail/supervise/ /service/ vi /var/qmail/bin/qmailctl --- svclist="qmail-send qmail-smtpd" ↓ svclist="qmail-send qmail-smtpd qmail-smtpds" --- qmailctl stat ~~~~~ /service/qmail-smtpds: up (pid 20471) 59757 seconds /service/qmail-smtpds/log: up (pid 3162) 914677 seconds

以上で完了です。

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
また変更しました
Fill in the blank.