qmailインストール
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#contents
*ソースのダウンロード [#rc4b12e4]
[[qmail-1.03.tar.gz:http://cr.yp.to/qmail.html]]
*下準備 [#a05abcae]
必要なディレクトリやグループ・アカウントを前もってつくっ...
mkdir /var/qmail
/usr/sbin/groupadd nofiles
/usr/sbin/useradd -g nofiles -d /var/qmail/alias alias
/usr/sbin/useradd -g nofiles -d /var/qmail -s /bin/false...
/usr/sbin/useradd -g nofiles -d /var/qmail -s /bin/false...
/usr/sbin/useradd -g nofiles -d /var/qmail -s /bin/false...
/usr/sbin/groupadd qmail
/usr/sbin/useradd -g qmail -d /var/qmail -s /bin/false q...
/usr/sbin/useradd -g qmail -d /var/qmail -s /bin/false q...
/usr/sbin/useradd -g qmail -d /var/qmail -s /bin/false q...
*インストール [#va629369]
make前に必要となるパッチを前もってダウンロード~
(undefined reference to `errno' というエラーを防ぐパッチ...
[[qmail-date-localtime.patch:http://www.ksknet.net/sample...
/usr/local/src に置いて展開
# tar xvfz qmail-1.03.tar.gz
# cd qmail-1.03
# patch < ../qmail-date-localtime.patch
# make
make時に次のようなエラーが出た場合
: undefined reference to `errno'
cdb.a(cdb.o)(.text+0xce): more undefined references to `...
collect2: ld はステータス 1 で終了しました
make: *** [tcpserver] エラー 1
さらにパッチをあてる必要がある。
([[参考:http://www.stackasterisk.jp/tech/systemConstruct...
[[ucspi-tcp-glibc.patch:http://www.stackasterisk.jp/tech/...
# patch < ../ucspi-tcp-glibc.patch
make時に次のようなエラーが出た場合
/lib64/libc.so.6: could not read symbols: Bad value
おまじないを実行してから再度 make
echo "gcc -O2 --include /usr/include/errno.h" > conf-cc
512バイト以上のDNS応答はエラーとなるようなので、qmail-103...
[[qmailでdeferral CNAME_lookup_failed_temporarily]]
インストール
# make setup check
*インストール後の設定 [#v87f46d8]
# ./config
# cat /var/qmail/control/me
として、正しいサーバー名がセットされていればOK
ダメな場合
# ./config-fast マシン名.ドメイン名(.comや.co.jpまで)
として、設定だけを完了
*メール用ディレクトリの作成 [#g2ad08ff]
実際にメールを使いたいアカウントになって作業する~
例えば、アカウント hogehoge の場合
# su hogehoge
$ cd
$ /var/qmail/bin/maildirmake ./Maildir
さらに、ホームディレクトリに .qmail というファイルを各ア...
メールをディレクトリに保存する場合
./Maildir/
メールを特定のアドレスへ転送する場合
&xxxx@example.com~
必要なアカウント分、この作業をしておく
さらに管理用のアカウントを /var/qmail/alias の中に設定し...
最低限必要なアカウント: ''root''、''mailer-daemon''、''p...
(rootアカウントに実行ファイル等を紛れ込まされるのを防ぐ...
実際には、
# su alias
でqmailのalias アカウントになってから、実際に、このエリア...
$ echo "&tanaka@xxxxxxx.co.jp" > .qmail-root
$ echo "&tanaka@xxxxxxx.co.jp" > .qmail-mailer-daemon
$ echo "&tanaka@xxxxxxx.co.jp" > .qmail-postmaster
以上で必須アカウントの登録は終了。~
あとは
$ echo "&yassu@xxxxxxx.co.jp" > .qmail-webmaster
とすれば webmaster@xxxxxxx.co.jp 宛のメールが yassu@xxxxx...
$ echo "&yakkun@xxxxxxx.co.jp" > .qmail-yassu
としておくと yassu@xxxxxxx.co.jp 宛のメールが yakkun@xxxx...
*起動スクリプトの準備 [#m955c961]
qmailの起動スクリプトをコピーして使用
# cp /var/qmail/boot/home /var/qmail/rc
# vi /var/qmail/rc
として、途中にある ./Mailbox の部分を ./Maildir/ &color(r...
次に、起動スクリプトを作成~
パスとファイル名は /etc/rc.d/init.d/qmaild
#!/bin/sh
############
# Startup script for the Qmail by Penta
#
# chkconfig: 345 55 15
# description: QMAIL SMTP & POP3サーバー
# processname: qmaild
# pidfile: /var/run/qmaild.pid
# filename /etc/rc.d/init.d/qmaild
#
# Source function library.
. /etc/rc.d/init.d/functions
# See how we were called.
case "$1" in
start)
echo -n "Starting qmaild: "
/usr/local/bin/tcpserver -H -R -x /etc/tcp.smtp....
-c 100 -u qmaild -g nofiles 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 \
/var/qmail/bin/splogger smtpd &
/usr/local/bin/tcpserver 0 pop3 \
/var/qmail/bin/qmail-popup マシン名.ドメイン名 \
/bin/checkpassword /var/qmail/bin/qmail-pop3d ...
/var/qmail/bin/splogger pop3d &
/var/qmail/rc &
echo "ok"
touch /var/lock/subsys/qmaild
;;
stop)
echo -n "Shutting down qmail: "
kill $(/sbin/pidof tcpserver)
kill $(/sbin/pidof qmail-send)
echo "ok"
rm -f /var/lock/subsys/qmaild
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {startstoprestart}"
exit 1
esac
exit 0
# chmod 755 /etc/rc.d/init.d/qmaild
# /sbin/chkconfig --add qmaild
*受信側の設定 [#i57765b9]
受信するホストを設定するのは /var/qmail/control/locals エ...
sv.xxxxx.co.jp
sv
localhost
xxxxx.co.jp
ここでは、svがマシン名、xxxxx.co.jpがドメイン名上から順番...
*送信側の設定 [#qf55a05a]
smtpに送られてきたメールを外向けに送信するのか、ローカル...
sv.xxxxx.co.jp
sv
localhost
xxxxx.co.jp
*ダブルバウンスの削除設定 [#x80744a9]
受信者、送信者ともに存在しないメールは破棄するようにする...
# touch /var/qmail/control/doublebounceto
*受信者の登録 [#nd95f844]
ここで設定しておくと yassu-fanとか、実際のメールアカウン...
Linux上のパスワードファイルをコピー
# cp /etc/passwd /var/qmail/users/passwd
# cd /var/qmail/users
# /var/qmail/bin/qmail-pw2u < passwd > assign
# vi assign
不要な行は削除する
=yassu:yassu:500:500:/home/yassu:::
+:yassu:500:500:/home/yassu:-::
=alias:alias:501:501:/var/qmail/alias:::
+:alias:501:501:/var/qmail/alias:-::
.
最後のドット[.]だけの行は、必要なので消さないこと
# /var/qmail/bin/qmail-newu
ユーザーデータベースである cdb が出来る後で、新しいアカウ...
*ヘルパーデーモンの設定 [#i376bd78]
qmailは単体としては動かないので tcpserver を使用する
http://cr.yp.to/tcpip.html
# cd /usr/local/src
# tar xvfz ucspi-tcp-0.88.tar.gz
# cd ucspi-tcp-0.88
# make
# make setup check
/usr/local/bin に tcpserver など実行ファイルが出来る
次にルールデータベースを作成
ここでは smtp専用のルールとして、/etc の中に tcp.smtp.txt...
# vi /etc/tcp.smtp.txt
127.0.0.1:allow,RELAYCLIENT=""
:allow
これで外からも繋げて、locals 等で設定した自分のドメイン以...
# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smt...
/etc/tcp.smtp.cdb ができればOK
*POP3サーバーの準備 [#b686f405]
qmail に付属している qmail-pop3d を使用~
http://cr.yp.to/checkpwd/install.html
# cd /usr/local/src
# tar xvfz checkpassword-0.90.tar.gz
# cd checkpassword-0.90
# make
# make setup check
*qmailの動作テスト [#wd9427c0]
sendmailが動いていれば停止
# /etc/rc.d/init.d/sendmail stop
qmailを起動
# /etc/rc.d/init.d/qmaild start
# echo to: root | /var/qmail/bin/qmail-inject
でメール送信確認
以下のサイト等で不正中継がちゃんとできなくなっているかど...
-%% http://www.nanet.co.jp/rlytest/relaytest.html %% (Not...
-http://www.rbl.jp/ (「ツール」の「第三者中継チェック」)
*sendmailの削除 [#r1fc6050]
sendmailが入っている場合は削除
# rpm -qa | grep sendmail
で、バージョンまで確認
# rpm -e sendmailx.xx.xx
で、削除
関連するRPMパッケージが入っていると、うまく削除できないの...
最後に、コマンドラインやcgiから使われるsendmailコマンドを...
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
参考 [[運用関連トラブルシューティング集:http://www.atmark...
*「-」から始まるメールアドレスに送信できない!? [#k25b26...
オプションが不正と判断されて落ちることがあります
Perlでメール送信した場合Apacheにはこのようなログが残り、...
sendmail: illegal option -- a
sendmail: usage: sendmail [ -t ] [ -fsender ] [ -Fname ]...
以下のようにして送信しましょう
/usr/lib/sendmail -- -hogehoge@example.com
*環境変数を活用する [#z8c18e59]
dot-qmailからプログラムにリダイレクトする場合は環境変数を...
Perl
-$ENV{'SENDER'} : 送信元
-$ENV{'RECIPIENT'} : 送信先
他にはこちらを参考 http://man.qmail.jp/jman8/qmail-comman...
*ローカルサーバーからのメール送信 OB25B対策 [#jdd2dbe3]
/var/qmail/control/smtproutes を作成
example.com:example.jp:587 username password
(ドメイン名:転送先:ポート番号 ユーザー名 パスワード)
#exlink
終了行:
#contents
*ソースのダウンロード [#rc4b12e4]
[[qmail-1.03.tar.gz:http://cr.yp.to/qmail.html]]
*下準備 [#a05abcae]
必要なディレクトリやグループ・アカウントを前もってつくっ...
mkdir /var/qmail
/usr/sbin/groupadd nofiles
/usr/sbin/useradd -g nofiles -d /var/qmail/alias alias
/usr/sbin/useradd -g nofiles -d /var/qmail -s /bin/false...
/usr/sbin/useradd -g nofiles -d /var/qmail -s /bin/false...
/usr/sbin/useradd -g nofiles -d /var/qmail -s /bin/false...
/usr/sbin/groupadd qmail
/usr/sbin/useradd -g qmail -d /var/qmail -s /bin/false q...
/usr/sbin/useradd -g qmail -d /var/qmail -s /bin/false q...
/usr/sbin/useradd -g qmail -d /var/qmail -s /bin/false q...
*インストール [#va629369]
make前に必要となるパッチを前もってダウンロード~
(undefined reference to `errno' というエラーを防ぐパッチ...
[[qmail-date-localtime.patch:http://www.ksknet.net/sample...
/usr/local/src に置いて展開
# tar xvfz qmail-1.03.tar.gz
# cd qmail-1.03
# patch < ../qmail-date-localtime.patch
# make
make時に次のようなエラーが出た場合
: undefined reference to `errno'
cdb.a(cdb.o)(.text+0xce): more undefined references to `...
collect2: ld はステータス 1 で終了しました
make: *** [tcpserver] エラー 1
さらにパッチをあてる必要がある。
([[参考:http://www.stackasterisk.jp/tech/systemConstruct...
[[ucspi-tcp-glibc.patch:http://www.stackasterisk.jp/tech/...
# patch < ../ucspi-tcp-glibc.patch
make時に次のようなエラーが出た場合
/lib64/libc.so.6: could not read symbols: Bad value
おまじないを実行してから再度 make
echo "gcc -O2 --include /usr/include/errno.h" > conf-cc
512バイト以上のDNS応答はエラーとなるようなので、qmail-103...
[[qmailでdeferral CNAME_lookup_failed_temporarily]]
インストール
# make setup check
*インストール後の設定 [#v87f46d8]
# ./config
# cat /var/qmail/control/me
として、正しいサーバー名がセットされていればOK
ダメな場合
# ./config-fast マシン名.ドメイン名(.comや.co.jpまで)
として、設定だけを完了
*メール用ディレクトリの作成 [#g2ad08ff]
実際にメールを使いたいアカウントになって作業する~
例えば、アカウント hogehoge の場合
# su hogehoge
$ cd
$ /var/qmail/bin/maildirmake ./Maildir
さらに、ホームディレクトリに .qmail というファイルを各ア...
メールをディレクトリに保存する場合
./Maildir/
メールを特定のアドレスへ転送する場合
&xxxx@example.com~
必要なアカウント分、この作業をしておく
さらに管理用のアカウントを /var/qmail/alias の中に設定し...
最低限必要なアカウント: ''root''、''mailer-daemon''、''p...
(rootアカウントに実行ファイル等を紛れ込まされるのを防ぐ...
実際には、
# su alias
でqmailのalias アカウントになってから、実際に、このエリア...
$ echo "&tanaka@xxxxxxx.co.jp" > .qmail-root
$ echo "&tanaka@xxxxxxx.co.jp" > .qmail-mailer-daemon
$ echo "&tanaka@xxxxxxx.co.jp" > .qmail-postmaster
以上で必須アカウントの登録は終了。~
あとは
$ echo "&yassu@xxxxxxx.co.jp" > .qmail-webmaster
とすれば webmaster@xxxxxxx.co.jp 宛のメールが yassu@xxxxx...
$ echo "&yakkun@xxxxxxx.co.jp" > .qmail-yassu
としておくと yassu@xxxxxxx.co.jp 宛のメールが yakkun@xxxx...
*起動スクリプトの準備 [#m955c961]
qmailの起動スクリプトをコピーして使用
# cp /var/qmail/boot/home /var/qmail/rc
# vi /var/qmail/rc
として、途中にある ./Mailbox の部分を ./Maildir/ &color(r...
次に、起動スクリプトを作成~
パスとファイル名は /etc/rc.d/init.d/qmaild
#!/bin/sh
############
# Startup script for the Qmail by Penta
#
# chkconfig: 345 55 15
# description: QMAIL SMTP & POP3サーバー
# processname: qmaild
# pidfile: /var/run/qmaild.pid
# filename /etc/rc.d/init.d/qmaild
#
# Source function library.
. /etc/rc.d/init.d/functions
# See how we were called.
case "$1" in
start)
echo -n "Starting qmaild: "
/usr/local/bin/tcpserver -H -R -x /etc/tcp.smtp....
-c 100 -u qmaild -g nofiles 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 \
/var/qmail/bin/splogger smtpd &
/usr/local/bin/tcpserver 0 pop3 \
/var/qmail/bin/qmail-popup マシン名.ドメイン名 \
/bin/checkpassword /var/qmail/bin/qmail-pop3d ...
/var/qmail/bin/splogger pop3d &
/var/qmail/rc &
echo "ok"
touch /var/lock/subsys/qmaild
;;
stop)
echo -n "Shutting down qmail: "
kill $(/sbin/pidof tcpserver)
kill $(/sbin/pidof qmail-send)
echo "ok"
rm -f /var/lock/subsys/qmaild
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {startstoprestart}"
exit 1
esac
exit 0
# chmod 755 /etc/rc.d/init.d/qmaild
# /sbin/chkconfig --add qmaild
*受信側の設定 [#i57765b9]
受信するホストを設定するのは /var/qmail/control/locals エ...
sv.xxxxx.co.jp
sv
localhost
xxxxx.co.jp
ここでは、svがマシン名、xxxxx.co.jpがドメイン名上から順番...
*送信側の設定 [#qf55a05a]
smtpに送られてきたメールを外向けに送信するのか、ローカル...
sv.xxxxx.co.jp
sv
localhost
xxxxx.co.jp
*ダブルバウンスの削除設定 [#x80744a9]
受信者、送信者ともに存在しないメールは破棄するようにする...
# touch /var/qmail/control/doublebounceto
*受信者の登録 [#nd95f844]
ここで設定しておくと yassu-fanとか、実際のメールアカウン...
Linux上のパスワードファイルをコピー
# cp /etc/passwd /var/qmail/users/passwd
# cd /var/qmail/users
# /var/qmail/bin/qmail-pw2u < passwd > assign
# vi assign
不要な行は削除する
=yassu:yassu:500:500:/home/yassu:::
+:yassu:500:500:/home/yassu:-::
=alias:alias:501:501:/var/qmail/alias:::
+:alias:501:501:/var/qmail/alias:-::
.
最後のドット[.]だけの行は、必要なので消さないこと
# /var/qmail/bin/qmail-newu
ユーザーデータベースである cdb が出来る後で、新しいアカウ...
*ヘルパーデーモンの設定 [#i376bd78]
qmailは単体としては動かないので tcpserver を使用する
http://cr.yp.to/tcpip.html
# cd /usr/local/src
# tar xvfz ucspi-tcp-0.88.tar.gz
# cd ucspi-tcp-0.88
# make
# make setup check
/usr/local/bin に tcpserver など実行ファイルが出来る
次にルールデータベースを作成
ここでは smtp専用のルールとして、/etc の中に tcp.smtp.txt...
# vi /etc/tcp.smtp.txt
127.0.0.1:allow,RELAYCLIENT=""
:allow
これで外からも繋げて、locals 等で設定した自分のドメイン以...
# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smt...
/etc/tcp.smtp.cdb ができればOK
*POP3サーバーの準備 [#b686f405]
qmail に付属している qmail-pop3d を使用~
http://cr.yp.to/checkpwd/install.html
# cd /usr/local/src
# tar xvfz checkpassword-0.90.tar.gz
# cd checkpassword-0.90
# make
# make setup check
*qmailの動作テスト [#wd9427c0]
sendmailが動いていれば停止
# /etc/rc.d/init.d/sendmail stop
qmailを起動
# /etc/rc.d/init.d/qmaild start
# echo to: root | /var/qmail/bin/qmail-inject
でメール送信確認
以下のサイト等で不正中継がちゃんとできなくなっているかど...
-%% http://www.nanet.co.jp/rlytest/relaytest.html %% (Not...
-http://www.rbl.jp/ (「ツール」の「第三者中継チェック」)
*sendmailの削除 [#r1fc6050]
sendmailが入っている場合は削除
# rpm -qa | grep sendmail
で、バージョンまで確認
# rpm -e sendmailx.xx.xx
で、削除
関連するRPMパッケージが入っていると、うまく削除できないの...
最後に、コマンドラインやcgiから使われるsendmailコマンドを...
# ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
参考 [[運用関連トラブルシューティング集:http://www.atmark...
*「-」から始まるメールアドレスに送信できない!? [#k25b26...
オプションが不正と判断されて落ちることがあります
Perlでメール送信した場合Apacheにはこのようなログが残り、...
sendmail: illegal option -- a
sendmail: usage: sendmail [ -t ] [ -fsender ] [ -Fname ]...
以下のようにして送信しましょう
/usr/lib/sendmail -- -hogehoge@example.com
*環境変数を活用する [#z8c18e59]
dot-qmailからプログラムにリダイレクトする場合は環境変数を...
Perl
-$ENV{'SENDER'} : 送信元
-$ENV{'RECIPIENT'} : 送信先
他にはこちらを参考 http://man.qmail.jp/jman8/qmail-comman...
*ローカルサーバーからのメール送信 OB25B対策 [#jdd2dbe3]
/var/qmail/control/smtproutes を作成
example.com:example.jp:587 username password
(ドメイン名:転送先:ポート番号 ユーザー名 パスワード)
#exlink
ページ名: