vpsでサーバーを構築したので、備忘録として記します。
今回は設定面に関して、です。
今までは、レンタルサーバーしか使用したことがありませんでした。
ただ、経験を積むにあたって、より自由度が高いとされるvpsというものに触れてみたくなりました。
レンタルサーバーは自由度が低いけれど、設定等はあらかじめ行われています。
一方、vpsは自由度が高いけれど、設定等は自分でやる必要があります。
実際に、vpsでサーバーを構築すれば、どういった設定が必要なのかわかるはずです。
そのため、vpsでサーバーを構築することにしました。
- 環境
- SSH接続
- 新規ユーザ追加
- SSH接続の公開鍵認証の設定
- rootログイン禁止、パスワード認証禁止、port変更
- firewalldの設定
- AlmaLinux 8.5
- ドメイン取得済み
- ConoHa VPS
- Mac
最初は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接続の公開鍵認証を設定しましょう。
公開鍵認証は、パスワード認証よりもよりセキュリティを高くすることができます。
公開鍵認証がなんたるかは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の変更をします。
先程と同じように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で接続できるようになっていたら設定完了です。
最後に、ファイアウォールの設定をします。
以下のコマンドを入力してください。
//ファイアウォールを起動して、諸々設定
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サーバーについて書いていきます。