CentOS5.3にVNCでアクセスできるようにした。
VNCで接続したい、すべての人の参考になれば。
以前にも書いたんですが、もう一回、整理して書いてみます。
CentOS5.2にVNCサーバ環境を構築した。 - rderaログ
初めに
VNCでPCに接続するにはvncserverを起動させておく必要があります。
# /etc/rc.d/init.d/vncserver start # chkconfig --list vncserver
ただ、この方法はVNCを使わないときでもVNCデーモンが起動している状態であり、
リソースの無駄なんです。
そこで、xinetdを利用してVNCデーモンを起動します。
xinetdとは?
以下に非常に詳しい説明がなされています。
http://www.mukuan.org/security/xinetd.html
簡単に言ってしまえば、デーモンに要求があったときに起動させる仕組みのことです。
それでは、実際に設定をしていきます。
必要なものをインストール
# yum -y install xinetd vnc vnc-server
設定ファイルを作成する
/etc/xinetd.d/下に起動ファイルを作る。
起動ファイル名は先程、設定したサービス名と一致させる必要がある。
# vi /etc/xinetd.d/vnc
service vnc { disable = no socket_type = stream wait = no user = nobody instance = 3 server = /usr/bin/Xvnc server_args = -inetd -query localhost -once -geometry 800x600 -depth 16 -SecurityTypes None only_from = 192.168.24.0/24 127.0.0.1 log_on_success += DURATION log_on_failure += HOST }
disable | このサービスをxinetd経由で起動させるか?noで起動。yesで起動しない。 |
socket_type | ソケットタイプの指定。TCPは、「stream」。UDPは「dgram」を指定 |
wait | yes ならシングルスレッド。no ならマルチスレッド |
user | サービスの実行ユーザを指定 |
instances | 同時にいくつサービスできるかを指定。数字か無制限を表すUNLIMITEDを指定可能 |
server | そのサービスのために実行するプログラムを指定 |
only_from | サービスを可能にするリモートホストを指定。ex)192.168.24.0/24は192.168.24サブネットのすべてのホストに合致 |
server_args | サービスに渡される引数。以下を参照 |
no_access | 使用できないリモートホストを指定 |
access_times | サービスが使用できる時間間隔を指定 |
log_on_success | 起動時と終了時にどの情報をログ出力するか。以下を参照 |
log_on_failure | 起動できなかった場合にどの情報をログ出力するか。以下を参照 |
log_on_successとlog_on_failureで指定できる値
指定可能なオプション | 値 |
---|---|
PID | サーバのプロセスID |
HOST | リモートホストのアドレス |
USERID | ident(identification) プロトコルを使い、リモートユーザのユーザ ID |
EXIT | 終了ステータスまたは終了シグナル |
DURATION | セッションの時間 |
ATTEMPT | 失敗があったこと |
sever_argsで指定できる値
-inetd | Xvncをinetd経由で起動させる(必須) |
-query localhost | XDMCP(X Display Manager Control Protocol)を使ってユーザー認証を行う。localhostを指定 |
-once | xsessionが終了した時点でVNCサーバを終了する |
-geometry サイズ | デスクトップのサイズ。defaultは1024x768 |
-depth 色数 | 色数の指定。defaultは16。他に8,15,24を指定可能。 |
-SecurytyTypes None | VNC Passwordはかけない。 |
XDMCPを許可する
リモートからでも、グラフィカルログインできるようにXDMCP を許可する。
CentOS5.3では/etc/gdm/custom.conf
# vi /etc/gdm/custom.conf
以下の記述をする。
[security] AllowRemoteRoot=false [xdmcp] Enable=true [gui] [greeter] IncludeAll=false
AllowRemoteRoot=false | リモートからのrootでのログイン禁止 |
Enable=true | グラフィカルログイン許可 |
IncludeAll=false | ログイン画面でユーザリストを表示しない |
設定を反映
# /etc/rc.d/init.d/xinetd restart # reboot
ハマるところ。
以下注意
参考にしたページ
VNC Serverをxinetd経由で立てる方法 [Fedora 10] - Kerosoft : Modus Operandi
OpenSSHをxinetd経由で起動する。 - いがっちの日記
http://www.linux.or.jp/JM/html/xinetd/man5/xinetd.conf.5.html
@IT:telnetで接続可能な時間を限定するには
@IT:telnetで接続するクライアントを限定するには
Linux Memorization VNC設定
http://casey.jp/article.php?story=20080807004548540
http://chibi.name/fedora/server/xinetdftp.shtml
http://www.mukuan.org/security/xinetd.html
Xinetdとは何? Weblio辞書
inetdとは