VPSで稼働しているサービス整理(XserverVPS)

安価なプランのIndigoVPSで色々なOSS運用していたが、1つにまとめることにした。今回はXserverVPS。すでにOSSは稼働状態なので、新しい環境と並行稼働してから切り替えることにした。

ssh

sudo vim /etc/ssh/sshd_config
Port
>9922

PasswordAuthentication
ChallengeResponseAuthentication
GSSAPIAuthentication
>no

sudo service ssh restart

ufw

※Xserverにもパケットフィルタがあるので要設定。

sudo vim /etc/default/ufw
>IPV6=no

sudo ufw allow from ●●●.●●●.●●●.●●● to any port 9922 proto tcp

sudo ufw enable
sudo ufw status

・メモ

削除
sudo ufw status numbered
sudo ufw delete [番号]

Docker

sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo “$VERSION_CODENAME”) stable” | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

MySQL

このMySQLは外部接続用で単独で使用。
今までは直接インストールしていたが今回はDocker。

sudo mkdir project_management
cd project_management

sudo mkdir data
sudo chown -R 999:999 ./data
sudo chmod 700 ./data

sudo mkdir conf.d
sudo chown -R 999:999 ./conf.d
sudo chmod 700 ./conf.d

sudo vim docker-compose.yml

sudo docker compose up d

cd conf.d
sudo touch external.cnf
sudo chown 999:999 external.cnf
sudo chmod 644 external.cnf

sudo vim external.cnf
[mysqld]
bind-address = 0.0.0.0
require_secure_transport = ON

sudo docker restart production_management

sudo ufw allow from ●●●.●●●.●●●.●●● to any port 3306 proto tcp
※Xserverのパケットフィルタも要設定。

dataフォルダの
client-cert.pem
client-key.pem
ca.pem
をダウンロード。

・pfx作成

pass=$(head /dev/urandom | tr -dc a-km-np-z1-9 | head -c 13);openssl pkcs12 -export -inkey client-key.pem -in client-cert.pem -out client.pfx -passout pass:${pass};echo $pass;

メモ

コンテナ一覧
sudo docker ps

コンテナに入る
docker exec -it production_management bash

コンテナ再起動
sudo docker restart production_management

コンテナ削除
sudo docker rm -f production_management

MySQL設定ファイル
/etc/my.cnf

MySQL Workbench

Standard TCP/IPを選択。

・Parametersタブ
Hostname:IPアドレス
Port:3306
Username:DBユーザー
パスワード:DBパスワード

・SSLタブ
Use SSL:Require and Verify CA
SSL Key File:client-key.pem
SSL CERT File:client-cert.pem
SSL CA File:ca.pem
ダウンロードしたファイルを選択。登録後ファイルの移動はできない。

これでVPS上のDockerのMySQLに外部から接続することが可能。

MySQLバックアップ

cd /home/project_management
sudo mkdir backup
sudo chmod 700 backup

sudo vim backup.sh

weekday=date +%w
f=/home/project_management/backup/dump_${weekday}.sql
docker exec production_management mysqldump –single-transaction -u root -p●●● project_management > $f

sudo chmod 700 backup.sh

・cron

cd /etc/cron.d
sudo vim /etc/cron.d/mysql_backup

0 2 * * * root /home/project_management/backup.sh

sudo chmod 600 mysql_backup

sudo systemctl status cron

VLAN メモ

ステップ

入ってきたフレームは、フレーム本体、どのポートから来たのか、VIDを持っており、スイッチ内部で以下の処理される。

● 1. Ingress Rules(入力)

・1-1 Acceptable Types
・1-2 PVID
・1-3 Ingress Filtering(memberのみ利用して判断)

● 2. Forwarding Process(転送)

・2-1 MACテーブル
・2-2 MemberSet

● 3. Egress Rules(出口)

・3-1 MemberSet(2で絞られた結果という意味)
・3-2 UntaggedSet

MemberSet / UntaggedSet

これらはVLANごとのデータセット。(VLANデータセット)

Port

Member

Untagged

のような構造になっている。

・MemberSet
そのVLANのフレームを通すポート

・UntaggeedSet
そのVLANフレームをタグ無しで出すポートの集合

※分かりづらいのでVID、Portの複合キーのテーブルと考える。

VID

Port

Member

Untagged

Acceptable Types / PVID / Ingress Filtering

これらはポートをキーとしたデータセット。(PORTデータセット)

Port

Acceptable Types

PVID

Ingress Filtering

こちらも実態は表だが、ポートをキーとしている表なので、ポートに属しているイメージでOK

・Acceptable Types

タグなしタグあり、どちらを受け入れるかのパラメータ
admit all / tagged only / untagged and priority-tagged onlyなど

・PVID

VIDがついてないフレームの場合、VLAN番号をフレームに書き込む。

・Ingress Filtering

これがONなら、ここで初めてVLANデータセットのmember列のみ使う。
フレームが持っている、入ったきたポート、VIDがの値が、VLANデータセット上でのmemberの値でどうなっているか判断し、falseなら捨てる。

アクセス / トランクポート

アクセス / トランクポートはパラメータのプリセットと理解する。

・アクセス

IN/OUTにタグなし、VLAN指定は1つだけ。

・トランク

IN/OUTにタグあり、VLAN指定は複数指定できる。
(原則タグあり、ネイティブVLANだけタグなし)

・ネイティブVLAN

トランクポートに指示するもの。
自身が持つVLAN番号をフレームに書き込む(デフォルトではVLAN1)
※ネイティブVLAN=トランクポートにおけるPVIDの呼び名

パラメータプリセット

アクセス/トランクのプリセット定義

アクセス(port1.1) トランク(port1.2)
member=true の数 1つ(VLAN10のみ) 複数(VLAN1,10,20)
untagged=true の数 1つ(VLAN10) 1つ(VLAN1=ネイティブ)
Acceptable Types untagged only admit all
PVID 10(=そのアクセスVLAN) 1(=ネイティブVLAN)
Ingress Filtering 有効 有効

ポートキーの表(1枚だけ存在)

ポート Acceptable Types PVID Ingress Filtering
port1.1 untagged only 10 有効
port1.2 admit all 1 有効

VLANキーの表(VLANの数だけ存在)

VLAN 1

ポート member untagged
port1.1 false false
port1.2 true true

VLAN 10

ポート member untagged
port1.1 true true
port1.2 true false

VLAN 20

ポート member untagged
port1.1 false false
port1.2 true false

iPhone移行(同一AppleID)

●転送電話

設定>アプリ>電話>自動電話転送

●ウォレット

設定>ウォレットとApplePay>カードを追加
以前ご利用のカードから追加
※交通系は複数端末不可

●LINE

・LINE>設定>トークのバックアップ
バックアップ用のPINを設定

・設定>名前>iCloud>iCloud Drive
・設定>名前>iCloud>LINE
をオン

・LINE>設定>トークのバックアップ>今すぐバクアップ

・LINE>設定>簡単引き継ぎQRコード
を表示させ、新しい端末で読み取る。

※旧端末では使えなくなる。

●PayPay

yahooでログインし、旧端末に表示されるQRコードをスキャンする。

●Authenticator

旧端末

・設定>名前>iCloud>Authenticator
をオン

・Authenticator>このデバイスのバックアップ

新端末

※新しくインストールした状態のみ復元可能
バックアップから復元を選択

ワンタイムパスワードの生成は引き継げる。
MS365はQRコードが必要になる。

●セブン銀行

旧端末

メニュー>アプリの設定>引継設定
をオンにする

新端末

引継設定がお済みの方を選択し設定する。

※旧端末では使えなくなる。

Windows Live Mailエクスポート

古い環境で利用されていたWindows Live Mailのメールデータを、Outlookから閲覧できるようにする。

プロファイル(pstファイル)を準備しないで進めると、既存のプロファイル(pstファイル)にデータを追加してしまうので注意。

control>Mail>プロファイル作成
メールの設定は不要。プロファイルだけあればOK。

Windows Live Mail>ファイル>電子メールのエクスポート>電子メールメッセージ
形式はMicrosoft Exchange、対象は全てのフォルダー、
上記で作成したプロファイル(pstファイル)を選択してエクスポート。

control>Mail
Outlook>ファイル>オプション>アカウント設定>プロファイル管理
上記どちらかで設定画面を開き、データファイル>追加で、作成したプロファイル(pstファイル)を追加する。

エクスポートが失敗する場合

全てのフォルダを対象としても特定のフォルダがエクスポートされないことがあった。破損したファイルが原因のようで、一度エクスポート、インポートをすると直った。

・Liveメール形式でエクスポート

ファイル>電子メールのエクスポート>電子メールメッセージ>Microsoft Windows Live メール

・エクスポート先のフォルダで不要な空フォルダなど削除

・Liveメール形式でインポート

ファイル>メッセージのインポート>Windows Live メール

・受信トレイ、送信済みアイテムなどのアイテムを全て削除し、保存フォルダー内のインポートされたフォルダから、受信トレイ、送信済みアイテムへコピーする。

 

AutoHotkey モニター情報取得

モニターの情報取得

 

NIC交換(1Gbps→2.5Gbps)

ネット回線が”NURO光forマンション2ギガ”でルーターがNSD-G1000Tという構成だったけど、PCのNICは1Gbpsの古い製品のままだった。

重いファイルはどうせデータドライブのHDDがボトルネックになるのでNICは気にしなかったけど、先日M.2SSDに切り替えたので、どうせならNICも変えることにした。

2.5Gbps対応で、直近までちゃんとドライバが更新されている製品を選択。

計測サイトによって精度に違いがあるので体感ではないけど…今まで1Gpbs上限のサイトは超えるようになった。

HDD→M.2SSD(Dropbox)

データ保存用のHDDに回復不可能セクタがではじめたので更新することにした。
今回はHDD→M.2SSD。

HDDにはDropboxのフォルダが入っており、いくつもショートカットを利用しているので、ドライブレターは変えたくなかった。また、Dropboxのデータ移行に関しては、不調なHDDからM.2SSDにコピーではなく、新規でダウンロードすることにした。

本来ならOSもクリーンインストールして、2.5SSD(Cドライブ)+データHDDという構成を止めて、1つのM.2SSDにしてもよかったのだけど、環境構築の時間がとれないので今回はHDDの交換だけ。

・M.2SSDを装着、フォーマット
・Dropboxを停止
・HDDのドライブレターを関係ない値に変更。
・M.2SSDのドライブレターをHDDと同じ値に変更する。

Dropboxはフォルダがなくなったことで一度リンクを削除し、再度フォルダを指定することになるので、HDDのときと同じパスを指定する。これでDropboxのデータは同じパスにダウンロードされる。

※追記

結局、数日後にCドライブも2.5SSDからM.2SSDに交換することにした。
クローンしようとしたがうまくいかず新規でOSインストールになった。

クローンではUEFIからドライブとして認識されESP領域もあるのだけど、ブートしなかった。知識不足で原因特定できなかった。

Dropboxは再インストールになるのだけど、同じフォルダを指定すればインデックス作業だけで上書きされたり(再ダウンロード)することはなかった。

 

AutoHotkey ウィンドウ半透明

ショートカットを連続して入力した場合半透明へ