| qmailの応用 | 2003/01/05 (Sun) ▽ |
|
|
メール受信のために必要な設定とは
メールサーバーにメールが届くためには、smtpがリレーを拒否しないように設定する必要があります。 tcpserver(具体的には ucspi-tcp-VERSION.tar.gzをインストールし、ファイルsmtpd_rules.cdbが作成され、tcpserverが正常に起動している状態)を利用したqmailでは、リレーを許可するように
/etc/tcpserver/smtpd_rules /var/qmail/control/rcpthosts
を変更します。 不正な"第三者中継"の被害例もありますので、LAN内部などに限定した利用を強く推奨します
smtpd_rules : IP アドレス、ドメイン名 rcpthosts : ホスト名
を指定できます。複数の場合、必ず改行します。また、rcpthostsでは、ワイルドカードを使用できますが、サブドメインなどをできるだけ詳細に入力した方がよいです。
例 /etc/tcpserver/smtpd_rules ---------------------------------- 127.0.0.1:allow,RELAYCLIENT="" 192.168.1.:allow,RELAYCLIENT=""
=.example1.co.jp:allow,RELAYCLIENT="" =.noexistence.ne.jp:allow,RELAYCLIENT=""
210.130.52:allow,RELAYCLIENT="" 210.145.:allow,RELAYCLIENT=""
:allow ----------------------------------- イントラネット(LAN)を使用するとき、ローカルIP 192.168.1. 192.168.など入力します。127.0.0.1 はlocalhost :allow を追加することで、/var/qmail/control/rcpthosts も許可されます。
例 /var/qmail/control/rcpthosts -------------------------- dns.example.jp po.testexample.jp .noexistence.or.jp
--------------------------- dns.example.jp :qmailのホスト名です。
/etc/tcpserver/pop3d_rules からpop3d_rules.cdbを作成し、pop3d ないし apop を起動すると、サーバー内のメールをクライアントにダウンロードできます。
例 /etc/tcpserver/pop3d_rules ---------------------------- 127.0.0.1:allow 192.168.1.:allow 210.153.1.:allow 202.222.94.:allow :deny ----------------------------- ローカルIP、グローバルIP(指定プロバイダーないし固定IP)からのみ接続できる設定です。 なお、deny ⇒ allow に変更すると、サーバーのユーザーネームとパスワードでメール受信、サーバー内アクセスすべて可能となり、しかもパスワードはインターネット上、平文(暗号化なし)で通知されますのでとても危険です。 qmailをインターネット上で利用する際、apop(受信時、暗号化されたメール受信専用パスワードを用いる)を推奨します。checkpw-VERSION.tar.gz のインストールが必要です。
|
|
| php+sendmail | 2003/01/12 (Sun) ▽ |
|
|
プログラム・iniファイルの場所
/usr/sbin/sendmail /usr/bin/perl /usr/local/lib/php.ini /var/qmail/bin/sendmail
OS FreeBSDでは、MTAのデフォルトとして sendmail が用いられています。OS インストール時にセキュリティプロファイル(Firewall) mediumを選択すると、sendmailは自動起動します。
ページ言語 php で書かれた PHP-Nuke, osCommerceなどのオープンソース上で、メール送受信を有効にするために、最初に、php.iniを編集します。
# vi /usr/local/lib/php.ini
614行目あたり ;;;;;;;;;;;;;;;;;;;;;;;;; ; Module Settings ;;;;;;;;;;;;;;;;;;;;;;;;;
[mail function]
;sendmail_path =
の行頭 コメント# を削除し、以下のように設定します。
sendmail_path = /usr/sbin/sendmail -t
php.iniの変更を有効にするため、再起動します。 apacheサーバーが起動している状態でDocumentRoot内に ファイル名test.phpの関数を作成しアクセスします。
<?php phpinfo( ); ?>
phpの環境設定が表示されますので、項目 standard 内にある "Path to sendmail"などチェックします。
|
|
| php+qmail | 2003/01/12 (Sun) ▽ |
|
|
次に、メールサーバーに qmail を使用する場合、sendmailの自動起動などを停止します。
# ps ax | grep sendmail
プロセスID [PID]を調べて、
# kill 数字[PID}
停止を確認します。
# ps ax | grep sendmail #
何も表示されなければ OK ですので、次に
# vi /etc/rc.conf 最終行に最も近いところにある
sendmail_enable="YES"
を変更します
sendmail_enable="NONE" (または、"NO")
編集後
# cd /usr/local/sbin/ # ls -la | more
mailwrapper,sendmail のパーミッションを記録し、
# chmod 0 mailwrapper # chmod 0 sendmail
とします。また、
# mv -i sendmail sendmail.default
ファイル名を変更しておきます。
同様に、以下の2つのファイルも実行権などすべて停止します。 デフォルトのパーミッションを記録後、
# chmod 0 /usr/libexec/mail.local # chmod 0 /usr/libexec/sendmail/sendmail
php.iniでの設定が有効となるように、qmailにsendmailとの互換性を与えます。
# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
シンボリックリンク作成後、確認します。
# echo to:メールアドレス(ないしユーザー名) | /var/qmail/bin/sendmail -t
rootからのメールが受信できれば、テスト成功です。
|
|
| qmailをpop before smtpで使うために | 2003/01/16 (Sun) ▽ |
|
|
qmailを"apop+pop befor smtp" ないし "pop before smtp" で使用するためには、フリーソフト relay-ctrlをインストールし、qmail設定の一部を変更します。
(relay-ctrl バージョン3 以上では 自動起動のためにフリーソース daemontools が必須です) 。 ソース入手先:
relay-ctrl-3.1.1.tar.gz daemontools-0.76.tar.gz
最初に daemontools をインストールします。
# tar xvzf daemontools-0.76.tar.gz # cd daemontools-0.76/admin/ # package/install
次に、relay-ctrl をインストールします。
# tar xvzf relay-ctrl-3.1.1.tar.gz # cd relay-ctrl-3.1.1 # make # ./installer
ディレクトリを作成します。
# mkdir /var/qmail/relay-ctrl # chmod 700 /var/qmail/relay-ctrl
# mkdir /var/qmail/relay-ctrl/spool # chmod 777 /var/qmail/relay-ctrl/spool
# mkdir /etc/relay-ctrl
設定します。
# echo "/var/qmail/relay-ctrl/" > /etc/relay-ctrl/RELAY_CTRL_DIR # echo '900' > /etc/relay-ctrl/RELAY_CTRL_EXPIRY
接続IPアドレスのメモリー時間を秒単位で指定します(たとえば、900秒=15分)。指定時間内であれば、同一メールクライアント、ローカルネットであれば、2回目以降の "受信⇒送信" 操作は不要で、直ちに、送信のみ可能となります。しかし、通常のダイアルアップ接続では、グローバルIPアドレスは固定ではありませんので、指定時間内であっても、インターネット接続を一回切断すると、再度受信⇒送信" 操作が必要です。
接続IPアドレスのメモリーを定時的に整理するため、crontab を編集します。
# crontab [ -u "user" ] -e
ただし、環境変数 VISUAL (ないしEDITOR) で指定されているエディタがなければ、編集後自動インストールするオプション -e は無効ですので、
# cd /etc/crontab の後、 */5 * * * * /usr/local/bin/envdir /etc/relay-ctrl /usr/local/bin/relay-ctrl-age
これは5分毎にチェックする設定です。
tcpserver を停止します。 (具体的には ucspi-tcp-VERSION.tar.gzをインストールし、ファイルsmtpd_rules.cdbおよびapopd_rules.cdbが作成され、tcpserver 自動起動スクリプト(run file)があるサーバー)
# ps ax | grep tcpserver smtpd および pop3d(apopdも同じ名称) 両方のPIDを確認し、killコマンドで停止します。
# kill [PID"smtpd"] # kill [PID"pop3d"]
# ps ax | grep tcpserver #
何も表示されないことを確認します。
qmail専用 tcpserver 自動起動スクリプト(run file)を編集します。 ¥を改行に使用しないときは、[Enterキー][Returnキー]を使わないで一行で入力します。
# cd /usr/local/etc/rc.d/
//// tcpserver_smtpd.sh ////
#!/bin/sh
echo -n 'qmail-smtpd starting.' /usr/local/bin/envdir /etc/relay-ctrl relay-ctrl-chdir ¥ /usr/local/bin/tcpserver -x /etc/tcpserver/smtpd_rules.cdb -v -u [qmail uid] -g [nofiles gid] 0 smtp ¥ relay-ctrl-check /var/qmail/bin/qmail-smtpd 2>&1 | ¥ /var/qmail/bin/splogger smtpd 3 &
//// tcpserver_apopd.sh ////
#!/bin/sh
echo -n 'qmail-apopd starting.' /usr/local/bin/envdir /etc/relay-ctrl relay-ctrl-chdir ¥ /usr/local/bin/tcpserver -x /etc/tcpserver/pop3d_rules.cdb 0 pop3 /var/qmail/bin/qmail-popup [qmailのホスト名] /bin/checkapoppw ¥ relay-ctrl-allow /var/qmail/bin/qmail-pop3d Maildir 2>&1 | ¥ /var/qmail/bin/splogger apop 3 &
//// tcpserver_pop3d.sh ////
#!/bin/sh
echo -n 'qmail-pop3d starting.' /usr/local/bin/envdir /etc/relay-ctrl relay-ctrl-chdir ¥ /usr/local/bin/tcpserver -x /etc/tcpserver/pop3d_rules.cdb 0 pop3 /var/qmail/bin/qmail-popup [qmailのホスト名] /bin/checkpassword ¥ relay-ctrl-allow /var/qmail/bin/qmail-pop3d Maildir 2>&1 | ¥ /var/qmail/bin/splogger pop3d 3 &
編集終了後、
# ls -la -rwxr-xr-x (755) 使用するファイル -rw-r--r-- (644) 使用しないファイル
でなければ chmod コマンドで変更します。
編集後、tcpserverを手動で起動します。
# /usr/local/etc/rc.d/tcpserver_smtpd.sh # /usr/local/etc/rc.d/tcpserver_apopd.sh <= pop3d.shでなければ # /usr/local/etc/rc.d/tcpserver_pop3d.sh <= apopd.shでなければ
なお、同一ディレクトリ内の qmail.sh は qmail自体の自動起動スクリプトです。
# ps ax | grep tcpserver # ps ax | grep qmail
正しく起動していることを確認します。
----- 他のインストールステップは、 「ステップ式サーバー構築入門 はじめての qmail 」 著者 中村文則 出版所 技術評論社 などでお確かめ下さい。
|
|
|