LoginSignup
1
0

インフラ初心者がUbuntuのVPSを立ててみた話

Last updated at Posted at 2023-06-13

この記事について

この記事はインフラ初心者がWebページをVPS上で公開したい!って思ってやったことを備忘録として書き残したものです。素人が書いているため情報の信憑性は保証しません。詳細は各自で調べながらやることをおすすめします。記事のとおりにやっておかしなことになっても責任は取れませんのでご了承ください。

VPSを立てる

筆者はKAGOYA Cloud VPSを使いました。日本サーバーで月550円〜という安さ!他の会社のVPSを立てる場合は「SSH接続する」のセクションまで飛ばしてOK

CPU
1コア
メモリ
1GB
SSD
25GB
価格
月額上限550円

私が申し込んだときは、Kagoyaから送られてくる確認メールに返信して登録完了になりました。メール要チェック!

申込みが完了したらマイページが作られます。

以降のセットアップは基本的にKagoyaのマニュアルに従って行っていきます。

セキュリティグループを設定

「セキュリティ」タブの「セキュリティグループを追加」から追加します。

SSH接続のための20/tcpポートは自宅からアクセスできれば十分だと考え、自宅のアドレスだけにしました。

Linux, Macの場合はcurl inet-ip.infoでグローバルIPアドレスが確認できるはず。

20ポートの他にHTTP接続のための80/tcp、HTTPSのための443/tcpは任意のIPからアクセスできるようにします。

ログイン認証用キーを追加

サーバーにSSH接続するのに必要です。大切に保管してください。

インスタンスの作成

「インスタンス」タブの「インスタンス作成」から追加します。

OSはUbuntu22.04LTS、スペックは一番安いやつにしました。
先程作ったログイン用認証キーを指定し、インスタンス作成!

SSH接続する

流れ

  1. rootでログイン
  2. 一般ユーザーを作成
  3. root権限を作成したアカウントに与える
  4. 作成したアカウントにSSH接続できるようにする

rootでログイン

参考:
https://support.kagoya.jp/vps/manual/index.php?action=artikel&cat=25&id=9&artlang=ja
https://support.kagoya.jp/vps/manual/index.php?action=artikel&cat=30&id=113&artlang=ja

ダウンロードした秘密鍵(kagoyaの場合はログイン認証キー)を用意しておいてください。

ローカルPCのシェルで以下のコマンドを実行します。IPアドレスはインスタンス一覧ページから確認できます。

まず、ダウンロードした秘密鍵の権限を変更します。これをしないとSSH認証で弾かれた。

chmod 400 {秘密鍵のパス}

これを実行した後に

ssh -i {秘密鍵のパス} root@{インスタンスのIPアドレス}

するとサーバーのシェルにログインできるはずです。

一般ユーザーを作成

rootで作業をするのは危険なので、一般ユーザーを作成して普段はそっちで作業することにします。

参考: AmazonLinux2で新しいユーザを作成してec2-userを削除する
https://itneko.com/ec2-user-delete/

下記のコマンドでユーザーを作成します。
ここでパスワードを設定することになりますが、パスワードは必ず複雑なものを使用してください。
あとでSSHログインは公開鍵認証でしかできないようにするのですが、現時点ではパスワードでもログインできてしまうため、簡単なパスワードだと不正ログインされます。(←本当は先にSSHでパスワード認証できないようにすべき。)

adduser {アカウント名}

root権限の付与

visudoを実行すると多分nanoエディタが開く。下の方に行くと

root ALL=(ALL) ALL

みたいなのが書かれてるところが見つかると思うのでその下に以下の文を付け足す。

{アカウント名} ALL=(ALL) ALL

例) kotaro ALL=(ALL) ALL

これで一般ユーザーでもsudoをつけてコマンド実行すれば管理者権限で処理できるようになる。

作成したアカウントでSSH接続できるようにする

sudo su {アカウント名}で作成したアカウントにログインできます。
ここにSSH関連の設定をしていきます。

まず、ローカルのPCで公開鍵を作成します。

ローカルPCで以下を実行。

ssh-keygen -f ~/.ssh/{SSHキーのファイル名}

パスワードを設定しておくと安全。

作成した公開鍵の内容をコピーしておきましょう。

cat ~/.ssh/{SSHキーのファイル名}.pub

次にサーバー側(一般ユーザーアカウントにログインした状態)で

mkdir ~/.ssh
vi ~/.ssh/authorized_keys

を実行し、先程コピーした公開鍵の内容をペーストします。viエディタは:wqと入力してEnterを押すとセーブして終了できます。(wが書き込み、qが終了)

パスワードでログインできないようにする

現状だとパスワードが漏洩すると悪意のある第三者がSSH接続できてしまいます。なのでパスワードではそもそもログインできなくします。

参考: https://atmarkit.itmedia.co.jp/flinux/rensai/linuxtips/430dnypsswdacces.html

サーバー側にログインした状態で

vi /etc/ssh/sshd_config

ファイルの真ん中あたりにPasswordAuthenticationと書かれた部分があるので

PasswordAuthentication no

とします。ついでにrootでもログインできなくします。

PermitRootLogin no

一般にはrootは削除したほうが良いと思います。私の場合はrootを消そうとしたら他のプロセスで使われてるって言われて消せなかった。

おわり

これでSSH関連の設定は終了です。ufwとかでファイアウォールを適宜設定した方がいいと思うのでそれは各自でお願いします。

参考文献

カゴヤ・ジャパン サポートセンター
https://support.kagoya.jp/vps/index.html

AmazonLinux2で新しいユーザを作成してec2-userを削除する
https://itneko.com/ec2-user-delete/

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0