VNCで遠隔操作

GMOクラウドのAltus BasicのMiniサーバはメモリが512MBしかない。
それでも、VPSのGUIを使いたいので、ubuntu 18.04 LTSのXfce4でチャレンジ。
# apt install xfec4 xfce4-goodies
# apt install vnc4server
# vncpasswd ; 設定しなければ初回起動時に入力。
# vncserver 1:
# vncserver -kill 1:
# echo “startxfce4” & > .vnc/xstartup
# vncserver -geometry 1280×1024
defaultは、-geometry 1024×768 -depth 16なので、少し画面が小さすぎる。

windows側に、VNC Viewerをインストールして、 IP:5901でアクセス。
まずは、Real VNCのVNC viewer 6.19.10をインストールした。
暗号化されていない旨の警告が出るのとinformationが便利だったが、再描画に問題が起こって画面が乱れる。
UltraVNC viewer 1.2.2.3に変更したら問題なし。

X11Forwardより、レスポンスがかなり早い。
firefoxが実用になる。
画面の確認は、xrandrでできる。
パスワードは8文字しか認識しないので、このままでは問題。
rootではvncserverを起動しないほうが安全。
使用後は、psで起動しているディスプレイ番号を確認したら、終了させておく。
# ps aux | grep -i vnc
# vncserver -kill :1
起動したユーザでないと終了させれない。

SSH tunnelを使うと通信が暗号化できる。
windowsで使っているrloginでも設定可能。
サーバ情報で、ssh接続情報を入力。
プロトコル、ポートフォワード、新規を選択。
Listened (Local, localhost, local_port), Connect (remote_ip, vnc_port)
rloginで接続後にvncserverを起動し、
localでUltraVNC viewerを起動して、localhost::port_numに接続する。
local_portは8080、vnc_portは5901など。

このままだと、元のvncポートでも直接アクセスできるので、firewallで禁止しておく。Altusの場合、ssh tunnel経由は、localhostではなく、グローバルIPからきているので、許可したのちに、外部IPからのアクセスを禁止しておく。
# iptables -A INPUT -p tcp –dport vnc_port -s global_ip -j ACCEPT
# iptables -A INPUT -p tcp -ddport vnc_port -j DROP
iptablesの設定保存のためには、iptables-persistentをインストする必要があるので、ufw (Uncomplicated Firewall)を使ったほうが便利。
# apt install ufw; 0.35
ipv4とipv6のルールを同時にセットしてくれる。実際は、iptablesのルールにufw-*のチェインが追加されるので、iptables -nvL –lineで確認できる。
ufwがenableであれば、以下で、ルールが確認できる。
# ufw status
# ufw show user-rules; ルールが確認できる。
disableのときは、以下で確認する。
# ufw show added
# ufw show listening
# more /etc/ufw/user{,6}.rules; 直接起動時ルールを確認することもできる。
/etc/default/ufwで、IPV6=noにすれば、IPv4のみになる。
# vi /etc/ufw/applications.d/custom
[vnc-server]
titiles=xx
descriptions=xx
ports=vnc_port/tcp
# ufw from ip_address to any app vnc-server
アプリを設定していると、ポート変更をするときに、profileの変更だけですむので、便利。
# ufw app update all
ip_addressにdomain nameが使えないのが残念。

コメント