スライド タイトルなし

物理実験I 情報実験第12回
サーバ・クライアントシステム
(X Window System )
坂本 天
([email protected])
original: 前坂たけし
([email protected])
「サーバ・クライアントシステム」とは
サーバ(server)
ある機能やデータを,(ネットワークを介して)他の計算
機やソフトウエアに提供する計算機 or ソフトウエア.
例)
WWWコンテンツを提供する
WWWサーバ
ドメインネームシステムを提供する DNSサーバ
メールを配送する
SMTPサーバ
到着したメールを提供する
POPサーバ
IMAPサーバ
「サーバ・クライアントシステム」とは
クライアント(client)
サーバの提供する機能やデータを,(ネットワークを
介して)利用する計算機 or ソフトウエア.
例)
WWWコンテンツを閲覧する WWWブラウザ
メールを送信・受信する
メーラー
(mew, Outlook Express)
「サーバ・クライアントシステム」とは
例:WWWを閲覧する
[email protected]
www.ep.sci.hokudai.ac.jp
(1) galeon という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」におけるサーバ・クライアント
network
host0
Xプロトコル
(
アX
プク
リラ
ケイ
ーア
シン
ョト
ン
)
青い丸を作画し
て!
マウスが動いた
ぞ!
画面のサイズは?
1024x768ですよ
エラー発生!!
作画
X
サ
ー
バ
マウス
キーボード
「X」におけるサーバ・クライアント
host3
network
host2
Xクライアント
Xクライアント
Xサーバ
Xサーバ
host1
host0
Xクライアント
Xクライアント
Xサーバ
Xサーバ
「X」におけるサーバ・クライアント
•他の X 端末 ( X サーバ) の画面に作画することが
できる.つまり,ウインドウをネットワーク越しに飛
ばすことが可能 (ネットワーク透過性).
•ネットワークを介するため,セキュリティに注意が
必要(どの端末に表示するか?,他のクライアント
からの要求を制限する等).
前準備
「startx」 とする前に root で以下の作業をして
ください.
# cd/usr/X11R6/lib/X11/xinit
# cpxserverrcxserverrc_org
# vixserverrc
exec/usr/bin/X11/X-dpi100
-nolistentcp
(実際には改行されていない)
この部分を削除して保存・終了
表示するサーバと画面の選択
•環境変数 DISPLAY に示されるサーバを使用する.
指定書式
(ホスト名):(ディスプレイ番号).(スクリーン番号)
例)
% exportDISPLAY=localhost:0.0
% exportDISPLAY=joho6.ep.sci.hokudai.ac.jp:0.0
現在の DISPLAY の値を確認しよう!
% printenv | grepDISPLAY
DISPLAY=:0.0
表示するサーバと画面の選択
•環境変数 DISPLAY の値に他のマシン (X サーバ) を指
定すれば,そこにクライアントの画面を飛ばせる.
実験!
(3n+1)マシンと(3n+2)マシンで互いに xeyes を飛ばそ
う!
(3n+1)->(3n+2)
% exportDISPLAY=192.168.0.102:0.0
% xeyes&
(3n+2)->(3n+1)
% exportDISPLAY=192.168.0.101:0.0
% xeyes&
Xサーバへのアクセス制御
•制御プログラム「xhost」で制限する.
xhost[+|-](host)
例)
% xhost+192.168.0.111 ← joho11からの要求を受け付ける
% xhost+
← 全てのクライアントに開放
% xhost-192.168.0.111 ← joho11からの要求に答えない
もう一度実験!
(3n+1)マシンと(3n+2)マシンで互いに xeyes を飛ばそう!
注意!
「xhost」 で設定する前に 「DISPLAY」 を
「:0.0」 に戻しておく.
Xサーバへのアクセス制御
xhost はホスト単位でアクセスを制御
•「xauth」でもっと厳しく設定(詳しくは man xauth)
サーバ側(joho11:画面を飛ばされる方)
% xauth list :0.0
joho11/unix:0 MIT-MAGIC-COOKIE-1 174bakcfd407df4fa7cc5f
4457c11147
サーバ側で表示された記号列を与える.
クライアント側(joho12:画面を飛ばす方)
% xauth
Using authority file /home/hoge/.Xauthority
xauth> add joho11:0.0 . 174bakcfd407df4fa7cc5f4457c11147
xauth> exit
% xeyes &
注意! xauth を使用するときは 「xhost -」 としておくこと.
sshによるX転送機能
•ssh を使うと,自動的に画面が転送されます.この
とき xhost などの設定は不要です(内部で xauth
を設定しています) .
サーバ側(joho11:画面を飛ばされる方)
% ssh-Xjoho11
password:
joho11% xeyes&
...これは先週やりましたね
X のセキュリティ
•「xhost +」なサーバの画面を盗み見る.
サーバ側(192.168.0.116)
% xhost+
クライアント側(192.168.0.117)
% xwd-display192.168.0.116:0.0-root
-silent-outxhost.xwd
% displayxhost.xwd&
xwd: X のイメージをダンプする Xクライアント
display: 画像ビューワー
実験!
• (3n+1),(3n+2)でお互いに「xhost +」に設定して,互いの
画面をダンプしてみよう.
X のセキュリティ
•「xhost +」なサーバの入力を監視する.
サーバ側(192.168.0.116)
% xhost+
クライアント側(192.168.0.117)
% xwininfo-display192.168.0.116:0.0
-root-tree|less
(仮想端末らしいウインドウのIDを取得)
% xev-display192.168.0.116:0.0-id0x4f8900
xwininfo :ウィンドウの属性を表示
xev
:指定したウインドウで発生したイベントを表示
実験!
• (3n+1),(3n+2)でお互いに仮想端末を検索し,その入力
を監視してみよう.
いろいろな X クライアント
•xlogo :
Xのロゴを表示する
•xclock :
時計
•xfontsel : 使用できるフォント一覧を表示する
•xload :
システムの負荷を表示する
•xcalc :
計算機
•netmaj : ネットワーク麻雀
などなど...
X のまとめ
•X はサーバ・クライアントシステムにより設計されて
いる.
•通信可能な X 端末に画面の表示や入出力を飛ばす
ことができる.
•X のセキュリティに注意しないと,パスワードの入力
を監視されたり,画面を盗み見られる可能性がある.
•特に xhost + は危険です.できれば xauth を使いま
しょう (ssh を使うとより安全且つラク).