x11vnc

Linuxサーバをリモートデスクトップみたいに操作するソフト(モジュール)。
他にはRealVNCやらVNCServer等がある。
x11vncの特徴としては、複数のユーザが同時ログインした際に、
“それぞれのVNCクライアントに同じ(Linux)画面”が出力出来る。

構築環境

今回検証した環境はこちら

構築

1. インストール
ソースからmakeするのが筋なのだろうが、面倒だったのでyumでインストール。
apt-getでも同様に行ける。筈

# yum install x11vnc



2. パスワードファイルの作成
デフォルトのままだと、パスワード認証が掛かってないので、パスワードのマップ(ファイル)を作成する。
なお、パスワードファイル6文字以上・8文字以下にする事。
(今回の設定方法の)x11vncではパスワードにDESを利用しているので、最大8文字しか認識出来ない。
もし、9文字以上を入力しても、8文字目までしか認識を行わないので意味が無い。

# x11vnc -storepasswd
---
Enter VNC password:
Verify password:
Write password to /root/.vnc/passwd? [y]/n
Password written to: /root/.vnc/passwd

さすがに、rootのフォルダに置いておくのはどうかと思うので、お好みにより移動させる。

# mv /root/.vnc/passwd /etc/passwdvnc



3. xinetd - x11vncの自動起動
xinetdからx11vncを起動させる為に設定を追記していく。
自分の環境では、vncの応答ポート番号に5920を使用している。
デフォルトは5900番なのだが、良く攻撃対象ポートになるので変更する事を推奨。
各オプションの詳細については以下参照



4. server_argsの設定
server_argsの設定が結構厄介。x11vncを構築する各環境に合わせて調整していく事になる。



5. ポートとサービスの対応付
ポート5920はx11vncという事を設定する。

# vi /etc/services
---
※最下行に追記
x11vnc          5920/tcp                # X11 VNC Server
x11vnc          5920/udp                # X11 VNC Server

必要に応じて、iptablesの設定も変更する事。
上記が全て完了したらLinux機の再起動をする

接続

適当なVNCクライアントを使用して、Linux機に接続をする。接続する際には

[Linux機のIPアドレス]::[ポート番号]

を指定する(クライアントによって変化)。

注意事項