Tomcatはどこまで“安全”にできるのか?(1)

“安全”のために
Tomcatを理解し、構築し、動作させる


アメニクス
x-lab チーム
2007/10/11


無料サーバはどこまで安全にできるのか?

今回の主な内容
Tomcatについて人に説明できますか?
CentOS 5.0に最新Tomcatをセットアップ
Tomcatを自動的に起動するには?
TomcatとApacheを連携させるmod_proxy_ajp
「Hello World!」を表示してみよう
Tomcat 6の新機能と運用に関する設定

 近年、Linux上でサーバを構築・公開する方が多くなってきていますが、中途半端な設定のサーバを公開することで会社の情報資産が危険にさらされることがよくあります。

 そんな中、基本的に無料のOSであるLinuxサーバと、同じく無料で利用できるアプリケーションで、世界中において高いシェアを誇るTomcatを用い、「無料でどこまで製品サーバのセキュリティに迫れるか?」「どこまで安全にWebアプリケーション構築ができるか?」をこの連載を通して追っていきたいと思います。

 第1回は、そもそもTomcatとは何かを解説し、Tomcatの最新版の新機能とそのセットアップの仕方や自動起動の方法、Apacheと連携させる方法などを紹介します。

Tomcatについて人に説明できますか?

 Tomcatとは、Webサーバ向けのソフトウェア開発に特化したApache Software Foundation(Apachソフトウェア財団、ASF)が保有するトップレベルプロジェクトの1つで、サーブレットJSPを動作させるためのWebコンテナです。

おさらい 「サーブレット/JSPの仕組み」

サーブレットとは、サーバ側で動作するJavaのクラスで、クライアントのWebブラウザから送られたHTTPのリクエスト要求に対してサーブレット上のプログラムが動的にコードを構築して結果を返す仕組みとなっています。サーブレットは一度サーバ上でロードされると、クライアントからの要求に対してはマルチスレッドで応答する仕組みになっており、リクエストのたびにプロセスを起動しないため高速に動作するのが特徴です。
JSPもサーブレットと同様にサーバ側で動作し、クライアントのWebブラウザから送られたHTTPのリクエスト要求に対してJSPプロセッサがプログラムを実行して動的にコードを構築して結果を返す仕組みとなっています。JSPは初回のアクセス時にサーブレットを生成する仕組みになっています。サーブレットを実行した結果を返す仕組みとなっているため、サーブレットと動作は基本的に変わりません。
編集部注サーブレットJSPについて詳しく知りたい読者は、連載「基礎から学ぶサーブレット/JSP」をご参照ください。

 Tomcatは、開発当初は米Sun Microsystems社によるサーブレット/JSPのリファレンス実装であるJSWDK(Java Server Web Development Kit)の寄付により発足した「Jakartaプロジェクト」により開発が行われてきました。そのため、現在の一般的な通称である「Apache Tomcat」ではなく「Jakarta Tomcat」とも呼ばれています。

Tomcatの特徴

 Tomcatの特徴には、前述のとおり世界中で高いシェアを誇るオープンソース(=無料で利用できる)のプロジェクトであることが挙げられます。

 また、Tomcat自体には自分自身が単体(スタンドアロン)動作するための簡易的なWebサーバ機能を持つことや、ほかのWebサーバとの連携機能が充実していることからも世界中で開発環境や企業の公開用サーバとして利用されています。

 このように特徴的なTomcatにおいて、2007年の3月に最新版であるTomcat 6.xシリーズの安定版がついにリリースされました。

最新版Tomcat、6.x系の改善点

 Tomcat 6.xと以前のTomcat 5.x系列とでは大きくいくつかの点で改善があります。

  • サーブレット 2.5およびJSP 2.1のサポート
  • APR(Apache Portable Runtime)、New I/O APIの取り込みによる入出力機能の拡張
  • Java SE 5以上が必須になった
  • デフォルトのディレクトリ構成の変更
  • ロギングAPIのパッケージ名の変更
  • クラスタリング設定のリファクタリング
  • HTTPコネクタのメモリ使用量を低減
  • AJP(Apache JServ Protocol)コネクタPacketSizeオプションの追加
  • AprLifecycleListenerSSLEngine属性を追加
  • Dynamic MBeanを使用するようにモジュールを修正
  • 多くのコネクタにKeepAliveTimeout属性を追加

 今回はさらなる進化を遂げるTomcatの最新版を導入してみましょう。

CentOS 5.0に最新Tomcatをセットアップ

 それでは、実際にTomcatのインストールに取り掛かりましょう。

CentOS 5.0を使う

 今回、インストールに利用するOSはTomcatと同じく無償の「CentOS 5.0」(Linuxディストリビューションの1つ)を利用します。

図1 CentOSのトップページ
図1 CentOSのトップページ
編集部注CentOSについて詳しく知りたい読者は、Linux Tipsの「Red Hat Enterprise Linux互換のCentOS」をご参照ください。

注意!JRE 5.0以上のインストールが必須

CentOS 5.0には、Tomcat 5.5が標準パッケージとして用意されていますが、利用せず削除しています。また、今回インストールする最新版のTomcat 6.xを利用するには、JRE(JDK) 5.0以上が必要となります。
CentOS 5.0の標準パッケージであるJava-1.4.2-compatは利用しません。あらかじめJRE 5.0以上をインストールしたうえで、サーバ上に環境変数「JAVA_HOME=”JRE 5.0のインストールディレクトリ”」を設定し、PATHに「$JAVA_HOME/bin」を追加しておいてください。
編集部注JRE(JDK) 5.0のLinuxへのインストールについて詳しく知りたい読者は、Linux Square の記事「JMeterによるWebサーバ性能評価の勘所」のコラム「JDKのインストール」をご参照ください。

Tomcat 6.x系のダウンロード

 Tomcatをインストールするためには、まず、Apache Software FoundationのホームページからTomcatの専用ページを開きます。

 Tomcatのページにはいくつかのメニューがありますが、今回利用するのはTomcatの最新版である「Tomcat 6.x」の系列です。

 左のサイドメニューから「Download 」の中にある「 Tomcat 6.x 」のページを開きます。

図2 Tomcatのダウンロードページ
図2 Tomcatのダウンロードページ

 画面の下方にある「6.0.x」(本稿執筆時は「6.0.14」が最新版となります)からコンポーネントを選択してダウンロードします。

 「Binary Distributions」には「Core」と「Deployer」がありますが、今回はWebアプリケーションの動的配置は考えていませんので、「Core」コンポーネントのみをダウンロードし、インストールします。

 今回はLinux上でのインストールとなるためLinuxの一般的なアーカイブ方式の「tar.gz」のリンク先のファイルをダウンロードします。「tar.gz」のリンク先をメモしておいてください。

 サーバ上でメモしたURLからwgetコマンドでファイルをダウンロードします。

wget http://www.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-6/
v6.0.14/bin/apache-tomcat-6.0.14.tar.gz

Tomcat 6.x系をインストール

 それでは、tarコマンドで下記のようにダウンロードしたtar.gz形式のファイルを解凍しましょう。

tar -xzf apache-tomcat-6.0.14.zip

 tar.gzのアーカイブを解凍すると、その場にディレクトリが作成されます。今回の場合バイナリのパッケージを利用しているためにTomcat自体をビルドする必要はありません。

 解凍の終わったTomcatのディレクトリはアプリケーションを格納するためのディレクトリへと移動します。

 通常アプリケーションは「/usr」ディレクトリ以下にインストールしたいところですが、RPMで管理されたパッケージではなく追加の独自コンポーネントですので、「/opt」以下に移動します。

編集部注RPMについて詳しく知りたい読者は、Linux Tips の[インストール/RPM]をご参照ください。

 ここでは、分かりやすくするためにディレクトリ名を「tomcat6」へ改名します。

mv -f apache-tomcat-6.0.14 /opt/tomcat6

“攻撃”されないためのセットアップ時の注意

 移動が完了してもインストールは完了ではありません。TomcatやApache(Webサーバ)のような公開サービスのプロセスは攻撃者に攻撃されるケースがよくあります。

編集部注Apache(Webサーバ)やそのセットアップについて詳しく知りたい読者は、Linux Square の連載「ApacheによるWebサーバ構築」をご参照ください。

 公開サービスが乗っ取られたときに不用意に権限を与えて情報を漏らさぬように専用ユーザーを用意して起動することがセキュリティ上望ましいといえます。

 実際、CentOS 5.0ではApacheのデフォルトの起動ユーザーは「Apache」となるように設定されています。ここでは、Apacheと同様にTomcatを起動するための専用ユーザー「tomcat」を作成して管理はそのユーザーに任せるようにします。

useradd -d /opt/tomcat6 -s /sbin/nologin tomcat

 そして、作成したTomcatのユーザーでアプリケーションを起動できるようTomcatのインストール先のディレクトリの所有権を変更します。

chown -R tomcat. /opt/tomcat6

 Tomcatのインストールはこれで終わりです。次ページではTomcatを自動起動する方法やApacheと連携させるmod_proxy_ajpについて解説します。

  1-2-3

 INDEX
第1回 “安全”のためにTomcatを理解し、構築し、動作させる
Page1
いまさら聞けないTomcat
CentOS 5.0に最新Tomcatをセットアップ
  Page2
Tomcatを自動的に起動するには?
TomcatとApacheを連携させるmod_proxy_ajp
  Page3
「Hello World!」を表示してみよう
Tomcat 6の新機能と運用に関する設定



Java Solution全記事一覧

Java Solution フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

アイティメディアの提供サービス

ホワイトペーパー(TechTargetジャパン/閲覧には会員登録が必要です)

スキルアップ/キャリアアップ(JOB@IT)

- PR -

お勧め求人情報

キャリアアップ 〜JOB@IT
@IT Special -PR-
  New! それはスペックで、導入が目的ではない
導入の「先」を見据えた、ITIL運用とは?

  New! 見れば必ず気に入る“机の上”PCサーバ
小さくて静か。ユーザー目線で考えた自信作

  New! あなたの会社の将来は本当に大丈夫?
屋台骨を支えるIT人材、育成できてますか?

  New! いま、SaaSエンジニアがおもしろい!
〜エンジニア・キャリア進化論(第10回)〜

  このご時勢、数年後の計画は分からない
迷った時のミッドレンジストレージはコレ

  複数のストレージを“1つ”にできる、
ストレージ管理の「魔法の箱」を徹底解剖

  シンプル・簡単 iSCSI仮想化ストレージ
ITインフラ全体の“正しい仮想化”実現!

  ソフトウェアで、できることとは?
ビジネス直結「リカバリ・マネジメント」

  そのサーバに統合して安心ですか?
「現実的なサーバ統合」の3つの要件とは

  ――品質は上げてコストは半減――
ロボットが見せるPC管理の新しい形

  WebLogicとCoherenceが融合した
グリッド型アプリケーションサーバを実現

  「偽装」も「疑わしい動き」も逃さない
1つのエージェントで徹底的にPCを守る!

  もはや、プライベートのツールではない!
企業・自治体も導入するSNSの効果とは?

  「リポート機能は“すごい”のひとこと」
ある保険会社の“DB監査製品”導入事例

  新しい技術の導入 ⇒ また最初からやり直し
の必要がなくなる「普遍性のあるノウハウ」

  ユーザー任せのパスワード管理は危険!
法整備対策に有効な高効果・低コスト製品

  『フリーでやってみたいけど……』
そんなエンジニアの不安をすべて解決!

  「だれも見たことがない、10年後の
『ソフトウェア産業』を一緒に創りたい」

  「ウチはUTMなんかいらない」ってホント?
エンタープライズ市場でも選ばれる理由

  物理も仮想も効率的に運用・管理したい!
問題と解決策はこちら≫≫

  【工事進行基準】対策をチャンスに!
プロジェクト「見える化」で効率アップ!

  【工事進行基準】システム業界も導入!
新時代のプロジェクト管理はこれで決まり

  看護休暇、時短勤務、育児フレックス……。
各種の支援で「柔軟な働き方が可能な環境」

  『こうあるべし』ではなく、全ての人が
力をフルに発揮できる職場環境を考える

  宅急便もサーバも、止めない・止まらない
これが、クロネコヤマトのデータセンター

  高評価の技術採用で“いいところ取り”
低価格なのに機能は“フル”な次世代UTM

  “超高速”なのに“低価格”なUTM
その性能の高さの秘密とメリットに迫る!

  金融業界でのBPM適用<成功ケース>紹介
BPMシステムの導入のための5つのポイント

  間違いだらけのセキュリティ対策から脱却
「脅威の見えない化」対抗する2つの特徴

  “Windows”も“Linux”も“Solaris”も
SAP運用に最適な【x64サーバ】とは?

  転職した理由は「社風が合うと感じたから」
入社2カ月“勝ち組エンジニア”に話を聞く


ソリューションFLASHPR