VPS に Ultravnc Repeater を設置

互いにNAT配下にある端末からリモート操作を行うため VPS(グローバルアドレス) に Ultravnc Repeater を設置
インストール手順(ubuntu, centos)とセキュリティなどのメモ

接続概要
両端末からそれぞれリピータセッションを張り、その中でリモート操作を行う
リピータは複数の接続をさばけるので、被リモート側が接続時に設定した ID(数値)をリモート側が指定してターゲット端末を選別する仕組み
※画像のポート番号はデフォルト値です(運用では変更しましょう)

インストール (ソースからコンパイルが必要らしい)

ダウンロードと解凍
# wget http://www.uvnc.eu/download/repeater/uvncrepeater.tar.gz
# tar -zxvf uvncrepeater.tar.gz

ビルド
# cd 解凍したディレクトリ
# make
# make install

makeで makeが見つからない や g++: が見つからないと出た場合、開発ツールが入ってないのでインストール(makeが入ってなければ gccも入ってないと思う)してからmake を再度行う. makeで警告が出るが気にしない 

Ubuntu
# apt install make
# apt install build-essential
Centos
# yum install make -y
# yum -y install gcc-c++

ユーザーの追加
インストール最後に uvncrep ユーザーを追加しろとメッセージが出る
Ubuntu
# useradd -s /bin/false uvncrep
Centos
# adduser uvncrep -s /bin/false

起動と終了(手動)
# /etc/init.d/uvncrepeater start
# /etc/init.d/uvncrepeater stop

自動起動
chkconfig や systemd が使えないようなので、rc3.d へシンボリックリンクを登録
# cd /etc/rc3.d ←Ubuntu
# cd /etc/rc.d/rc3.d ←Centos
# ln -s /etc/init.d/uvncrepeater S11uvncrepeater

ログ
/var/log/uvncrepeater.log

設定ファイル(変更後 uvncrepeater を再起動)
/etc/uvnc/uvncrepeater.ini

主な設定箇所
[general]
viewerport = 5900 ;リモート端末が接続するポート
serverport = 5500 ;非リモート端末が接続するポート
maxsessions = 100 ;最大セッション数
allowedmodes = 3  ;  モード 0=なし, 1=モード1, 2=モード2, 3=両方

[mode1] 被リモート側接続制限(IP) - ファイアウォールでも可
allowedmode1serverport = 0 ; 0:全て 1:リストにあるアドレスのみ
srvListAllow0 = 192.168.0.0 ; 0がワイルドカードな感じ 

[mode2] リモート側接続制限(ID)
requirelistedid = 0 ; 0:全て 1:リストにあるIDのみ
idlist0 = 1111

[eventinterface] イベントを外部へ出力する仕組み
useeventinterface = false ; 利用しないなら false
webhook可能っぽいが、ホストしか指定できない(URLではない)

各端末からの接続
被リモート側
タスクトレイのメニューから Add New Client でリピータのホスト:ポート, IDを入力(接続中は List All Client で確認可能)
この接続設定は一時的なもので、一旦切断するとリストから消滅します
起動以降接続を維持するには ultravnc.ini への記述が必要です 

リモート側
Repeaterを選択してリモート側ポートへ接続(文字列"ID:"を含める)

セキュリティについて
接続を行うと分かりますが、リピーター経由では被リモート側で設定したパスワードを聞いてきません。そのため素の状態(ポート番号は変更するとして)で制限をかけられるのはファイアウォールも含めて IPアドレス接続ID のみとなります。互いのIPアドレスが変動する(よくある)環境の場合、接続ID(単なる数値)となってしまいます。またデフォルトの状態では、通信が暗号化されていませんので、これらを解消するため Encryption の設定を行いましょう。




コメント