センリュウのホームページへ ようこそ!
LINUXでインターネットサーバー構築 続編1
第一部 sendmailからqmailに切り替える
●sendmailの停止
・sendmailサービスの停止。
・/usr/sbin/sendmailのパーミッション設定を実行停止にする。
●qmail-1.03のインストール
@必要なファイル群をダウンロードし解凍。
qmail ftp://ftp.jp.qmail.org/qmail/qmail-1.03.tar.gz
patchfile ftp://ftp.nlc.net.au/pub/unix/mail/qmail/qmail-data-localtime.patch
A解凍したqmailにパッチをあてる(data-localtime.patch)。
qmail-1.03のディレクトリにパッチファイルを置き、そのディレクトリで
# patch < パッチファイル名
すると date822fmt.c にパッチがあたる。
B/var/qmail/ディレクトリを作る(パーミッションは755=rwxr-xr-x)。
Cユーザ、グループの作成
まず、/etc/shellsファイルに/bin/trueを追加しておく。
グループ
nofiles
qmail
ユーザ
alias(/bin/bash、/var/qmail/alias、nofiles)←(シェル、ホームディレクトリ、所属グループ)
qmaild(/bin/true、/var/qmail、nofiles)
qmaill(/bin/true、/var/qmail、nofiles)
qmailp(/bin/true、/var/qmail、nofiles)
qmailq(/bin/true、/var/qmail、qmail)
qmailr(/bin/true、/var/qmail、qmail)
qmails(/bin/true、/var/qmail、qmail)
D展開したqmailのディレクトリ(/qmail-1.03/)で
# make
# make man
# make setup
# make check
これで /var/qmail/ にインストールされる。
E/var/qmail/control/のファイルを設定するスクリプトを実行(実行ディレクトリは/qmail-1.03/のまま)
# ./config-fast ns.kaisha.co.jp (config-fastは実行ファイルにしておく)
これで、qmailはホストns、ドメインkaisha.co.jpあてのメールを受け取ることができるようになる。
Fエイリアスの登録
qmailではrootあてなどのメールは直接受け取れないので、代行ユーザーに転送するようにする。
実行ディレクトリを /var/qmail/alias/
に移して、以下のファイルを作成する。
# touch .qmail-postmaster
# touch .qmail-mailer-daemon
# touch .qmail-root
# chmod 644 .qmail* (以上のファイルのパーミッションの設定=rw-r--r--)
作成したこれらのファイルに「&foo@another.co.jp」等と書き込んでおくと、foo@another.co.jpに転送される。
G起動ファイルのコピー(/var/qmail/boot/home を /var/qmail/ に rc名でコピー)
実行ディレクトリを /var/qmail/boot/ に移して
# cp home ../rc
デフォルトではMailbox形式で起動するようになっている。
Hqmail デーモンの起動(手動起動)
# csh -cf /var/qmail/rc &
シェルスクリプトで@からGまで自動実行
まず、ディスクトップに/qmailフォルダを作り、ここにダウンロードした圧縮ファイルqmail-1.03.tar.gzとlocaltime.patchを置いておく。
|
#! /bin/bash |
●qpopper3.0.2のインストール(Mailbox形式)
・/usr/sbin/sendmailがインストールで必要となるので、パーミッションを実行可能に戻しておく(起動はしなくてよい)。
・ftp://ftp.qualcomm.com/eudora/servers/unix/popper/よりqpopper3.0.2をダウンロード→解凍する。
・# ./configure --enable-home-dir-mail=Mailbox --enable-specialauth
・# make
・できた ./popper/popper を /usr/sbin/ にコピー。所有 root 755(rwxr-xr-x)
・/usr/sbin/sendmailのパーミッションを実行停止にする。
・xinetdの設定(/etc/xinetd.d/pop-3)
service pop3
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/popper
server_args = -s
only_from += *.*.*.* (*.*.*.*には適切なアドレスを記入)
}
APOP仕様の場合
・# ./configure --enable-apop=/etc/pop.auth --with-popuid=pop --enable-home-dir-mail=Mailbox
--enable-specialauth
・# make
・できた ./popper/popper と ./popper/popauth を /usr/sbin/ にコピー。
/usr/sbin/popper 所有 root 755(rwxr-xr-x)
/usr/sbin/popauth 所有 pop 4711(SUIDrwx--x--x)
・# /usr/sbin/popauth -init (APOPで使用するデーターベースファイルを初期化する)
●APOPのユーザー登録
# /usr/sbin/popauth -user *** (削除は# /usr/sbin/popauth -delete ***)
●各種設定
@セキュリティ(tcpserverの導入)
qmailではtcoserverを推奨しているので、xinetdではなくtcpserverを使うことにする。
・インストール
http://cr.yp.to/ucspi-tcp.html
/ucspi-tcp/install.html などを参照しながら、最新のものをダウンロード。
いまのところ ucspi-tcp-0.88.tar.gz が最新。
解凍、展開したら、
# make
# make setup check
/usr/local/bin/にtcpserver、tcpclient、tcprules、tcprulescheckがインストールされる。
・起動スクリプト
/etc/rc.d/rc.localの最後に次の内容を書き込んでおく。
/usr/local/bin/tcpserver -x /etc/qmail/rules.cdb -u 501 -g 500 0 smtp /var/qmail/bin/qmail-smtpd &
/etc/qmail/rules.cdbは、アクセスのコントロールを行うファイル。
-u 501は、qmaildのユーザーID。適切な値に変えておくこと。
-g 500は、nofilesのグループID。適切な値に変えておくこと。
手動で起動する場合も、これを実行してやればよい。
・アクセス制御ファイルの作成
/etc/qmail/rules.txtを作る。
127.0.0.1:allow,RELAYCLIENT=””
192.168.0.:allow,RELAYCLIENT=””
*.*.*.*:allow,RELAYCLIENT=”” (*.*.*.*の部分にはリレーを許可するIPアドレスを入れる)
:allow
内容を書き込んだら、次を実行してrules.cdbを作る。
# /usr/local/bin/tcprules /etc/qmail/rules.cdb /etc/qmail/rules.tmp < /etc/qmail/rules.txt
A仮想ドメインの使用
・/var/qmail/control/rcpthostsファイルに受け付けるドメインを書き込む。
kaisha.co.jp
kaisha1.co.jp
kaisha2.co.jp
・/var/qmail/control/virtualdomainsファイルを作り、仮想ドメインをだれが処理するか記述する。
kaisha1.co.jp:user1
kaisha2.co.jp:user2
・qmail-sendにHUPシグナルを送り、以上の設定を有効にしておく。
・***@kaisha1.co.jpに来たメール(***はユーザーや適当な名称)をuser1が受け取るには、/home/user1/に
.qmail-***というファイルを作成し、以下の内容を書き込んでおく。
/home/user1/Mailbox.
これで、user1のMailboxファイルに***@kaisha1.co.jpあてのメールが届くようになる。
user3に転送したい場合は、&user3@kaisha.co.jpと書き込んでおくと、user3のMailboxファイルに***@kaisha1.co.jpあてのメールが届くようになる。
(***は別の仮想ドメインあてのものと重なってもよい。)
Bqmailデーモンが起動時に自動起動するようにする。
/etc/rc.d/rc.localファイルの最後に次の内容を加える。
# qmail boot-up
if [ -f /var/qmail/rc ]
then
/bin/csh -cf /var/qmail/rc &
fi
第二部 sendmailからpostfixに切り替える(FedoraCore2の場合)
FedoraCore2ではデフォルトのMTAがsendmailになっているので、これをpostfixに切り替える。
sendmailサービスをストップする。
# /usr/sbin/alternatives --config mta
ここでpostfixに切り替える。
sendmailサービスが消えて、postfixサービスが登録される。
●設定ファイル
Maildir形式、SSL/TLS(saslauthdサービス)認証使用。
@/etc/postfix/aliases
これはsendmailと同じもの。転送 root: foo 等。
編集したら、# newaliases (newaliases.postfixにリンクしている)を実行しておく。
A/etc/postfix/master.cf
postfix全体の制御。配送に利用する様々なサービス(/usr/libexec/postfix/にある。smtpやlocal、virtualなど。)をコントロールする。
B/etc/postfix/main.cf(『FedoraCore2』p456〜) デフォルト値は、main.cf.default参照。
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
myhostname = p2-2.onjp.net 自ホスト
mydomain = ns.kaisha.cp.jp ドメイン
inet_interfaces = 333.139.162.226 192.168.0.1 メールを受け付けるインターフェイス。この場合allでもよい。これがlocalhostだと外部からのメールは受け付けなくなる。
mydestination = $myhostname, localhost.$mydomain どの宛先のメールを自ホストで最終的に受け取るか。
unknown_local_recipient_reject_code = 450
mynetworks_style = host 信頼できるネットワーク(無条件で受け付ける=リレー許可)。デフォルトはsubnet。
mynetworks = 192.168.0.0/24, 127.0.0.0/8 信頼できるネットワーク
#relay_domains = $mydestination 最終的な宛先ではないが中継してかまわない宛先
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
home_mailbox = Maildir/ ユーザーのメールボックスにmaildir形式で配送(~/Maildir/new/)
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.0.18/samples
readme_directory = /usr/share/doc/postfix-2.0.18/README_FILES
smtpd_sasl_auth_enable = yes
#smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
permit_mynetworks
permit_auth_destination
permit_sasl_authenticated
reject
smtpd_tls_cert_file = /usr/share/ssl/certs/kaisha.pem
smtpd_tls_key_file = /usr/share/ssl/certs/kaisha.pem
#smtpd_tls_session_cash_database = sdbm:/etc/postfix/smtpd_scache
smtpd_tls_loglevel = 3
smtpd_use_tls = yes
●バーチャルドメイン
/etc/postfix/virtualの編集
bbb.com anything
info@bbb.com user1
postmaster@bbb.com postmaster
ccc.com anything
info@ccc.com user2
postmaster@ccc.com postmaster
編集したら、# postmap /etc/postfix/virtual
●pop3関係
FedoraCore2では、dovecotサービスを使う。
/etc/dovecot.confの編集
protocols = imap imaps pop3 pop3s
……………
ssl_disable = no
ssl_cert_file = /usr/share/ssl/certs/kaisha.pem
ssl_key_file = /usr/share/ssl/certs/kaisha.pem
●SSL関係
証明書の作成
# cd /usr/share/ssl/certs
# make kaisha.pem
●ポート関係
995/tcpはinput、outputともに開けておく。(pop3+SSLに必要)
465/tcpも同様。(SMTP over SSL)
25/tcpも同様。(サーバー間のSMTP)
110/tcpは閉じてよい。
●windowsクライアント側の設定
アカウント→サーバー 送信メールサーバー 「認証が必要」をチェック
→詳細設定 SMTP 25 「SSLが必要」をチェック
POP3 995 「SSLが必要」をチェック
履歴 2004/11 修正およびpostfixの追加