4.2 サーバーサービスのセキュア化
|
||
前のページへ |
電子メールはインターネットで使われるアプリケーションの中でも、頻繁に利用されるアプリケーションの1つである。電子メールはSMTP(Simple Mail Transfer Protocol)によって電子メールの送信や中継、転送を実現する。この機能を有するサーバーをSMTPサーバーまたはメールサーバーと呼ぶ。SMTPサーバーはメールを送信や中継、転送するためにインターネットからのアクセスを受け入れなければならず、そのため攻撃の対象になる可能性が非常に高い。
本モデルではSMTPサーバーとしてqmailをインストールし、不正中継防止も含めた設定を実施する。代表的なSMTPソフトウェアにSendmailがあるが、Sendmailは非常に複雑な仕組みで構成されているので、Sendmailの運用には高度な管理能力を必要とする。それに比べ、qmailはシンプルな仕組みになっており、運用管理のコストも低く押さえることができる。また、qmailは数あるSMTPサービスの中でも、実行速度やセキュリティの面で優れている部分が多い。
本モデルでは、以下の留意点を考慮したSMTPサービスの運用を行う。
メールの第三者不正中継とは、SMTPサーバーが運用上許可しない第三者のメール送信に利用されてしまうことである。この不正中継を利用して送信するジャンクメールを一般にSPAMメールと呼ぶ。本モデルでは、明示したネットワークアドレスのメールクライアント以外からのメールの中継を禁止する。
参考資料
情報処理振興事業協会 セキュリティセンター(IPA/ISEC)
「小規模サイトをとりまく脅威と現状」:
http://www.ipa.go.jp/security/fy12/contents/crack/soho/soho/chap1/spam.html
配送されたメールをローカルに保存せず転送するだけに留めておくことでSMTPサーバー上にユーザのローカルアカウントを作成する必要がなくなり、安全性が向上する。本モデルのSMTPサーバーは、メール転送機能のみを提供する。
本モデルではSMTPサーバーとしてqmailを使用するが、qmailでは内包されているsendmail互換コマンドを使用するため、Solarisに標準で付属しているsendmailは不要となる。不要なパッケージは削除するのが望ましいのでsendmailパッケージを削除する。
本モデルでは、qmailのバージョン1.0.3を用いて解説する。また、メールの不正中継を防止するためにtcpserverというツールを併用する。tcpserverも以下のサイトから入手でき、ここではバージョン0.88を用いて解説する。
qmail入手先:
http://www.qmail.org/
qmail用のアカウント/グループを以下の手順にしたがい作成する(注1) 。
---qmail用アカウント/グループの作成--- |
(注1) | qmailは専用のアカウントとグループを作成してその権限で起動する。これはqmailを利用した不正アクセスが行われた場合に、被害を最小限にするためである。 |
(注2) | gidとuidは任意であるので、システムによって変更可能である。 |
以下の手順で、入手したアーカイブを展開し、手順でコンパイル、インストールする。なお、インストール作業はroot権限で行う必要がある。
---アーカイブの展開--- |
qmailのソースの修正を行う。qmailのコンパイル時に使用されるコンパイラをGNU Cコンパイラに変更し、リンカもGNU Cコンパイラに変更する。修正するファイルは「conf-cc」、「conf-ld」の2つである。
---conf-cc--- ---conf-ld--- |
---コンパイルとインストール--- |
tcpserverのインストールは、以下の手順で、入手したアーカイブを展開し、手順でコンパイル、インストールする。なお、インストール作業はroot権限で行う必要がある。
---アーカイブの展開--- |
tcpserverのソースの修正を行う。qmailと同様にコンパイラとリンカをGNU Cに変更する。修正するファイルは「conf-cc」、「conf-ld」の2つである。
---conf-cc--- ---conf-ld--- |
---コンパイルとインストール--- |
qmailの起動設定と動作設定を行う。本モデルでは「1)運用方針」にしたがってア)からオ)の設定を行う。
システム起動時にqmailが自動的に起動されるように設定する。/etc/rc2.dディレクトリ配下に起動スクリプト「S99qmailboot」を作成する。スクリプトの内容は以下のとおり。
#!/bin/sh /usr/local/bin/tcpserver -x /usr/local/etc/tcp.smtp.cdb -u 777 -g 50003 0 smtp var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 & (注3) exec env - PATH="/var/qmail/bin:$PATH"
\ |
(注3) | スクリプト内の数値「777」はqmaildのUID、「50003」はqmaildのGIDである。環境によって値が異なるので/etc/passwdなどでqmaildのUIDを調べてその値を記述する。 |
スクリプトファイル作成後、実行権限を与えるため、以下のコマンドを実行する。
# chmod 744 S99qmailboot |
qmailの設定ファイルとして作成するのは/var/qmail/controlディレクトリ下の5つのファイルで、ファイル名とそれぞれの記述内容はTable 4.19のとおりである。また、本モデルにおける各設定ファイルの内容は「qmail設定ファイル」参照する。
Table 4.19 qmail設定ファイルの種類
ファイル名 | 解説 |
me | qmailが稼動するホストのFQDN(Fully Qualified Domain Name)を記述する |
rcpthosts | qmailが受信するメールのホスト名とドメイン名を記述する |
locals | qmailが受信するメールのホスト名とドメイン名を記述する |
queuelifetime | メールがキューに保存される時間 |
defaultdomain | メールの送信先(To:)にドメイン名が無い場合に補完するドメイン名を記述する |
明示したIPアドレスからのみ中継を許可する設定を作成する。設定ファイルは/usr/local/etc/tcp.smtpで、以下のように設定する。
---/usr/local/etc/tcp.smtp--- |
上記の設定ファイル作成後、tcpserverで使用する固有のデータベース形式に変換するため、以下のコマンドを実行する。
# /usr/local/bin/tcprules /usr/local/etc/tcp.smtp.cdb /usr/local/etc/tcp.smtp.cdb.tmp < /usr/local/etc/tcp.smtp |
本モデルではネットワークアドレス「192.168.0.0 mask 255.255.255.0」に属するホストからメールの中継を許可するように設定する。これらのホストからのメールは、外部のドメイン宛であっても配送するが、それ以外のホストからのメールは、rcpthostsに記述したホスト、ドメイン宛のメールのみ配送するようになる。この仕組みによって、外部ドメインから外部ドメインへメールが不正中継されるのを防止している(注4)。
(注4) | rcpthostsファイルが無いか設定にミスがあった場合、不正中継が可能になってしまうため、注意が必要である。 |
qmailにはsendmailコマンドと互換性のあるコマンドが内包されているため、Solaris標準のsendmailは不要である(qmailの動作に関するかぎり)。以下の方法でsendmailをアンインストールし、qmail付属の互換コマンドへのリンクを作成する。
# pkgrm SUNWsndmu |
受信したメールを指定したメールアドレスに転送する設定を作成する。ここでは「virtual@ipa.go.jp」宛てのメールを「real@in.ipa.go.jp」に転送する場合の設定を行う。
# cd /var/qmail/alias |
Apache+mod SSLのインストールと設定 |
第4章の目次
|
第5章の目次
|
Copyright © 2002 Information-technology Promotion Agency, Japan. All rights reserved.