スポンサーリンク

Conoha VPSにxrdpリモートデスクトップ環境構築

Conoha VPSロゴ VPS
Conoha VPSロゴ
Conoha VPS+xfce4+xrdpインスタンス作成手順メモ
CTN/XCB用取引所:PingExchange
DYM用取引所:MEXC BitGet

今日はConohaにVPSインスタンスを作成しました!
理由はPaypalに1,500円クポが届いていたので1,500円無料で利用出来るからでしたw

Conohaインスタンス設定

インスタンス作成までは普通にコントロールパネルから出来ない人は諦めましょうw

1. 最初にrootアカウントでやる作業

作成するユーザーは何でも良いんですが、AWSもIndigoも最初にubuntuっていう管理者アカウントが用意されてるのでルールとして合わせてubuntuユーザーを使う形にしています。

# インスタンスにssh接続
ssh root@インスタンスのIP

# ユーザー追加
adduser ubuntu

# sudoパスワード無し
echo "ubuntu ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/ubuntu

# ssh接続
mkdir /home/ubuntu/.ssh
vim /home/ubuntu/.ssh/authorized_keys
-------------------------------------------------
自分の公開鍵貼り付け
-------------------------------------------------
chown -R ubuntu:ubuntu /home/ubuntu/.ssh
sed -i -e 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
systemctl restart sshd

exitで一旦ログアウトしてrootで作業するのはここまでにします。

2. ubuntuユーザーでやる作業

# PermitRootLogin後にrootでssh接続不可となるのでubuntuユーザーで接続しなおす
ssh ubuntu@インスタンスのIP

# パッケージ最新にする
# (upgradeじゃ入らなかった奴は手動でinstallで明示的に更新した)
sudo apt update
sudo apt -y upgrade

# デスクトップ環境のインストール
# https://c-nergy.be/blog/?p=18205
sudo apt -y install xfce4 xfce4-goodies zip
echo "xfce4-session" > /home/ubuntu/.xsession
cd ~
wget https://www.c-nergy.be/downloads/xRDP/xrdp-installer-1.4.3.zip
unzip xrdp-installer-1.4.3.zip
chmod +x  ./xrdp-installer-1.4.3.sh
./xrdp-installer-1.4.3.sh

# ファイアウォールが有効だったので無効にしておく
sudo ufw disable

とりあえずリモートデスクトップ接続します。
ファイアウォール(ufw)切らないとconoha側のコンパネで全て許可でも接続出来ません。
ワイはインスタンス側のファイアウォール無効でパブリッククラウド側のセキュリティグループで制御する方式に慣れているのでザックリ無効にしちゃう派ですw

3. RDP接続の疎通確認

conoha vps xrdp接続①
conoha vps xrdp接続①

ubuntuユーザー+パスワードでログインします。

conoha vps xrdp接続②
conoha vps xrdp接続②

4. Conoha インスタンス停止と接続ポート制限

疎通確認が取れたらサクッとインスタンスをシャットダウンします。

sudo shutdown -h now
conoha vps接続許可ポート設定
conoha vps接続許可ポート設定

conohaのコンパネの接続許可ポートの部分のチェックを外してデフォルト設定にします。
デフォルト設定は全ての接続を拒否するデフォルトルールが適用されます。
ちなみにチェックボックスの中にRDPがあるのに使用しないのはIPアドレス制限が無くて全開放だからです。

5. conohaセキュリティグループ設定

この作業はコンパネでは出来なくてcurlでAPI叩かないと出来ません。

5-1. APIユーザーの作成

コンパネのAPIメニューからユーザーを作成します。

conoha APIユーザー作成
conoha APIユーザー作成
5-2. APIトークンの確認

コマンドは変更する場所は【】で検索すれば分かる形で書いときます。
APIエンドポイントも変わるので上記APIページのエンドポイント参照。
jsonは1行で見にくいのでInteliJに貼り付けてCode→Reformat Codeすれば綺麗になるメモ。

curl -i -X POST -H "Accept: application/json" \
-d '{ "auth": { "passwordCredentials": { "username": "【ユーザー名】", "password": "【パスワード】" }, "tenantId": "【テナントID】" } }' \
"https://identity.tyo2.conoha.io/v2.0/tokens"

access.token.idの値をメモして以降の【トークン】の箇所に利用していきます。

5-3. セキュリティグループを追加する
curl -i -X POST \
-H "Accept: application/json" \
-H "X-Auth-Token: 【トークン】" \
-d '{"security_group": {"name": "【好きな名前】"}}' \
"https://networking.tyo2.conoha.io/v2.0/security-groups"

security_group.idの値をメモして以降の【セキュリティグループID】の箇所に利用していきます。

5-4. セキュリティグループルールを追加する
curl -i -X POST \
-H "Accept: application/json" \
-H "X-Auth-Token: 【トークン】" \
-d '{"security_group_rule": {"direction": "ingress", "ethertype": "IPv4", "security_group_id": "【セキュリティグループID】", "port_range_min": "22", "port_range_max": "22", "protocol": "tcp", "remote_ip_prefix": "【自分のIP】/32"}}' \
"https://networking.tyo2.conoha.io/v2.0/security-group-rules"
curl -i -X POST \
-H "Accept: application/json" \
-H "X-Auth-Token: 【トークン】" \
-d '{"security_group_rule": {"direction": "ingress", "ethertype": "IPv4", "security_group_id": "【セキュリティグループID】", "port_range_min": "3389", "port_range_max": "3389", "protocol": "tcp", "remote_ip_prefix": "【自分のIP】/32"}}' \
"https://networking.tyo2.conoha.io/v2.0/security-group-rules"

これ面倒臭かったらport_range_minとmaxで全ポート自分は許可すればええんかも?

5-5. デフォルトポートにセキュリティグループ追加
curl -i -X GET \
-H "Accept: application/json" \
-H "X-Auth-Token: 【トークン】" \
"https://networking.tyo2.conoha.io/v2.0/ports"

とすると今設定されてるデフォルトポートの1つだけが返ってくるのでports.idをメモします。
設定されているセキュリティグループIDとセキュリティグループの一覧を比較すると
・default
・gncs-ipv6-all
の2つが設定されているのが分かります。
後者は必要なのか?謎なんですがかなり嘘くさい設定なので外してやりましたw
多分全て許可を外した時のバグなんじゃねーの?って気がします???

curl -i -X PUT -H "Accept: application/json" \
-H "X-Auth-Token: 【トークン】" \
-d '{"port": {"security_groups": ["【セキュリティグループID】", "【defaultのセキュリティグループID】"]}}' \
"https://networking.tyo2.conoha.io/v2.0/ports/【ポートID】"

defaultは全ての接続を拒否するルール、ワイが追加したのが許可するルールのハズ!!
とりあえずここまでで、自分のIPからしかSSHとRDP接続出来ない環境が出来たハズ!

6. GUIで日本語表示出来るようにする

ワイはデスクトップ環境として使う訳じゃないので入れませんが、必要な人は自分で日本語入力も入れればデスクトップ環境は充実すると思います。

6-1. 日本語インストール
sudo apt -y install language-pack-ja
sudo apt -y install fonts-ipafont
6-2. GUI側でフォント設定

GUI側でフォントを変更します。
Settings→Appearance

xfce日本語フォント設定①
xfce日本語フォント設定①

Default FontをIPAフォントに変更します。

xfce日本語フォント設定②
xfce日本語フォント設定②
6-3. 日本語に切替
sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
sudo apt -y install firefox firefox-locale-ja
sudo reboot

標準ブラウザもエラーで動かなかったのでダウンロードには必要なのでfirefoxも入れておきました。
再起動すれば日本語環境に変わってGUIも日本語になっています。
以上で日本語入力は出来ないけどワイがリモートから使いたい環境の下地は完成なり!!

自分のIPが変わった時にやる作業メモ

1.トークン取得する
2.セキュリティグループ一覧見る
 →これでセキュリティグループルールのIDまで一緒に出てくるのでセキュリティグループIDとルールIDをメモする。
3.セキュリティグループルールは更新出来ないので旧IPのルール削除→新IPのルール追加する
これでいけるハズ!!

コメント

タイトルとURLをコピーしました