今日は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接続の疎通確認
ubuntuユーザー+パスワードでログインします。
4. Conoha インスタンス停止と接続ポート制限
疎通確認が取れたらサクッとインスタンスをシャットダウンします。
sudo shutdown -h now
conohaのコンパネの接続許可ポートの部分のチェックを外してデフォルト設定にします。
デフォルト設定は全ての接続を拒否するデフォルトルールが適用されます。
ちなみにチェックボックスの中にRDPがあるのに使用しないのはIPアドレス制限が無くて全開放だからです。
5. conohaセキュリティグループ設定
この作業はコンパネでは出来なくてcurlでAPI叩かないと出来ません。
5-1. APIユーザーの作成
コンパネの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
Default FontをIPAフォントに変更します。
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のルール追加する
これでいけるハズ!!
コメント