View
235
Download
7
Embed Size (px)
Citation preview
「サーバー・クライアントシステム」とは
サーバー (server)
ある機能やデータを,(ネットワークを介して)他の計算機やソフトウエアに提供する計算機 or ソフトウエア.
例)
WWW コンテンツを提供する WWW サーバー
ドメインネームシステムを提供する DNS サーバー
メールを配送する SMTP サーバー
到着したメールを提供する POP サーバー, IMAP サーバー
ニューズを配信する NNTP サーバー
「サーバー・クライアントシステム」とは
クライアント (client)
サーバーの提供する機能やデータを,(ネットワークを介して)利用する計算機 or ソフトウエア.
例)
WWW コンテンツを閲覧する WWW ブラウザ
メールを送信・受信する メーラー (mew, Outlook Express)
ニューズを配信する ニューズリーダー (mnews, gnus)
「サーバー・クライアントシステム」とは
例: WWW を閲覧する
[email protected] [email protected]
(1) Netscape Navigator という WWWクライアントを起動して,‘ http://www.ep.sci.hokudai.ac.jp/~inex/’ を要求する.
“GET /~inex/ HTTP/1.0” (2) クライアントから“ /~inex/” が要
求されたので,“ /~inex/index.html”を送信する.
“/~inex/index.html”
(3) 受信した“ /~inex/index.html” を解釈して表示する.
「サーバー・クライアントシステム」の特徴
•機能・情報の集中化機能・情報を共有できる.データの安全性と負荷の集中をさけるため,分散型サーバーシステムが主流.
•サーバーは常にクライアントからの要求を待機サーバーは常に稼動していなければならないが,クライアントは必要な時のみ稼動していればよい.
•サーバー・クライアント間の通信プロトコルが必要通信さえできれば地理的拘束から開放される
•ネットワーク指向なシステムでは標準的な概念UNIX でもサーバー・クライアントシステムは多く採用されている.(例: X Window System )
「 X Window System 」とは
•UNIX 系 OS でよく使用される GUI 環境
•通称「 X 」,「 X11 」.窓には s がない.
•マサチューセッツ工科大学で開発.その後は X コンソーシアムが管理.
•クライアントがサーバーの機能を呼び出して使う分散構造
•サーバー・クライアント間の通信プロトコルと基本的な見栄えが規定されており,この規定に従っていろいろなシステムが開発されている.
「 X 」におけるサーバー・クライアント
Xクライアント
(
アプリケー
ショ
ン)
Xサー
バー
マウス
キーボード
青い丸を作画して! 作画
マウスが動いたぞ!
画面のサイズは?
1024x768 ですよ
エラー発生!!
X プロトコル
host0
network
「 X 」におけるサーバー・クライアント
network
X サーバー
X クライアント
X クライアント
X サーバー
X クライアント
X サーバー
X クライアント
X サーバー
host2
host0host1
host3
「 X 」におけるサーバー・クライアント
•他の X 端末 (X サーバー ) の画面に作画することができる.(つまり,ウインドウをネットワーク越しに飛ばすことが可能)
•ネットワークを介するため,セキュリティに注意が必要.(どの端末に表示するか?,他のクライアントからの要求を制限する等)
表示するサーバーと画面の選択
•環境変数 DISPLAY に示されるサーバーを使用する
例)% export DISPLAY=localhost:0.0% export DISPLAY=joho6.ep.sci.hokudai.ac.jp:0.0
( ホスト名 ):( ディスプレイ番号 ).( スクリーン番号 )
実験!(3n+1) マシンから (3n+2) マシンへ xeyes を飛ばし
てみよう.% export DISPLAY=192.168.0.3:0.0% xeyes &
% export DISPLAY=192.168.0.2:0.0% xeyes &
(3n+1)->(3n+2)
(3n+2)->(3n+1)
X サーバーへのアクセス制御
•制御プログラム「 xhost 」で制限する
例)% xhost +joho9 <- joho9 からの要求を受け付ける% xhost + <- 全てのクライアントに開放% xhost -joho9 <- joho9 からの要求に答えない
xhost [+|-](host)
もう一度実験!(3n+1) マシンから (3n+2) マシンへ xeyes を飛ばし
てみよう.
X サーバーへのアクセス制御
•「 xauth 」でもっと厳しく設定する.(詳しくは man xauth )サーバー側 (mikan :画面を飛ばされる方 )% xauth list :0.0 mikan/unix:0 MIT-MAGIC-COOKIE-1 174bakcfd407df4fa7cc5f4457c11147
クライアント側 (orange: 画面を飛ばす方 )% xauth xauthUsing authority file /home/msaka/.Xauthorityxauth> add mikan:0.0 174bakcfd407df4fa7cc5f4457c11147xauth> exit% xeyes &
ssh による X 転送機能
•ssh を使うと,自動的に画面が転送されます.このとき xhost などの設定は不要です.(内部で xauth を設定しています)サーバー側 (mikan :画面を飛ばされる方 )% ssh mikanpassword:mikan% xeyes &
X のセキュリティ
•「 xhost + 」なサーバーの画面を盗み見る
サーバー側 (192.168.0.2)% xhost +
クライアント側 (192.168.0.3)% xwd -display 192.168.0.2:0.0 -root -silent -out xhost.xwd% xv xhost.xwd &
xwd : X のイメージをダンプする X クライアントxv :画像ビュワー ( なければ apt-get してください )•(2n+1) , (2n+2) でお互いに「 xhost + 」に設定し
て,互いの画面をダンプしてみよう.
•mikan.ep.sci.hokudai.ac.jp の画面をダンプしてみよう.
実験!
X のセキュリティ
•「 xhost + 」なサーバーの入力を監視する
サーバー側 (192.168.0.2)% xhost +
クライアント側 (192.168.0.3)% xwininfo -display 192.168.0.2:0.0 -root -tree | less ( 仮想端末らしいウインドウの IDを取得 )% xev -display 192.168.0.2:0.0 -id 0x4f8900
xwininfo :ウィンドウの属性を表示xev :指定したウインドウで発生したイベントを表示
•(2n+1) , (2n+2) でお互いに仮想端末を検索し,その入力を監視してみよう.
実験!
いろいろな X クライアント
•xlogo : X のロゴを表示する
•xclock : 時計
•xneko : 猫がマウスポインタを追いかける
•xfontsel : 使用できるフォント一覧を表示する
•xload : システムの負荷を表示する
•xcalc : 計算機
•xroach : 画面にゴキブリが走り回る
•xsnow : 画面に雪が降る
•xmikan : ネットワークに負荷がかかるとミカンせいじんが動き出す(拙作)
X のまとめ
•X はサーバー・クライアントシステムにより設計されている.
•通信可能な X 端末に画面の表示や入出力を飛ばすことができる.
•X のセキュリティに注意しないと,パスワードの入力を監視されたり,画面を盗み見られる可能性がある.
•特に xhost + は危険です.できれば xauth を使いましょう.