ということで、Apache Guacamole と戯れた記録。
これは何?
ブラウザベースでリモートデスクトップやらSSHしてくれるすごいやつだよ。
これ入れておけば、VPN通さなくてもSSLだけ通してあげればブラウザからリモート作業ができる優れものだよ。
ということで、私が扱うので、例によって例のごとくサーバは FreeBSD です。
以下細かい説明。
サーバは FreeBSD 12.2-RELEASE を使用。
まずはサクサクとパッケージを入れていきます。
# pkg install guacamole-client guacamole-server mariadb105-server mysql-connector-java-8.0.22
今は /etc/rc.conf を直接編集しなくてもよくなったからスクリプトで流し込むのに便利だよね。
# sysrc tomcat9_enable="YES"
# sysrc guacd_enable="YES"
# sysrc mysql_enable="YES"
service mysql-server start
認証DBはいろいろ選べるんだけど、ここはサンプル通り MariaSQL を使いました。最近 MariaSQL 使うこと多いな。
以前は PostgreSQL 一択だったんだけど。
で、MySQLの初期設定をぽちぽちとしてあげます。こんなスクリプトあったのね。
# mysql_secure_installation
で、設定で来たら、今度は Guacamole 用のDBとユーザーを作ってあげます。
# mysql -u root -p
CREATE DATABASE guacamole;
CREATE USER 'guacamole'@'localhost' IDENTIFIED BY 'guacamole';
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO 'guacamole'@'localhost';
FLUSH PRIVILEGES;
quit
MySQL の設定はここまで。あとは Guacamole との連携をできるようにします。
必要なプラグインを展開してコピったり、テーブルを流し込んだり。
# cd /usr/local/share/guacamole-client/
# tar xvfz guacamole-auth-jdbc.tar.gz
# cd guacamole-auth-jdbc-1.2.0/mysql/schema
# cat *.sql | mysql -u root guacamole
# mkdir /usr/local/etc/guacamole-client/extensions
# mkdir /usr/local/etc/guacamole-client/lib
# cp /usr/local/share/guacamole-client/guacamole-auth-jdbc-1.2.0/mysql/guacamole-auth-jdbc-mysql-1.2.0.jar /usr/local/etc/guacamole-client/extensions/
# cp /usr/local/share/java/classes/mysql-connector-java.jar /usr/local/etc/guacamole-client/lib/
# cd /usr/local/etc/guacamole-client/
# cp guacamole.properties.sample guacamole.properties
最後に、guacamole.properties を編集します。パスワードとかは上記で設定したやつに変更してください。
guacd-hostname: localhost
guacd-port: 4822
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole
mysql-username: guacamole
mysql-password: guacamole
mysql-default-max-connections-per-user: 0
mysql-default-max-group-connections-per-user: 0
あとはすべてのサービスを再起動してから http://localhost:8080/guacamole/ に接続してみましょう。
つながるかなー?
と、いうところは、ほぼ ここのマルコピですよ。
で、例によって例のごとく、jail内に環境を作って動かそうと思ったわけですよ。
なぜか、ssh と VNC は問題なく接続できるのに、RDP の場合のみつながりません。
いろいろ格闘した結果、たぶん jail の中で Xorg が動かない問題と根っこが一緒なんじゃないかなという結論に達しました。
試してないけど。
で、しょうがないのでたまたまほどんと仕事していない Raspberry Pi 3があったので、Docker で動かしてみることにしました。
このへんもさくっとググればすぐ見つかるのでよかったねーと思っていたのですが、いかんせん重すぎる。SSH は問題ないのだが
GUIが動くと遅くてコマ落ちしてダメでした。残念。
しょうがないので、メモリ増えた録画サーバに bhyve で 12.2-RELEASE を入れて、そこに上記の Guacamole をインストールして
使うことにしました。
bhyve 使うんなら Linux 入れて Docker 動かした方が無難じゃないかと思うし、そう突っ込まれると返す言葉もないので、この
問題に関してはもう少しあがいてみる予定。
とりあえず、 allow.kmem パッチ試すか。