目的
とある知り合いからの依頼でVPSでブラウザー(Firefox)のみが可能なサーバー(PC)を可能な限り低価格にて用意しなければならなくなりました。
いわゆるキオスク端末の構築なんですがその構築手順をご紹介します。
環境
本記事で紹介するのはDTIのServersMan@VPSを利用した構築手順になります。
環境により手順が若干異なるのでConoha版は後日執筆予定です。
それではServersMan@VPSのご契約は↓↓↓↓↓からどうぞー
ServersMan@VPSには3つのプランがありますが
- Entry:メモリ1GB、HDD50GBで467円/月
- Standard:メモリ2GB、HDD100GBで934円/月
- Pro:メモリ4GB、HDD200GBで1,886円/月
一番安いEntryでもちょっとイライラしますが利用可能なレベルにチューニングしてます。
アップグレードにも対応していますのでまずはEntryで様子見しましょう。
OSはCentOS 6 (64bit)のテンプレートを使ってください。
構築手順
Linuxに詳しくはないので無駄な手順もあるかと思いますがご了承ください。
少なくとも手順通り実行していただければ成功します!
(1)サーバーへ接続
「Tera Term」や「PuTTY」等のSSHクライアントを使って展開済みのCentOSに(ポート3843で)rootで接続
(2)不要パッケージ削除&アップデート
軽量化、セキュリティ向上のため不要なパッケージを削除し、CentOSをアップデートします。
以下コマンドを順番に実行してください。
yum -y remove httpd
yum -y remove perl
yum -y update
(3)ホスト名変更
こちらはお好みで
vi /etc/sysconfig/networkm
NETWORKING="yes"
GATEWAYDEV="venet0"
NETWORKING_IPV6="yes"
IPV6_DEFAULTDEV="venet0"
HOSTNAME=ホスト名 ← この行を追記
追記したら :wq で保存、viエディターを終了して
reboot
(4)xrdpインストール
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
xrdpのインストール
yum --enablerepo=epel -y install xrdp
OS起動時にxrdpサービス(デーモン)を起動させる
chkconfig xrdp on
xrdpサービス(デーモン)の起動
service xrdp start
(5)VNCインストール
VNCインストール
yum -y install tigervnc-server
OS起動時にVNCサービス(デーモン)を起動させる
chkconfig vncserver on
(6)各種パッケージインストール
yum -y install gnome-session gnome-desktop gnome-themes gnome-panel
yum -y install gnome-utils gnome-terminal gnome-system-monitor gnome-menus
yum -y install firefox
yum -y install alacarte
(7)xrdpの日本語キーボード対応
cd /etc/xrdp/
wget http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263/km-e0010411.ini
mv km-e0010411.ini km-0411.ini
ln -s km-0411.ini km-e0010411.ini
ln -s km-0411.ini km-e0200411.ini
ln -s km-0411.ini km-e0210411.ini
(8)xrdpの接続設定を日本語化
vi /etc/xrdp/startwm.sh
/ で exportを検索して該当場所へジャンプ
#. /etc/environment
#export PATH=$PATH
#export LANG=$LANG
export LANG=ja_JP.UTF-8 ← この行を追記
追記したら :wq で保存、viエディターを終了
(9)環境の日本語化
yum groupinstall -y "Japanese Support"
vi /etc/sysconfig/i18n
#LANG="en_US.UTF-8" ← この行をコメントアウト
LANG="ja_JP.UTF-8" ← この行を追記
追記したら :wq で保存、viエディターを終了
設定を即反映させます。
. /etc/sysconfig/i18n
日本語になっていることを確認
locale
こんな感じになっていればとりあえずOKです。
LANG=ja_JP.UTF-8
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=
(10)GNOME から軽量 Window Manager に変更
yum -y install xfwm4
設定ファイルバックアップ
cp -p /etc/X11/xinit/Xclients /etc/X11/xinit/Xclients.org
(11)KIOSK端末化<シンクライアント化>
この項はFirefoxの設定(ホームページや表示の最大化などなど)をしたあとに実施するとよりKIOSK端末になるよ
vi /etc/X11/xinit/Xclients
:%d で中身を全削除して次の内容に変更
#!/bin/bash
TAR_HOME=/tmp/${USER}-$$.tar
REF_FILE=/tmp/${USER}.$$
LOG_FILE=/tmp/Xclients.log
echo "----- $(date +"%Y/%m/%d %H:%M:%S") Backup user home directory -----" > $LOG_FILE
tar cf $TAR_HOME . >> $LOG_FILE 2>&1
touch $REF_FILE
XFWM4="$(which xfwm4 2>/dev/null)"
XDISPLAYNO="$(ps -ef | grep Xvnc | egrep -v '(grep|sed|awk)' | sed -e 's/.*\(Xvnc :..\).*/\1/' | awk '{print $2}' 2>/dev/null)"
if [ -n "$XFWM4" -a -n "$XDISPLAYNO" ]; then
exec "$XFWM4" &
/usr/bin/ibus-daemon -r --xim &
firefox --display=$XDISPLAYNO
fi
if [ -f $TAR_HOME ]; then
echo "----- $(date +"%Y/%m/%d %H:%M:%S") Find create/modify file -----" >> $LOG_FILE
find . -type f -newer $REF_FILE -ls -exec rm -f {} \; >> $LOG_FILE 2>&1
echo "----- $(date +"%Y/%m/%d %H:%M:%S") Restore user home directory -----" >> $LOG_FILE
tar xf $TAR_HOME >> $LOG_FILE 2>&1
fi
rm -f $TAR_HOME $REF_FILE
メモ
履歴等の情報をKIOSK端末に残さないための処理で、ログオフ時にプロファイルを削除→初期プロファイル展開みたいな感じでシンクライアント化
(12)不要パッケージ削除
『(6)各種パッケージインストール』でインストールしたものをいくつか消していますが、一度入れないとうまくいかなかった気がするので無駄かもしれませんが手順通り進めてみてください。
yum -y remove gnome-desktop
yum -y remove gnome-terminal
yum -y remove gnome-menus
yum -y remove gnome-panel-libs
yum -y remove gnome-python2-gnome
yum -y remove metacity
yum -y remove samba-common
(13)RDP接続元Winとクリップボード共有&接続ポート変更
vi /etc/xrdp/xrdp.ini
ポート変更&クリップボード共有
[globals]
bitmap_cache=yes
bitmap_compression=yes
port=3389 ← 好きなポート番号に変更
crypt_level=high
channel_code=1
max_bpp=24
#black=000000
#grey=d6d3ce
#dark_grey=808080
#blue=08246b
#dark_blue=08246b
#white=ffffff
#red=ff0000
#green=00ff00
#background=626c72
[xrdp1]
name=sesman-Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
[channels] ← 赤字追記
rdpdr=true
cliprdr=true
変更・追記したら :wq で保存、viエディターを終了しxrdpを再起動
service xrdp restart
(14)不要サービス停止
service ajaxterm stop
chkconfig ajaxterm off
chkconfig xinetd off
(15)利用ユーザーの追加
useradd ユーザー名
passwd ユーザー名
ユーザー ユーザー名 のパスワードを変更。
新しいパスワード:設定するパスワードを入力
新しいパスワードを再入力してください:設定するパスワードを入力
(16)RDP での root ログインを拒否
vi /etc/xrdp/sesman.ini
AllowRootLogin=0 ← 1を0に変更
変更したら :wq で保存、viエディターを終了しxrdpを再起動
service xrdp restart
使ってみよう
リモートデスクトップクライアントを起動してIPアドレス:ポート番号の形式で接続先を指定し【接続】をクリック
以下の警告画面が出たら今後確認しないにチェックをして【はい】をクリック
『(15)利用ユーザーの追加 』で作成したユーザー名とパスワードを入力し【OK】をクリック
接続が成功するとFirefoxが自動起動し、Firefoxを閉じるとログオフされます。