Linux/Command/x11vnc
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
ns-lab
nowsky system-lab
DigiLoog
Linux
Windows
開始行:
*x11vnc [#ib9b568b]
Linuxサーバをリモートデスクトップみたいに操作するソフト(...
他にはRealVNCやらVNCServer等がある。
x11vncの特徴としては、複数のユーザが同時ログインした際に、
“それぞれのVNCクライアントに同じ(Linux)画面”が出力出来る。
~
*構築環境 [#a4b72dab]
今回検証した環境はこちら
-CentOS 6.4 x86_64
-※同時に複数端末でログインしても、同じ画面が表示される事...
~
*構築 [#zf7f7e1b]
&size(16){&font(b){1. インストール};};
ソースからmakeするのが筋なのだろうが、面倒だったのでyumで...
apt-getでも同様に行ける。筈
# yum install x11vnc
~
&size(16){&font(b){2. パスワードファイルの作成};};
デフォルトのままだと、パスワード認証が掛かってないので、...
なお、パスワードファイル6文字以上・8文字以下にする事。
(今回の設定方法の)x11vncではパスワードにDESを利用している...
もし、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
~
&size(16){&font(b){3. xinetd - x11vncの自動起動};};
xinetdからx11vncを起動させる為に設定を追記していく。
自分の環境では、vncの応答ポート番号に5920を使用している。
デフォルトは5900番なのだが、良く攻撃対象ポートになるので...
各オプションの詳細については以下参照
-[[VNC server for real X displays>+http://www.karlrunge.c...
-[[Allow VNC connections to real X11 displays>+http://man...
# vi /etc/xinetd.d/x11vnc
---
service x11vnc
{
port = 5920
protocol = tcp
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/x11vnc
server_args = -display :0 -geometry 1024x768 -rfbaut...
}
-xinetd(x11vnc連携)補足
&font(b){port = };xinetdがx11vncを待ち受けるポート番号。"...
&font(b){user = };x11vncを実行するユーザ。"-auth"読み取り...
&font(b){server = };x11vncのバイナリ。『# which x11vnc』...
&font(b){server_args = };x11vncの引数。詳細は下参照
~
&size(16){&font(b){4. server_argsの設定};};
server_argsの設定が結構厄介。x11vncを構築する各環境に合わ...
- -display :0
Linuxの端末番号。もし、ここを“:1”に変更したらクライアント...
- -geometry 1024x768
クライアントで表示するVNC接続先の解像度。
- -rfbauth /etc/passwdvnc
パスワードファイルのPATH。
- -allow 192.168.1.11
接続を許可するクライアントのIPアドレス。“,”区切りで複数指...
- -o /var/log/x11vnc.log
x11vncの動作ログ保存先。各接続毎に新規作成される。
- -auth guess
XServerの管理番号ファイルの指定。gdm/kdm/xdmで色々変わる...
gdm: -auth /var/gdm/:0.Xauth
gdm: -auth /var/lib/gdm/:0.Xauth
kdm: -auth /var/lib/kdm/A:0-crWk72
kdm: -auth /var/run/xauth/A:0-crWk72
xdm: -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
dtlogin: -auth /var/dt/A:0-UgaaXa
が推奨らしいが、&font(b){殆どの場合で違うので書き換え必須...
CentOSで使用しているgdmだと、
/var/run/gdm/auth-for-[UserName]-***
なのだが、[UserName]はユーザ毎に変わり、***の中はランダム...
xinetd経由でのx11vnc起動オプションから上のディレクトリを...
よって、&font(b){『-auth guess』を指定};して可変適応させ...
- -inetd
デーモンとして稼働。
- -noncache
クライアントに対して、Linuxの画面をキャッシュしない。
noncacheにすると、VNCクライアントで解像度違いによるバグが...
- -xkb
LinuxのXKeyboardを拡張する。LinuxでもShiftとかが打てる様...
- -repeat
クライアントからの接続保持?
- -forever
指定しないと、セッションが終了する毎にx11vncが落ちる。
指定をすると、セッションが終了しても、x11vncが待機状態に...
- -bg
x11vncをバックグラウンドで動作。
- -shared
複数ユーザで同じ画面を共有する。
- -enablehttpproxy
http-proxyを使用可能にする。
~
&size(16){&font(b){5. ポートとサービスの対応付};};
ポート5920はx11vncという事を設定する。
# vi /etc/services
---
※最下行に追記
x11vnc 5920/tcp # X11 VNC Server
x11vnc 5920/udp # X11 VNC Server
必要に応じて、iptablesの設定も変更する事。
上記が全て完了したらLinux機の再起動をする
~
*接続 [#s5f9c305]
適当なVNCクライアントを使用して、Linux機に接続をする。接...
[Linux機のIPアドレス]::[ポート番号]
を指定する(クライアントによって変化)。
~
*注意事項 [#l33a1a1f]
- -look
&font(b){server_argsには"-look"オプションがある};のだが、...
x11vncがgdm等のXauthを取得出来なくなり、接続毎にゾンビが...
"-look"オプションは使用しない事を推奨。
- -rfbport
&font(b){server_argsには"-rfbport"という、“VNCの待ち受け...
こっちも指定すると、xinetdの方で指定したport番号と競合を...
だが、常に指定したディスプレイ番号(20以上とか)でVNCを待ち...
その場合、クライアントは最初xinetdのポートへ接続を行い、
わざとエラーでクライアントを落とした後、"-rfbport"で指定...
1度目→[Linux機のIPアドレス]::5920
※接続しに行くと必ず落ちる。
2度目→[Linux機のIPアドレス]::[-rfbportで指定したポート番...
※接続が出来る。
終了行:
*x11vnc [#ib9b568b]
Linuxサーバをリモートデスクトップみたいに操作するソフト(...
他にはRealVNCやらVNCServer等がある。
x11vncの特徴としては、複数のユーザが同時ログインした際に、
“それぞれのVNCクライアントに同じ(Linux)画面”が出力出来る。
~
*構築環境 [#a4b72dab]
今回検証した環境はこちら
-CentOS 6.4 x86_64
-※同時に複数端末でログインしても、同じ画面が表示される事...
~
*構築 [#zf7f7e1b]
&size(16){&font(b){1. インストール};};
ソースからmakeするのが筋なのだろうが、面倒だったのでyumで...
apt-getでも同様に行ける。筈
# yum install x11vnc
~
&size(16){&font(b){2. パスワードファイルの作成};};
デフォルトのままだと、パスワード認証が掛かってないので、...
なお、パスワードファイル6文字以上・8文字以下にする事。
(今回の設定方法の)x11vncではパスワードにDESを利用している...
もし、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
~
&size(16){&font(b){3. xinetd - x11vncの自動起動};};
xinetdからx11vncを起動させる為に設定を追記していく。
自分の環境では、vncの応答ポート番号に5920を使用している。
デフォルトは5900番なのだが、良く攻撃対象ポートになるので...
各オプションの詳細については以下参照
-[[VNC server for real X displays>+http://www.karlrunge.c...
-[[Allow VNC connections to real X11 displays>+http://man...
# vi /etc/xinetd.d/x11vnc
---
service x11vnc
{
port = 5920
protocol = tcp
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/x11vnc
server_args = -display :0 -geometry 1024x768 -rfbaut...
}
-xinetd(x11vnc連携)補足
&font(b){port = };xinetdがx11vncを待ち受けるポート番号。"...
&font(b){user = };x11vncを実行するユーザ。"-auth"読み取り...
&font(b){server = };x11vncのバイナリ。『# which x11vnc』...
&font(b){server_args = };x11vncの引数。詳細は下参照
~
&size(16){&font(b){4. server_argsの設定};};
server_argsの設定が結構厄介。x11vncを構築する各環境に合わ...
- -display :0
Linuxの端末番号。もし、ここを“:1”に変更したらクライアント...
- -geometry 1024x768
クライアントで表示するVNC接続先の解像度。
- -rfbauth /etc/passwdvnc
パスワードファイルのPATH。
- -allow 192.168.1.11
接続を許可するクライアントのIPアドレス。“,”区切りで複数指...
- -o /var/log/x11vnc.log
x11vncの動作ログ保存先。各接続毎に新規作成される。
- -auth guess
XServerの管理番号ファイルの指定。gdm/kdm/xdmで色々変わる...
gdm: -auth /var/gdm/:0.Xauth
gdm: -auth /var/lib/gdm/:0.Xauth
kdm: -auth /var/lib/kdm/A:0-crWk72
kdm: -auth /var/run/xauth/A:0-crWk72
xdm: -auth /var/lib/xdm/authdir/authfiles/A:0-XQvaJk
dtlogin: -auth /var/dt/A:0-UgaaXa
が推奨らしいが、&font(b){殆どの場合で違うので書き換え必須...
CentOSで使用しているgdmだと、
/var/run/gdm/auth-for-[UserName]-***
なのだが、[UserName]はユーザ毎に変わり、***の中はランダム...
xinetd経由でのx11vnc起動オプションから上のディレクトリを...
よって、&font(b){『-auth guess』を指定};して可変適応させ...
- -inetd
デーモンとして稼働。
- -noncache
クライアントに対して、Linuxの画面をキャッシュしない。
noncacheにすると、VNCクライアントで解像度違いによるバグが...
- -xkb
LinuxのXKeyboardを拡張する。LinuxでもShiftとかが打てる様...
- -repeat
クライアントからの接続保持?
- -forever
指定しないと、セッションが終了する毎にx11vncが落ちる。
指定をすると、セッションが終了しても、x11vncが待機状態に...
- -bg
x11vncをバックグラウンドで動作。
- -shared
複数ユーザで同じ画面を共有する。
- -enablehttpproxy
http-proxyを使用可能にする。
~
&size(16){&font(b){5. ポートとサービスの対応付};};
ポート5920はx11vncという事を設定する。
# vi /etc/services
---
※最下行に追記
x11vnc 5920/tcp # X11 VNC Server
x11vnc 5920/udp # X11 VNC Server
必要に応じて、iptablesの設定も変更する事。
上記が全て完了したらLinux機の再起動をする
~
*接続 [#s5f9c305]
適当なVNCクライアントを使用して、Linux機に接続をする。接...
[Linux機のIPアドレス]::[ポート番号]
を指定する(クライアントによって変化)。
~
*注意事項 [#l33a1a1f]
- -look
&font(b){server_argsには"-look"オプションがある};のだが、...
x11vncがgdm等のXauthを取得出来なくなり、接続毎にゾンビが...
"-look"オプションは使用しない事を推奨。
- -rfbport
&font(b){server_argsには"-rfbport"という、“VNCの待ち受け...
こっちも指定すると、xinetdの方で指定したport番号と競合を...
だが、常に指定したディスプレイ番号(20以上とか)でVNCを待ち...
その場合、クライアントは最初xinetdのポートへ接続を行い、
わざとエラーでクライアントを落とした後、"-rfbport"で指定...
1度目→[Linux機のIPアドレス]::5920
※接続しに行くと必ず落ちる。
2度目→[Linux機のIPアドレス]::[-rfbportで指定したポート番...
※接続が出来る。
ページ名: