平成 19 年度 Linux 研修会テキスト 山梨県総合教育センター 出典:平成 17 年度ITクラフトマンシップ・プロジェクトによる「Linuxによるインターネ ットサーバの構築を通じた創造的IT人材の発掘と育成」用テキスト,KN情報システム株式 会社,http://www.knc.co.jp/ 1.1 Linux 入門(1) 1.1.1 Linux の概要 Linux は、1991 年当時フィンランドヘルシンキ大学の学生であった Linus B.Torvalds 氏の卒業研究の題材として開発したオペレーティングシステムを基礎としています。 Linux と名付けられたオペレーティングシステムは、インターネット上に公開されまし たが、最初は 10 人程度のごく限られた範囲でしか興味を持たれませんでした。ところ が、その存在がインターネットを通じて世界中に伝わりました。Linux はプログラムソ ースコードが一般に公開されているため、開発者は自由に機能を追加したり問題を修正 したりすることが出来ます。そして、それをさらに公開することで、新たに成果を共有 出来ます。このようなプログラムの開発手法をオープンソースと呼び、Linux の開発モ デルはその典型と言うことが出来ます。 Linux は、Unix クローンであり、元々の Unix のソースライセンスは使わずに、Unix とほとんど同じことができることを目指したものです。Linux にとって重要なことは Unix と「ソース互換」という点です。Unix にはいくつかの仕様がありますが、Linux はそのうちの POSIX(Portable Operating System Standard)に基づきながら、Unix 使い のみんなが使いやすいように機能を取りこんで拡張してきました。 -1- 1.1.2 Linux ディストリビューション Linux とは、厳密にはオペレーティングシステムの基本であるカーネルの部分のこと をさします。実際にはその上に様々なソフトウェアを加えたディストリビューションと いう形で配布されています。現在では実に多くの Linux ディストリビューションがあり ますが、その中でも世界シェア№1 を占めるのが、Red Hat Linux です。又、この RedHat 系 Linux としてアジアシェア№1 を占めるものに Turbo linux があります。他にも多種 多様なディストリビューションがありますが、当然全てその基本となるカーネル部分は 共通のものです。 表 1.1.2-1 系統 主な派生ディストリビューション 派生ディストリビューション ディストリビュータ 国 Slackware 系 Plamo Linux こじまみつひろ氏 日本 RedHat 系 Red Hat Linux Red Hat,Inc. アメリカ Fedora Core Red Hat,Inc. アメリカ Turbo linux ターボリナックス(株) 日本 Vine Linux Project Vine 日本 LASER5 Linux レーザーファイブ(株) 日本 Miracle Linux ミラクル・リナックス(株) 日本 Kondara MNU/Linux Kondara Project/デジタルファクト利(株) 日本 Open Linux SCO Group アメリカ Linux PPC LinuxPPC,Inc. アメリカ SuSE Linux SuSE GmbH ドイツ Linux Mandrake Mandrake Soft S.A. フランス CONNECTIVA Linux Connectiva S.A. United Linux UnitedLinux Group ARMA aka Omoikane GNU/Linux オモイカネ(株) 日本 xandros Xandros Corporation カナダ Debian 系 表 1.1.2-1 は、主な派生ディストリビューションをまとめたものです。ディストリビ ューションは、別のディストリビューションの基礎にされたり、またあるディストリビ ューションを開発する際に別のディストリビューションの基礎にしたりというように、 相互に関係を持っているのが普通です。従って、派生ディストリビューションというか たちで、まとめています。 -2- 1.1.3 主な RedHat 系 Linux ディストリビューション RedHat 系ディストリビューションの近況については、表 1.1.3-1 を参照して下さい。 講習会で利用するのは、 「Fedora Core 3」の予定です。 表 1.1.3-1 主な RedHat 系ディストリビューション ディストリビューション RedHat Linux 詳細説明 世界で最大シェアを誇る、代表的な Linux ディストリビューションです。他のディ ストリビューションでも、この RedHat を元にアレンジしている物が数多くあります。 Red Hat Linux 自体はバージョン 9.0 を最後に、従来のフリー版の開発を中止しま した。今後は、企業向けの RED HAT ENTERPRISE LINUX と、従来のフリー版 Red Hat Linux を受け継ぐ Fedora とに分割されました。 [現在の最新バージョン] Red Hat Linux 9 Fedora Core Red Hat Linux の後継となるフリーの Linux ディストリビューションです。一応 Red Hat 社がその開発の後援をしていますので、開発運営費とかの心配はないようです。 [現在の最新バージョン] Fedora Core 4 Vine Linux RedHat をベースに日本語環境にこだわって新たに開発されたのが、この Vine Linux です。初心者にもすぐに使える非常にシンプルなアプリケーション(Vine Tools)や、 日本語インストーラー、日本語ドキュメント及び日本語マニュアルなど、我々日本人 が Linux を使う為の最適な日本語環境が提供されています。 [現在の最新バージョン] Vine Linux 3.1 Turbo linux パシフィック・ハイテック社(1999 年 7 月 1 日にターボリナックス ジャパンに 社名変更)により、Linux を誰でも簡単に導入出来るようにする為に開発・発売され たディストリビューションです。最初から日本語環境が構築されているので、Vine Linux に負けないくらいインストールもし易いです。商用版には色々と便利なツール も付いているみたいで、結構使い勝手が良いと思われます。 アメリカでの販売が伸び悩み、本拠地を日本に移して再スタートした Turbolinux ですが、最近では中国などアジアを中心にそのシェアを伸ばしています。又、 UnitedLinux のメンバーとして、企業向け Linux の開発と普及に積極的に貢献してい ます。最近 Livedoor の完全子会社化したようです。 [現在の最新バージョン] Turbolinux 10 Desktop Turbolinux 10 Server -3- 1.1.4 ディストリビューションの選び方 ディストリビューションを選ぶにはそのディストリビューションが対象としている 利用目的やポリシーを理解する必要があります。表 1.1.4-1 では、簡単な特徴をあげて おきますので参考にして下さい。 表 1.1.4-1 ディストリビューションによる特徴 ディストリビューション RedHat Linux 特徴 RedHat 系の Linux はほとんど(全て)このディストリビューションを基にしてい ます。そのため、 他のディストリビューションよりも早く新しい kernel が採用され ています。一方、 他の RedHat 系のディストリビューションと比較すると最初のバー ジョン(バージョン*.0)での不具合も存在することがあります。 新しい物好きにお勧めです。 ただし一般にバージョンは *.1 または *.2 以降が 良いです。 LASER5 Linux RedHat Linux を基に日本語を使いやすくしたものです。(もちろん、RedHat Linux でも日本語は使えます) RedHat Linux 用のソフトウェアのほとんどが利用可能です。 Kondara MNU/Linux RedHat Linux を基に新しいソフトウェアで有用と思われるものを積極的に採用し ているディストリビューションです。その分、 他の RedHat 系のものと違う部分もあ ります。 珍しいものや変わったものが好きな人向けです。 Vine Linux RedHat Linux を基に安定性と日本語環境の充実に重点を置いたディストリビュー ションです。他の RedHat 系のディストリビューションに比べるとバージョンアップ は多くありません。 日本語をばりばり使いたい人向けです。 Turbo linux どちらかと言うと企業などでの利用向けです。Turbo linux の中にも Server 用な どの種類があります。 Slackware Linux のディストリビューションの中で最も古いディストリビューションです。管 理にはかなりの知識を必要とします。日本語環境も自分で設定する必要があります。 玄人や UNIX のシステムを"本気で"理解したい人向けです。 Plamo Linux Slackware を基に日本語に対応させたディストリビューションです。 日本語に対応はしていますが、Slackware と同様に管理にはかなりの知識が必要で す。 Debian GNU/Linux パッケージ管理を充実させたディストリビューションです。ユーザが主体となって 開発されています。 ディストリビューションの開発に携わりたい人向けでしょうか。 -4- 1.1.5 その他の UNIX 系 OS 製品として販売されている UNIX 系オペレーティングシステムとして、次のようなも のがあります。 ・Solaris (Sun Microsystems) ・SCO UNIX (SCO) ・BSD/OS (BSDI) ・AIX (IBM) ・HP-UX (HEWLETT PACKARD) 自由に入手できるものとして、次のようなものがあります。 ・Linux ・FreeBSD ・NetBSD ・OpenBSD -5- 1.1.6 Linux と Windows (1)生い立ち Linux は、先述の通り UNIX を基に作られており、UNIX と同等の機能を PC/AT 互換機 で利用できるように作られています。つまり、UNIX のもつネットワーク上のサーバと しての機能, 安定性や不特定多数のユーザの利用などに対応したオペレーティングシ ステムといえます。 一方、Windows はもともと PC/AT 互換機上で動かすことが主体で、PC/AT 互換機では、 一台のコンピュータを複数のユーザが同時に使用することは前提になっていませんで した。また、 詳しい知識がなくても多くの人が利用できるように、 出来るだけ管理の 負担を減らしたものになっています。従って、クライアントとしては使いやすくなって います。 これらの経緯から Linux を利用するにはある程度の知識がないと難しいと感じると 思いますが、最近では GUI を利用した設定ツールやソフトウェアも増えてきておりクラ イアントとしても不便しないようになってきています。 (2)価格面 価格を評価する際に Linux はフリーであると言われますが、正確には GPL(GNU Public License)というライセンスにしたがっているということです。Linux の場合は、通常の ディストリビューションでは kernel を含め GPL に従ったソフトウェアで構成されてい るため無料で利用できます。ただし、フリーのものは問題が起きた場合でも自分で責任 をとらないといけません。市販されている Linux ではサポートが付いているものもあり ます。 一方、Windows 系のオペレーティングシステムは、Microsoft 社が作ったものです。 これを利用する際には、必ず 1 つのコンピュータに対して 1 つのライセンスを購入する 必要があり、使用許諾契約に同意する必要があります。これを良く読むと、どんな事故 が起きようと、万が一保証する場合でもオペレーティングシステムを購入した金額まで しか保証されていません。 (3)開発環境 Linux の開発は主にボランティアによって行われています。よって、ソフトウェアに よっては全く開発が止まってしまうようなものもあります。ただし、GPL の場合ソース コードの再配布・変更が自由に出来ます。また、変更したコードについても、GPL が適 -6- 用されることになっています。従って、必要なソフトウェアは自由に変更して利用して 構わないことになります。また、有用なソフトウェアは多くの人が使うため、不具合が あればその情報が公開されて改良が行われます。最悪でも自分で修正することも出来ま すし、そのソフトウェアだけを停止すれば済みます。 一方、 Windows 系のオペレーティングシステムの場合、Microsoft 社の許しがない限 りプログラムを変更することは許されません(そもそもソースプログラムが公開されて いませんので、なにが悪いのか確認できません)。また、部分的に問題のあるソフトウ ェアだけを(自分でインストールしたソフトウェアを除いて)停止することは不可能で す。問題があるときは Microsoft 社が対応してくれるまで使わないのが安全です。 (4)拡張性 開発にも関係しますが、Linux のディストリビューションで利用しているほとんどの ソフトウェアがオープンソースになっています。これはプログラムのソースコードが公 開されているということで、GPL であるため、利用者は自分の利用目的に合うように自 由にプログラムを書き換えて利用することが出来ます。このことにより、最近では様々 な場面で Linux が利用されるようになってきています。特に組み込み型の回路のオペレ ーティングシステムとして注目されています。 一方、 Microsoft 社は、Windows のソースコードを公開しておらず、ユーザは オペ レーティングシステムの中で何が行われているかを全く知ることが出来ません。拡張す る場合でも、基となるオペレーティングシステムでどんな処理が行われているかを完全 に把握せずに拡張を行うことになります。 -7- 1.2 Linux 入門(2) 1.2.1 インストールの概略 Fedora Core3 を、CD-ROM を利用してインストール作業を行います。ネットワークサ ーバとして必要な DNS サーバ,web サーバ,メールサーバ等を構築していきます。Fedora Core3 では、 インストール時にハードウェア構成を自動認識するのでほとんどの場合は、 何も気にせずにインストール可能となっています。また、グラフィカルモードでのイン ストール作業および日本語表示でのインストール作業が行えますので、比較的簡単にイ ンストールを行うことが出来ます。 各種設定は、オペレーティングシステムのインストール後に行うことが出来ますので、 インストール時に必要最小限の情報と構成を決めて、インストール作業を進めます。 -8- 1.2.2 インストールの前に インストール作業が容易になったとはいえ、インストール対象のコンピュータの情報 を知らないで行うことは避けて、必ずインストール前に調べておくことを挙げておくべ きです。 表 1.2.2-1 ハードウェアに関する情報収集 ハードウェア 調べる内容 キーボードの種類 日本語キーボード、英語キーボードおよびキー数(例:109 日本語キーボード) マウスの種類 ボタン数、接続方式(ps/2,シリアル,USB 等) ビデオカードの種類 ビデオカードのメーカ名や型番 ビデオ RAM の容量 ビデオカードのビデオ RAM の容量 モニタの種類 CRT モニタ,液晶モニタおよび周波数と解像度 ネットワークカードの種類 ネットワークカードのメーカ名や型番 ハードディスク容量 ハードディスクの容量,台数と増設可能かどうか メモリ容量 メモリ容量と増設可能かどうか 表 1.2.2-1 のように、インストール前に調べておきます。なお、ディストリビューシ ョンにより、もっと調査が必要な場合もあるので、注意してください。 Fedora Core3 の場合は、 「マウスの種類」は自動認識のため、調査は不要です。なお、 自動認識できなかったことを考慮して、調べておいて損はありません。 次に、システム構成に関する方針を決めておきます。使用用途も明確にしておき、ま た、将来のサーバの利用状況も予測する必要もあります。 表 1.2.2-2 システム構成に関する方針 項目 内容 パーティションの分割方法 ディスクの分割方法を決めます。詳細は、次節。 サーバに必要なパッケージ セキュリティホールの原因にもなるので、出来るだけ必要なパッケージのみを選 択してインストールするようにします。 ネットワークの設定 DHCP を利用するのか、固定 IP にするのかなど。 表 1.2.2-2 のように、システム構成に関する方針を決めます。パーティションについ ては、次節を参照して下さい。 -9- 1.2.3 パーティション構成 パーティションとは、ハードディスク内の分割された領域のことで、一台のハードデ ィスクを複数の領域に区切って、あたかも複数台のハードディスクがあるかのように利 用することが出来ます。 Windows のパーティション管理方法では、各パーティションは「ドライブ」と呼ばれ、 各ドライブは独立したディレクトリツリー構造を持ちます。 C:\windows\ 2 つのパーティション C ドライブ に分割 D ドライブ C:\Program Files\ ・・・ D:\data\ D:\Program Files\ ・・・ 図 1.2.3-1 Windows のパーティション 図 1.2.3-1 にあるように、Windows の場合は、パーティションがドライブ名となり、 パーティション別にディレクトリ構成となります。 /(ルート) 3 つのパーティション に分割 /home / /var /home /var 図 1.2.3-2 Linux のパーティション Linux の場合は、図 1.2.3-2 のように、パーティションを分けても、1つのディレク トリ構成となります。 Linux の一般的なパーティションについて、説明をします。Windows のディレクトリ 構成と近いものがあり、例えば、Windows のアプリケーションは、「C:\Program Files」 というディレクトリに格納するといった、決め事があります。Linux についてのパーテ ィションの役割について、表 1.2.3-1 にまとめます。 -10- 表 1.2.3-1 パーティション パーティションと役割 役割 最低容量(*) 設定目安 Swap(スワップ) メモリのスワップ領域 搭載メモリ程度 搭載メモリ×2 /boot(ブート) Linux を起動するために必要な領域 32MB 程度 32MB 以上 /(ルート) ファイルシステム全体 100MB 程度 300MB 以上 /usr 基本コマンドやアプリケーションの領域 1.5GB 程度 3.0GB 以上 /var ログやスプールなどのための領域 100MB 程度 500MB 以上 /tmp 一時ファイルとしての領域 10MB 程度 50MB 以上 /home(ホーム) ユーザのホームディレクトリ領域 必要に応じる 300MB×ユーザ数以上 (*)パーティションをこの表の通りに設定する場合の最低容量です。 (1)Swap(スワップ) 必ず作成する必要のあるパーティションです。物理メモリ容量を超えてメモリ領域が 必要になったときに利用されます。 (2)/boot(ブート) 必ず作成する必要のあるパーティションです。Linux を起動する際に読み込まれるカ ーネルイメージ等が格納されます。 (3)/(ルート) 必ず作成する必要のあるパーティションです。基本的にファイルシステムのすべてが ルートパーティションの下に置かれます。従って、パーティションを細かく分けない場 合は、ほぼ全てのパッケージがここに置かれます。 (4)/usr システム管理に必要なコマンドとユーザが使用するコマンドやアプリケーションを 分ける場合、パーティションを作成します。 (5)/var システムが提供する各種サービスのログやメールやプリンタの一時ファイル(スプー ル)が、ここに置かれます。また、www サービスや匿名 ftp サービスも/var パーティシ ョンが使用されます。 (6)/tmp 各種アプリケーションが作成する一時ファイルが置かれます。書き込み許可となって -11- いるので、他のパーティションと分けておくと安全です。 (7)/home ユーザが使用するホームディレクトリが置かれます。ユーザ一人に割り当てる容量と ユーザ数を見込んで、容量を割り当てます。 必要最小限のパーティション構成は、 「Swap」 「/boot」 「/」の 3 パーティションです。 なお、Fedora Core3 の全てのパッケージ(ソフトウェア)をインストールする場合は、 約 7GB のハードディスクの空き容量が必要です。 -12- 1.2.4 Fedora Core3 インストール手順 PC/AT 互換機(現在のパソコンのほとんどがこの規格です。ただし、Macintosh を除 く。)にインストールします。メーカ製パソコンの場合は、一部利用できないデバイス (ハードウェア装置)がある場合もあります。その場合は、別途 Linux 用のデバイスド ライバを入手する必要があります。 (1)インストーラの起動 コンピュータの電源を入れて、CD ブート可能かどうかチェックして、ファーストブ ートデバイスが CD-ROM ドライブになっていない場合は、ファーストブートデバイスを CD-ROM ドライブに設定します。設定方法は、コンピュータにより異なりますが、電源 を入れた直後、[Delete]キーや[F2]キーで設定画面になるものが主流です。 CD-ROM ドライブに FedoraCore3 の Disl1 の CD を入れて、再起動します。 再起動すると、上記のような画面が表示されます。 インストール時のモードを選択する旨の表示がされています。 「グラフィカルモードで インストールを行う」、 「テキストモードでインストールを行う」の2種類が選択出来ま す。ここでは、グラフィカルモードでインストールを行うものとして、そのまま[Enter] キーを押します。 (テキストモードでインストールを行う場合は、「linux text」と入力して、[Enter] キーを押します。) -13- (2)CD のチェック インストール CD のテストを行うか否かを選択します。これは、インストールディス クが読み込み可能かどうかのチェックを行い、インストール途中に CD が読み込めなく ならないようにするためのチェックです。 インストールディスクをインターネットからダウンロードして、インストールディス クを作成した場合などは、チェックをすることをお勧めします。 今回は、インストール CD のテストは、スキップすることにします。 [Tab]キーを押して、「Skip」にカーソルを移動させてから、[Enter]キーを押して次に 進みます。 (間違って、 「OK」を選択した場合は、メディアのチェックにしばらく時間が かかります。 ) -14- (3)インストール画面 グラフィカルモードでうまくインストール画面が表示された場合は、上記の画面にな ります。コンピュータのビデオカードの種類によっては、グラフィカルモードにならな い場合があります。その場合は、自動的にテキストモードでのインストール画面となり ます。 なお、全く何も表示されない場合は、再起動をして、テキストモードでインストール を行い、作業を進めます。 上記の画面が表示されたら、右下の「Next」ボタンをマウスでクリックして、次に進 みます。 ※この時点から、マウスが使用可能となりますので、グラフィカルモードでは、マウス 操作でインストール作業を行うことが出来ます。もちろん、キーボードの利用も出来ま すので、キーボードでもインストール作業が出来ます。 ※テキストモードの場合は、マウスは使用出来ませんので、キーボードのみでインスト ール作業を行うことになります。 -15- (4)言語の選択 ここからは、インストール時の言語を選択します。ここまでは、すべて英語で表示さ れていましたが、ここからは、自分の好きな言語でインストール作業を行うことが出来 ます。 ここでは、 「Japanese(日本語)」を選択して、 「Next」ボタンをクリックします。 全てが日本語で表示されるわけではありませんが、主要な部分は日本語で表示されるよ うになります。 ※英語でチャレンジする人は、「English」を選択して、「Next」ボタンをクリックしま す。 -16- (5)キーボード設定 キーボードの種類を選択します。ここでは、日本語キーボードがコンピュータに接続 されていますので、 「Japanese」を選択して、 「次(N)」をクリックして、進みます。 -17- (6)アップグレード・新規インストールの選択 既に Linux がインストールされている場合は、 「既存インストールのアップグレード」 が、表示されます。何もインストールされていない場合は、「インストール」のみの表 示です。ここでは、新規にインストールするので、 「インストール」を選択して、 「次(N)」 をクリックして進みます。 -18- (7)インストールの種類の選択 インストールするタイプを選択します。用途に合わせて、 「パーソナルデスクトップ」 「ワークステーション」 「サーバ」「カスタマイズ」の4タイプの中から選択できます。 「パーソナルデスクトップ」は、クライアントとして利用する場合に選択します。 「ワークステーション」は、開発者向けのクライアントとして利用する場合に選択し ます。 「サーバ」は、サーバ用途として利用する場合に選択します。サーバをクライアント して利用することも可能です。 「カスタマイズ」は、すべての使用用途に合わせることが出来ます。入門者を除いて、 一般的には、 「カスタマイズ」を選択すべきです。 ここでは、自由に設定可能な「カスタマイズ」を選択して、 「次(N)」をクリックして 進みます。 -19- (8)パーティション設定ツールの選択 ディスクパーティションの設定を行います。「自動パーティション設定」と「Disk Druid を使用して手動パーティション設定」の2種類が選択出来ます。 「自動パーティション設定」は、インストーラが自動的にディスクパーティションを 設定してくれます。初心者やよく分からない人向けの選択肢といえます。 「Disk Druid を使用して手動パーティション設定」は、使用用途に合わせたパーテ ィション設定が可能です。パーティションについては、前述した通りです。 ここでは、 「Disk Druid を使用して手動パーティション設定」を選択して、「次(N)」 をクリックして進みます。 -20- (9)変更前のパーティション表示 ディスクに何も入っていない場合は、上記のような画面になります。もし、他の OS 等が入っていた場合は、デバイスの所に表示されます。 ここでは、新規インストールということで、パーティションが設定されている場合は、 パーティションを選択して、「削除」ボタンをクリックして、設定されているパーティ ション全てを削除します。全て削除すると、上記のように、自由領域のみになります。 ハードディスクが2台ある場合は、ハードディスク2台分が表示されます。 サーバ用途であることは、ここでは明確にされていますが、将来のサーバ使用状況も 不明なため、ここでは、必要最小限のパーティション構成にします。表 1.2.4-9 の通り に設定します。 表 1.2.4-9 マウントポイント /boot / ファイルタイプ 容量 ext3 100MB swap 1024MB ext3 残り全て -21- (10)boot パーティション作成 「新規」ボタンをクリックすると、上記のように別ウィンドウが表示されます。 表 1.2.4-9 に従って、上図のように設定をして、 「OK」ボタンをクリックします。 (11)swap パーティション作成 再度、「新規」ボタンをクリックして、表 1.2.4-9 に従って、上図のように設定をし て、 「OK」ボタンをクリックします。ここでは、 「マウントポイント」は、選択しません。 -22- (12)/パーティション作成 再度、「新規」ボタンをクリックして、表 1.2.4-9 に従って、上図のように設定をし て、 「OK」ボタンをクリックします。 ここでは、追加容量オプションのところで、「最大許容量まで使用」を選択します。 その場合は、 「容量」欄に入力された数値は無視されます。 (13)変更後のパーティション表示 上図のように、3つのパーティションになります。「次(N)」をクリックします。 -23- (14)ブートローダの設定 ブートローダとは、ハードディスクから Linux を呼び出すプログラムです。普及して いるブートローダの一つとして、GRUB があります。GRUB は、オペレーティングシステ ムを選択する機能も持っています。 通常は、GRUB を使用すれば問題ないでしょう。そのまま「次(N)」をクリックして進 みます。 他のブートローダを使用する場合は、「高度なブートローダオプションの設定」を選 択して、インストールする場所を変更します。 -24- (15)ネットワークの設定 インストーラがネットワークカードを自動認識した場合、この画面が表示されます。 ネットワークカードがない場合や自動認識出来なかった場合は、この設定画面は表示さ れません。 ネットワーク環境に合わせて設定を行います。設定項目は、DHCP による自動設定か スタティック IP アドレスの手動設定か、どちらかを行います。サーバ用途で使用する 場合は、一般的に手動設定となります。 デバイスの欄に「eth0」、 「eth1」という名前になっていますが、ネットワークカード の枚数によって、設定の個数も変わります。上記の例では、ネットワークカードが2枚 -25- ある場合です。デフォルトでは、「DHCP」の設定になっていますので、設定を変更する 場合は、 「編集」ボタンをクリックします。 「編集」ボタンをクリックすると、「IP アドレス」「ネットマスク」を手動で設定す ることが出来ます。 「起動時にアクティブにする」にチェックを入れないと、Linux 起動時にはネットワ ークが使用出来ません。(手動にてネットワークを起動すると、ネットワークが使用で きるようになります。 ) ホスト名,ゲートウェイおよびネームサーバも設定します。 設定が完了したら、 「次(N)」をクリックして進みます。 【設定は別紙参照】 (16)ファイアウォールと SELinux の設定 接続を許可するネットワークサービスを設定します。「ファイアウォールなし」の設 定の場合は、システムへのアクセスが全て許可されます。 ここでは、「ファイアウォールを有効にする」を選択します。さらに、サービスを提 供するもののみ、アクセスを許可させます。Web サーバ,メールサーバを構築するので、 「web サーバ(HTTP,HTTPS)」と「メールサーバ(SMTP)」にチェックを入れます。 SELinux(Security Enhanced Linux)を有効にするかどうかも選択出来ます。有効にす るとセキュリティ面では、非常に効果的な機能ですが、従来のシステムと異なる仕様に なるので、十分に理解した上で利用するようにします。 ここでは、 「無効」を選択して、「次(N)」をクリックして進みます。 -26- (17)追加の言語 システム標準の言語と追加したい言語を選択します。日本語のみを使う場合は、この まま、「次(N)」をクリックして進みます。 (18)タイムゾーンの設定 タイムゾーンの設定を行います。「アジア/東京」を選択します。「次(N)」をクリッ クして進みます。 -27- (19)root の設定 root のパスワード設定を行います。 「root」とは、パッケージのインストールなどシ ステム保守を行う特別なユーザで、システム全体の完全なアクセス権限を持っています。 誤操作防止のためにも、root でログインするのはシステム保守管理を行うときだけに するようにします。 ここで設定するパスワードは重要なので、管理には気を付けます。通常使用するユー ザは、インストール後に設定します。 アルファベットの大文字と小文字は区別されるので注意します。パスワードは2回入 力します。 パスワードを入力したら、「次(N)」をクリックして進みます。 -28- (20)パッケージグループの選択 下記の表は、「インストールの種類の選択」を「カスタマイズ」とした時の、デフォ ルトの状態と今回設定する内容となっています。 分類 デスクトップ パッケージグループ デフォルト 今回の設定 X Window System ○ ○ GNOME デスクトップ環境 ○ ○ 詳細 KDE XFCE アプリケーション エディタ ○ 技術系と科学系 グラフィカルインターネット ○ ○ テキストベースのインターネット ○ ○ Office/生産性 ○ ○ サウンドとビデオ ○ 図 1.2.4.20-1 著作と発行 グラフィックス ○ ○ ゲームと娯楽 サーバ サーバ設定ツール ○ Web サーバ ○ メールサーバ ○ 図 1.2.4.20-2 図 1.2.4.20-3 Windows サーバ DNS ネームサーバ ○ FTP サーバ ○ PostgreSQL データベース ○ 図 1.2.4.20-4 図 1.2.4.20-5 MySQL データベース ニュースサーバ ネットワークサーバ レガシーなネットワークサーバ 開発 開発ツール ○ X ソフトウェア開発 ○ GNOME ソフトウェア開発 ○ KDE ソフトウェア開発 -29- XFCE Software Development レガシーソフトウェアの開発 システム 管理ツール ○ システムツール ○ 印刷サポート その他 ○ すべて 最小 図 1.2.4-20-1 図 1.2.4-20-2 -30- 図 1.2.4-20-3 図 1.2.4-20-4 -31- 図 1.2.4-20-5 表と図を参考に、パッケージを選択します。選択が完了したら、 「次(N)」をクリック して進みます。 (21)インストール準備完了 ここまでで、インストールの準備が全て完了しまた。この画面から「次(N)」をクリ ックすると、戻ることは出来ません。「次(N)」をクリックします。 -32- クリックすると上記の確認画面が表示されるので、 「続行」をクリックします。 インストールが始まります。 インストール途中で、CD の入れ替えがありますので、上記の画面が表示されたら、 「Fedora Core3 Disk2」を挿入して、 「OK」をクリックします。 -33- 同様に、上記の画面が表示されたら、「Fedora Core3 Disk3」を挿入して、 「OK」をク リックします。 インストール時間は、コンピュータの性能と、選択したパッケージによって異なりま す。1時間前後を目安とするとよいでしょう。 【時間がかかる】 (22)インストール終了 インストール完了画面です。CD を取り出して「再起動」をクリックします。 -34- (23)インストール後の設定【時間がかかる】 インストール後、初回再起動時の画面です。 「次へ(N)」をクリックして進みます。 (24)ライセンス同意書 「はい、私はライセンス同意書に同意します」を選択して、 「次へ(N)」をクリックし て進みます。 -35- (25)日付と時刻 日付と時刻を設定します。日付および時刻が現在時刻とずれている場合は、修正しま す。 「ネットワークタイムプロトコル」タブを選択すると、自動的にインターネット上の 時刻サーバにアクセスして、日付および時刻の設定をすることも出来ます。 -36- (26)ディスプレイ ディスプレイの設定を行います。コンピュータに搭載されているビデオカードやディ スプレイの性能によって、選択出来る「解像度」や「色の深さ」が変わります。 特に問題なければ、 「解像度」を 1024x768 に設定しておきます。 ディスプレイ関係については、コンピュータに搭載されているビデオカードの種類に よって、うまくいかない場合もあります。その場合は、ビデオカードを変えるなりして、 対応して下さい。サーバとして利用する場合は、ウィンドウ画面は必要ないので、デフ ォルトの設定のままで構いません。 -37- (27)システムユーザ ここで、一般ユーザのアカウントを作成します。「Username」にアカウント名を入力 します。 「Full Name」に利用者の名前を入力します(ローマ字)。 「Password」 「Confirm Password」にパスワードを入力します。 セキュリティ上、 「Full Nmae」を省略するケースが増えています。ここでも、必要最 小限の情報のみ入力することにします。 「次へ(N)」をクリックして進みます。 ※ここでは、省略していますが、次の画面は、 「サウンドカード」設定画面となります。 コンピュータにサウンドカードが搭載されて、自動認識された場合にのみ表示されます。 サーバとして利用する場合は、サウンド機能は不必要なので、予めサウンドカードを取 り外すなどするのが一般的です。 -38- (28)追加の CD 追加 CD がある場合は、ここで、 「install」をクリックします。ここでは無いので、 「次へ(N)」をクリックして進みます。 (29)セットアップ終了 これで、すべてのセットアップが終了しました。「次へ(N)」をクリックします。 -39- (30)ログイン画面 ログイン画面となります。 先ほど設定したユーザでログイン出来るかどうか確かめてみます。 また、root でもログイン出来ることも確認します。 (1.2.6 Linux にログイン 参照) -40- 1.2.5 Linux の基本操作 Linux の基本操作は、コマンドベースでの命令となります。最近では、GUI を利用し て操作出来るようになったので、コマンドを知らなくても操作が容易となっています。 例えば、ファイルをコピーする場合、Windows の場合、「エクスプローラ」という画面 を立ち上げて、ファイルをドラッグするだけで、コピーが出来たり、ファイルの移動が 出来たりします。(図 1.2.5-1 参照)これらの操作をコマンド(命令)を使って、ファ イルコピーやファイルの移動を行うことが、Linux の基本操作となります。Windows で もコマンドを使って、ファイルのコピーや移動も出来ます。 (図 1.2.5-2 参照) マウスでドラッグするだけで、 ファイルの移動が出来る 図 1.2.5-1 ドラッグによるファイルの移動 -41- ファイルを移動するコマンド 図 1.2.5-2 コマンドによるファイルの移動 図 1.2.5-2 では「E:\Data\PC」にある test.txt ファイルを「E:\Data」に移動してい る例です。 -42- 1.2.6 Linux にログイン (1)ユーザ名を入力 (2)[Enter]キーを押します。 (3)パスワードを入力 (4)[Enter]キーを押します。 (5)ログイン後の画面 図 1.2.6-1 ログイン後の画面 ログインが出来たら、マウスを使って各メニューにどのようなものがあるか、見てみ ます。メニューは、左上にあります。 「アプリケーション」をクリックしてみます。 ■演習 (1)「PDF ビュワー」が、メニューのどこにあるか、探してみましょう。 -43- 1.2.7 GUI を使って各種アプリケーションの起動 Linux で利用できるアプリケーションも多々ありますが、今回インストールした中か ら、Windows に近いアプリケーションソフトを起動してみることにします。 (1)web ブラウザ インターネットブラウザを起動してみます。ここでは、「Firefox Web Browser」を起 動します。 「アプリケーション」→「インターネット」→「Firefox Web Browser」 図 1.2.7-1 web ブラウザ -44- (2)ワープロソフト ワードプロセッサを起動してみます。ここでは、 「OpenOffice.org Writer」を起動し ます。 「アプリケーション」→「オフィス」→「OpenOffice.org Writer」 図 1.2.7-1 ワープロソフト ■演習 (1)Windows の「エクセル」と同等のアプリケーションを起動してみましょう。 -45- 1.2.8 OS の終了および再起動の方法 (1)ログアウトの方法 「アクション」→「ログアウト」を選択します。 図 1.2.8-1 ログアウト選択画面 「ログアウト」を選択して、「OK」ボタンをクリックします。 ログイン画面にもどります。 (2)OS の再起動の方法 「アクション」→「ログアウト」を選択します。 図 1.2.8-1 の画面で、 「コンピュータの再起動」を選択して「OK」ボタンをクリック します。 自動的に再起動されます。 (3)OS の終了の方法 「アクション」→「ログアウト」を選択します。 図 1.2.8-1 の画面で、 「シャットダウン」を選択して「OK」ボタンをクリックします。 コンピュータが停止します。 -46- 1.3 Linux 入門(3) 1.3.1 kterm の起動 Linux でサーバ系の管理や運用を行うためには、ある程度 GUI に頼らず、コマンドラ インベースでの操作を行うことが必要となります。サーバ管理を行う場合、サーバ端末 を利用できる場合と、利用できない場合もあります。サーバ端末を利用できない場合は、 リモート操作による管理となります。その場合は、GUI を利用できる可能性は極めて低 く、コマンドベースの管理をすることになります。 最近では、リモートデスクトップと呼ばれる機能もあり、リモート操作で GUI も利用 できるようにはなってきています。 ここでは、コマンドベースの操作を行います。はじめに、 「kterm」というソフトを起 動します。 ●起動方法(1) メニューから起動する方法として、 「アプリケーション」→「システムツール」→「GNOME 端末」 を選択して、起動します。 ●起動方法(2) デスクトップ上の何もないところで、右クリックして、「端末を開く」を選択して起 動します。 -47- 図 1.3.1-1 kterm 起動すると、上記のような画面が出てきます。この画面から、コマンドを入力してサ ーバの管理や保守を行います。 -48- 1.3.2 基本的な Linux のコマンド Linux 上で、コマンドベースで基本的な操作を出来るようになりましょう。 コマンドの入力の仕方は、全て半角英数字で、[Enter]キーでコマンドの実行となりま す。 基本的な書式は、 コマンド名 △ 引数1 △ 引数2 ・・・[Enter] ※ △は、1文字以上の半角スペースです。 ※ [Enter]は、 「Enter」キーを押すという意味です。 表 1.3.2-1 コマンド ls 主なコマンド一覧 引数 [ファイル名]や[ディレク 例 説明 ls△/home/ 引数で指定されたディレクトリのファイル トリ名]など 一覧を表示 pwd なし pwd 現在いるディレクトリの位置を表示 cd [ディレクトリ名] cd data 現在のディレクトリを移動 date なし date サーバの現在の日付と時刻を表示 cp [コピー元ファイル名]△ cp △ test.txt △ ファイルをコピーします [コピー先ファイル名] test2.txt [移動元ファイル名]△[移 mv 動先ファイル名] △./data/test.txt る。 mkdir [ディレクトリ名] mkdir△file ディレクトリを作成する rm [ファイル名] rm△test.txt ファイルを削除 rmdir [ディレクトリ名] rmdir△data ディレクトリを削除 ps なし ps 現在ログインしているユーザのプロセス一 mv △ test.txt ファイルを移動する。ファイル名を変更す 覧を表示 man [コマンド名] man△cp コマンドのマニュアルを表示 vi [ファイル名] vi△test.txt テキストエディタ touch [ファイル名] touch△test3.txt 空ファイルを作成 less [ファイル名] less△test.txt ファイルの内容を表示する -49- 1.3.3 コマンドベースでファイル操作 コマンドベースでファイルの操作を行います。 ■演習 (1)新しいディレクトリをホームディレクトリの下に作成する (2)新しいディレクトリに移動する (3)空ファイルを作成する (4)ファイル名を変更する (5)ファイルをコピーする (6)変更したファイルを削除する (7)すべてのファイルを削除する (8)親ディレクトリに移動する (9)作成したディレクトリを削除する -50- 1.3.4 Linux ファイルシステム ここでは Linux のファイルシステムを理解します。ファイルには、 「オーナ」 「グルー プ」「その他」の3種類あり、その種類毎にアクセス権限が設定出来るようになってい ます。アクセス権限には、 「読み込み」 「書き込み」 「実行」の3種類あります。 表 1.3.4-1 種類 ユーザの種類 説明 オーナ User(u) そのファイルの所有者を意味します。 グループ Group(g) そのファイルのグループを意味します。 その他 Other(o) そのファイルの所有者にもグループにも属さないユーザを意味しま す。 表 1.3.4-2 権限 権限の種類 説明 読み込み Read(r) そのファイルの読み込み許可を意味します。 書き込み Write(w) そのファイルへの書き込み許可を意味します。 実行 Execute(x) そのファイルへの実行許可を意味します。 「ls」コマンドで、そのファイルの権限がどのようになっているかを確認出来ます。 「ls」コマンドのオプションに「-l」を付けると、ファイル権限も表示されます。 ls コマンドで、ファイルの詳細を表示する。 -51- ls △ –l [Enter] (実行結果例) drwxr-xr-x 2 sasaki sasaki 4096 Jul 28 12:25 Desktop -rw-r--r-- 1 sasaki sasaki 175384 Aug 4 13:13 Screenshot.png drwxrwxr-x 2 sasaki sasaki 4 11:19 data 4096 Aug 上記のような実行結果例となり、ファイル名の他に、左から順に「アクセス権限」 「リ ンク数」「所有者」「グループ」「ファイルサイズ」「日付」「ファイル名」となっていま す。 drwxrwxr-x 2 sasaki sasaki アクセス権限 リンク数 所有者 グループ 4096 Aug 4 11:19 data バイト数 日付 ファイル名 重要な項目である、 「アクセス権限」について説明します。アクセス権限は、10 個の 記号からなりたち、次のような規則があります。 ファイルの種類 所有者 グループ その他 1 文字目 2 文字目~4 文字目 5 文字目~7 文字目 8 文字目~10 文字目 2 文字目:読み込み権限 5 文字目:読み込み権限 8 文字目:読み込み権限 3 文字目:書き込み権限 6 文字目:書き込み権限 9 文字目:書き込み権限 4 文字目:実行権限 7 文字目:実行権限 10 文字目:実行権限 d ディレクトリ r 読み込み許可 r 読み込み許可 r 読み込み許可 l シンボリックリンク w 書き込み許可 w 書き込み許可 w 書き込み許可 - 通常ファイル x 実行許可 x 実行許可 x 実行許可 - 不許可 - 不許可 - 不許可 1 文字目 ※ファイルの種類は、この他に b,c,n,p,s などがあります。 実行結果例の 2 行目の例を取り上げると、 -52- -rw-r--r-- 1 sasaki sasaki 175384 Aug 4 13:13 Screenshot.png 通常ファイルで、所有者の権限は読み込みと書き込みが許可、グループの権限は、読 み込みのみ許可、所有者は「sasaki」 、グループは「sasaki」 、サイズは 175,384 バイト、 8 月 4 日 13 時 13 分に更新(または作成)され、Screenshot.png というファイル名とい う意味になります。 ファイル(またはディレクトリ)の所有者を変更するコマンドとして、 「chown」コマ ンドがあります。また、ファイル(またはディレクトリ)のグループを変更するコマン ドとして、 「chgrp」があります。 (書式) chown △ 所有者名 △ ファイル名(またはディレクトリ名) [Enter] chgrp △ グループ名 △ ファイル名(またはディレクトリ名) [Enter] (実行例) -53- 1.3.5 vi エディタ vi とは、Linux はもちろん、UNIX 系 OS 上で使えるテキストエディタです。テキスト エディタとは、装飾のないテキストファイルを作成,編集をするためのソフトウェアで す。装飾とは、太字,斜体,文字の大きさや文字の種類などの指定がないという意味で す。Windwos でいうメモ帳に相当するソフトウェアと言えます。 このエディタは、すべてコマンドで操作を行います。vi には大きく分けて 3 つの動 作モードがあります。 ・文字を入力する "インサートモード" ・文字列の編集作業をする "コマンドモード" ・ターミナルの左下に打ち込む"ex モード" vi 上の作業はこれらのモードを行ったり来たりしながら行いますが、この切替を行 うのが[ESC]キーと文字列挿入系コマンドです。また、ex モードにはコマンドモードで: あるいは/を入力すると切り替わります。切り替わると、ターミナルの左下に:あるいは /が表示され、コマンド待ち状態になります。 特に[ESC]キーは文字列入力を抜ける場合に使うだけでなく、今自分が vi をどちらの モードで使っているのかわからなくなってしまった場合や、打ち込んだコマンドをキャ ンセルする場合に押すという重要な機能があります。 [ESC]キーを入力した場合のアク ションは次のようになります。 ケース(1) :コマンドモードのとき コマンドモードがリセット状態に戻ります。 ケース(2)インサートモードのとき コマンドモードに切り替わります。 ケース(3)ex モードのとき ターミナルの下に表示されていた:が消えてコマンドモードに切り替わります。 -54- コマンドモードについて、基本的なコマンドを挙げます。 表 1.3.5-1 文字列挿入系の操作 内容 コマンドキー カーソルの前に文字列を挿入 i カーソルの後に文字列を挿入 a カーソルの下に文字列を挿入 o カーソルの上に文字列を挿入 O 表 1.3.5-2 カーソル移動系の操作 内容 コマンドキー カーソルを一つ左(←)に移動 h カーソルを一つ下(↓)に移動 j カーソルを一つ上(↑)に移動 k カーソルを一つ右(→)に移動 l ※カーソルの移動は、カーソルキーで行うことが可能です。キーボードのホームポジシ ョンから動かすことなく操作可能にするために、カーソル移動系のコマンドが準備され ています。 表 1.3.5-3 削除系の操作 内容 コマンドキー カーソル位置の 1 文字を削除 x カーソルのある行を削除 dd 表 1.3.5-4 保存終了 内容 コマンドキー 保存して終了する ZZ ここまでは、基本的な操作ですが、まだまだいろいろなコマンドがありますので、紹 介しておきます。よく使うコマンドや便利なコマンドは覚えておくとよいでしょう。な お、必要最小限の操作でも十分にエディタを使うことが出来ます。基本的にサーバ設定 のための編集作業というものは、ほとんど基本操作で済んでしまいます。 プログラミングや文書作成を行う際には、色々なコマンドを知っておくと効率的に作 業が出来ます。 -55- 表 1.3.5-5 コマンドモードの一例 内容 コマンドキー 作業の取り消しをする(Undo 機能) u カーソルを行の先頭に移動 0 カーソルを行の末尾に移動 $ 現在ページの先頭行にカーソルを移動 H 現在ページの末尾行にカーソルを移動 L カーソル位置から 1 ページ下に移動 [CTRL]+f カーソル位置から 1 ページ上に移動 [CTRL]+b 右方向に N 文字移動 数字 N を押し、l 左方向に N 文字移動 数字 N を押し、h 上方向に N 行移動 数字 N を押し、k 下方向に N 行移動 数字 N を押し、j N 文字コピーと右方向にペースト 数字 N を押し、yl し希望カーソル位置で p N 文字コピーと左方向にペースト 数字 N を押し、yh し希望カーソル位置で p カーソルのある 1 行をコピーし、カーソルの下の行にペースト Y を押し、希望カーソル位置で p カーソルのある 1 行をコピーし、カーソルの上の行にペースト Y を押し、希望カーソル位置で P 直前操作の繰り返し . 次に、ex モードの代表的な一覧を挙げます。 表 1.3.5-6 ex モードの一例 内容 コマンドキー 別の名前で保存 :w △ ファイル名 [Enter] 上書き保存 :w [Enter] 文字列検索 /検索文字列[Enter] 指定の行数目にカーソルを移動 :行数[Enter] Vi を終了する :q [Enter] Vi を保存しないで、強制終了する : q! [Enter] -56- ■演習 実際に、vi を起動して操作をしてみましょう。 (1)vi の起動 kterm から、 「vi △ ファイル名[Enter]」と打ち込むだけです。 例: $ vi △ test.txt [Enter] (2)インサートモードにして、文字を打ち込む 「a」または「i」キーを押して、インサートモードにします。 インサートモードになったら、適当にテキストを打ち込みます。 (3)保存して終了する [ESC]キーを押して、コマンドモードにします。 「ZZ」と打ち込むと、保存して vi が終了します。 (4)再度、vi でテキストを打ち込んで、いろいろなコマンドを試してみましょう。 -57- 1.3.6 ユーザ管理 管理者権限で行う操作の1つとして、ユーザ管理があります。ログイン ID を作成す る操作になります。 Linux は、もともと複数のユーザが 1 台のコンピュータを使用するという前提となっ ているので、ユーザ管理が必須となっています。 Root というユーザは特別なユーザで、すべての操作管理する権利が与えられていま す。したがって、root パスワードが第三者に漏れた場合は、サーバを乗っ取られたも 同然となってしまいますので、root での作業は慎重にかつパスワードの管理には十分 に気をつける必要があります。 それでは、早速、一般ユーザを作成してみましょう。 (書式) useradd △ ユーザ名 [Enter] ユーザの作成は、一般ユーザでは行うことは出来ませんので、root アカウントで作 用を行います。Root アカウントでログインをやり直すのも1つの方法ですが、ここで は、他のユーザアカウントに変更するコマンドを利用して、root ユーザに切り替えて から、作業を行うことにします。 (書式) su △ - △ ユーザアカウント [Enter] 上記の「su」コマンドでユーザの切り替えを行うことが出来ます。もちろん、ユーザ 切り替えの際、パスワードが必要となりますので、パスワードが分からなければ、ユー ザを切り替えることはできません。ただし、root ユーザから他のユーザアカウントに 切り替える際は、パスワードは不要です。 また、ユーザアカウントを省略した場合は、root ユーザに切り替わるものとみなさ れます。 実行例: $ su △ - △ root [Enter] $ Password: # useradd △ yamada [Enter] -58- ユーザを作成すると、/home/ユーザ名 というディレクトリが作成されます。このデ ィレクトリをホームディレクトリと呼び、ユーザは、ホームでディレクトリの中で自由 にファイルの作成等を行うことが出来るようになります。 次に、作成したユーザにパスワードを設定します。 (書式) # passwd △ ユーザ名 [Enter] # (パスワードの入力) # (パスワードの再入力) 実行例: # # # # passwd △ yamada [Enter] New UNIX password: [Enter] Retype new UNIX password: [Enter] passwd: all authentication tokens updated successfully. 作成したユーザを削除するときも、root ユーザで行います。削除するときは、ユー ザのホームディレクトリのデータを残すことも出来ます。残さない場合は、ホームディ レクトリが削除されます。 (書式) # userdel △ ユーザ名 [Enter] (ホームディレクトリを残す場合) # userdel △ –r △ ユーザ名 [Enter] (ホームディレクトリを削除する場合) 実行例: # userdel △ yamada [Enter] -59- ■演習 (1)新規ユーザの作成をしてパスワードを設定して下さい。 (2)「su」コマンドで、新規ユーザに切り替えて下さい。 (3)空ファイルを作成して下さい。 (4)新規ユーザをホームディレクトリも含めて、削除して下さい。 -60- 1.3.7 ソフトウェア管理 Linux のソフトウェアのインストールやアンインストールは、一般的には、プログラ ムソースをコンパイルしてインストールしたり、手動にてインストールされたファイル (プログラム)を削除していました。 Red Hat 系の Linux では、RPM(Red Hat Package Manager)と呼ばれる管理方式があり ます。新しいソフトウェアのソースコードから、簡単に再構築できるソースコード形式 や、簡単にインストールを行えるバイナリ形式でパッケージ化することができます。 RPM に、Red Hat という単語が含まれますが、RPM はオープンソースなので、誰でも 利用可能となっています。 Fedora Core3 でも、RPM を利用してソフトウェアの管理を行います。 (1)ソフトウェアのインストール (書式) rpm △ -ivh △ RPM ファイル名[Enter] (2)ソフトウェアのアップデート (書式) rpm △ -Uvh △ RPM ファイル名[Enter] (3)ソフトウェアのアンインストール (書式) rpm △ -e △ パッケージ名[Enter] (4)インストールされているソフトウェアの一覧表示 (書式) rpm △ -qa [Enter] ■演習 (1)インストールディスクから、RPM ファイルをコピーして下さい。 (2)RPM ファイルをインストールして下さい。 (3)インストールされているかどうか確かめて下さい。 (4)アンインストールして下さい。 -61- 1.3.8 サービス管理 サーバとして様々なサービスが稼働しています。Web サービスやメールサービスなど、 RPM でインストールしたソフトウェアについては、 「chkconfig」コマンドにてサービス の管理が可能です。 (1)サービスの一覧表示 (書式) chkconfig △ --list [Enter] (2)サービスの開始/停止の設定 (書式) chkconfig △ --level △ ランレベル △ サービス名 △ on|off [Enter] ※「on|off」は、「on」または「off」のどちらか一方を意味します。 サービスの開始を設定したサービスについては、Linux 起動時に自動的にサービスが 開始されます。停止設定したサービスについては、サービスは自動的に開始されません ので、必要なときに手動にてサービスを開始することになります。 ランレベルとは、Linux の動作モードのことで、ランレベルには 0~6 の 7 種類があ り、その数値によって動作の内容が異なります。各ランレベルの意味は以下の通りです。 表 1.3.8-1 ランレベル ランレベル 意味 0 シャットダウン(システムの停止) 1 シングルユーザーモード(root のみ) 2 ネットワークなしのマルチユーザーモード 3 通常のマルチユーザーモード(テキストログイン) 4 未使用 5 グラフィカルログインによるマルチユーザーモード 6 システムの再起動 -62- 図 1.3.8-1 図 1.3.8-2 サービス一覧表示 サービスの停止設定例 -63- 1.3.9 ネットワーク設定 サーバ構築にあたり、ネットワークの設定は、必要不可欠です。サーバとして稼働す ることが前提なので、自動設定(DHCP)は、今回は取り上げません。必要なのはネットワ ークの構成と、その構成に合わせた設定を Linux 上で行います。 Vi エディタを利用して、ネットワークの設定を行います。設定ファイルを直接開い て編集作業を行い、上書き保存して、ネットワークを再起動するという流れで行います。 ネットワーク構成は、以下の通りと仮定します。 IP アドレス 192.168.10.31 ネットマスク 255.255.255.0 ゲートウェイ 192.168.10.200 DNS サーバ 192.168.10.200 次の 3 ファイルを修正します。 ・/etc/sysconfig/network-scripts/ifcfg-eth0 ・/etc/sysconfig/network ・/etc/resolve.conf (1)/etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.0.255 IPADDR=192.168.0.10 NETMASK=255.255.255.0 NETWORK=192.168.0.0 ONBOOT=yes TYPE=Ethernet 今回設定するネットワーク構成にあわせて、ファイルを修正します。修正個所は、3 行目のブロードキャストアドレス,4 行目の IP アドレス,6 行目のネットワークアドレ スの 3 箇所です。 -64- DEVICE=eth0 BOOTPROTO=static BROADCAST=192.168.10.255 IPADDR=192.168.10.31 NETMASK=255.255.255.0 NETWORK=192.168.10.0 ONBOOT=yes TYPE=Ethernet 変更後の状態は、上記の通りです。 (2)/etc/sysconfig/network NETWORKING=yes HOSTNAME=FC3 GATEWAY=192.168.0.1 3 行目のゲートウェイアドレスを変更します。また、ホスト名を変更する場合は、2 行目を変更します。 NETWORKING=yes HOSTNAME=FC3 GATEWAY=192.168.10.200 変更後の状態は、上記の通りです。 (3)/etc/resolv.conf nameserver 192.168.0.1 ネットワークアドレスにあわせて、ネームサーバのアドレスを変更します。 -65- nameserver 192.168.10.200 変更後の状態は、上記の通りです。 ■具体的な変更手順 (1)「su」コマンドで、root ユーザになります。 (2)「ifconfig」コマンドで現在のネットワークの状態を確認します。 ネットワーク情報 図 1.3.9-1 変更前の状態 (3) /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルのバックアップをします。 →「cp」コマンドでファイルをコピーします。 cp △ /etc/sysconfig/network-scripts/ifcfg-eth0 △ /root/ [Enter] (4)vi で、/etc/sysconfig/network-scripts/ifcfg-eth0 ファイルを開き、修正をしま す。上書き保存して vi を終了します。 -66- vi △ /etc/sysconfig/network-scripts/ifcfg-eth0 [Enter] 図 1.3.9-2 ネットワークの設定 (5) /etc/sysconfig/network ファイルのバックアップをします。 cp △ /etc/sysconfig/network △ /root/ [Enter] (6)vi で、/etc/sysconfig/network ファイルを開き、修正をします。上書き保存して vi を終了します。 vi △ /etc/sysconfig/network [Enter] (7) /etc/resolv.conf ファイルのバックアップをします。 cp △ /etc/resolv.conf △ /root/ [Enter] -67- (8) vi で、/etc/resolv.conf ファイルを開き、修正をします。上書き保存して vi を終 了します。 vi △ /etc/resolv.conf [Enter] (9)ネットワークを再起動します。 /etc/init.d/network △ restart [Enter] 図 1.3.9-3 ネットワークの再起動 ネットワークデバイスの起動,停止および再起動の書式は、以下の通りです。 (書式) 起動 /etc/init.d/network △ start [Enter] 停止 /etc/init.d/network △ stop [Enter] 再起動 /etc/init.d/network △ restart [Enter] これらのコマンドは、root 権限でのみ実行可能です。 -68- (10) 「ifconfig」コマンドで現在のネットワークの状態を確認します。 (11)バックアップファイルを削除します。 rm △ /root/ifcfg-eth0 [Enter] rm: remove regular file `ifcfg-eth0'? y [Enter] rm △ /root/network [Enter] rm: remove regular file `network'? y [Enter] rm △ /root/ resolve.conf [Enter] rm: remove regular file `resolve.conf'? y [Enter] 削除すると、削除確認が表示されるので、削除する場合は、 「y」を入力します。削除 しない場合は、 「n」を入力します。 -69- 1.3.10 演習 コマンドラインで、Linux を終了して下さい。 (書式) OS の終了 shutdown △ -h △ now [Enter] OS の再起動 shutdown △ -r △ now [Enter] (1)Linux をコマンドで再起動させます。 (2)再起動している途中に、他のサーバから、再起動中のサーバに対して、「ping」 コマンドを打ってみて、どんな反応になるか確かめて下さい。 例: ping △ 192.168.10.31 [Enter] →再起動中と起動後で、反応がどのように変わるかチェックします。 (3)Linux を、コマンドを使って、終了して下さい。 -70- 2.1 ネットワーク入門(1) 2.1.1 ネットワーク接続形態 コンピュータや周辺機器を含めて、相互に接続している形態をネットワークと呼んで いますが、様々な種類のネットワークがあります。 はじめに、ネットワークの接続形態について、説明します。 (1)専用線型ネットワーク 2台のコンピュータを接続する方式です。専用線型は原則として他者が参入してきま せんので、秘話性が高く、システムの安定性も高いので、セキュリティを重要視する場 合に利用されます。 2台のコンピュータを接続する形態 図 2.1.1-1 専用線型の接続イメージ図 -71- (2)バス型ネットワーク 一本のネットワークに複数のコンピュータを接続する場合、図 2.2.1-2 の接続形態を バス型ネットワークといいます。 複数台のコンピュータを1本のバスを中心に接続する形 図 2.1.1-2 バス型の接続イメージ図 (3)スター型ネットワーク スター型ネットワークは、中心に集線装置を有し、そこから放射状に広がるネットワ ークです。このネットワークの特長は、新規にコンピュータが増えても、他に影響を与 えることなく接続できるその拡張性の高さにあります。 中心の装置から、複数台のコンピュータに接続する形態 図 2.1.1-3 スター型の接続イメージ図 -72- (4)ループ型ネットワーク リング型とも言いますが、バス型ネットワークの始点と終点を接続してしまえばルー プ型ネットワークになります。ループ型ネットワークでは、バス型のようにコンピュー タ間を並列に接続するのではなく、直列に接続することで信号の流れを一方向に定めま す。 複数台のコンピュータを輪のように接続する形態 図 2.1.1-4 スター型の接続イメージ図 (5)メッシュ型ネットワーク 公衆網や WAN などのように大規模なネットワークは、いろいろな接続形態を組み合わ せて出来ています。そのようなネットワークをメッシュ型といいます。インターネット などは全体としてメッシュ型のネットワークです。 複数台のコンピュータが相互に絡み合った形態 図 2.1.1-5 メッシュ型の接続イメージ図 -73- 2.1.2 イーサネット イーサネットとは、数あるネットワーク接続タイプの一つです。基本となる仕様は 1970 年後期に Xerox で開発されました。この規格は、LAN の標準化を行っている IEEE802 委員会のワークグループである IEEE802.3 により策定されました。 表 2.1.2-1 イーサネット仕様 IEEE 802.3 10BASE5 10BASE2 10BASE-T 帯域幅(Mbps) 10 信号タイプ ベースバンド(Baseband) 最長距離(m) 接続形態 500 185 バス型 10BASE-FL 100 2000 スター型 イーサネットでは、10Mbps の通信帯域を実現します。単位の bps は「Bit Per Second」 の略で、1 秒間に 1000 万ビットのデータを送信することを意味します。 信号タイプのベースバンドとは、1つの物理媒体(ケーブル)に、1 つのチャンネル (通信権)を供給するデジタル通信です。この方式は同時に複数の端末からの送信がで きません。通信端末が通信権を確保できた場合にのみ、データの送信が可能になります。 ベースバンド方式を用いるイーサネットは、セグメント上に接続された全ての装置に データを伝えるために、一台の端末からの送信データがケーブル上の全帯域を使用しま す。 -74- 2.1.3 ファーストイーサネット ファーストイーサネットとは、従来型の 10BASE-T/FL を高速化するために標準化さ れたもので、IEEE802.3(10Mbps)の追加・補足仕様として作成されました。標準化作 業は 1992 年 11 月にこの仕様に賛同するベンダーの組織「The Fast Ethernet Alliance」 によって着手され、1995 年に IEEE802.3u ファーストイーサネットとして仕様の合意に 達しました。 表 2.1.3-1 ファーストイーサネット仕様 IEEE 802.3u 100BASE-T4 帯域幅(Mbps) 100BASE-TX 100 信号タイプ 100BASE-FX 100(全二重 200) ベースバンド(Baseband) 最長距離(m) 100 412(半二重) 2000(全二重) 接続形態 スター型 ファーストイーサネットでは、100Mbps(1秒間に 1 億ビット)の通信帯域を実現し ます。イーサネット(10Mbps)の 10 倍の帯域幅を持つファーストイーサネットは、容 量の大きなマルチメディアファイルでも快適に通信を行うことができます。 2.1.4 ギガビットイーサネット ギガビットイーサネットは IEEE の 802.3 ワークグループにおいて、1996 年 7 月から 標準化作業が始められました。 標準には、大きく分けて二つの流れがあります。一つはファイバーチャネルの物理層 仕様を流用する 1000BASE-X で、802.3z として標準化されています。もう一方は UTP ケ ーブルを媒体とする 1000BASE-T で、802.3ab として標準化されています。 表 2.1.4-1 ギガビットイーサネット仕様 IEEE802.3z 1000BASE-CX IEEE802.3ab 1000BASE-LX 1000BASE-SX 帯域幅(Mbps) 1000(全二重:2000) 信号タイプ ベースバンド(Baseband) 最長距離(m) 25 550~5000(*1) 接続形態 スター型 (*1) 光ファイバーの種類により、最長距離は異なります。 -75- 220~550(*1) 1000BASE-T 100 2.1.5 IP アドレス IP アドレスとは、ネットワーク上のコンピュータに割り当てられた 32 ビットの識別 番号です。この IP アドレスには3種類あります。 表 2.1.5-1 名前 グローバルアドレス IP アドレスの種類 割り当てアドレス 説明 下記以外のアドレス 全世界を結ぶインターネットで有効。そのIPア ドレスは世界中で1つしか存在しない。勝手に IP アドレスを設定することは不可。 プライベートアドレス ループバックアドレス 10.0.0.0 ~ 10.255.255.255 LAN 内のみで有効。その IP アドレスは、その LAN 172.16.0.0 ~ 172.31.255.255 内で1つしか存在しない。割り当てアドレス範囲 192.168.0.0 ~ 192.168.255.255 内であれば、LAN 内で自由に設定可能。 127.0.0.1 すべてのホストに共通して用意されたホスト自 身を示す IP アドレス。 グローバル IP アドレスは、世界中で唯一そのホストだけに割り振られている IP アド レスのことですから、自分で勝手に IP アドレスを設定する事が出来ません。全世界の IP アドレスを管理する NIC(Network Information Center)という組織があり、その日本 における下部組織である JPNIC(Japan Network Information Center)から授与されます。 一般的には、JPNIC から直接個人にグローバル IP アドレスが授与されることはなく、 プロバイダ業者等に IP アドレスが付与され、プロバイダ業者が与えられた IP アドレス の一部を一般ユーザに解放します。 IP アドレスの表示は、32 ビットの数値で表現されますが、32 ビットというのは、32 桁の 2 進数のことで、通常は、8 桁ごとにピリオドで区切って、0~255 までの 4 つの 10 進数で表現されます。 表 2.1.5-2 IP アドレス表示 2 進数表示 11000000.10101000.00000010.00000001 10 進数表示 192 . 168. -76- 2. 1 2.1.6 IP アドレスのクラス IP アドレスは、所属するネットワークを表すネットワーク部とホストを表すホスト 部に分けることが出来ます。ネットワーク部というのは、ネットワークの規模を表し、 クラス A,クラス B,クラス C の3つあり、クラス A から順に大規模から小規模のネッ トワークに分けられています。 ネットワーク部 ホスト部 2 進数表示 01000000 00000000 11100000 00000001 10 進数表示 64 0 224 1 ビット数 8 ビット 24 ビット 図 2.1.6-1 クラス A の例 ネットワーク部 ホスト部 2 進数表示 10000000 00000000 11100000 00000001 10 進数表示 128 0 224 1 ビット数 16 ビット 16 ビット 図 2.1.6-2 クラス B の例 ネットワーク部 ホスト部 2 進数表示 11000000 00000000 11100000 00000001 10 進数表示 192 0 224 1 ビット数 24 ビット 図 2.1.6-3 クラス C の例 -77- 8 ビット クラス A は、一番大きなネットワークで、最初の 8 ビットをネットワークを識別する ネットワーク部として使用して、残りの 24 ビットを個別のホストを表すホスト部とし て使用します。後述する特殊な IP アドレスを除いて、クラス A で扱うことが出来るホ ストの数は、16,777,214 個となります。 クラス A は、先頭の 1 ビットを 0 から始めるという決まりがあります。 クラス B は、最初の 16 ビットがネットワーク部、残りの 16 ビットがホスト部として 使用します。クラス B では、65,534 個のホストを扱えます。 クラス B は、先頭の 2 ビットを 10(2 進数)から始めるという決まりがあります。 クラス C は、最初の 24 ビットをネットワーク部、残りの 8 ビットがホスト部として 使用します。クラス C では、254 個のホストを扱えます。 クラス C は、先頭の 3 ビットを 110(2 進数)から始めるという決まりがあります。 2.1.7 特殊なアドレス (1)ネットワークアドレス ネットワークアドレスは、ネットワーク自身に割り当てられたアドレスで、IP アド レスのホストを表す部分がすべて「0」 (2 進数)のアドレスです。 表 2.1.7-1 ネットワークアドレスの例 クラス ネットワークアドレス(例) クラス A 10.0.0.0 00001010.00000000.00000000.00000000 (2 進数表示) クラス B 172.16.0.0 10101100.00010000.00000000.00000000 (2 進数表示) クラス C 192.168.1.0 11000000.10101000.00000001.00000000 (2 進数表示) -78- (2)ブロードキャストアドレス ブロードキャストアドレスは、ネットワークに所属する全てのホストを表し、IP ア ドレスのホストを表す部分がすべて「1」 (2 進数)のアドレスです。 ブロードキャストアドレスは、ネットワーク内の全てのホストに、一括して IP パケ ットを送信するときに使用します。 表 2.1.7-2 ブロードキャストアドレスの例 クラス ブロードキャストアドレス(例) クラス A 10.255.255.255 00001010.11111111. 11111111. 11111111 (2 進数表示) クラス B 172.16.255.255 10101100.00010000. 11111111. 11111111 (2 進数表示) クラス C 192.168.1.255 11000000.10101000.00000001. 11111111 (2 進数表示) (3)ループバックアドレス 全てのホストに共通に用意されたホスト自身を示すアドレスです。いわゆる、自分の ことを指す、一人称の「私」と同じ意味です。 ホストから見て自分自身のアドレスをループバックアドレスと呼びます。このアドレ スは、「127.0.0.1」と決まっています。 この「127.0.0.1」のアドレスは、 「私」に該当し、ネットワークアドレスは「127.0.0」、 ブロードキャストアドレスは「127.255.255.255」となります。 -79- 2.1.8 ネットマスク IP アドレスは、所属するネットワークアドレスとホストを表す部分で構成されてい ますが、IP アドレスを参照しただけでは、どこまでがネットワーク部でどこからかホ スト部なのかを識別出来ません。そこで、IP アドレスにフィルタを適用することで、 ネットワーク部とホスト部とを識別出来るようにしています。この役割がネットマスク となります。 フィルタの適用は、IP アドレスとネットマスクの論理積から IP アドレスのネットワ ークアドレスを算出して、ネットワーク部とホスト部を識別します。 論理積は、2 進数の 1 と 1 を掛け合わせると 1、その他の場合は、0 となる演算です。 表 2.1.8-1 は、論理積の例です。 表 2.1.8-1 論理積 X Y X と Y の論理積 0 0 0 0 1 0 1 0 0 1 1 1 具体的な例を取り上げてみます。IP アドレスが「192.168.10.5」、ネットマスクが 「255.255.255.0」の例では、以下のようになります。 2 進数表示 10 進数表示 IP アドレス 11000000 10101000 00001010 00000101 192.168.10.5 ネットマスク 11111111 11111111 11111111 00000000 255.255.255.0 ネットワークアドレス 11000000 10101000 00001010 00000000 192.168.10.0 各クラスのネットマスクは、以下のようになっています。 表 2.1.8-2 クラス ネットマスク クラス A 255.0.0.0 クラス B 255.255.0.0 クラス C 255.255.255.0 ネットマスク -80- 2.1.9 CIDR インターネットに接続するホスト数が爆発的に増加し、現状では IP アドレスの不足 が大きな問題となっています。増え続けるホストに対して、クラス単位で IP アドレス を供給していると、すぐに IP アドレスが枯渇してしまいます。現在では、従来のクラ スに変わって CIDR(Classless Inter-Domain Routing)という考えが主流となっていま す。 ※現在利用されている IP は、IPv4 と呼ばれているもので、32 ビットの IP アドレスな ので、個数も限られています(約 43 億)。しかし、これを解決するために IPv6 の規格 もあり、現在、広まりつつあります。IPv6 は、128 ビットでアドレスを表すので、約 10 の 38 乗のアドレスを扱うことが出来ます。 CIDR は、IP アドレスのネットワーク部分を 8 ビット単位から 1 ビット単位で管理す るという考え方です。クラス C をさらに小さいネットワークに分割することが出来て、 ネットワークの数を増やして、IP アドレスを有効に利用出来るようになります。 具体的な例として、IP アドレスが「192.168.10.5」、 ネットマスクが 「255.255.255.240」 とします。本来は、ネットマスクは、「255.255.255.0」(クラス C の場合)ですが、ネ ットワーク部を先頭から 28 ビットとすることで、クラス C のネットワーク数を増加さ せることが出来ます。 2 進数表示 10 進数表示 IP アドレス 11000000 10101000 00001010 00000101 192.168.10.5 ネットマスク 11111111 11111111 11111111 11110000 255.255.255.240 ネットワークアドレス 11000000 10101000 00001010 00000000 192.168.10.0 ネットマスクでフィルタを適用すると、ネットワークアドレスは、下線の部分となり ます。通常、CIDR を用いる時は、 「ネットワークアドレス/ネットワーク部のビット数」 という表現をします。 上記の例では、 「192.168.10.0/28」 となります。 -81- 2.1.10 ネットワーク周辺機器 ネットワークアドレスを理解したところで、具体的なネットワーク機器について、ど のような目的でどのような役割があるかを理解します。 (1)LAN ケーブル LAN ケーブルには、クロスケーブルとストレートケーブルの2種類あります。コンピ ュータ同士を接続するためのケーブルですが、コンピュータとコンピュータを直接接続 する際には、クロスケーブルを使います。この場合は、2点間の接続のみとなります。 また、ハブとハブを接続するさいも、クロスケーブルを使用しますが、最近では、スト レートケーブルでも接続できるようになっています。 (2)ハブ 次に、3台以上のコンピュータを接続するには、クロスケーブルだけでは不可能にな ります。そこで、ハブが登場します。ハブは、複数のポートに分岐する役目を持ってい ます。しかし、分岐すると電気信号が衰退するので、それを増幅する必要があります。 この増幅機能の役目を果たす機器を「リピーター」と呼びます。最近では「リピータ ー」機能のみの機器はありません。ハブに「リピーター」機能を持たせているので、そ のようなハブを「リピーターハブ」と呼びます。 もう一つの機能として、「ブリッジ機能」があります。これは、必要なデータを振り 分けて、不要なデータを LAN に流れることを防ぎ、全体のパフォーマンスを向上するこ とが出来ます。 このような機能を兼ね備えたハブを「スイッチングハブ」と呼びます。 さらに高機能なものとして、SNMP(Simple Network Management Protocol)エージェン トを備えたハブもあります。SNMP は、ネットワーク管理用のプロトコルで、ネットワ ーク情報を管理するためのものです。このような機能を持ったハブを「インテリジェン トハブ」と呼びます。 (3)ルータ ルータは、LAN と LAN、WAN と LAN など、ネットワーク同士を接続する機器です。 同じネットワークなのか、異なるネットワークなのかということは IP アドレスによ って判断することができます。ルータはこの IP アドレスに基づいて、異なるネットワ ーク間での通信を行う際の経路選択機能を提供しています。 ルータの主な機能は、 「ルーティング」と「フィルタリング」です。 -82- ルーティングは、パケットを宛先に届けるために最適な転送経路を探し、決定する機能 です。 フィルタリングは、不要なパケットの中継を遮断し、許可されたパケットのみを通過 させる機能です。主としてネットワークトラフィックの削減と、セキュリティを目的と して使われます。このフィルタリングの機能は、どこまで細かく設定できるかは製品に より違います。最近では、低価格のルータであってもフィルタリング機能が備わってお り、ポート番号ごとや送信元・宛先 IP アドレスごとなどの組み合わせにより、設定で きるようになっています。 この基本機能の他にアドレス変換機能を持ったものもあります。社内ネットワーク内 で利用されているアドレスと、WAN 側で利用されているアドレスの変換を行う機能です。 社内ネットワークで利用されているアドレスは、WAN 側からは隠蔽されるわけですから、 セキュリティの向上に役に立ちます。また、1 つの WAN 側の IP アドレスを複数のコン ピュータで共有するため、IP アドレスの枯渇化に対する解決方法としても有効な役割 があります。 ●NAT アドレス変換を 1 対 1 で行います。LAN 側から WAN 側にパケットを送ると、ルータは 送信元の IP アドレスを、WAN 側で与えられた IP アドレスに変換して送信先にパケット を送ります。WAN 側から LAN 側に送られた場合は、その逆を行います。NAT はあくまで 1 対 1 対応であるため、複数のコンピュータが同時に WAN 側へアクセスする場合は、そ の台数分の IP アドレスをプロバイダ等から取得しておかなければなりません。 ■IP マスカレード(NAPT) NAT を拡張したものです。1 対多の変換を行います。LAN 側からパケットが送られる と、ルータは WAN 側に送信元 IP アドレスの他に、送信元のポート番号の情報も変換し て付加します。ポート番号は、接続セッションごとにクライアントコンピュータ側でラ ンダムに割り振られる番号で、必ず異なる番号が使用されます。ただし、一部のサービ スが利用できなかったり、対応していないソフトウェアもあるので注意が必要です。 -83- 2.2 ネットワーク入門(2) 2.2.1 TCP/IP TCP/IP(Transmission Control Protocol/Internet Protocol)は、現在のインターネ ットの標準となっている通信プロトコルです。プロトコルは、直訳すれば「規約」とな りますが、通信のやりとりの、決め事のことです。 TCP/IP は、いくつかの階層で構成され、ISO(国際標準化機構)の OSI(Open System Interconnection)7 層モデルとして、一般化されています。ここでは、TCP/IP の階層構 造の概略のみを扱います。 各層のデータのやりとり データ 送信 ↓ ヘッダ ↑ データ ↓ ヘッダ ヘッダ ヘッダ ヘッダ トランスポート層 ↑ データ ↓ ヘッダ アプリケーション層 インターネット層 ↑ 受信 データ ネットワーク・インターフェース層 データを送信する場合は、上位の階層から下位の階層へとデータを送り、各階層で独 自のヘッダと呼ばれる制御情報を付加して、データをネットワークの送信します。 データを受信する場合は、下位の階層から上位の階層へとデータを送り、各階層毎に データに付加されているヘッダを見ながら適切な上位プロトコルにデータを渡します。 このとき、付加せれたヘッダを取り除くので、最後のアプリケーション層ではヘッダ情 報のない、データのみが届くようになっています。 -84- (1)アプリケーション層 アプリケーション層は、web ブラウザやメールソフトなど、一般ユーザが直接扱うア プリケーションで動作するプロトコルで、HTTP,SMTP,FTP などがアプリケーション層に 属しています。 (2)トランスポート層 下位のインターネット層から送られてきたデータのヘッダにあるポート番号を元に 上位のアプリケーション層の該当プロトコルに渡します。逆に、上位のアプリケーショ ン層から送られてきたデータにプロトコルのポート番号を付与して下位のインターネ ット層にデータを渡します。 トランスポート層では、最終的にユーザレベルでそのデータを扱うプロトコル(アプ リケーション)を判別する役割があります。 (3)インターネット層 インターネット層では、ネットワーク上のデータの送り先を導き出します。宛先の IP アドレスを元にデータの送信先を定めて、送信先に達するまでの最適なルートを決 めます。また、受信したデータがどこから来たのかという送信元の IP アドレスも把握 しています。送信先や送信元などのネットワーク上のアドレスに関する処理を行います。 (4)ネットワークインタフェース層 データを物理的に伝送するためのケーブルやデータを送信するプロトコルなどが含 まれた層です。ネットワークカードのドライバなどが、これに属します。 -85- 2.2.2 TCP と UDP TCP(Transmission Control Protocol)と UDP(User Datagram Protocol)の基本的なプ ロトコルを理解しておきます。 TCP は、トランスポート層に属するプロトコルで、データを伝送する前に通信経路を 確立して、データのやりとりを行います。このような方式を「コネクション思考型通信」 と呼び、信頼性の高い通信を実現出来るので、WWW やメールなどインターネットの主要 なアプリケーションで利用されます。 UDP は、通信相手と通信経路の確立を行わない「コネクションレス型通信」です。デ ータ通信に対する信頼性は低下しますが、コネクションを確認しない分だけ高速な通信 を保持することが出来ます。UDP は、高速な通信を要求される音声や画像の配信のプロ トコルに利用されます。DNS や NTP などが UDP を利用しています。 コネクション型 コネクションレス型 SYN データ 1 SYN+ACK データ 2 ACK ・・・ ・・・ FIN+ACK データ n ACK ホスト 1 ホスト 2 図 2.2.2-1 ホスト 1 ホスト 2 コネクション型とコネクションレス型 具体的には、図 2.2.2-1 にあるように、コネクション型の場合は、ホスト 1 がホスト 2 に SYN フラグを設定したパケットを送ります。ホスト 2 は、ホスト 1 に対して SYN フ ラグと ACK フラグを設定したパケットを送り返します。ホスト 1 は、それを受け取って ホスト 2 に接続の意志があると確認し、ACK フラグのみを設定したパケットを送ります。 これをホスト 2 が受け取って、TCP における接続が確立します。 接続が確立している間、ホスト 1 とホスト 2 の間でデータのやりとりが行われます。 -86- 接続を切断したい場合は、ホスト 1 とホスト 2 のどちらかが FIN フラグと ACK フラグ を設定したパケットを送ります。ACK フラグの設定されたパケットを送って、切断され ます。 2.2.3 ICMP ICMP(Internet Control Message Protocol)は、主にネットワーク上のコンピュータ同 士の接続状態を確認するために用いられるプロトコルです。ネットワーク接続状態を確 認する「ping」コマンドがあります。 図 2.2.3-1 ping コマンド結果例 「ping」コマンドの実行結果例です。上記の例では、コンピュータ(192.168.0.101) が接続に応答していることが分かります。 -87- 2.2.4 プロトコル番号とポート番号 TCP や UDP などトランスポート層で機能するプロトコル層にはプロトコル番号が割り 振られ、www や DNS などのアプリケーション層で機能するプロトコルにはポート番号が 割り振られています。 プロトコル番号が記述されたファイルが/etc/protocols にあります。 http,telnet や ftp などのアプリケーション層のプロトコルは、ポート番号と呼ば れるトランスポート層からの出入り口に対して番号を振っています。 1つのコンピュータ上では、複数のサービスが稼働されているのが普通で、これらの サービスは異なるポート番号を持っています。 インターネットの世界では、ポート番号に対して明確なサービスが割り当てられてい ます。例えば、web は 80 番ポートを使用します。メールの送信は、25 番ポートを使用 します。 アプリケーション層では、プロトコル毎に定められたポートを監視して、データが到 着したらデータを受け取って処理をします。 ポート番号が記述されたファイルが/etc/services にあります。 表 2.2.4-1 プロトコル 代表的なプロトコルとポート番号 ポート番号 サービス ftp-data 20 FTPD ftp 21 FTPD SSH 22 SSHD telnet 23 telnet SMTP 25 メール送信 DNS 53 ネームサービス DHCP 69 DHCP HTTP 80 www POP3 110 メール受信 NTP 123 時刻サービス https 443 www(ssl) -88- 2.2.5 ネットワーク関連コマンド ここでは、よく利用するネットワークに関係するコマンドを紹介します。 ●ポートスキャンのチェック ポートが開いているかどうかの確認が出来ます (書式) nmap △ ホスト名(または IP アドレス)[Enter] ●ホストのネットワーク接続状態を確認 (書式) netstat [Enter] オプションもありますが、ここでは、省略します。Man コマンドで確認して下さい。 -89- 2.2.6 telnet 直接端末に向かわずに Linux を操作することが出来るリモートログインサービスは、 ネットワークでは必須の機能です。リモートログインで扱うコンピュータは、席の隣の コンピュータであっても、地球の裏側のコンピュータであっても関係ありません。 インターネットで、世界中のコンピュータがつながっているので、どこにあるかを意 識することなく操作できます。 リモートログインサービスの代表的なものが、 「telnet」です。telnet を使えば、ロ ーカルコンピュータで、あたかもその端末であるかのように操作ができます。 telnet は、データが暗号化されないために、キーボードで打ち込んだ内容そのもの がネットワークに流れます。従って、root のパスワードなどもネットワークに流れる ため、セキュリティ的に危険なこともクローズアップされています。 従って、telnet よりも安全な ssh というプロトコルが、telnet に替わって利用され るようになってきています。プロトコルの違いがあるものの、リモート操作をおこなう という意味では、操作の違いはありません。 早速、telnet を使ってみます。ユーザとして利用するのはなく、サーバ構築から始 めます。 (1)telent サーバがインストールされていることを確認 telnet サーバがインストールされていなければ、利用することも出来ません。 「rpm」 コマンドで、telnet サーバがインストールされているかどうかを確認します。 rpm △ –qa △ | △ grep △ telnet [Enter] 上記のコマンドを実行して何も表示されない場合は、インストールされていないこと になります。インストールされている場合は、telnet のパッケージ名が表示されます。 実行結果例: telnet-xx-xx-xx telnet-0.17-30 は、クライアント用の telnet ソフトウェアです。サーバは、 telnet-server-xxx-xx という名前で表示されます。ここでは、追加インストール作業 が必要となります。 -90- (2)telnet サーバのインストール Fedora Core3 の Disc3 を CD-ROM ドライブに挿入します。自動的に CD を認識して、 CD-ROM ドライブにアクセス出来るようになります。 ※CD を挿入すれば CD が使えるのは当たり前だと思われますが、Linux では違います。 CD をマウントするという作業が必要で、Fedora Core3 の今回のインストール内容では、 auto マウント機能が搭載されているため、すぐに利用できるようになっています。 CD の中身は、「/media/ cdrecorder /」の中にあります。その中の「Fedora/RPMS」 の中にパッケージソフトウェアが入っています。 「rpm」コマンドで早速インストールし てみます。 cd △ /media/cdrecorder/ [Enter] ls [Enter] ←内容を確認します。 cd △ Fedora/RPMS/ [Enter] ls △ | △ grep △ telnet [Enter] ←telnet という文字がファ イル名に含まれているものだけを表示する。 上記の内容にて、CD-ROM の内容を確認して、 「telnet-server-0.17-30.i386.rpm」フ ァイルがあることを確認します。 次に、rpm コマンドでインストールします。 rpm △ -ivh △ telnet-server-0.17-30.i386.rpm [Enter] warning: telnet-server-0.17-30.i386.rpm: V3 DSA signature: NOKEY, key ID 4f2a6fd2 Preparing... 1:telnet-server ########################################### [100%] ########################################### [100%] 再び、以下のコマンドで、telnet-server がインストールされたことを確認します。 rpm △ –qa △ | △ grep △ telnet [Enter] -91- (3)telnet サービスの起動設定 telnet は、セキュリティの危険性から、インストールしてもサービスは開始されま せん。はじめに、telnet サービスを有効にします。 chkconfig --list telnet [Enter] telnet off chkconfig --level 2345 telnet on [Enter] chkconfig --list telnet [Enter] telnet on Telnet のサービスがオフになっているので、「chkconfig」コマンドでサービスをオ ンにします。 (4)telnet サービスを手動で起動 ここまで準備ができたら、telnet サービスを起動します。 /etc/init.d/xinetd △ start [Enter] プロセスを確認するコマンドで、xinetd サービスが動いていることを確認します。 ps △ ax | △ grep △ xinetd [Enter] -92- 上図のように、xinetd のプロセスが表示されていれば、確認 OK です。Chkconfig コ マンドで、telnet サービスをオンにしていない場合は、ここで確認しても無意味です。 そこで、 「nmap」コマンドで、ポート番号を確認してみます。 nmap △ localhost [Enter] 実行結果として、 23/tcp open telnet が、表示されていれば、サービスが起動していることを確認できます。 (5)ファイアウォールの停止 telnet は、ポート番号 23 番でサービスを行います。今回のインストールの初期状態 では、telnet のポート番号 23 番は、フィルタがかかっているためアクセスが出来なく なっています。 動作確認だけなので、ここでは、ファイアウォールを停止して、telnet の動作確認 を行います。 /etc/init.d/iptables △ stop [Enter] ここまでで、telnet サーバの構築が完了しました。あとは、動作確認をするだけで す。動作確認には、クライアント PC の telnet クライアントソフトを使用します。 Telnet クライアントソフトの起動 (書式) telnet △ ホスト名(または、IP アドレス)[Enter] 起動すると、「login 名」と「パスワード」を入力して、リモートログインが完了し ます。はじめは、自分自身のサーバにリモートログインします。うまくいったら、他の サーバにリモートログインしてみて下さい。 -93- telnet localhost [Enter] Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. Fedora Core release 3 (Heidelberg) Kernel 2.6.9-1.667 on an i686 login: sasaki [Enter] Password: [Enter] Last login: Fri Aug 5 10:03:18 from 192.168.0.2 ←ここで、ログイン成功なので、リモートのファイル操作が可能です。 logout [Enter] Connection closed by foreign host. ■演習 (1)他のサーバに telnet でログインして、ファイルを作成して下さい。 (2)telnet でログインされた側は、ファイルが作成されているかどうか、確認して 下さい。 -94- 2.2.7 ftp ftp は、コンピュータ間でファイルのやりとりを行うためのサービスでリモートログ インと同様に基本的なサービスの 1 つです。ホームページのアップロードに広く使われ ています。 FTP(File Transfer Protcol)は、ファイル転送を目的としたサービスで、制御用に 21/TCP、転送用に 20/TCP を必要とします。 telnet のときと同じように、サーバ側から構築していきます。 (1)ftp サーバがインストールされていることを確認 rpm △ –qa △ | △ grep △ ftp [Enter] ftp-0.17-22 vsftpd-2.0.1-5 lftp-3.0.6-3 ftp-xx-xx が、ftp クライアントソフトです。Vsftpd-xxx-xx が、ftp サーバソフトで す。FTP サーバのソフトの種類はたくさんありますが、Fedora Core3 では、比較的セキ ュリティ面で強化されている、vsftpd が採用されています。 今回は、FTP サーバソフトはインストールされているので、インストール作業は不要 です。 (2)FTP サービスを手動で起動 /etc/init.d/vsftpd △ start [Enter] プロセスを確認するコマンドで、vsftpd サービスが動いていることを確認します ps △ ax [Enter] -95- 上図のように、vsftpd のプロセスが表示されていれば、確認 OK です。 「nmap」コマンドでも、ポート番号を確認してみます。 nmap △ localhost [Enter] 実行結果として、 21/tcp open ftp が、含まれていれば OK です。 20/TCP が表示されないのは、なぜでしょうか?これは、FTP のコネクション方式に理 由が隠れています。クライアントからサーバにコネクションを張るのが、21/TCP です。 20/TCP は、サーバからクライアント方向にコネクションを張ります。だから、サーバ 側のサービスとしては、21/TCP となっています。 ここまでで、FTP サーバの構築が完了しました。FTP サーバには、もっと細かい設定 が可能で、/etc/vsftpd.conf ファイルを編集することにより、FTP サーバの動作設定 を行うことができます。ここでは、動作確認するだけなので、省略します。 動作確認には、ftp クライアントソフトを使用します。 -96- FTP クライアントソフトの起動 (書式) ftp △ ホスト名(または、IP アドレス)[Enter] 起動すると、「login 名」と「パスワード」を入力して、ログインが完了します。は じめは、自分自身のサーバにログインします。うまくいったら、クライアント PC から サーバにログインしてみて下さい。 ftp でログインすると、FTP 独自のコマンドでファイル転送を行います。基本的なコ マンドのみを挙げておきます。 表 2.2.7-1 代表的な ftp コマンド コマンド 内容 ls [Enter] リモートコンピュータのファイル一覧を表示 cd △ ディレクトリ名 [Enter] リモートコンピュータのディレクトリを移動 bin [Enter] 転送モードをバイナリに設定 ascii [Enter] 転送モードをテキストに設定 put △ ローカルファイル名 [Enter] ローカルファイルをリモートコンピュータに転送する get △ リモートファイル名 [Enter] リモートファイルをローカルコンピュータに転送する close [Enter] リモートコンピュータからログアウトする quit [Enter] ftp アプリケーションを終了する 上記の例では、接続して何もせずに終了しています。 -97- 2.2.8 ファイアウォール インターネットでは、不正アクセスや悪意のあるアクセス等が頻繁にあり、本来のサ ービスを提供できなくなってしまうこともあります。より安全にサーバ運用していく中 で、ファイアウォールというものがあります。本来は、ハードウェアで行いますが、ソ フトウェアでもファイアウォールを構築することが出来ます。Linux では、パケットフ ィルタリング機能である、iptables を使用します。 ここでは、直接設定ファイルをエディタで開いて設定することにします。 設定ファイルは、/etc/sysconfig/iptables です。 ファイルを編集する際には、必ずバックアップをとって下さい。 Telnet サーバを構築したときに、ファイアウォールを停止しましたが、ここでは、フ ァイアウォールに telnet のポート番号を許可する設定に変更します。 # Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] ポリシーの設定 :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT -98- フィルタ ポリシーの設定は、フィルタのルールにないものデフォルトの設定をどうするかを決 める部分です。上記の例では、パケットの入出力および転送について、デフォルトは受 け入れるという意味です。 通常は、すべて不許可にして、必要なものだけを通すという設定にします。 ここでは、この設定をそのまま活かして、telnet を許可する設定に変更します。 上図のフィルタの部分では、ポート番号が「80」「21」「22」「25」が許可となっていま す。 次の1行を挿入します。 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT 挿入が完了したら、保存して、iptables を再起動します。 /etc/init.d/iptables △ restart [Enter] 最後に、telnet でアクセスして接続できることを確認します。 (1)/etc/sysconfig/iptables ファイルのバックアップをとります。 cp △ /etc/sysconfig/iptables △ /root/ [Enter] (2)/etc/sysconfig/iptables ファイルを編集して、保存します。 vi △ /etc/sysconfig/iptables [Enter] (3)iptables を再起動します。 /etc/init.d/iptables △ restart [Enter] (4)telnet 接続を他のサーバから行います。 telnet △ 192.168.10.31 [Enter] -99- 2.2.9 演習 お互いのサーバ同士でリモート接続を行い、ファイルの送受信を行って下さい。最後 に、リモートコンピュータ上で、root ユーザに切り替えて、Linux をシャットダウンし て下さい。 (1)telnet サーバを動いていない場合は、起動させます。 (2)ftp サーバが動いていない場合は、起動させます。 (3)telnet および ftp が外部から接続できるようにファイアウォールを設定します。 (4)ローカルコンピュータで、telnet で vi エディタでファイルを作成します。 (5)ftp でリモートコンピュータに接続して、作成したファイルを転送します。 (6)telnet でリモートコンピュータに接続して、先ほど送ったファイルを削除しま す。 (7)リモートコンピュータ上で、 「su」コマンドで、root ユーザになって、OS をシャ ットダウンします。 -100- 3.1 DNS サーバの概要(1) 3.1.1 DNS とは DNS は、Domain Name System の略で、IP アドレスとドメイン名を対応付けるシステ ムのことです。インターネット上のホームページを見る時には、Web ブラウザのアド レス欄に「www.yahoo.co.jp」のように URL を入力しますが、この名前には次のような 意味があります。 www . knc . co . jp ホスト名 ホスト名 ドメイン名 :“www”であればWebサーバといった具合に、 コンピュータに付けられる名前。 ドメイン名:インターネット上の住所のようなもの。 数字の羅列であるIPアドレスは人間にとって扱いにくい為、 アルファベット等を使い直感的に分かりやすくしたもの また、メールを送信する際にはメールソフト(以下、メーラ)の To 欄に 「[email protected]」のようにメールアドレスを入力します。これは、 taro @ knc . co . jp ユーザ名 ドメイン名 のように、「knc.co.jp」ドメインに登録されている「taro」ユーザという意味になります。 - 101 - TCP/IP における通信ではコンピュータの特定(住所)に IP アドレスを使用します。 つまり、ドメイン名(+ ホスト名)が表す住所は仮のものです。この仮の住所から本当 の住所(= IP アドレス)を見つける処理を名前解決と呼び、名前解決を実現するための 仕組みが DNS となります。 www.knc.co.jp 202.213.237.1 名前解決 ドメイン名 IPアドレス - 102 - 3.1.2 ドメイン名前空間 DNS サーバについて説明する前に、ドメインについて解説します。ドメイン名前空 間とは、インターネットに接続された各ホスト情報を管理する木構造のことです。根 (root)から節(node)、葉(leaf)という木構造で、管理されるエリア(部分木)を名前空 間と呼びます。 各葉には、Web サーバや FTP サーバ、メールサーバ等のホストが入ります。 www ftp mail 各ホストをまとめた節がドメインとなります。 abc www ftp - 103 - mail 更に各ドメインをまとめていき、最終的に世界中で一つにまとめ上げます。この木構造 の空間を名前空間と呼びます。 jp co net kr ac ne co com def abc mail www ftp mail - 104 - www 3.1.3 ドメイン名と木構造 インターネットでホームページを閲覧する際の URL(“www.knc.co.jp”)や、メール をする際のドメイン名(”[email protected]”)は、前述した名前空間を下(葉)から順に 上って行ったものです。逆に言うと、上(根)から順に下って行くと特定のホストへ辿 り着けるという事です。 ドメイン名の一番右(“jp” や ”com”)をトップレベルドメイン(TLD)と呼び、基 本的には国を表す部分です。また、右から二番目(“co” や “ac”)をセカンドレベ ルドメイン(SLD)と呼び、基本的にはドメインの属性(“co” なら企業、”ac” なら 学校等)が入ります。 www . knc . co . jp TLD(トップレベルドメイン) SLD(セカンドレベルドメイン) TLD :世界中の誰でも利用できるgTLD(generic TLD)と、 各国を示すccTLD(contry code TLD)がある。 SLD :gTLDの場合、組織名などを表す。 ccTLDの場合、組織の種類や所在を表す。 ■ www . knc . co . jp 国(日本)を表す 属性(会社)を表す ■ www . knc . com 属性(商用)を表す 組織名(knc)を表す - 105 - 以下は、TLD の一覧です。 属性 COM commercial -商用 NET network – ネットワーク ORG organization – 非営利団体 意味 国 AQ AR AT AU BR CA CH CN DE EG FI FR FX GB GR GU HK ID IN IQ IR IT JM JP KE KP KR MM MN MX MY NL 国名 南極(Antarctica) アルゼンチン(Argentina) オーストリア(Austria) オーストラリア(Australia) ブラジル(Brazil) カナダ(Canada) スイス(Switzerland) 中国(China) ドイツ(Germany) エジプト(Egypt) フィンランド(Finland) フランス(France) フランス(本国) (France, Metropolitan) イギリス(Great Britain) ギリシャ(Greece) グアム(米領) (Guam) 香港(Hong Kong) インドネシア(Indonesia) インド(India) イラク(Iraq) イラン(Iran) イタリア(Italy) ジャマイカ(Jamaica) 日本(Japan) ケニア(Kenya) 朝鮮民主主義人民共和国(Korea, Democratic Peoples Republic Of) 大韓民国(Korea, Republic Of) ミャンマー(Myanmar) モンゴル(Mongolia) メキシコ(Mexico) マレーシア(Malaysia) オランダ(Netherlands) - 106 - 国 NO NZ PE PH PT RU SE SG TH TN TR TW US VA VN 国名 ノルウェー(Norway) ニュージーランド(New Zealand) ペルー(Peru) フィリピン(Philippines) ポルトガル(Portugal) ロシア連邦(Russian Federation) スウェーデン(Sweden) シンガポール(Singapore) タイ(Thailand) チュニジア(Tunisia) トルコ(Turkey) 台湾(Taiwan, Province Of China) アメリカ合衆国(United States) バチカン市国(Vatican City State) ベトナム(Viet Nam) 以下は、SLD の一覧です。 属性 AC CO GO OR AD NE GR ED LG 意味 academic - 大学など commercial - 企業 governmental - 政府機関 organization - 非営利法人 administrator - JPNIC 会員ネットワーク network service - ネットワークサービス group - 任意団体 educational - 学校(主に 18 歳未満を対象とする)など local government - 地方公共団体 - 107 - 3.1.4 DNS サーバ 名前空間を管理し、名前解決を行うサーバの事を DNS サーバ(ネームサーバ)と呼び ます。世界中に膨大な数のコンピュータがあり、かつ常に流動的にコンピュータが追 加・変更されているインターネットの世界では、一つのコンピュータが全ホストのド メイン情報を管理する事は不可能です。そのため DNS サーバは世界中に点在し、連携 しながら名前解決する仕組みになっています。名前空間上では根と節に当たる部分に 相当し、各 DNS サーバは自分の直下(子)の情報のみ管理します。その管理範囲のこと をゾーンと呼びます。 ゾーン jp co kr ac ne net co com def abc www www ftp mail - 108 - mail 3.1.5 名前解決の手順 名前解決するためには、近くにある DNS サーバに問い合わせを行います。この問い 合わせを出すプログラムをリゾルバ(resolver)と呼びます。名前解決はドメイン名を 使用する全ての通信において実行されるため、リゾルバは InternetExplorer や NetScape などの Web ブラウザ、OutlookExpress や Becky!などのメーラなど様々なソ フトウェアが利用します。世界中のマシンの名前解決を行うために DNS サーバ同士が どの様に連携をとっているのか、その様子を説明します。 まず、人間が Web ブラウザなどでドメイン名を入力すると、リゾルバが最寄りの DNS サーバへ問い合わせを行います。 「www.abc.co.jp」のIPアドレスは? リゾルバ DNSサーバ 各 DNS サーバは自分と同じグループのドメイン情報しか持っていません。自分の管 理下に対する問い合わせがきた場合には情報を返してあげる事ができますが、それ以 外のドメイン情報については他の DNS サーバへ問い合わせる必要があります。この場 合、最初にルート DNS サーバと呼ばれる特殊なサーバに問い合わせをします。 「www.abc.co.jp」のIPアドレスは? DNSサーバ ルートDNSサーバ - 109 - ルート DNS サーバはドメイン階層の頂点(名前空間の根)に位置するサーバであり、 トップレベルドメインを管理している DNS サーバを知っています。そこでルート DNS サーバは問い合わせを受けたドメイン名のトップを管理している DNS サーバへの情報 を返信します。例えば、「www.abc.co.jp」なら jp ドメインを管理する DNS サーバの 情報です。 DNSサーバ 「jp」DNSサーバのIPアドレスが XXなのでそちらに聞いて ルートDNSサーバ 次に教えてもらった jp ドメインを管理する DNS サーバへ名前解決の問い合わせを出 します。すると、jp 管理の DNS サーバは自分の管理下にある co.jp ドメインの DNS サ ーバ情報を返信します。 ルートDNSサーバ 「www.abc.co.jp」のIPアドレスは? DNSサーバ 「co.jp」DNSサーバのIPアドレスが XXなのでそちらに聞いて - 110 - 「jp」DNSサーバ この様に順々に教えてもらった DNS サーバを辿っていくと、最終的に目的の情報を 知っている DNS サーバへ到達します。目的のホストに対応する IP アドレスを教えても らった DNS サーバは問い合わせのあったリゾルバへと返信します。つまり、リゾルバ → DNS サーバへの問い合わせは一度だけ、DNS サーバは答えが分かるまで何度でも問 い合わせを繰り返す事になります。 ルートDNSサーバ ② 「jp」DNSサーバ ③ ④ 「www.abc.co.jp」のIPアドレスは? ① ⑤ ⑦ リゾルバ XXです 「co.jp」 DNSサーバ ⑥ DNSサーバ XXです - 111 - 「abc.co.jp」 DNSサーバ 3.1.6 キャッシュ 以上の手順で、世界中のドメイン情報を得ることができます。しかしこの方法だと ルート DNS サーバには膨大な数の問い合わせが来ることになります。実際にはそのよ うなことはなく、リゾルバや DNS サーバは一度問い合わせたドメイン情報を一時キャ ッシュとして残しておき、次に同じドメイン下への問い合わせがあったときにはキャ ッシュ情報を元に名前解決を行います。キャッシュによって経路の途中から問い合わ せを行ったり、まったく問い合わせを行わずに名前解決することがあります。 3.1.7 DNS サーバの管理情報 DNS サーバが管理しているのは、ドメイン名と IP アドレスを対応付けた一種のデー タベースで、実態は一行で一つの対応関係を記録しているテキストファイルとなって います。また、個々の行をリソースレコードと呼びます。リソースレコードは、名 前・クラス・タイプ・値が記述されており、登録する情報の種類によっていくつかの タイプに分かれています。各タイプについては後述しますので、ここでは基本となる A タイプのレコードについて説明します。 ・ A レコード 最も基本となるリソースレコードで、A とは Address を意味します。このタイプの レコードにはホスト名とそれに対応する IP アドレスを記述します。例えば、 www.abc.co.jp. IN A 10.0.0.1 これは、自分の管理下にいる www.abc.co.jp というマシンの IP アドレスは 10.0.0.1 です、という意味になります。 - 112 - 3.1.8 プライマリ DNS サーバとセカンダリ DNS サーバ ドメインを管理する DNS サーバは何らかの理由で使えなくなると、管理下のホスト に対してドメイン名によるアクセスが出来なくなってしまいます。このような理由に より DNS サーバを 2 系統以上用意することがあります。そのうちの主系統(メイン)の サーバをプライマリ DNS サーバ。トラブル時などに処理を肩代わりする副系統(サブ) のサーバをセカンダリ DNS サーバと呼びます。 プライマリ DNS サーバは自身の情報をファイルとして持っており、管理者はそのフ ァイルを操作する事でゾーン情報を管理します。一方セカンダリ DNS サーバはプライ マリ DNS サーバからゾーン情報のコピーを貰う事で管理します。 プライマリDNSサーバ セカンダリDNSサーバ コピー 操作 - 113 - 3.1.9 優先 DNS サーバと代替 DNS サーバ 下記画面は Windows2000 における DNS サーバの指定部分です。下図の様に 2 つ以上 の DNS サーバを指定する事が可能です (3 つ目以降は “詳細設定” ボタンから行い ます) 。優先 DNS サーバは始めにリゾルバが問い合わせを行うサーバで、代替 DNS サ ーバはその名の通り、優先 DNS サーバが何らかの理由で使えない時に使用される代替 のサーバです。 まず、リゾルバは優先 DNS サーバに問い合わせます。 リゾルバ 優先DNSサーバ 問い合わせが返ってきた場合はそのまま優先 DNS サーバを利用します。しかし、優 先 DNS サーバが落ちていた場合などは応答が返ってきません。1 秒待って返って来な かった場合、もう一度優先 DNS サーバに問い合わせます。 1秒後 リゾルバ 優先DNSサーバ - 114 - そして、2 秒待って応答が返ってこない場合は、優先 DNS サーバを含めた全ての(設 定した)DNS サーバに問い合わせます。 2秒後 リゾルバ 優先DNSサーバ 代替DNSサーバ この中で最初に応答を返してくれた DNS サーバを利用します。全ての DNS サーバが 応答を返してくれなかった場合は、2 秒後に全 DNS サーバに向けてもう 1 度問い合わ せを行います。それでも駄目な場合は更に 4 秒後に全 DNS サーバに向けて問い合わせ を行います。 そして、8 秒後にどこからも応答が返ってこない時は、問い合わせ失敗と判断しエ ラーとなります。 時間(s) 17 問い合わせ 失敗 9 ●再問い合 わせ 5 ●再問い合 わせ 3 ●再問い合 わせ ■再問い合 わせ ■問い合わ せ 0 1 - 115 - ■ 優先D NSサーバ宛 ● 優先 + 代替DNSサーバ宛 3.1.10 再帰問い合わせと反復問い合わせ DNS に対する問い合わせは二種類存在します。 一つ目は、リゾルバから DNS サーバへの問い合わせ。これを再帰問い合わせと呼び ます。こちらは、DNS サーバが情報を持っていたらそれを教えてもらい、持っていな かったら DNS サーバが調べて教えてくれる形の問い合わせです。つまり、リゾルバは 問い合わせた DNS サーバに完全な形の答えを要求しています。 二つ目は、DNS サーバから他の DNS サーバへの問い合わせ。これを反復問い合わせ と呼びます。こちらは、ルート DNS サーバから問い合わせを行い、サーバが知ってい る情報を返してもらう → 次の DNS サーバへ問い合わせ を繰り返す形の問い合わせで す。 ルートDNSサーバ 「jp」DNSサーバ 「co.jp」 DNSサーバ 再帰問合わせ リゾルバ 反復問合わせ DNSサーバ 「abc.co.jp」 DNSサーバ - 116 - 3.1.11 DNS サーバの種類 DNS サーバは次の 4 種類に分類されます。 種類 プライマリ セカンダリ キャッシュ スレーブ 役割 ゾーン情報を管理しており、他の DNS サーバからの問い合わせに対して 管理しているドメイン情報を返します。 プライマリから転送されるゾーン情報を使用します。負荷を分散する役 割があります。 自身ではゾーン情報を管理せずに、リゾルバからの問い合わせに対して 反復問い合わせで名前解決を行うサーバです。 リゾルバからの問い合わせがあった場合、指定の DNS サーバ(フォワー ダ)へ問い合わせを転送します。負荷分散の目的で利用されます。 スレーブは、主に一般のブロードバンドルータ等に搭載されています。ブロードバ ンドルータが反復問い合わせを行うのは非常に手間がかかるため、フォワーダに問い 合わせてもらう形をとります。一般的にはフォワーダとしてプロバイダの DNS サーバ を指定します。 問い合わせを... リゾルバ そのまま転送 ブロードバンドルータ (スレーブ) - 117 - プロバイダのDNSサーバ (フォワーダ) 3.2 DNS サーバの概要(2) 3.2.1 BIND とは BIND( Berkeley Internet Name Domain )とは、Unix の中でもっとも広く使われて きた DNS の代表的なソフトウェアです。 基本的には、FreeBSD や Linux といった Unix 系 OS 上で使われますが、Windows 版など も用意されています。 BIND が広く使われる理由として動作実績が豊富であることと、インターネット上で 技術交換されている情報も非常に豊富であることが挙げられます。 BIND にはいくつかの設定ファイルが存在しますが、基本は、BIND 自体の動作を定義 する named.conf ファイルと、各ゾーンの情報を記述するゾーンファイルから構成され ます。named.conf ファイルでは、自分の管理しているドメインのゾーンファイルの場 所や、プライマリサーバであるか等を設定します。また、ゾーンファイルは問い合わ せに対して提供するゾーンの情報を記述するファイルで、役割に応じて様々なレコー ドが用意されています。ホスト名と IP アドレスの対比を表した A レコードやメールの 転送先を示す MX レコードなどさまざまなレコードがあります。 3.2.2 BIND 設定ファイル説明 BIND は以下のファイル構成になっています。 ファイル名 概要 named.conf named.ca xxx.zone ( xxx は任意 ) BIND の設定ファイル ルートサーバ定義ファイル ゾーンファイル - 118 - 3.2.3 named.conf ファイル named.conf ファイルはゾーンファイルの格納場所や、ファイル名を設定します。 コメント化は // ・・ 以降の行末までがコメント /* */ ・・ 囲まれた部分がコメント となります。 ※ コメントは、設定ファイル内で設定内容の説明文を入れる時などに使用します。コ メントの部分は無効になります。その為、設定ファイル上には記述しておきたいけ れど、設定は無効にしたい場合などに使用します。 以下に named.conf の例を記述しています。 // named.conf for Red Hat caching-nameserver options { ――(1) directory "/var/named"; }; zone "." IN { ――(2) type hint; file "named.ca"; }; zone "localhost" IN { ――(3) type master; file "localhost.zone"; allow-update { none; }; }; それでは、代表的なステートメントの説明をします。 (1) options ステートメント options は DNS サーバに対する動作オプションを指定します。 サブステートメントに directory を指定することで、ゾーンファイルなどの格納場所 を指定します。 - 119 - options のサブステートメントの一覧を以下に示します。 サブステートメント名 概要 directory <パス名> pid_file <パス名> recursion <yes/no> allow_recursion (2) ゾーンファイルの設定パス プロセス ID に出力するファイルを指定 再帰的な問い合わせを行うか否かを指定する。 サーバキャッシュとして動作させない場合、no を指定 再帰的な問い合わせを許可するホストを指定する zone ステートメント DNS が管理するゾーンを定義します。パラメータにはドメイン名、サブステートメ ントに type を設定することで定義するゾーンの種別を指定します。 type のパラメータに master を指定すると、このゾーンはプライマリサーバとなり ます。 type のパラメータに hint を指定すると、このゾーンはルートサーバの情報を登録 することを意味します。 前述で(2)はルートサーバ情報を、(3)はマスタサーバの情報を表していることにな ります。 サブステートメントに file を指定することで、ゾーンを記述したファイル名を指定 します。 前述では、(2)は name.ca 、(3)は localhost.zone というファイルにゾーン情報が 設定されていることを意味します。 例 ) zone "sunday.com" IN{ type master; file "skyblue.zone"; }; 上記が named.conf に記述されている場合、ドメイン名「skyblue.com」のゾーンを 定義するファイルが/var/named/skyblue.zone に記述されており、「skyblue.com」は プライマリサーバとして動作することを意味します。 - 120 - zone のサブステートメントの一覧を以下に示します。 サブステートメント名 概要 type <master | slave | hint > file <パス名> notify <yes/no> 3.2.4 type は省略不可で、定義するゾーンの種別を指定します master: プライマリサーバであることを指定します slave : セカンダリサーバであることを指定します hint : ルートサーバの情報であることを指定します ゾーンを記述したファイル名を指定します yes を指定すると、セカンダリサーバにゾーンファイルの更 新を通知します name.ca ファイル named.ca はルートサーバに関する情報を記述したファイルです。通常は BIND をイ ンストールした時に付属しているファイルをそのまま使用できます。しかし、更新さ れることもあるので、インターネット上から最新のものをダウンロードする必要があ ります。 ローカルなネットワークで使用するときは、このファイルを編集し、NS の問い合わ せ先を変更する必要があります。 - 121 - 3.2.5 ゾーンファイル ゾーンファイルとは、ゾーン情報を記述するための定義です。 ゾーン情報でよく使われるものに、SOA レコード、NS レコード、A レコード、MX レ コード等があります。 (1) SOA レコード ドメイン IN SOA ホスト名 管理者用メールアドレス SOA レコードには、レコードの寿命、セカンダリ DNS サーバによるゾーン転送間隔 などが記述されています。 SOA の後ろには、ドメイン(ここでは、ns.skyblue.com)と管理者のメールアドレ ス( root.ns.skyblue.com ) を記述します。 管理者のメールアドレスでは「@」の代わりに「.」を使用します。 (2) NS レコード ドメイン IN NS ホスト名 NS は NameServer の略で、ネームサーバの情報を定義します。 ドメインのゾーンの定義ファイルを保持しているホスト名を設定します。 (3) A レコード ホスト名 IN A IPアドレス A レコードはホスト情報に関係するものであり、IP アドレスを記述します。 (4) MX レコード ドメイン IN MX 数値 メールサーバのホスト名 MX レコードは、Mail eXchange の略で、ドメインのメールサーバを定義します。 MX の直後にある数値は、優先順位を表し、数値が小さい方の優先順位が高く、順位 が高いメールサーバで接続できない場合は、次の順位のメールサーバに接続に行くよ うになっています。 (5) CNAME レコード 名称A IN CNAME ホスト名 CNAME レコードは、Canonical Name の略で、ある名前について別名を定義します。 ホスト名は A レコードで定義する必要があります。 - 122 - 以下に正引き用ゾーンファイルの例を記述します。 1: @ IN SOA ns.skyblue.com. root.ns.skyblue.com. ( 2: 2005071202 ; Serial 3: 28800 ; Refresh 4: 14400 ; Retry 5: 3600000 ; Expire 6: 86400 7: ) 8: IN NS na.skyblue.com. ; Minimum 9: 10: IN MX 10 ns.skyblue.com. 11: 12: ns.skyblue.com. IN A 192.168.10.200 1 行目の「@」は named.conf ファイルで定義したゾーンを示しています。前述の例を 参考にすると、「sunday.com. 」の代わりになります。 1~6 行目は SOA レコードです。 SOA レコードで設定するパラメータを以下に記述します。 パラメータ Serial Refresh Retry Expire Minimum 概要 ゾーンデータのバージョン情報を設定。 設定ファイルの値を変更する場合には、この値を現在値より大 きい値に設定しないと、反映されません。 セカンダリ DNS サーバがソーンデータ更新をチェックする頻度 を設定 セカンダリ DNS サーバにゾーン転送が行えなかった場合のリト ライ時間の間隔を秒で設定 ゾーン転送ができなかった時、セカンダリ DNS サーバがもって いるレコードを無効にするまでの時間を秒で設定 検索に失敗したドメイン名の保持期間を設定 - 123 - 8 行目には、「skyblue.com.」のゾーンの DNS サーバを設定します。 ドメイン名が空白である場合には、直前のレコードの名前が適用されます。 ここでは、「skyblue.com.」のゾーンの DNS サーバは「ns.skyblue.com」を意味しま す。 10 行目には、メールサーバの設定をします。 ここでは、「skyblue.com.」に対応するメールサーバのホスト名は 「ns.skyblue.com.」を意味します。 12 行目には、「ns.skyblue.com.」に対応する IP アドレスを設定します。 ここでは、「ns.skyblue.com.」に対応する IP アドレスは「192.168.10.200」を意味 します。 3.2.6 BIND の起動・停止 BIND は以下のコマンド引数によって、サービスの起動・停止を行います。 service named△引数[Enter] 引数 start stop restart reload 概要 サービス起動 サービス停止 サービス再起動 定義ファイル再読み込み BIND の起動、停止はルートユーザでおこないます。 コマンド実行後、「OK」が表示されれば、処理が正常に完了していることになりま す。 - 124 - 3.3 DNS サーバの構築演習 3.3.1 はじめに 以下の作業は、特に記述がない場合はルートユーザで作業を行ってください。 また、コマンド中の△は半角スペースを、[Enter]は Enter キーを押すことを意味し ます。 3.3.2 目的 好きなドメイン名で各自ドメインサーバを構築する。 ドメイン名は、xxx.com(xxx は任意)で各自で設定し、ドメイン名が決定したら講師 に連絡して下さい。 3.3.3 作業内容 (1) 設定ファイル (/etc/named.conf) を修正 (2) ゾーンファイルの作成 (3) DNS 起動 (4) nslookup コマンドによる動作確認 (5) 演習課題 - 125 - 3.3.4 (1) 設定ファイル (/etc/named.conf) を修正。 設定ファイル(/etc/named.conf)を vi エディタで開きます。 # vi△/etc/named.conf [Enter] (2) named.conf の内容を修正します。 ① ルートサーバとローカルドメインの定義ファイルを使用しないのでコメント化。 //zone "." IN { //type hint ; // file "named.ca" ; //}; ② ゾーンファイル定義を新規追加します。 ドメイン名: skyblue.com、ゾーンファイル名:skyblue.zone の場合 skyblue.com の正引き情報を記述したゾーンファイル →zone "skyblue.com" IN { 以下省略 }; skyblue.com の逆引き情報を記述したゾーンファイル →zone "252.226.10.in-addr.arpa" IN { 以下省略 }; //zone "." IN { // type hint; // file "named.ca"; //}; zone "skyblue.com" IN { type master; file "skyblue.zone"; allow-update { none; }; }; zone "252.226.10.in-addr.arpa" IN { type master; file "skyblue.rev"; allow-update { none; }; } - 126 - ③ 本講習では使用しない為、以下の項目を下記のようにコメント化します。 //zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { // type master; // file "named.ip6.local"; // allow-update { none; }; //}; //zone "255.in-addr.arpa" IN { // type master; // file "named.broadcast"; // allow-update { none; }; //}; //zone "0.in-addr.arpa" IN { // type master; // file "named.zero"; // allow-update { none; }; //}; ④ ファイルを保存終了します。 3.3.5 ゾーンファイルの作成 (1) /var/named 配下にゾーンファイル作成の為、vi エディタを起動します。 ファイル名は/etc/named.conf ファイルで定義したファイル名を使用します。 ここでは、skyblue.zone の正引き情報を記述したゾーンファイルを作成して以下の ように記述します。skyblue.zone になります。 # cp named.local△skyblue.zone [Enter] # vi△/var/named/chroot/var/named/skyblue.zone [Enter] (2) ゾーンファイルの編集を行います。 1:@ IN SOA ns.skyblue.com. root.ns.skyblue.com. 2: 2007070201 ; Serial 3: 28800 ; Refresh 4: 14400 ; Retry 5: 3600000 ; Expire 6: 86400 ) ; Minimum ( 7: 8: IN NS ns.skyblue.com. 9: IN ファイル内容の説明 10: 1 行目: @ 11: 12: ns.skyblue.com. A 10.226.252.181 IN MX 10 ns.skyblue.com. IN IN A SOA ns.skyblue.com. 10.226.252.181 - 127 - root.ns.skyblue.com. SOA レコード。「skyblue.com」のホスト名と管理者のメールアドレスを設定します。 8 行目: IN NS ns.skyblue.com. NS レコード。「skyblue.com.」のゾーンの DNS サーバを設定します。 9 行目: IN A 192.168.10.200 A レコード。「skyblue.com.」に対応する IP アドレスを設定します。 10 行目: IN MX 10 ns.skyblue.com. MX レコード。メールサーバの設定をします。 (3) ファイルを保存終了します。 (4) /var/named 配下にゾーンファイル作成の為、vi エディタを起動します。 ファイル名は/etc/named.conf ファイルで定義したファイル名を使用します。 ここでは、honana.com の逆引き情報を記述したゾーンファイルを作成して以下のよ うに記述します。skyblue.rev になります。 # cp skyblue.zone△skyblue.rev [Enter] # vi△/var/named/chroot/var/named/skyblue.rev [Enter] 1: $TTL 2: @ 86400 IN SOA skyblue.com. root.skyblue.com. ( 3: 2007070201 ; Serial 4: 28800 ; Refresh 5: 14400 ; Retry 6: 3600000 ; Expire 7: 86400 ) ; Minimum 8: IN NS ns.skyblue.com. 9: 10: 181 IN PTR ns.skyblue.com. - 128 - 3.3.6 DNS 起動 DNS サービスを開始します。 # service named△start [Enter] OK が表示されれば、DNS 起動成功です。 ※DNS サービス停止 # service named△stop [Enter] ※DNS サービス再起動 # service named△restart [Enter] - 129 - 3.3.7 nslookup コマンドによる動作確認 DNS サーバの動作確認を行う為に、「nslookup」コマンドを使用します。 # nslookup△ns.skyblue.com[Enter] nslookup コマンドの引数には、調査対象のホスト名を設定します。 ここでサーバとクライアントの DNS は変更します。【ファイヤウオールも止める】 Server: 192.168.10.200 Address: 192.168.10.200#53 Name: ns.skyblue.com Address: 192.168.10.200 Server :使用する DNS サーバ名 Address :使用する DNS サーバの IP アドレス。 53 は DNS サーバへ接続する時のポート番号。 Name :調査対象ホスト名 Address : 調査対象ホスト名の IP アドレス。 上記のように Name に対応する Address の返答があれば、成功です。 3.3.8 (1) 演習課題 ゾーンファイルに CNAME レコードを利用し、「www」,「mail」を自分のドメイン に対する別名として設定し、「www」,「mail」で nslookup コマンドが正常に動作して いることを確認する。 (2) 他のドメインについても情報を確認する。 - 130 - 4.1 メールサーバの概要(1) 4.1.1 メールが相手に届くまで 電子メールは、数あるインターネットサービスの内、WWW と並んで最も基本的な技 術の一つとして挙げられます。最初は単純な文章だけのメールを送信するだけのサー ビスでしたが、今日では HTML による装飾が出来たり(文字を太くしたり色を付けたり …)、ファイルを添付して送信したりも出来ます。 ただの文章から 装飾されたメールへ 普段メールを送る時は、件名・本文・宛先を指定して送信ボタンを押すという操作、 メールを見る時は、受信ボタンを押下するというのが基本となり、それ以外の処理に ついてはあまり目にすることがありません。本項では、送信ボタンを押してから相手 が受信ボタンを押すまでに、裏側でどのような処理が行われているかを説明していき ます。 - 131 - 電子メールは送信側のコンピュータから相手側のコンピュータへ直接届けられる訳 ではなく、メールサーバというコンピュータを介してやり取りを行う事になります。 電子メールが相手に届くまでの処理は、大きく四つのステップに分けられます。尚、 本項ではメールクライアントソフトの事をメーラと表記します。 ステップ 1 :送信するメールを作成する ステップ 2 :メーラからメールサーバへメール配信を依頼する ステップ 3 :配信を依頼されたメールサーバが受信側のメールサーバを探し出して、 メールを転送する ステップ 4 :メールサーバに届いた受信メールを自分のところへ取り出す ネットワーク × ○ ネットワーク この一連の過程は、本物の手紙を届けてくれる郵便サービスとイメージがよく似て います。 ステップ 1 :手紙に本文、封筒に宛先や差出人住所を書いて切手を貼る ステップ 2 :最寄りの郵便ポストへ手紙を投函する ステップ 3 :郵便局員が相手先のポストまで届ける ステップ 4 :ポストから自分宛ての手紙を取り出す 郵便屋 この流れを処理する為には大きく分けて二種類のアプリケーション・二種類のプロ トコルが関係してきます。 - 132 - 4.1.2 二種類のアプリケーション メーラと、メールサーバが必要になります。 メーラは、 ステップ 1 :送信するメールを作成する ステップ 2 :メーラからメールサーバへメール配信を依頼する ステップ 4 :メールサーバに届いた受信メールを自分のところへ取り出す で使用され、メールを書いて相手に送ったり、メールを受信して表示する機能を持っ ています。OutlookExpress や Becky!、Eudora 等がメーラと呼ばれるものです。 メールクライアントソフト(一例) メールサーバは、 ステップ 2 :メーラからメールサーバへメール配信を依頼する ステップ 3 :配信を依頼されたメールサーバが受信側のメールサーバを探し出して、 メールを転送する ステップ 4 :メールサーバに届いた受信メールを自分のところへ取り出す で使用されます。有名なサーバソフトには Sendmail や Postfix、qmail 等があります。 - 133 - 4.1.3 二種類のメールサーバ メールサーバの役割を細かく見ると、 ・ ポストを構え、クライアントからの投函を待つ ・ 投函された手紙を相手先のポストまで届ける ・ 手紙を取りに来た人にその人宛ての手紙を渡す となります。ここで、ポストには二種類あることが分かると思います。 一つは送りたい手紙を投函するポスト(郵便屋のポスト)と、 もう一つは自分宛ての手紙を取り出すポスト(自宅の郵便受け)です。 このポストをそれぞれ送信サーバ(SMTP サーバ)、受信サーバ(POP3 サーバ)と呼びます。 ネットワーク メーラ 送信サーバ 受信サーバ 郵便屋 - 134 - メーラ 4.1.4 二種類のプロトコル SMTP とは、Simple Mail Transfer Protocol の略で、文字通りとてもシンプルなプ ロトコルです。利用される場面は、 ステップ 2 :メーラからメールサーバへメール配信を依頼する ステップ 3 :配信を依頼されたメールサーバが受信側のメールサーバを探し出して、 メールを転送する で、メールを送信する際に利用されるプロトコルです。一方 POP3 は、Post Office Protocol version3 の略の事で、利用される場面は、 ステップ 4 :メールサーバに届いた受信メールを自分のところへ取り出す となります。メールを受信する際に利用されるプロトコルです。 ネットワーク SMTP SMTP 郵便屋 - 135 - POP3 4.1.5 (1) 各ステップ詳細 ステップ 1 ~ 送信するメールを作成する ~ このステップは特に通信が発生する訳ではありません。メーラで送信先を決めてか ら文章を作成します。 (2) ステップ 2 ~ メーラからメールサーバへメール配信を依頼する ~ メーラがメールサーバへメール配信を依頼するステップです。 メーラはサーバに対して TCP(25 番ポート)での接続を行い、上手く接続が行われると SMTP による対話が始まります。接続後、まずメーラからサーバに対して「HELO」コマ ンドを送ります。このコマンドによって、これからメール送信したい事、自分のマシ ン名をサーバに対して伝えます。「HELO」コマンドを受け取ったサーバは OK と返事を 返します(もちろん駄目な場合もあります)。以降も同様にメーラからサーバに話し掛 け、サーバはそれに応える形で会話が進みます。 TCP接続 220(OK) 「HELO」(始まりの挨拶) 250(OK) 続いてメーラは、「MAIL FROM」コマンドで送信元アドレスを通知します。そして サーバは OK と返事をします。ここでサーバは「MAIL FROM」コマンドで通知された メールアドレスが本物かどうかのチェックは行いません。基本的にはメーラからの情 報をそのまま信用します。このため、送信元アドレスは簡単に偽造できてしまいます。 現在、世界中でスパムメールの増加が問題になっているのはこの仕組みのためです。 よって最近では、送信元アドレスが実在するものかどうかを確認するサーバも出てき ています。 「MAIL FROM」(送信元アドレスの通知) 250(OK) - 136 - 次にメーラは、「RCPT TO」コマンドで送信先アドレスを通知します。そしてサー バは OK と返事をします。ここでもサーバは送信先アドレスの有効性はチェックしま せん。郵便ポストにでたらめな住所を書いて投函しても郵便局が受け取ってくれるの と同じ事です。送信先があっているかどうか判明するのはもう少し後の工程になりま す。この「RCPT TO」コマンドによる宛先の指定は続けて何度でも実行できます。こ うすることで同じ内容のメールを複数の人に送る時でもメール内容は一度送れば済む ことになります。 「RCPT TO」(送信先アドレスの通知) 250(OK) これでメール送信に必要な準備が整ったので、いよいよメール本体をサーバに送信 します。「DATA」コマンドを送りサーバから OK が返ってきたら、メール本体のデ ータを一行ずつ送っていきます。全て送り終えた後は「.」(ピリオド)と改行コードだ けの行を送ります。サーバは「.」だけの行が送られてきたら終わりと判断し、問題が なければ OK を返します。ちなみに「DATA」コマンドで送信するメール本体は、メー ル本文の他に件名や作成日時などを記述するヘッダ部分も含まれます。 「DATA」(メール本体を送る合図) 354(OK) ・・・ メール本体1行目 メール本体2行目 「.」 250(OK) メール本体を送り終えたら送信は完了します。最後に「QUIT」コマンドを送り、 OK が返ってくるとサーバへの接続が切れます。 「QUIT」(終わりの挨拶) 221(OK) TPC接続切断 - 137 - (3) ステップ 3 ~ 配送を依頼されたメールサーバが受信側の メールサーバを探し出してメールを転送する ~ メールサーバ(A)が相手先のメールサーバ(B)へメールを届けるステップです。 まず、相手先を見つけるために DNS を利用して IP アドレスを調べます。 SMTP は登場以降、拡張が加えられてきました。最近のメールサーバは大抵こうした 拡張機能を備えており、メールサーバ同士が通信する際にはこの拡張 SMTP を使用しま す。が、中には拡張機能をサポートしてない古いメールサーバがいる事もあります。 そこで、まず拡張機能が使えるかどうかを確認し、使えるなら拡張 SMTP を、使えない なら通常の SMTP を使用してやり取りを行います。通常の SMTP を使用したやり取りは メーラ ― メールサーバ間の通信と同じになります。 送り先の IP アドレスが分かったサーバ(A)はサーバ(B)に対して TCP(25 番ポート)で の接続を行います。 TCP接続 220(OK) 次に「HELO」コマンドではなく「EHLO」コマンドによって通信を開始します。 (「EHLO」コマンドに対してエラーが返ってくれば、拡張機能を備えてないという事 で通常 SMTP によるやり取りに移行します) 「EHLO」(拡張機能を使った始まりの挨拶) 250(OK) 上手く「EHLO」コマンドに対する応答が返ってきた場合、サーバ(B)は続けて自分 のサポートしている拡張機能の一覧を通知します。これは、拡張機能が適宜追加され ていったためで、拡張 SMTP を使用できるといってもお互い全ての機能をサポートし ているとは限らないためです。 ・ ・ ・ (サポートしている拡張機能を伝える) - 138 - 一部のやり取りで拡張機能が使用される事を除き、後はメーラ ― メールサーバ間の やり取りと同じです。 「MAIL FROM」(送信元アドレスの通知) 250(OK) 「RCPT TO」(送信先アドレスの通知) 250(OK) 「DATA」(メール本体を送る合図) 354(OK) ・ ・ ・ メール本体1行目 メール本体2行目 「.」 250(OK) 「QUIT」(終わりの挨拶) 221(OK) TPC接続切断 以下は拡張機能で使用される主なコマンドです。 コマンド名 EXPN ETRN SIZE DSN 意味 メーリングリストのメンバー展開 サーバに対し、キューの処理を指示 送信メッセージサイズの通知 メールの配送状態を通知 - 139 - (4) ステップ 4 ~ メールサーバに届いた受信メールを自分のところへ取り出す ~ 今までは送信者側の立場からメールを追いかけていきました。このステップでは、 反対の立場(受信者側)から、サーバへ届いたメールを取り出す動作について説明しま す。この工程では、今ままでの SMTP(及び拡張 SMTP)ではなく POP3 というプロトコル が使用されます。何故、今まで使用してきた SMTP を使わないのかというと、”クライ アントはサーバと違って 24 時間 365 日稼働していないから”です。SMTP はメールを 送信する側が受信する側に対して接続するところから始まります。SMTP をこのステッ プで使用する為には、いつ来るか分からないメールを受信する為に受信側(クライアン ト)が常時、接続を受け付けていなければなりません。全てのクライアントを 24 時間 365 日動かしておくのは非現実的です。よって、メール受信には別のプロトコル (POP3)を使用して、サーバ側に取りに行きます。 ステップ 2 と同じ様に、まずメーラはサーバに対して TCP での接続を試みます。ス テップ 2 と違うところは、接続先ポート(SMTP は 25 番、POP3 は 110 番)のみです。 TCP接続 +OK 上手く TCP での接続が確立されたら、ここからは POP3 でのやり取りが開始されます。 まずは「USER」コマンドによって、ユーザ名を通知します。ユーザがサーバに登録さ れていれば OK が返ってきます。 「USER」(ユーザ名の通知) +OK - 140 - 続いて、「PASS」コマンドでパスワードを通知します。これも問題なければ、OK が返ってきます。ここまででユーザの認証が終了します。SMTP にはユーザの認証な どありませんでしたが、POP3 にはあります。これは、認証機能がないと誰でも他人の メールが読めてしまうためです。送信時には、本人であるかどうかは必要ない(スパム メールなどの問題により必ずしもそうとは言えなくなってきています)のに対し、メー ル受信時には本人確認は必須です。という事でメール受信プロトコルである POP3 は このユーザ認証から始まります。 「PASS」(パスワードの通知) +OK 認証が終わったらサーバに対して受信メールの操作を依頼します。ここは SMTP と 違って手順などなくクライアントが行いたい操作をコマンドで送りサーバが応える、 という形で話が進みます。主だった操作としては、溜まっているメール一覧を表示す る「LIST」コマンド、メールの内容を取得する「RETR」コマンド、メール削除のフ ラグをたてる「DELE」コマンド、などがあります。 「LIST」(メール一覧の要求) +OK 1 1234 2 2341 「RETR」(メール内容の要求) +OK # メール内容 「DELE」(削除フラグたての要求) +OK - 141 - メール操作が終わったら「QUIT」コマンドを送信します。「QUIT」コマンドが送ら れてきたサーバは通信を終了して削除フラグのたったメールを削除します。 以上が、メール作成から送信~受信までの流れです。 「QUIT」(終わりの挨拶) +OK TCP接続切断 メール削除 【POP3 誕生の背景】 インターネットがまだ一般的ではなく政府機関や学術機関のみで使用されていた頃 は、パソコンを使用する人間も関係者のみであったため、受信メールは誰が読んで も問題なく、認証機能は必要ありませんでした。また、使用しているパソコンも UNIX が 24 時間稼動していたため、メール受信にも SMTP を使用していました。 インターネットの爆発的普及により個人宛のメールを受信したいという要望が大き くなり、またクライアントにも常時稼動を前提としない Windows 等が普及したた め、POP3 が開発されました。 - 142 - 4.1.6 メールトラブルの理由 ここまでの流れは、基本的に全て問題なく処理が行われた時の事でした。しかし世 の中上手くいくことばかりではなく失敗する事もあります。ここでは、ありがちなト ラブルについて簡単に説明します。 メールを送信しても相手が受信するまでに時間がかかってしまうケース これまでは、クライアントの送ったメールは SMTP サーバを介してすぐに相手サー バに送られるイメージで説明してきましたが、実際にはステップ 3 の段階で配信依頼 を受けたサーバは、その都度送るのではなく、一旦待ち行列(キュー)の中に処理を格 納し、そして、このキューを順番に処理していく形になります。キューの処理は、設 定次第ですがある程度の間隔を空けて定期的に行われるのが一般的です。また、キュ ーにいっぱい処理が溜まっていれば自分のメールが処理されるまで待たされるため、 ここでも遅延が発生します。更に最近ではウイルスチェックや内容の検閲等を行う場 合もあります。チェックの為に別のサーバへ転送を行ったりする構成になっていると、 ますます遅延が発生することになります。 キュー A -> D (1)メール送信を 依頼すると... A -> E B -> F B -> E C -> キュー A -> E B -> F D A -> D (3)サーバはキューを 順番に処理していく B -> E C -> D - 143 - (2)キューの最後に 追加される 何日もたってからメールが戻ってくるケース たまに、メールを送っても戻ってくることがあります。理由としては、相手先のア ドレスが間違っている場合。これは、すぐにエラーだと判明するため戻ってくる時間 も早くなります。もう一つの理由は、相手サーバへ送れなかった場合。相手サーバが ダウンしていたりすると起こる現象ですが、この場合はすぐに送信元へメールが返っ てきません。送信先サーバへメールを届けることができなかった場合、送信元サーバ は前述したキューへ溜め直し定期的にリトライを試みます。このリトライの間隔や試 行回数も設定次第で変更できますが、間隔が長い or 試行回数が多い と送信元へ返す までに長い時間がかかります。 (1)メール送信 (5)配送失敗で 戻ってくる (2)メール送信 (4)定期的に何回か 再送信を試みる - 144 - (3)相手先ダウン により不通 × 4.1.7 APOP コマンド ステップ 4 で POP3 を使用してメールを受信する手順を説明しましたが、「PASS」コ マンドによる認証ではパスワードがネットワーク上に流れてしまいます。SMTP や HTTP でもそうなのですが、POP3 による通信ではネットワーク上を流れるデータは平の(暗 号化されていない)ままです。つまり、ネットワーク上を誰かが監視していた場合にパ スワードが漏れる危険がある、という事になります。そこで、「PASS」コマンド以外 の認証方法、「APOP」コマンドが用意されました。 手順として、まずサーバが意味のない文字列(チャレンジ文字列という)を送ります。 次にクライアントはチャレンジ文字列と自身のパスワードを元にある演算を行い、そ の結果をサーバに送ります。サーバ側でも同じ演算を行っておき、送られてきた演算 結果と一致すればパスワードがあっていると判断します。この方法を使用すると、直 接パスワードを送らなくてもパスワードの確認が可能になります。 チャレンジ文字列を送信 チャレンジ文字列と パスワードで演算 チャレンジ文字列と パスワードで演算 演算結果を送信 自身の演算結果と 送信された演算結果を 比較 - 145 - 4.1.8 メールヘッダ 通常、メーラを使ってメールをやり取りする場合ユーザはメール本文と一部のヘッ ダ情報(To や From、Subject 等)しか意識することはありません。しかし実際に受信し たメールには、実に多種多様なヘッダ情報が書き込まれています。 上記はメール内容の一例で、受信したメールをテキストエディタで開いたものです。 一通のメールを覗いてみるとメール本文とヘッダ部分が空白行で区切られただけの単 純なテキストフォーマットになっていることが分かります。 注目はヘッダ部分で、基本的には一行一つのヘッダ情報が記述されており「フィール ド名:値」という形をとっています。 実際にヘッダ情報が付加されるのはどの段階かというと、これはヘッダ情報により 大きく四つに分かれます。 ・ メーラが、設定されたユーザ情報を元に生成 ・ メーラが、メール生成時に指定された情報を元に生成 ・ メーラが、ソフトの持っている情報を元に勝手に生成 ・ サーバが、メールの受信・送信時に生成 - 146 - 一つ目の設定されたユーザ情報とは、ユーザがアプリをインストールする際に指定 した情報で、自分のメールアドレス(From, Reply-To フィールド)などが該当します。 二つ目のメール生成時に指定された情報とは、相手先アドレス(To フィールド)や件 名(Subject フィールド)が該当します。 三つ目のソフトが持っている情報は、主にコメントの様なもので使用メーラ(XMailer フィールド)などが該当します。 四つ目のサーバが付加する情報とは、サーバを中継した証として自分が行った処理 記録(Received フィールド)が該当します。 以下はヘッダに利用される主なフィールドの一覧です。 フィールド名 From Sender To Cc Bcc Subject Comments Keywords Reply-To In-Reply-To References Message-ID Date Received Organization X-Mailer X-UIDL X-Priority 意味 差出人アドレス 実際の差出人アドレス 宛先アドレス 二次的な受信者(カーボンコピー)アドレス 二次的な受信者(ブラインドカーボンコピー)アドレス 件名 コメント 関連キーワード。 メーラによってはハイライト表示を行ったりする。 メール返信先。 指定されていない場合、通常 From が返信先となる。 返信メールの基メッセージ識別子。 通常は Message-ID が指定される。 返信などで関係している他のメッセージの一覧。 通常は Message-ID が複数指定され、大抵のメーラはこの値を 用いて、スレッド表示を行う。 メールを特定するための ID。 世界中でユニークな値をとる。 メールの作成日時 メールを転送したサーバの処理記録。 どの様な経路を辿ったかの記録になる。 送信者が所属する組織名。 メーラの種類を示す文字列。 POP 利用時のためのユニーク文字列。 POP サーバが付加する。 メールの重要度。 - 147 - 4.2 メールサーバの概要(2) 4.2.1 Postfix とは Postfix は MTA(Mail Transport Agent)、いわゆる SMTP サーバです。メールサーバ といえば一昔前までは Sendmail が使われていますが、度重なるバグやセキュリティ ホールに加え、設定方法も非常に複雑で、はじめてメールサーバを構築するにはとて も難しいかもしれません。Sendmail 以外のメールサーバとしての選択肢の1つが Postfix です。Postfix は Sendmail と比較すると、設定は非常に容易で、セキュリ ティ面にも力をいれているため、安心して利用することができる MTA といえます。 4.2.2 dovecot とは 上記で、SMTP サーバである Postfix について紹介しました。つぎはもう一方の POP サーバの dovecot について説明します。dovecot はセキュリティ上安全な POP サーバ として評価されはじめたサーバです。また、設定が非常に容易であることも特徴の一 つとしてあげられます。 4.2.3 Postfix の設定 Postfix には以下のファイル構成になっています。 ファイル名 概要 main.cf master.cf SMTP 用一般設定ファイル SMTP 用プロセス制御ファイル 上記ファイルは、「/etc/postfix」の配下に格納されています。 Postfix メールシステムの動作を制御する全てのパラメータのうち、必要なパラメ ータを指定します。指定されていないパラメータは、そのデフォルト値のまま残され ます。 ※master.cf については、プロセス制御するファイルですので、今回は説明を省略 します。 - 148 - ファイル中の表記についての注意点を以下に記述します。 (1) $name という表記は指定されたパラメータの値に置き換えられます。 例 ) ABC = 1 EFG = $ABC とした場合、EFG の値は 1 になります。 (2)「#」を使用すると、その行はコメント化されます。 例 ) ABC=1 EFG=456 #HIJ=$ABC 1 行目はパラメータ ABC の値に1を設定するという意味です。 2 行目はパラメータ EFG の値に 456 を設定するという意味です。 3 行目は先頭に「#」がついているので、コメント化されています。 複数の値を入れたい場合は、「,」または空白で区切ります。 例 ) ABC=1,3 (3) 複数行にまたがる場合は、空白をいれます。 例 ) ABC=1, 3 main.cf で重要で、よく利用されている設定項目を以下に示します。 設定値 myhostname mydomain myorigin inet_interfaces mynetworks_style mynetworks mydestination mail_spool_directory 概要 ホスト名の設定 ドメインの設定 メールアドレスの「@以降」に付加する値の設定 メール受信の設定 中継の制限 中継の制限 ローカルで受信するメールアドレスの制限 スプールファイルの保存場所 (1) myhostname myhostname = <%ホスト名%> - 149 - このメールシステムのインターネットホスト名。myhostname は他の多くの設定パラ メータのデフォルト値として使われます。 例 ) myhostname = ns.skyblue.com (2) mydomain mydomain = <%ドメイン名%> このメールシステムのインターネットドメイン名。デフォルトでは myhostname か ら最初の要素を引いたものを使います。mydomain は他の多くの設定パラメータのデフ ォルト値として使われます。 例 ) mydomain = skyblue.com (3) myorigin mydomain = <%ドメイン名%> このメールシステムで使用するメールアドレスの「@以降」に付加する値を設定し ます。 例 ) myorigin = $mydomain (4) inet_interfaces inet_interface = <% localhost または all %> どのネットワークアドレスからメール受信をするかを設定します。 値に localhost を指定すると、外部からのメールを受信できないようになります。 値に all を指定することで、外部からのメールの配送を受け付けるようになります。 ※このパラメータを変更したら Postfix を 再起動する必要があります。 例 ) inet_interface = all (5) mynetworks_style mynetworks_style = <% host または subnet %> パラメータを指定してクライアントからのメールの送信を制限します。 パラメータ値が host の場合、ローカルマシンからのみメールを送信します。 パラメータ値が subnet の場合、ローカルマシンと同じ ローカルネットワーク上の みメールを送信します。 例 ) - 150 - mynetworks_style = subnet (6) mynetworks mynetworks = <% IPアドレス %> ネットワークアドレスとローカルアドレスの指定をすることで、設定値以外からの ネットワークからのメールの送信を拒否します。この値を設定した場合は、 mynetworks_style で設定した値は無視されます。 例 ) mynetworks = 127.0.0.1 (7) mydestination mydestination = <% ホスト名又はドメイン名 %> 不正中継を防ぐ為に、配送されるべきドメイン名、ホスト名を設定します。 例 ) mydestination = $myhostname (8) mail_spool_directory mail_spool_directory = <% スプール用ディレクトリ %> メールのスプール(一時保管)用ディレクトリの設定です。 慣例として、/var/spool/mail にメールを保存します。 下記設定により、/var/spool/mail 配下に各ユーザ用のスプールファイルが作成さ れます。 例 ) mail_spool_directory = /var/spool/mail main.cf ファイルには、デフォルトで 30 種類 63 個のパラメータがコメントアウト されています。さらに 15 個のパラメータがほとんど値の入っていない状態で記述され ています。 全部で 420 以上パラメータはありますが、記述するものはデフォルトから変更する パラメータのみです。何も記述しなければ、デフォルトの値が設定されます。 - 151 - 4.2.4 Postfix の起動・停止 Postfix は以下のコマンド引数によって、サービスの起動・停止を行います。 service△postfix△引数[Enter] 引数 start stop restart reload 概要 サービス起動 サービス停止 サービス再起動 定義ファイル再読み込み Postfix の起動、停止はルートユーザでおこなってください。 コマンド実行後、「OK」が表示されれば、処理が正常に完了していることになりま す。 4.2.5 dovecot の設定 dovecot には以下のファイル構成になっています。 ファイル名 dovecot.conf 概要 POP 用一般設定ファイル 上記ファイルは、「/etc/」の配下に格納されています。 dovecot.conf で設定する項目として、代表的なものを以下に示します。 設定値 protocols default_mail_env 概要 プロトコルの設定 メールボックスを各ユーザのホームディレクトリに配置 (1) protocols protocols = <% POP3、IMAP用プロトコル %> 使用するプロトコルの設定を行います。dovecot で利用できるプロトコルは、 POP3,IMAP になります。 例 ) protocols = imap imaps pop3 pop3s - 152 - (2) default_mail_env default_mail_env = <% スプールメール場所 %> メールボックスの形式を指定します。 SMTP サーバで設定したスプールメール場所を記述してください。 例 ) default_mail_env = mbox:/var/spool/mail/%u (%u は、各ユーザ名を意味します) 4.2.6 dovecot の起動・停止 dovecot は以下のコマンド引数によって、サービスの起動・停止を行います。 service dovecot△引数[Enter] 引数 start stop restart reload 概要 サービス起動 サービス停止 サービス再起動 定義ファイル再読み込み dovecot の起動、停止はルートユーザでおこなってください。 コマンド実行後、「OK」が表示されれば、処理が正常に完了していることになりま す。 - 153 - 4.3 メールサーバの構築演習 4.3.1 はじめに 以下の作業は、特に記述がない場合はルートユーザで作業を行ってください。 また、コマンド中の△は半角スペースを、[Enter]は Enter キーを押すことを意味し ます。 4.3.2 目的 各自のドメイン上でメールサーバを構築し、受講者間でメールの送受信が出来る 4.3.3 作業内容 (1) 送信用設定ファイル(/etc/postfix/main.cf)を修正 (2) 送信用設定ファイルの記述確認 (3) 送信用サービス起動 (4) 受信用設定ファイル(/etc/dovecot.conf)を修正 (5) ユーザ追加 (6) 受信用サービス起動 (7) 動作確認 (8) 演習課題 - 154 - 4.3.4 送信用設定ファイル (/etc/postfix/main.cf) を修正。 (1) Postfix の設定ファイルの修正をします。 設定ファイル(/etc/postfix/main.cf)を vi エディタで開きます。 #cp△/etc/postfix/main.cf△/root/ [Enter] #vi△/etc/postfix/main.cf [Enter] (2) 設定ファイルを修正します。 ① ホスト名の設定 ホスト名を設定します。 (修正前)myhostname = virtual.domain.tld (修正後)myhostname = ns.skyblue.com ② ドメインの設定 ドメイン名を設定します。 (修正前)mydomain = domain.tld (修正後)mydomain = skyblue.com ③ メールアドレスの「@以降」に付加する値の設定 コメントを解除します。 (修正前)#myorigin = $mydomain (修正後)myorigin = $mydomain ④ メール受信(1) リモートからのメールの配送を受け付けるようにする設定 1 行目のコメントを解除します。 4 行目をコメントにします。 (修正前)#inet_interfaces = all #inet_interfaces = $myhostname #inet_interfaces = $myhostname, localhost inet_interfaces = localhost (修正後)inet_interfaces = all #inet_interfaces = $myhostname #inet_interfaces = $myhostname, localhost #inet_interfaces = localhost - 155 - ⑤ メール受信(2) ローカルで受信するメールを設定 1 行目をコメントにします。 2 行目のコメントを解除します。 (修正前) mydestination = $myhostname, localhost.$mydomain, localhost #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain (修正後)# mydestination = $myhostname, localhost.$mydomain, localhost mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ⑥ 中継の制限 コメント化解除 (修正前)#mynetworks_style = subnet (修正後)mynetworks_style = subnet ⑦ スプールファイル コメント化解除 (修正前)#mail_spool_directory = /var/spool/mail (修正後)mail_spool_directory = /var/spool/mail (3) ファイルを保存終了します。 - 156 - 4.3.5 送信用設定ファイルの記述確認 設定ファイルの記述が正しいかチェックを以下のコマンドで行います。 # service postfix△check [Enter] OK が表示された場合、設定は正常です。 4.3.6 SendMail サービス停止 Sendmail サービスが起動している場合、正常に Postfix が動作しない場合があります。 Sendmail サービスが起動している場合は、以下の手順で Sendmail サービスを停止す る必要があります。 (1) Sendmail サービスを終了します。 # service△sendmail△stop [Enter] (2) 通常使用するサービスを設定します。 # alternatives△--config△mta [Enter] 「選択番号を入力します」と聞かれるので、2 の postfix を選択します。 - 157 - 4.3.7 送信用サービス起動 送信用サービスを起動します。 # service postfix△start [Enter] OK が表示された場合、正常に起動しています。 - 158 - ※サービスの停止 # service postfix△stop [Enter] ※サービスの再起動 # service postfix△restart [Enter] ※設定ファイル再読込 # service postfix△reload [Enter] 注意) main.cf の inet_interface を変更した場合は、restart コマンドを使用。 - 159 - 4.3.8 受信用設定ファイル(/etc/dovecot.conf)を修正 (1) 設定ファイル(/etc/dovecot.conf)を vi エディタで開きます。 #cp△/etc/dovecot.conf△/root/ [Enter] #vi△/etc/dovecot.conf [Enter] (2) 設定ファイルを修正します。 ① プロトコルの指定 (修正前)#protocols = imap imaps (修正後)protocols = imap imaps pop3 pop3s ② スプールファイルを指定 (修正前)#default_mail_env = (修正後)default_mail_env = mbox:/var/spool/mail/%u ③ chroot ユーザのディレクトリ (修正前)#valid_chroot_dirs = (修正後)valid_chroot_dirs = /home (3) ファイルを保存終了します。 4.3.9 ユーザ追加 メールのアカウントは一般ユーザを追加することによって実現できます。 例えば、「[email protected]」のアカウントを作成したい場合は、 「teacher」という一般ユーザを追加します。 # useradd△teacher [Enter] - 160 - 4.3.10 受信用サービス起動 受信用サービスを起動します。 # service dovecot△start [Enter] 正常起動されると OK が表示されます。 ※サービス停止 # service dovecot△stop [Enter] ※サービス再起動 # service dovecot△restart [Enter] - 161 - 4.3.11 動作確認 クライアント PC からメーラ(OutLook Express ,Becky!等)からのメールの送受信 を行います。POP サーバ、SMTP サーバには、サーバのドメイン名を設定してください。 ※ OutLook Express での設定例 (1) OutLook Express を起動します (2) 「ツール」→「アカウント」を選択します。 (3) 「追加」→「メール」を選択します。 (4) 名称を入力します。(例:自分の名前 等) - 162 - (5) メールアドレスを入力します。(例:[email protected]) - 163 - (6) POP3 サーバ、SMTP サーバの設定をします。 例 ) POP3 サーバ : skyblue.com SMTP サーバ : skyblue.com (7) アカウント名とパスワードを設定します。 パスワードは、サーバで設定したユーザ名に対するパスワードを設定します。 - 164 - (8) 設定完了画面が表示後、「完了」ボタンを押し、作業を終了します。 4.3.12 演習課題 (1) 宛先を自分に設定して、メールの送受信が行えるかを確認する。 (2) アカウントを追加し、メールの送受信が行えるかを確認する。 - 165 - 5.1 Web サーバの概要 5.1.1 Web サーバとブラウザ 「インターネットする」と言えば「ホームページを見る」という事を指すぐらい、 WWW(World Wide Web)の世界は一般化されています。WWW とは以下の 3 つの技術を利用 して、情報を公開・閲覧するための仕組みのことをいいます。 ・ HTTP(HyperText Transfer Protocol):HTML ファイルを転送するためのプロトコル ・ URL (Uniform Resource Locator) :情報資源の場所を指し示す記述 ・ HTML(HyperText MarkUp Language) :ハイパーテキスト記述言語 つまり、WWW とは URL によって指定された場所にある HTML によって書かれた情報を HTTP によって公開・閲覧するための仕組みのこと、です。この WWW の世界における要 が、Web サーバとブラウザになります。Web サーバは HTML を提供する機能を持ってお り、ブラウザは HTML を表示する機能を持っています。普段、ホームページにアクセス する時にアドレスを入力しますが、この入力したアドレスのアクセス先のコンピュー タが Web サーバとなります。 URLによる場所指定 HTTP ブラウザ HTMLファイルの転送 - 166 - Webサーバ 5.1.2 ブラウザと Web サーバとのやり取り Web サーバの基本的な動作は、クライアントから要求されたものを処理し、結果を 返すことです。ここでは、ブラウザと Web サーバのやり取りについて説明していきま す。 まず、ブラウザを使ってユーザが URL を入力します。 URL を入力されたブラウザは、DNS サーバを使って IP アドレスを取得します。 「www.knc.co.jp」の IPアドレス要求 ブラウザ 「202.213.237.1」 DNSサーバ IP アドレスが分かったブラウザは、Web サーバに対しリクエストを送信します。 リクエストを送信 ブラウザ Webサーバ リクエストを受け取った Web サーバは、要求されたファイルをレスポンスとして送 り返します。 レスポンス(ファイル)を送信 ブラウザ Webサーバ - 167 - - 168 - レスポンスを貰ったブラウザはデータの種類を判別します。判別には Web サーバか らのレスポンスヘッダに書かれている「Content-Type」を利用します。 ? HT ML? JP EG? ? Content-Type ブラウザ Web サーバからレスポンスを貰い、その種類が判明したら画面を表示します。 ブラウザ 【HTML について】 文書の論理構造や見栄えなどを記述するために使用される言語で、文書の中に 画像や音声、動画、他の文書へのハイパーリンクなどを埋め込むことが出来ま す。 W3C が規格作成しており、最新版は HTML 4.01。 HTML は文章・画像・音声・動画等の各種パーツの構造を、「<」と「>」によって 囲まれたタグによって指定します。タグの種類は非常に多く、各ブラウザが独 自に拡張してきたタグもあるため全て覚える必要はありません。タグ辞典を用 いて使いたいタグを引く事が出来れば十分です。 HTML は本来文章の論理構造を記述する言語でした。しかし各ブラウザの独自拡 張タグによって、見栄えを記述するタグが大量に追加されました。現在では元 来の目的に沿う様に見栄えの記述は CSS を使用する事が推奨されています。 - 169 - 5.1.3 Apache とは Web サーバには、フリーの Web サーバソフトの他、NetScapeCommunications の NetScape Enterprise Server、Microsoft の Internet Information Server ( IIS )な ど商用の Web サーバが存在します。 これらの中で、もっともシェアを占有しているのが Apache です。Unix 上だけでな く Window 上でも動作するフリーウェアの Web サーバソフトです。無料で使用できる Linux を OS として使用すれば、パソコンさえあれば無料で Web サーバを構築する事が 出来ます。また Apache では高いセキュリティを持ったサーバを構築することが出来ま す。これは非常に重要で、インターネットに公開されているサーバにとって、セキュ リティは最も重要な項目のひとつとなります。 【価格.com がハッキングで全面閉鎖】 価格比較サイト「価格.com」を運営するカカクコムは 5 月 15 日、不正アクセス による改ざんを受けたことで同サイトを一時閉鎖した。 同社が異常を発見したのが、5 月 11 日 11 時ごろ。警察当局に相談し、24 時間 体制で改ざんの影響を調査・対策を行っていたが、攻撃頻度急増により 5 月 14 日 14 時ごろにサイトを一旦閉鎖。同日 22 時ごろにプログラムを修正してサイ トを再開したが、すぐに不正アクセスによる攻撃が発生したため、改めてサイ トを全面閉鎖。復旧には約 1 週間かかる見込み。 - 170 - 5.1.4 httpd.conf の設定 httpd.conf には Apache サービスを実施する為の基本的な設定が記述されています。 httpd.conf は「/etc/httpd/conf/」の配下にあります。 このファイルには膨大な設定情報があるので、今回はサーバ起動に最低限必要な設 定、また特に重要な設定を以下に記述しています。 パラメータ名 概要 ServerAdmin ServerName Web サーバ管理者のメールアドレス設定 Web サーバが動作しているホストの「ホスト名:ポート番号」を 設定 HTML ファイルを格納するディレクトリを設定 HTML ファイルを格納するディレクトリを設定 文字コードを設定 設定ファイルの置き場所を設定 待機するポートの設定 プロセス所有者であるユーザを設定 プロセス所有者であるグループを設定 インデックスファイルの設定 エラーログの出力先を設定 DocumentRoot Directory AddDefaultCharset ServerRoot Listen User Group DirectoryIndex ErrorLog (1) ServerAdmin ServerAdmin < 管理者用メールアドレス > Web サーバを管理する人のメールアドレスを設定します。サーバに障害が発生して いるときなどに連絡を取るべきアドレスになります。 例) ServerAdmin [email protected] (2) ServerName ServerName <ホスト名:ポート番号> Web サーバが動作しているホストの「ホスト名:ポート番号」を指定します。ホスト 名は実際のホスト名以外を設定することも可能です。また、設定したホスト名は DNS に登録している名称を設定してください。DNS を設定していない場合は、直接 IP アド レスを使用する方法もあります。ポート番号は Web サーバ用のポート番号である 80 を 設定してください。 例) ServerName ns.skyblue.com:80 - 171 - (3) DocumentRoot DocumentRoot <ディレクトリパス名> HTML ファイルを格納するディレクトリを設定します。この値を設定しない場合は 「/var/www/html」が初期値として設定されています。 ディレクトリ名の末尾に「/」を付けないように注意してください。 例) DocumentRoot /var/www/html (4) Directory Directory <ディレクトリパス名> DocumentRoot で設定したディレクトリパス名を設定します。 URL を指定する場合、(3),(4)で設定した値が起点となります。 例) httpd.conf ファイルに以下のような設定をします。 ServerName = ns.skyblue.com:80 DocumentRoot = /var/www/html 表示する HTML のファイル名は Test.html(ファイルは[/var/www/html]配下に作成) 作成した Test.html をブラウザ上で見る場合、ブラウザの URL に http://ns.skyblue.com/Test.html と入力してアクセスすると該当ページを表示することができます。 (5) AddDefaultCharset AddDefalutCharset <文字コード> 文字コードの設定を行います。Fedora Core はデフォルトでは「UTF-8」を使用 しています。文字コードを指定したい場合は、任意の文字コードを設定します。 例) 文字コードを「EUC-JP」で設定したい場合 AddDefaultCharset EUC-JP 【文字コード】 英数字の文字コードは 1 バイトで表現されますが、これでは 256 文字しか表現でき ないため日本語の漢字などは表せません。日本や韓国、中国などではそれぞれ独自 に 2 バイト(最大 65536 文字)のコード体系を定め使用しています。 1 バイト文字コードとしては ASCII が世界標準となっています。しかし、2 バイト 文字コードには幾つかの種類があります。主には JIS で標準化された JIS コード、 UNIX などで使われる EUC、Windows や Mac OS などで使われるシフト JIS です。 例えば、「あ」を表すシフト JIS コードは「82 A0」、EUC コードは「A4 A2」で す。文字コードを正しく指定しないと文字化けの原因になります。 - 172 - 5.1.5 Apache の起動・停止 Apache は以下のコマンド引数によって、サービスの起動・停止を行います。 service△httpd△引数[Enter] 引数 start stop restart reload 概要 サービス起動 サービス停止 サービス再起動 定義ファイル再読み込み Apache の起動、停止はルートユーザでおこなってください。 コマンド実行後、「OK」が表示すれば、処理が正常に完了していることになります。 - 173 - 5.2 Web サーバの構築演習 5.2.1 はじめに 以下の作業は、特に記述がない場合はルートユーザで作業を行ってください。 また、コマンド中の△は半角スペースを、[Enter]は Enter キーを押すことを意味し ます。 5.2.2 目的 各自のドメイン上で Web サーバを構築し、各設定がどのように影響するか、また HTML を作成することにより Web サーバの動きを確認してみる。 5.2.3 作業内容 (1) 設定ファイル(/etc/httpd/conf/httpd.conf)を修正 (2) 設定ファイルの記述確認 (3) サービス起動 (4) 動作確認 (5) HTML ファイル作成し、表示を確認する (6) 演習課題 - 174 - 5.2.4 設定ファイル (/etc/httpd/conf/httpd.conf) を修正。 Apache の設定ファイルの修正をします。 (1) 設定ファイル(/etc/httpd/conf/httpd.conf)を vi エディタで開きます。 #cp△/etc/httpd/conf/httpd.conf△/root/[Enter] # vi△/etc/httpd/conf/httpd.conf [Enter] (2) Web サーバ管理者のメールアドレス設定を変更します。 ドメイン名が「skyblue.com」の場合 (修正前) ServerAdmin root@localhost (修正後) ServerAdmin [email protected] (3) Web サーバが動作しているマシンの「ホスト名:ポート番号」を指定します。 Web サーバのホスト名が「ns.skyblue.com」の場合 (修正前) #ServerName△new.host.name:80 (修正後) ServerName△ns.skyblue.com:80 (4) ファイルを保存終了します。 5.2.5 設定ファイルの記述確認 Apache の設定ファイルの記述が正しいかの確認を行います。 # service△httpd△configtest[Enter] service コマンドを実行した時に、記述が正しければ、Syntax - 175 - OK が表示されます。 5.2.6 サービス起動 サービスを起動します。 # service△httpd△start [Enter] OK が表示されれば、正常にサービスが起動しています。 ※サービス停止 # service△httpd△stop [Enter] ※サービス再起動 # service△httpd△reload [Enter] - 176 - 5.2.7 動作確認 ブラウザで、正常にサービスが起動していることを確認します。 (1) ブラウザを起動します。 「アプリケーション」→「インターネット」→「Firefox Web Browser」を選択。 (2) URL に「http://localhost/」と設定して、アクセスします。 (3) 以下の画面が表示されれば、正常に動作。クライアント PC からも接続。 ※ サービスが停止中に前述の URL にアクセスすると以下の警告メッセージが表示されま す。 - 177 - 5.2.8 HTML ファイル作成し、表示を確認する 自分の作成した HTML ファイルをブラウザに表示させます。 HTML の作成場所は「/var/www/html」配下です。 以下の HTML ファイルの作成は一般ユーザで作業をして下さい。 (1) ルートユーザにおいて、「/var/www/html」のアクセス権限を変更します。 # chmod 777 /var/www/html [Enter] (2) 一般ユーザにログインします。 (3)「/var/www/html」に移動します。 $ cd△/var/www/html/ [Enter] (4) vi エディタで HTML を作成します。 今回は、ファイル名:HelloLinux.html にします。 $ vi△HelloLinux.html[Enter] (5) 以下の内容を記述します。 HTML がわかる方は、独自に作成してみてください。 <html> <head> <title>Hello Linux</title> </head> <body> Hello Linux </body> </html> タグ名 概要 html Head title Body HTML 文書全体を囲み、HTML ドキュメントであることを示す Body タグの前に置き、Title タグを内側に含む ブラウザのタイトルバー上に表示する文書のタイトル ブラウザに表示する内容を記述する (6) ファイルを保存終了してください。 - 178 - (7) ブラウザを起動し、URL に「http://localhost/HelloLinux.html」と設定して、 アクセスします。 (8) ブラウザに表示されることを確認します。 - 179 - 5.2.9 演習課題 (1) 自己 PR 文を記述した HTML ファイルを作成し、ブラウザで表示できることを 確認する。 (2) httpd.conf ファイルの DocumentRoot に設定しているパスを変更し、 そのパスに格納している HTML ファイルがブラウザで表示できることを確認する。 - 180 - FFFTP セッティング方法 1. FTP とは FTP とは、File Transfer Protocol の略で、ファイルを転送するプロトコルの事で す。主として、作成したホームページのデータをインターネット上のサーバに転送 (アップロード)する目的で使用します。FTP を行うツールにも沢山の種類がありま すが、ここでは一番多くの人に使われると思う。「FFFTP」の使い方を説明します。 2. ダウンロード FFFTP を Vector 等の Web サイトからダウンロードします。 手順 1 ) 以下の URL を入力し、Vector の FFFTP ダウンロードサイトにアクセスし ま す。 Vector URL: http://www.vector.co.jp/soft/dl/win95/net/se061839.html - 181 - 手順 2 ) 「ダウンロード」リンクを押します。 CLICK 手順 3 ) 以下の画面が表示された場合、「保存」ボタンを押します。 - 182 - 手順 4 ) FFFTP をダウンロードするフォルダ(任意)を指定し、「保存」を押します。 手順 5 ) ダウンロードが正常に完了すると、以下の画面が表示されるので、「閉 じる」ボタンを押します。 以上で、FFFTP のダウンロード作業は完了です。 - 183 - 3. インストールとセッティング 手順 1 ) ダウンロードしたファイル(ffftp-1.92a.exe)をクリックします。 手順 2 ) FFFTP のインストール画面が表示されます。「次へ」を押します。 - 184 - 手順 3 ) FFFTP の確認事項が表示されるので、よく読んで「次へ」を押します。 手順 4 ) インストール先のフォルダを設定します。インストール先を変更したい場合 は「参照」ボタンを押します。インストール先フォルダが決定後、「次 へ」を押します。 - 185 - 手順 5 ) インストール確認事項が表示されるので、確認後「次へ」を押します。 手順 6 ) インストールが正常に終了すると、FFFTP が起動します。 - 186 - 手順 7 ) 「新規ホスト」を押します。 手順 8 ) 以下の画面が表示されますので、以下の情報を設定して下さい。 ホストの設定名 : ホスト一覧に表示する名称を設定します。この設定を判断するこ とのできる名前を設定して下さい。 ホスト名(アドレス) : 接続したいコンピュータの IP アドレスまたは「ホスト名+ド メイン名」を設定して下さい。 ユーザ名:ユーザ名を設定して下さい。 パスワード/パスフレーズ : ユーザ名に対するパスワードを設定して下さい。 ローカルの初期フォルダ:接続時に初期表示するローカル側のフォルダを指定します。 ホストの初期フォルダ:接続時に初期表示するホスト側のフォルダを指定します。 ※初期フォルダは、設定しなくても良い。 - 187 - 設定例 ) “高度”タブに切り替え「LIST コマンドでファイル一覧を取得」をチェックします。 - 188 - 手順 9 ) 「OK」ボタンを押し、正常に接続完了した場合、以下の様な画面が表示され ます。 - 189 - 4. 画面説明 接続先コンピュータ側 ローカル側 画面左側には、ローカル側のフォルダ情報が表示されます。 画面右側には、接続先コンピュータのフォルダ情報が表示されます。 - 190 - 5. アップロード 手順 1 ) アップロードしたいファイルの存在するフォルダに移動します。 手順 2 ) アップロード先のフォルダに移動します。 手順 3 ) アップロードしたいローカル側のファイルにマウスを持っていきます。 例 ) history.txt をアップロードしたい場合 - 191 - 手順 4 ) 画面の矢印ボタンを押し、アップロードを開始します。 手順 5 ) アップロードが正常に終了した場合、接続先コンピュータ側にアップロード したファイルが表示されていることを確認します。 以上で、アップロードは完了です。 - 192 - 手順 6 ) 作業が終了したら、切断ボタンを押下して、接続を切ります。 ※HTML ファイルの編集は秀丸エディタ等を使い、一般ユーザで行います - 193 - HTML タグ辞典 1. HTML とは HTML とは、Hyper Text Markup Language の略で、ホームページを書くための規則集 を指します。 以前は、HTML を覚えないとホームページを作る事ができませんでしたが、最近では 高機能な HTML エディタ(HP 作成支援ソフト)を使えば 簡単にホームページが作成で きるようになりました。そういったソフトを使う場合は、HTML を覚える必要も無く、 ワープロ感覚で HP が作成できます。 しかし、HP を丁寧に作成したり、細かく修正す るには、やはり HTML の規則を覚えておいたほうが良いと思います。 - 1 - 2. HTML の基本 HTML では、タグを使用して記述しています。<FONT SIZE="6">のように、各タグとな る文字を< >で囲みます。 殆どのタグは、開始タグと終了タグがあり、 終了タグには、 </FONT>と、/(スラッシュ)を付けます。 例えば、文字サイズ(フォントサイズ)を指定するタグを<FONT SIZE="6">Hello World </FONT>と記述すると以下のように表示されます。 HTML ファイルは必ずつけなくてはいけないタグがあります。 タグ名 概要 html HTML 文書全体を囲み、HTML ドキュメントであることを示す head body タグの前に置き、title タグを内側に含む。 title ブラウザのタイトルバー上に表示する文書のタイトル body ブラウザに表示する内容を記述する <html>タグはテキストの一番先頭につけて、これから始まる文書全体が HTML ファイ ルであることを教えます。そのため、html タグの終了タグは文書の最後につけます。 <head>タグはタイトルに相当する情報を記入している部分であり、<head>タグ内に <title>タグを記述することで、ブラウザの一番上のタイトルを表示することができま す。<body>タグは、本文がすべてはいります。 - 2 - 例えば、以下のような HTML 文書の場合、 <html> <head> <title>タイトル表示</title> </head> <body> ここに本文が表示されます </body> </html> ブラウザ上では、以下のように表示されます。 注意 ) HTML 文書の拡張子は html ですので、HTML ファイルの名称は ファイル名.html で記述してください。 - 3 - 以下は、HTML の body タグ中でよく使うタグの一覧です。 実際に、HTML ファイルにタグを記述して、ブラウザにどのように表示されるかを試 してみてください。 1) 文字系 1. 文字サイズ変更 <font size=”X”></font> X には文字サイズを指定することにより、font タグで囲まれた部分の文章を指定した 文字サイズで表示します。 指定する文字サイズは 0 から7までで、数字が大きくなるに従って、表示される文字 も大きくなります。 例 ) <html> <head> <title>タイトル表示</title> </head> <body> <font size=”5”>文字サイズ</font> <font size=”4”>文字サイズ</font> <font size=”3”>文字サイズ</font> </body> </html> - 4 - 2. 文字色変更 <font color=”X”></font> X に文字色を指定することにより、font タグで囲まれた部分の文章を指定した文字色 で表示します。 例 ) <html> <head> <title>タイトル表示</title> </head> <body> <font color=”red”>文字色</font> </body> </html> - 5 - 3. 太字 <b></b> b タグで囲まれ部分の文章を太字で表示します。 例 ) <html> <head> <title>タイトル表示</title> </head> <body> <b>あいうえお</b> </body> </html> - 6 - 4. 改行 <br> 文章の途中で改行したい場合に使用します。 例 ) <html> <head> <title>タイトル表示</title> </head> <body> あいうえお<br>かきくけこ </body> </html> - 7 - 5. 左右寄せ、中央揃え <div align=”right”></div> div タグで囲まれた部分の文章を右寄せします。right を left に変更すると、左寄 せ、center に変更すると中央揃えになります。 例 ) <html> <head> <title>タイトル表示</title> </head> <body> <div align=”right”>この文章は右寄せ</div> <div align=”left”>この文章は左寄せ</div> <div align=”center”>この文章は中央揃え</div> </body> </html> - 8 - 2) リンク系 <a href=”URL”>XXX</a> XXX 部分に入れたテキストをクリックすると、URL に記述したファイルにジャンプしま す。 例 ) <html> <head> <title>タイトル表示</title> </head> <body> <a href=”http://www.knc.co.jp”>KNCホームページへ</a> </body> </html> - 9 - 現在の HTML ファイルのフォルダと同じ場所のファイルへジャンプする場合には、URL にファイル名を指定します。 例 ) <html> <head> <title>タイトル表示</title> </head> <body> <a href=”詳細画面.html”>詳細画面へ</a> </body> </html> - 10 - 3) 背景系 <body bgcolor=”背景色”></body> 文章全体を指定した色で表示します。 例 ) <html> <head> <title>タイトル表示</title> </head> <body bgcolor=”red”> あいうえお </body> </html> - 11 - 4) 画像系 <img src=”画像ファイル名”> 指定した画像ファイルをブラウザに表示します。 例 ) <html> <head> <title>タイトル表示</title> </head> <body> <img src=”b-home.gif”> </body> </html> - 12 - 5) テーブル系 <table> <tr> <td></td> </tr> </table> table タグは表組みを行うための基本となるタグで、ここから「表組みをするよ」と いう宣言みたいなものです。table タグで表組みを宣言したら、次は中に入れる行と列 を指定します。td タグは表組みの「列」を作るためのタグです。td タグではさまれた テキストが 1 行分になります。tr タグは表組みの「行」を作るためのタグです。 例 ) <html> <head> <title>タイトル表示</title> </head> <body> <table> <tr> <td>1 行目 1 列</td> <td>1 行目 2 列</td> </tr> </table> </body> </html> - 13 - 表に枠組みをつけたい場合は、table タグに BORDER と記述します。 <table BORDER></table> 例 ) <html> <head> <title>タイトル表示</title> </head> <body> <table BORDER> <tr> <td>1 行目 1 列</td> <td>1 行目 2 列</td> </tr> </table> </body> </html> HTML には、 今回紹介したタグだけでなく、 様々な機能をもったタグが他にもあるので、 HTML タグを紹介しているホームページを参考にして、試してみてください。 参考ホームページ: とほほの WWW 入門 URL : http://www.tohoho-web.com/www.htm - 14 - 別冊 Linux コマンド集 ■ シェルコマンド関連 ・> :コマンド > 出力ファイル名 前のコマンドの出力をファイル等にリダイレクトする。 option:なし ・>> :コマンド >> 出力ファイル名 前のコマンドの出力をファイル等にリダイレクトする。 ”>”は、ファイルを上書くが、”>>”は末尾に追記する。 option:なし ・| : コマンド | コマンド 前のコマンドの出力を次のコマンドの入力にする。 option:なし -1- ・cd : cd パス名 カレントディレクトリを絶対パスもしくは相対パスにより指定された ディレクトリへ移動させる。 option:なし ・exit : ログアウトを行う。 option:なし -2- ■ ファイル管理関連 ・chmod : chmod [option] 変更アクセス権 変更ファイル名 ディレクトリ及びファイルのアクセス権を変更する。 option: ・chown -c :変更されたファイルのみ詳細に表示する -f :エラーメッセージを表示しない -v :結果を表示する -R :ディレクトリ内を再帰的に処理する : chown [option] 変更ユーザ名:変更グループ名 変更ファイル名 ディレクトリ及びファイルの所有者を変更する。 option: ・cp -c :変更されたファイルのみ詳細に表示する -f :エラーメッセージを表示しない -v :結果を表示する -R :ディレクトリ内を再帰的に処理する : cp [option] コピー元ファイル名 コピー先ファイル名 ディレクトリ及びファイルをコピーする。 option: -b :上書きされるファイルのバックアップをとる -d :リンクをコピーする際に実体の方をコピーする -f :上書き確認を行わない -P :指定したディレクトリをつけてコピーする -p :権限や属性を保持したままコピーする -r :ディレクトリ内を再帰的に処理する -s :ファイルコピーではなくシンボリックリンクを作成 -v :コピー前にファイル名を表示する -3- ・find : find [option] 検索開始パス [expression] ディレクトリ及びファイルを検索する。 option: -follow :シンボリックリンク先も検索する expression: -atime :最終アクセス日を元に検索 -empty :空ファイルやディレクトリを検索 -group :所有グループを元に検索 -mmin :最終修正時刻を元に検索(分指定) -mtime :最終修正時刻を元に検索(日指定) -name :ファイル名を元に検索 -perm :アクセス権を元に検索 -type :タイプを元に検索(d:ディレクトリ, f:ファイル, l:リンク) -user :所有ユーザを元に検索 -size :サイズを元に検索 ・ln : ln [option] リンク先パス リンク名 ディレクトリ及びファイルにリンクを張る。 option: -b :上書きされるリンクのバックアップをとる -f :上書き確認を行わない -s :シンボリックリンクを作成する -v :リンク作成前にファイル名を表示する -4- ・ls : ls [option] 表示ファイル名 ディレクトリ及びファイルの情報を表示する。 表示ファイル名を指定しない場合、カレントディレクトリ内の情報を 表示する。 option: ・mkdir -a :隠しファイルを含んだファイルを表示する -f :ソートせずに表示する -i :インデックス番号を付加して表示する -k :ファイルサイズをキロバイト単位で表示する -l :詳細を表示する -o :ファイルタイプによって色分け表示する -p :ディレクトリの場合、最後に”/”を付加して表示する -t :タイムスタンプ順にソートする : mkdir [option] ディレクトリ名 ディレクトリを作成する。 option: ・mv -m :モード指定してディレクトリを作成する -p :サブディレクトリごと作成する -v :ディレクトリ作成時のメッセージを表示する : mv [option] 移動元ファイル名 移動先ファイル名 ディレクトリ及びファイルを移動、又は名前変更する。 option: -b :上書きされるファイルのバックアップをとる -f :上書き確認を行わない -v :移動時のメッセージを表示する -5- ・pwd : pwd カレントディレクトリを確認する。 option:なし ・rm : rm [option] 削除ファイル名 ディレクトリ及びファイルを削除する。 option: ・rmdir -f :削除確認を行わない -r :ディレクトリ内を再帰的に処理する -v :移動時のメッセージを表示する : rmdir [option] 削除ディレクトリ名 ディレクトリを削除する。 ディレクトリ内にファイルがある場合は実行できない。 option: -p :削除ディレクトリの親が空の場合、一緒に削除する -6- ■ システム管理関連 ・passwd : passwd ユーザ名 ユーザのパスワードを変更する。 option:なし ・shutdown: shutdown [option] 時刻指定 シャットダウン・再起動を行う。 すぐに実行する場合は、”now”を指定する。 option: ・su -h :シャットダウンを行う -r :再起動を行う -f :再起動時にファイルシステムチェックを行わない -q :メッセージを表示しない -s :シングルユーザモードで再起動を行う : su [option] ユーザ名 ユーザを切り替える。 ユーザ名を指定しない場合、スーパーユーザへと切り替える。 option: - :ログインシェルごと切り替える -m :環境変数を変更せずに切り替える -7- ・useradd : useradd [option] ユーザ名 アカウントを追加する。 option: -d :ホームディレクトリを指定する -e :アカウントの有効期限を設定する -G :所属グループを指定する ・userdel : userdel [option] ユーザ名 アカウントを削除する。 option: -r :ホームディレクトリも一緒に削除する -8- ■ プロセス管理関連 ・kill : kill [option] プロセス ID プロセスを強制終了させる。 option: -s ・ps :送信シグナルを指定する : ps [option] プロセス ID プロセスを表示する。 プロセス ID を指定しない場合、一覧を表示する。 option: -a :自分以外が実行しているプロセスも表示する -e :環境変数を付加する -f :ツリー形式で表示する -l :詳細表示する -r :実行中プロセスのみ表示する -9- ■ テキスト操作関連 ・grep : grep [option] 検索パターン ファイル名 文字列検索を行う。 option: ・more -G :検索パターンに正規表現を使用する -n :行番号も表示する -f :検索パターンとして指定ファイルを利用する -h :検索結果の先頭にマッチファイル名を表示する -i :検索パターンの大文字/小文字を区別しない -l :マッチファイル名を表示する -v :マッチしない行を結果表示する : more [option] ファイル名 ファイル内容をページ単位で閲覧する。 option: ・tail -l :改ページを表す(^L)を無視する -p :画面クリアをしてページを切り替える -s :連続した空行を 1 行として表示する : tail [option] ファイル名 ファイル内容の末尾を閲覧する。 option: -n :表示行数を指定する -f :常に最新の情報を表示する -q :ファイル名を表示しない - 10 - ・vi : vi [option] ファイル名 ファイルを編集する。 option: -R :読み込み専用モードで表示する -b :バイナリモードで編集を行う - 11 - ■ ネットワーク管理関連 ・arp : arp [option] MAC アドレス対応表を表示する。 option: -n :名前解決せずに番号表示を行う -a :指定ホストに対する情報を表示する -i :インタフェースを指定する ・netstat : netstat [option] ネットワーク関連の統計情報を表示する。 option: -r :ルーティング情報を表示する -i :ネットワークインタフェースの状態を表示する -c :1 秒おきに情報を更新する -e :詳しい情報を表示する -l :接続待ちソケットのみ表示する -a :すべてのソケットを表示する ・nslookup: nslookup ドメイン情報を対話的に DNS サーバから取得する。 option:なし - 12 - ・ping : ping [option] 対象ホスト 指定ホストに対しパケットを送信する。 option: ・route -r :ゲートウェイやルータを経由しない -c :パケット送信回数を指定する -i :パケット送信間隔を指定する -s :送信パケットサイズを指定する : route [option] 対象ホスト ルーティングテーブルを表示する。 option: -e :詳細表示する ・traceroute: traceroute [option] 対象ホスト 指定ホストまでの経路を調べる。 option: -g :経由するゲートウェイを指定する -m :経由するマシン数の最大値を指定する -n :名前解決を行わず、IP アドレスで表示する -p :利用ポートを指定する -r :経由するマシン数の最大値を指定する -w :タイムアウト時間を指定する - 13 - ■ ネットワーククライアント関連 ・ftp : ftp 対象ホスト FTP サーバへ接続する。 コマンド: ascii :転送モードを ASCII にする binary :転送モードをバイナリにする cd :カレントディレクトリを移動する close :リモートホストから切断する ls :ファイル一覧を表示する get :ファイルを受信する close :リモートホストから切断する lcd :ローカル側のカレントディレクトリを移動する mget :複数ファイルを受信する mput :複数ファイルを送信する open :リモートホストへ接続する close :リモートホストから切断する put :ファイルを送信する quit :FTP を終了する ・telnet : telnet 対象ホスト 他のホストと通信する。 コマンド: close :リモートホストから切断する open :リモートホストへ接続する quit :TELNET を終了する - 14 - ■ デバイス関連 ・mount : mount [option] デバイス名 マウント先 ファイルシステムをマウントする。 option: -a :/etc/fstab に記載されているファイルシステムをマウント -r :読み込み専用でマウントする -w :書き込み可能状態でマウントする -t :ファイルシステムのタイプを指定する ・umount : umount [option] デバイス名(マウント先) ファイルシステムをアンマウントする。 option: -v :詳細を表示する - 15 - ■ 符号化関連 ・gzip : gzip [option] 圧縮ファイル名 ファイルを圧縮・展開する。 option: ・tar -c :圧縮内容を標準出力へ書き込み、元ファイルは変更しない -d :圧縮ファイルを展開する -f :上書き確認を行わない -r :ディレクトリ内を再帰的に処理する -v :結果を表示する : tar [option] アーカイブするファイル アーカイブファイルを作成・展開する。 option: c :新規アーカイブを作成する x :アーカイブを展開する -f :アーカイブファイルを指定する -v :結果を表示する -z :gzip を通して処理する - 16 -
© Copyright 2025 Paperzz