実践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)へ

目 次

特別企画
Raspberry Piで遊ぶ

HOME(全体のシステム構成&目次)

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ドメインの追加

CentOS5〜6
ネットワーク&ファイアウォール(iptables)
DNS(BIND)サーバー
DHCPサーバー
メールサーバー(基本)
メールサーバー/実際の運用
Webサーバー
  WebDAVによるファイル共有
  Webでファイルのやり取り
  アクセス解析ツールawstats
  namazuで全文検索
  WordPressブログサイト構築
  EC-CUBEショッピングサイト構築
FTPサーバー
ファイルサーバー・Samba
データベースpostgreSQL
  ExcelからpostgreSQLを操作
データベースMySQL
SSHサーバー
VNC
SSL/TLSを利用した暗号化通信
openVPN
ストリーミングサーバー
    C++ RTMP Server
    Helix server Basic
ドメインの追加
Xen・仮想化
特定ディレクトリに容量制限

SELinux
SELinux基本設定
新しいタイプとポリシー・モジュールを作成してみる
マクロを利用したteファイルの記述
新しいドメインを導入してみる

coLinux
Fedora11で試す

Cプログラミング目次
X11プログラム
サイエンス・プログラム

計測・プログラム
秋月電子のデーターロガーpico ADC-16
「今すぐ使えるパソコン計測USBマイコン基板」に付属のTRZ1102
センサーの使用例

Glade2/GTK+を使ってみる
テキスト・ビューで簡易エディター
ドローイングエリアで自動描画
放物線運動(pango、cairoも試してみる)
これらを、GTK+のみで書き出す

フォントについて
ネットワーク・プログラミング
postgreSQL接続
CGI
ファイル操作

●その他
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く