VPSでサーバーを構築する その1

vpsでサーバーを構築したので、備忘録として記します。
今回は設定面に関して、です。

今までは、レンタルサーバーしか使用したことがありませんでした。
ただ、経験を積むにあたって、より自由度が高いとされるvpsというものに触れてみたくなりました。

レンタルサーバーは自由度が低いけれど、設定等はあらかじめ行われています。
一方、vpsは自由度が高いけれど、設定等は自分でやる必要があります。

実際に、vpsでサーバーを構築すれば、どういった設定が必要なのかわかるはずです。
そのため、vpsでサーバーを構築することにしました。

目次
  • 環境
  • SSH接続
  • 新規ユーザ追加
  • SSH接続の公開鍵認証の設定
  • rootログイン禁止、パスワード認証禁止、port変更
  • firewalldの設定

環境

  • AlmaLinux 8.5
  • ドメイン取得済み
  • ConoHa VPS
  • Mac

SSH接続

最初はrootでSSH接続します。

SSH接続は、セキュアシェルの略称で、

安全にリモートコンピュータと通信することができるプロトコルです。

コマンドの形式は以下の通りです。

ssh user@host

ターミナルを開いて、以下のように入力します。

ターミナル
ssh root@123.456.789.000
// 「123.456.789.000」の部分は、VPSのIPアドレスを指定してください。

初回は確認を求められるので、yesを入力します。

その後、rootのパスワードを入力すればログインできます。

新規ユーザを追加する

続いて、新規ユーザを追加します。

なぜこれをするのかというと、

セキュリティ観点からというのと、システム設定系の誤操作に備えるためです。

rootは全ての権限を持っているため、なんでもできてしまいます。

役割に応じたユーザを追加して、それぞれに権限を付与するようにしましょう。

ユーザを追加するには、以下のコマンドを使用します。

ターミナル
adduser ユーザ名
// ユーザ名のところは今回作成するユーザ名に変更してください

例:
adduser tarou

色々聞かれますが、全てenterで最後にYでenterすれば作成完了です。

続いて、作成したユーザのパスワードを設定します。

ターミナル
passwd ユーザ名
// ユーザ名のところは先ほど作成したユーザ名を選択

例:
passwd tarou

パスワードの設定が完了したら、権限の設定をしておきます。

今のままだと一般ユーザなので、

設定する際に使用するsudoコマンドを使用することができません。

なので、sudoコマンドを使用できるようにします。

ターミナル
usermod ユーザ名

例:
usermod -a -G wheel tarou
// -aは-Gで指定したグループをセカンダリーグループに追加
// これは、wheelという管理者のグループにtarouを追加することでsudoコマンドを使用できるようにしています

ここまで設定できたら、rootをログアウトして、

先程作成したユーザで再度SSH接続してみましょう。

無事SSH接続できれば次に進みましょう。

SSH接続の公開鍵認証の設定

続いて、SSH接続の公開鍵認証を設定しましょう。

公開鍵認証は、パスワード認証よりもよりセキュリティを高くすることができます。

公開鍵認証がなんたるかはGoogle先生に譲るとして、設定方法について書いていきます。

ターミナルで以下のコマンドを入力してください。

ターミナル
ssh-keygen -f conoha_rsa -t rsa -b 2048
// -fは生成するファイル名、-tは作成する鍵の暗号化方式、-bは作成する鍵のビット数

パスフレーズを聞かれると思うので、お好きなものを設定しておきましょう。

続いて、サーバーにSSH接続をして作業します。

先程作成したユーザでSSH接続してください。

sshd_configファイルを変更します。

//SSH接続は済んでいる状態
sudo vi /etc/ssh/sshd_config

//PubkeyAuthentication yesの行を探して先頭のコメントを外してください
PubkeyAuthentication yes

変更が完了したら、sshdを再起動します。

sudo systemctl restart sshd

最後に、公開鍵をサーバーに配置します。

サーバー側でsshディレクトリを作成します。

//ホームディレクトリ(~)で以下のコマンド
mkdir ~/.ssh
chmod 700 ~/.ssh

これでサーバー側では一旦作業完了です。

続いて、ターミナルで以下のコマンドを入力します。

ターミナル
cd ~/.ssh
scp 公開鍵ファイル ユーザ名@host:ファイル名

例:
scp conoha_rsa.pub tanaka@123.456.789.000:~/.ssh/conoha_rsa.pub

ここまでできたら、SSH接続テストをしてパスワードを聞かれなければOKです。

rootログイン禁止、パスワード認証禁止、port変更

続いて、rootログインとパスワード認証の禁止、portの変更をします。

先程と同じようにsshd_configファイルを変更します。

//SSH接続は済んでいる状態
sudo vi /etc/ssh/sshd_config

//#PermitRootLogin yes の行の先頭の#を外して、yesをnoに
PermitRootLogin no

//#PasswordAuthentication yes の行の先頭を外して、yesをnoに
PasswordAuthentication no

//#Port 22の行を先頭の#を外して、番号を変更
//1024~65535の間
Port 1024

設定が完了したら、sshdを再起動します。

sudo systemctl restart sshd

//ssh接続の際に先程変更したportを指定します。
ssh tarou@123.456.789.000 -p 1024

rootのログインとパスワード認証ができないこと、

sshで設定したportで接続できるようになっていたら設定完了です。

firewalldの設定

最後に、ファイアウォールの設定をします。

以下のコマンドを入力してください。

//ファイアウォールを起動して、諸々設定
sudo systemctl start firewalld
//自動起動を有効化
sudo systemctl enable firewalld

//http、httpsを追加
sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --add-service=https --zone=public --permanent

//sshを削除
sudo firewall-cmd --remove-service=ssh --zone=public --permanent
//変更したportを設定
sudo firewall-cmd --add-port=1024/tcp --zone=public --permanent

//リロードして設定反映
sudo firewall-cmd --reload

//念の為確認
//servicesのところにhttpとhttpsが追加されていてsshが削除されている
//portsに指定したport番号があればOK
sudo firewall-cmd --list-all

以上で、vpsの初期設定は終わりです。

終わりに

ここまで沢山設定することがありました。

レンタルサーバーだと、こういった設定を気にすることがありませんでした。

今回、一から設定してみて、勉強になりました。

次は、VPSでサーバーを構築する その2として、

Webサーバーについて書いていきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です