シングルユーザーモードは、Windowsで言えばセーフモードに相当します。ファイルシステムチェックなどは、マルチユーザーモードの状態ではシステムを傷つける可能性があるので、シングルユーザーモードでの作業が必須です。マルチユーザーモードで、もしファイルシステムのチェックを行うと、動いているシステムをチェックしてしまうので、システムを破壊してしまいます。
データのフルバックアップを行うケースでは、外界からのアクセスを遮断し、第三者がアクセスできないようにすることが必要です。バックアップ中にオリジナルデータが変更されると、バックアップデータの整合性が保てなくなるからです。
レスキューモードはOSの領域が破損しているときにデータ領域をすくうのが目的です。単純にブート領域が破壊されただけなら上書きで新規で書けばまた起動できます。また、ファイルの損失を切り離すことでなんとか起動まで持っていき、起動後にデータを吸い出した後に、再インストールすると言う方法もあります。
ログのチェックは、とても有効なトラブル対策です。ログは、「/var/log」ディレクトリに集められていますが、最も基本的なログが「/var/log/messages」です。
▼tailコマンド
▼loggerコマンド
syslogは、カーネルや各種デーモン、アプリケーションなどが出力するログを取得して、/var/log配下のログファイルに情報を書き込んでくれるデーモンプログラムです。
syslogは、ログの吐き出し方を運営者側でカスタマイズできるようになっており、/etc/rsyslog.confで定義して利用します。
サーバーが不調になった場合、どのように対処したらいいのかを確認します。
このファイルは、ネットワークカードに割り当てる情報を定義するファイルです。各パラメータの意味は、次のようになります。
設定を変更したり、新規で追加した場合は必ずネットワークの再起動を行う必要があります。serviceコマンドを使用して、networkサービスの再起動を行ってください。
クライアントがサーバーへアクセスする際には、ドメインのIPアドレスを解決することが最初の処理になりますが、これを解決してくれるしくみを「リゾルバ」と言います。
DNSサーバーのIPアドレスを設定して、そこに対してサーバー内で動作するプログラムがIPアドレスの問い合わせを行います。IPアドレスの問い合わせを行うためのに使うファイルがresolv.confです。
DNSサーバーを使わなくても、ここに登録したホスト名情報とIPアドレスの対の情報はローカルの名前解決ファイルとして利用できます。
「IPアドレス ホスト名 ホスト名 ・・・」のように記述します。ホスト名は複数設定できます。
/etc/hostsファイル、DNS、NISなどの名前解決参照順は、このファイルを編集する事で変えることが可能です。
サーバーのネットワーク基本情報を設定するファイルです。
ネットワークサービスの起動を行うサービススクリプトです。serviceコマンドでネットワークサービスの起動や停止を行う際に利用されます。
ネットワークの設定を変更した場合は、ネットワークの再起動を行います。この場合serviceコマンドを使用します。
▼ネットワークサービスの停止 |
service network stop |
▼ネットワークサービスの起動 |
service network start |
▼ネットワークサービスの再起動 |
service network restart |
▼ネットワークサービスの起動ステータス確認 |
service network status |
ネットワークカードのアクティビティがあるということは、ネットワークカードがデバイスとしては正常に動作していることを示します。ただし、アクティビティがあることと、ネットワークの到達性があることは一致しません。ネットワークカードに対する設定が間違っているなら正しくパケットは到達できないのです。
localhostのアドレスを、「ローカルループバックアドレス」と呼びます。localhostで動作しているサーバーに接続する場合には、ローカルループバックアドレスを使用しています。
ifconfigコマンドは、ステータスの表示だけではなく、ネットワークカードの起動、停止も行えます。
▼ifconfigコマンド
ifconfig デバイス名 IPアドレス up
ifconfig デバイス名 down
ifconfig -a
up:指定したネットワークカードを起動する
down:ネットワークカードを停止する
-a:すべてのネットワークカードの情報を表示
インターネット上に公開するサーバーは固定IPアドレスで運用します。通信する相手のIPアドレスが頻繁に変わってしまったら、通信が成り立ちません。
ネットワークカードの通信状態を調べるには、netstatコマンドを使うことによって多くの情報を得ることができます。選択するオプションにより大幅に出力する内容が変わります。
▼netstatコマンド
-a | すべてのソケット情報を出力 |
-r | 経路情報を出力 |
-n | 出力情報を名前解決せず、数字で出力 |
-p | PIDとプロセス名を出力 |
-t | TCPポートを出力 |
-l | LISTEN状態のソケット情報を出力 |
サーバーは、決められたIPアドレスを持っていて、ネットワークを構築する人がIPアドレスの配置を決めます。ネットワークは同じグループに所属する端末の範囲を決めてネットワークセグメントを構成していきます。サーバーは、どこに配置されてもよいのですが、必ず決められたセグメント内のネットワークアドレスに属するIPアドレスである必要があります。
目的のサーバーに接続できない場合、全体的なネットワーク図を描いて、どこまで通信できているかを追う必要があります。次のような検証ポイントを押さえていきます。
ネットワークへの接続を確認するには、netstatコマンド、pingコマンド、tracerouteコマンドを使います。また、DNSに関してはnslookupコマンドで検証が行えます。
ネットワークの疎通を確認するためのコマンドがpingです。疎通確認したいホストに対してIPパケットを発行し、パケットが正しく到達しているかどうかを確認できます。
どこまで経路として到達できているかを確認するために用意されているのが、tracerouteコマンドです。このコマンドを使うことで、間に入っているルーターなどの装置に問題があれば、接続できるところまで表示してくれます。
URLのIPアドレスを調べたり、その逆でIPアドレスのURLを調べたりするのに使うコマンドです。
ホスト名からIPアドレスを調べることを正引き、IPアドレスからホスト名を調べることを逆引きと呼びます。
▼nslookupコマンド:正引き |
nslookup ホスト名 [DNSサーバー名(省略可)] |
▼nslookupコマンド:逆引き |
nslookup IPアドレス [DNSサーバー名(省略可)] |
nslookupコマンドのプロンプトから、以下の設定を行って、ドメイン名を入力すると各種の情報を得ることができます。
set type=A ―アドレス定義 |
set type=MX ―メール受信サーバーの定義 |
set type=SOA ―SOAレコード DNSレコードの更新間隔を確認 |
set type=NS ―ネームサーバーの定義 |
set type=CNAME ―CNAMEの定義 |
netstatコマンドによる表示は、通信の接続状況を調べるために非常に有効です。サーバーはネットワークの特定のポート番号に向かってくるクライアント側の接続に対して、レスポンスを返します。
表示項目には、次のような意味があります。
表示ステータスは、次のように表示されます。
アプリケーションレベルのどのポートで利用しているかを調べたい場合は、「-antp」オプションが役立ちます。「-nlpt」オプションを付けると、LISTENの待ち受け状態が表示されます。
ドメイン名はツリー構造になっています。ドメイン名にはその構造にルールがあり、ルールに従って命名します。
ドメイン名は右からトップレベルドメイン、組織名、サブドメインという構造を取っています。
ドメイン名は、インターネット上で利用できるようにするためレジストラに登録申請します。その際には、どこの組織がそのドメイン名を利用しているかをレジストラに登録しています。
登録されている内容はwhoisコマンドを実行することにより、自サーバーから確認することができます。実際には、インターネット上に公開されているwhoisサーバーのドメイン・データベースからドメイン情報を得ています。
項目 | yahoo.co.jp | 意味 |
---|---|---|
a.[Domain Name] | YAHOO.CO.JP | ドメイン名 |
g.[Organization] | Yahoo Japan Corporation | 組織名 |
l.[Organization Type] | Corporation | 組織種別 |
m.[Administrative Contact] | SI7100JP | 登録担当者 |
n.[Technical Contact] | NM5078J | 技術連絡担当者 |
p.[Name Server] | ns01.yahoo.co.jp | ドメインを管理する DNS |
p.[Name Server] | ns02.yahoo.co.jp | ドメインを管理する DNS |
p.[Name Server] | ns11.yahoo.co.jp | ドメインを管理する DNS |
p.[Name Server] | ns12.yahoo.co.jp | ドメインを管理する DNS |
s.[Signing Key] | 電子署名の鍵情報 | |
[State] | Connected(2012/11/30) | ドメインの状態 |
[Registered Date] | 2000/11/17 | 登録年月日 |
[Connected Date] | 2000/11/17 | 接続年月日 |
[Last Update] | 2011/12/01 01:07:46(JST) | 最終更新 |
DNSの検索を、一般的にクエリーと言います。DNSを管理するカテゴリーのような情報をクエリータイプと呼び、定義する内容によって種類を選択します。
サイトを構築しているとサーバーの引っ越しや新規ドメイン取得に際に、このレコード情報を読み解く必要が出てきます。そのとき必要定義情報を取得するのがnslookupやdigコマンドの役割です。
▼digコマンドによるクエリー
▼クエリーの種類を指定して実行する
dig ドメイン名 or ホスト名 クエリーの種類
クエリーの種類名
soa:ネットワークアドレス
mx:ドメインメールの受信サーバー
ns:ドメインのネームサーバー
a:登録ホストのIP
cname:ホスト別名
ptr:逆引きホスト名
txt:テキスト情報
ServerNameの設定では、Webサーバーで使用するサーバー名とポート番号を設定します。
<Directory " /var/www/html" >設定では、ブラウザでこのWebサーバーにアクセスしたときのドキュメントルールの動作設定をします。
Webサーバーにアクセスしたときに、ドキュメントルートのディレクトリのファイル一覧が表示されてしまい、セキュリティ上好ましくありません。
Optionでは、次のような設定ができます。
All | すべて許可 |
None | すべて不許可 |
ExecCGI | CGIの許可 |
FollowSymLinks | シンボリックリンク許可 |
SymLinkslfOwnerMatch | オーナーならシンボリックリンクを許可 |
Includes | SSIを許可 |
IncludesNOExec | execを除くSSIを許可 |
Indexes | ファイル一覧表示を許可 |
AllowOverrideでは、各ディレクトリごとに設定できる.htaccessによる設定を許可するかどうかの指定をします。
All | すべて許可 |
None | すべて不許可 |
AuthConfig | 認証関連の許可 |
FileInfo | ファイルタイプ関連の許可 |
Imdexes | ディレクトリインデックス |
Limit | アクセス制御 |
Options | ディレクトリ設定 |
DNSサーバーを起動させるためには、次のファイルを作成する必要があります。
ドメイン定義ファイル/etc/named.confは、既存のnamed.confを参考にして、編集・作成を行います。
ドメインのzone定義を表すブロックです。自ホストで管理するドメインのサーバー情報をどう取り扱うかを格納し、DNS参照に関する定義を行います。
DNSの参照タイプを定義します。プライマリー情報を扱うサーバーなのかセカンダリー情報を扱うサーバーなのかを定義します。
DNSサーバー自体の基本定義を行うブロックです。サーバーの基本動作を決めるためのポート番号や定義ファイルのベースディレクトリなど、サーバー動作を行うためのベーシックな情報をここで定義します。
zone情報リソース文法
[owner] [ttl] IN <type><value>
owner:そのリソースを定義するドメイン名やホスト名、IPアドレスを指す
ttl:そのレコードのTime to liveを表す
type:リソースのタイプ
value:ownerに対する割り当て情報
Type | 情報 | 意味 |
---|---|---|
SOA | Start of Authority | そのドメインの基本管理情報 |
NS | Name Server | そのドメインのネームサーバー |
MX | Mail Exchanger | メールのホスト名 |
A | Adress | そのドメインに登録されるアドレス |
CNAME | Canonical Name | ホストの別名 |
PTR | Doamin Name Pointer | IPからホスト名をマップする |
TXT | Text | コメントで使用するが、最近はSPFでドメインキーの用途でも使われる |
ドメインの基本情報を定義するのがSOAレコードですが、DNS情報更新を管理する箇所が多いです。
▼SOAレコード
[owner] IN SOA <host><mail> (<serial> <refresh> <retry> <expire> <minimum>)
Owner:管理するサイトのドメインを指す
Host:DNSサーバーのホスト名
Mail:DNSサーバーを管理する管理者メールアドレス
Serial:zoneファイルの更新をユニークな値で設定する
Refresh:セカンダリーサーバーに対する同期感覚
Retry:セカンダリーサーバーへ同期をとった際に失敗した後のリトライ間隔
Expire:転送された情報の有効期限
Minimum:通常クライアントが保持するDNSキャッシュの利用できる期間はこの期間をベースに予測する
zoneファイルは、下記の特殊変数でリソースのグローバルな値を制御します。