実践Linux
CentOS5/6.5 CentOS5/6.5 目次へ TOP(HOME)へ
VNCサーバー(CentOS5の場合) 2011年8月更新
vnc server(リモートデスクトップ)
CentOS5にはインストール済み
●設定
/etc/sysconfig/vncservers
VNCSERVERS="2:user01"
VNCSERVERARGS[2]="-geometry 1680x1050 -nolisten tcp -nohttpd -localhost"
ディスプレイ番号(ここでは2)は1番以降を指定する。0番はダメ(本体PCで使用のX Windowと関連しているので)。
ここではuser01ユーザーで接続する設定。
ポートは5900+ディスプレイ番号/TCPが使用される。ここでは5902/TCP。
-geometry 1680x1050 画面のサイズを「1680x1050」にする。
-nolisten tcp TCP経由でVNCサーバーにアクセスすることを禁止。
-nohttpd WebベースでのVNCクライアントをサポートしない。
-localhost リモート接続のうち、セキュアトンネルを利用してないものを禁止。
●パスワードの設定(VNCサービスの起動する前にやっておく。)
パスワードの設定がないとVNCサービスが起動されないので注意。
まず接続したいユーザーでログイン(ここではuser01)。
以下のコマンドを実行。
$ vncpasswd
おなじみ2回入力。(linuxユーザーパスワードと別のものでかまわない。)
~/.vnc/passwdができる。
●VNCサービスを起動
~/.vnc/xstartup等ができる。
●~/.vnc/xstartupの編集
デフォルトでは以下のようになている。
この標準ではxtermが表示されるようになっているので、これをGNOMEを表示されるように変更。
変更前
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetuser01 -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &
変更
#!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
gnome-session &
内部VNCクライアント(Windows)で試す
とりあえずsshを使用しないでテスト。内部アドレスに対するファイアウォールはフリーパス設定とする。
/etc/sysconfig/vncserversは、
VNCSERVERS="2:user01"
VNCSERVERARGS[2]="-geometry 1680x1050 -nolisten tcp -nohttpd" -localhostをつけない。
Windows用vncクライアントソフトとして「realVNC」を利用する
「realVNC」はさまざまなOS用のVNCサーバー、クライアントを提供している。
「realVNC」の本家=http://www.realvnc.com/よりダウンロード。 ※参照
Vista以降はフリーのものが用意されていないとある(有料)。WindowsXPで試す。
最初、個人情報入力画面が出るが、なにも入力しなくて大丈夫。
VNC Free Edition Viewer for Windows Ver 4.1.3を入手(2010/6現在)。
実行ファイルを実行すればVNCクライアントが開く。
serverに「サーバーのIPアドレス:ディスプレイ番号」を指定(ここでは「192.168.7.1:2」)。
passward画面となるので上で設定したパスワードを指定してやる。
※ Vista以降を含めて一般的には、http://www.vector.co.jp/vpack/filearea/win/net/network/より、「RealVNC日本語インストール版
4.1.2」をダウンロードして利用するとよい。インストール画面でサーバー、ビューワ等のどちらでも選択ができる。
SSHでVNCを遠隔安全運用(トンネリング)
CentOS5にはopenSSHがインストール済み。
●SSHサーバー設定
/etc/ssh/sshd_config
PasswordAuthentication no ← 通常パスワードでのログインを禁止(鍵方式によるログインのみ許可) 59行目
また、PAMが使用可能になっている場合はPAMのチャレンジ・レスポンス認証がパスワード認証と同じ機能をもっているため、通常パスワード認証を禁止するときはかならずChallengeResponseAuthenticationもnoを指定しておく。
ChallengeResponseAuthentication no 63行目
パケットフィルタリング(iptables)
22/TCPを開ける。
/etc/hosts.allow
sshdを許可する。
●VNCサーバー設定
/etc/sysconfig/vncservers
SSHサーバーとVNCサーバーが別の場合
VNCSERVERS="2:root"
VNCSERVERARGS[2]="-geometry 1680x1050 -nolisten tcp -nohttpd" -localhostをつけない。
SSHサーバーとVNCサーバーが同一の場合
VNCSERVERS="2:root"
VNCSERVERARGS[2]="-geometry 1680x1050 -nolisten tcp -nohttpd -localhost"
Windows SSHクライアントPuttyの導入
●日本語表示のパッチがあてられたものを入手する。
http://hp.vector.co.jp/authors/VA024651/PuTTYkj.html
puttygen.exe(秘密キー、公開キーの生成・変換ツール)、pageant.exe(認証エージェント)も同梱されている。
●鍵セットの作成(windowsクライアント側で作成する方法)
puttygn.exeを実行。
SSH2 RSA暗号が選択されていることを確認して、Generateボタンを押す。
途中でランダムシード作成のためマウスを動かすように促されるのでマウスを動かし続ける。
パスフレーズを入力する。(2カ所同じパスワードを入力)
Save public keyボタン、Save private keyボタンを押して、それぞれ公開キーと秘密キーを保存する。
ここではputty_rsa.pub、secret.ppk名で保存したとする。
linuxサーバーへの公開キー登録
公開キーputty_rsa.pubをlinuxサーバーにコピー。
これをopenSSHが使用可能な形式に変換する。(ここではputty.pub名で変換するとする。)
$ ssh-keygen -i -f putty_rsa.pub > putty.pub
変換した公開キーをSSH接続したいユーザーの~/.ssh/authorized_keysファイルに登録する。
ここではuser01に登録。
$ mkdir /home/user01/.ssh
$ cat putty.pub >> /home/user01/.ssh/authorized_keys
$ chmod 644 /home/user01/.ssh/authorized_keys
authorized_keysファイルには複数の公開キーを登録することができる。
●通常のSSH接続をやってみる
puttyjp.exeを実行。
セッション 接続先のIPアドレス 333.333.333.210 ポート22 プロトコルSSH
接続→SSH→認証 プライベート鍵の場所を指定(ここではsecret.ppk)
ウィンドウ→変換 文字コードの設定 UTF-8を指定
セッションに戻り以上の設定を保存しておくと次回接続から便利。
「開く」で接続開始。
セキュリティアラートは「はい」を選択。
接続ユーザー名(ここではuser01)と鍵のパスフレーズの入力。
サーバーのターミナルが開く。
●ポートフォワディング(トンネル接続)
1.VNCクライアントは自分自身にアクセス
2.SSHのトンネルを通り、SSHサーバへ
3.ポートフォワードで設定したVNCリモート先へSSHからアクセス
4.VNCリモート先がSSHサーバへレスポンス
5.SSHのトンネルを通り、クライアントへ帰る
6.自分自身からレスポンスが返ってくる
@上記通常のSSH接続に次の設定を加えてやる。
接続→SSH→トンネル
源ポート 1234 (適当に)
送り先 192.168.7.100:5902 (SSHサーバーから見たVNCサーバー)
SSHサーバーとVNCサーバーが同一の場合は、127.0.0.1:5902と記述する。
「ローカル」がチェックされていることを確認。
追加ボタン。
この設定もセッションに戻り保存しておくとよい。
「開く」でトンネル接続開始。
接続ユーザーと鍵のパスフレーズの入力。
サーバーのターミナルが開く。
AVNCクライアントを実行
serverには「localhost::1234」を指定(自分自身を指定)。
BSSHトンネル接続を切断するとVNC接続も切断される。
※ VNCサーバー側ではiptablesでSSHサーバからの5902/TCPアクセス許可しておく。
TOP(HOME)へ