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 installmakeで 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 ; 利用しないなら falsewebhook可能っぽいが、ホストしか指定できない(URLではない)
各端末からの接続
被リモート側
タスクトレイのメニューから Add New Client でリピータのホスト:ポート, IDを入力(接続中は List All Client で確認可能)
起動以降接続を維持するには ultravnc.ini への記述が必要です
Repeaterを選択してリモート側ポートへ接続(文字列"ID:"を含める)
接続を行うと分かりますが、リピーター経由では被リモート側で設定したパスワードを聞いてきません。そのため素の状態(ポート番号は変更するとして)で制限をかけられるのはファイアウォールも含めて IPアドレスと接続ID のみとなります。互いのIPアドレスが変動する(よくある)環境の場合、接続ID(単なる数値)となってしまいます。またデフォルトの状態では、通信が暗号化されていませんので、これらを解消するため Encryption の設定を行いましょう。
コメント