VPSでUbuntuの初期設定する

VPS

はじめに

この記事は個人的にWebArena lndigoのVPSを使用して、
初期に設定する項目をまとめた忘備録

WebArena インスタンスの作成

WebArena lndigo ログイン後トップページから、画面右上にある +インスタンスの作成 ボタンからインスタンスを作成する
インスタンス作成

インスタンス内容

項目 内容
イメージ Ubuntu 20.04
サイズ 1vCPU 1GB RAM 20GB SSD 100Mbps
SSH キーを作成して選択
リージョン Tokyo
インスタンス名 適当な名前を付ける

作成すると OSインストールを実行中です と文字が出てくるのでしばらく待つ
ステータスがStoppedになったら、クリック

まずタブの 設定 をクリックして、キーボード配列をjaに変更してコンソール設定をクリック
それからインスタンスを起動させる
これでVPSが動いてる状態となる

ターミナルからVPSにSSHでログインをする

初期はポート22でユーザー名は ubuntu でログインできる
ssh -p 22 ubuntu@IP -i 保存したSSHのパス
下記は例

ssh -p 22 ubuntu@160.248.1.241 -i G:\マイドライブ\SSH_KEY\sshkey.txt 

お決まりのコマンドを最初に行う

sudo su -
sudo apt update
sudo apt upgrade -y

-y オプションは自動で実行される

ユーザー作成

ubuntu ユーザーでログインしたが、初期のままだとセキュリティ的に問題あるのでユーザーを作成する
今回作成するユーザーは vpsuser

sudo adduser vpsuser

コマンドを実行して処理を進めたのが次の画像
パスワードを確認用と2回入力する
その後質問される
user作成

質問内容はこちら

フルネーム
部屋番号
職場の電話番号
自宅の電話番号
その他の情報を入力するオプション
最後に入力された情報が正しいかどうかを確認されてる

全部Enterで飛ばしてしまって良い
なので最後は y を入力

作成したユーザーをsudoグループに追加

追加したユーザーをsudoグループに追加する
それにより今回vpsuserを作成したが、sudo コマンドを使えるようにする

sudo gpasswd -a vpsuser sudo

ユーザーでログインできるようにする

本来sshキーは作り直すべきかもしれないが、面倒なのでubuntuユーザーで使用していたsshキーを使う

cd /home/ubuntu
sudo cp -r .ssh/ /home/vpsuser/
sudo chown -R vpsuser:vpsuser /home/vpsuser/.ssh/
sudo hostnamectl set-hostname vpsuser
nano /etc/hosts

ホスト名の変更を反映させるためエントリーを追加

127.0.1.1 vpsuser

エントリー追加

Ctrl + o の後にエンターでファイル上書き
その後 Ctrl + x でファイルを閉じる

sudo コマンドの定義

sudoersファイルの編集

sudo visudo

ファイル内に下記を追加する

vpsuser    ALL=(ALL:ALL) ALL
vpsuser ALL=(ALL:ALL) NOPASSWD: ALL

定義追加

どのユーザーとしても、どのホストからでも、すべてのコマンドを実行することができるようにする
また、パスワードの入力を必要なくsudo コマンドを実行することができるようにしてる

Portを変更と外部からのrootログイン禁止

shd_configファイルの編集

sudo nano /etc/ssh/sshd_config
Port 1029 
PermitRootLogin no

Port追加

外部root禁止

ポートの数値の設定は

項目 内容
ウェルノウンポート 0~1023
登録済みポート 1024~49151
ダイナミックポート 49152~65535

このようになっている
1024~49151 を使用しておけばよい(よくわからない)
0~1023 は例えばHTTPの80、HTTPSの443などで使用される
なので基本使っちゃダメ

変更後のログイン確認

再起動して変更が適応されてるか確認

sudo reboot

変更後のログイン

ssh -p 1029 vpsuser@160.248.1.241 -i G:\マイドライブ\SSH_KEY\sshkey.txt 

Ubuntu ユーザーの削除

これで ubuntu ユーザーは必要なくなったので削除する

sudo su -
sudo userdel -r ubuntu

システムのタイムゾーンの設定

現在のタイムゾーンがどうなってるかは下記コマンドで確認できる

timedatectl status

タイムゾーンの設定を東京にする

sudo timedatectl set-timezone Asia/Tokyo

日本語言語パックと日本語入力システムをインストール

sudo apt install language-pack-ja-base language-pack-ja ibus-mozc -y

language-pack-ja-base は 日本語の基本的な言語パック
language-pack-ja は 完全な日本語言語パック
ibus-mozc は Googleが開発した日本語入力メソッド

システムのロケールを日本語に設定

ja_JP.UTF-8に設定する

sudo localectl set-locale LANG=ja_JP.UTF-8

ファイアウォールの設定

ファイアウォールをUFWで管理する

sudo ufw status
sudo ufw allow 22
sudo ufw allow 443
sudo ufw allow 1029
sudo ufw allow 3306
sudo ufw allow 5000

22:念のため
443:HTTPS用
1029:ログインPort用
3306:Mysql用
5000:今後使用するとされるアプリケーション用

sudo ufw enable

ここは注意しなければならない
もしアクセスが許可されていない場合は接続が切断されたり
新たに接続することができなくなる
今の接続してるPortが有効にしてることを確認してから有効にすること

有効にしてよいか聞かれるので y で実行

完了

基本的な設定はこれで終了
プログラムを動かすための設定などは別の記事に残す

さいごに

もし間違ってるなど修正が必要と思われる場所があれば教えて貰えるとうれしい

簡易的な用語説明

  • インスタンス : 設計図をもとにして実際に作った物
  • ポート(Port) : ネットワークとパソコンの間にあるドアのこと
  • sudo : スーパーユーザーdo
  • ファイアウォール : コンピュータシステムやネットワークを保護するためのセキュリティデバイスまたはソフトウェア
  • ロケール : コンピュータプログラムが実行される環境の言語、国、および文化的な設定

コメント