物理実験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 # cpxserverrcxserverrc_org # vixserverrc exec/usr/bin/X11/X-dpi100 -nolistentcp (実際には改行されていない) この部分を削除して保存・終了 表示するサーバと画面の選択 •環境変数 DISPLAY に示されるサーバを使用する. 指定書式 (ホスト名):(ディスプレイ番号).(スクリーン番号) 例) % exportDISPLAY=localhost:0.0 % exportDISPLAY=joho6.ep.sci.hokudai.ac.jp:0.0 現在の DISPLAY の値を確認しよう! % printenv | grepDISPLAY DISPLAY=:0.0 表示するサーバと画面の選択 •環境変数 DISPLAY の値に他のマシン (X サーバ) を指 定すれば,そこにクライアントの画面を飛ばせる. 実験! (3n+1)マシンと(3n+2)マシンで互いに xeyes を飛ばそ う! (3n+1)->(3n+2) % exportDISPLAY=192.168.0.102:0.0 % xeyes& (3n+2)->(3n+1) % exportDISPLAY=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-Xjoho11 password: joho11% xeyes& ...これは先週やりましたね X のセキュリティ •「xhost +」なサーバの画面を盗み見る. サーバ側(192.168.0.116) % xhost+ クライアント側(192.168.0.117) % xwd-display192.168.0.116:0.0-root -silent-outxhost.xwd % displayxhost.xwd& xwd: X のイメージをダンプする Xクライアント display: 画像ビューワー 実験! • (3n+1),(3n+2)でお互いに「xhost +」に設定して,互いの 画面をダンプしてみよう. X のセキュリティ •「xhost +」なサーバの入力を監視する. サーバ側(192.168.0.116) % xhost+ クライアント側(192.168.0.117) % xwininfo-display192.168.0.116:0.0 -root-tree|less (仮想端末らしいウインドウのIDを取得) % xev-display192.168.0.116:0.0-id0x4f8900 xwininfo :ウィンドウの属性を表示 xev :指定したウインドウで発生したイベントを表示 実験! • (3n+1),(3n+2)でお互いに仮想端末を検索し,その入力 を監視してみよう. いろいろな X クライアント •xlogo : Xのロゴを表示する •xclock : 時計 •xfontsel : 使用できるフォント一覧を表示する •xload : システムの負荷を表示する •xcalc : 計算機 •netmaj : ネットワーク麻雀 などなど... X のまとめ •X はサーバ・クライアントシステムにより設計されて いる. •通信可能な X 端末に画面の表示や入出力を飛ばす ことができる. •X のセキュリティに注意しないと,パスワードの入力 を監視されたり,画面を盗み見られる可能性がある. •特に xhost + は危険です.できれば xauth を使いま しょう (ssh を使うとより安全且つラク).
© Copyright 2024 ExpyDoc