未分類
2025/01/07
さくらvps初期設定
~ 目次 ~
1 秘密鍵の作成、登録。
まずはローカルで秘密鍵を作成します。
~/.sshディレクトリがなければ作成してその中で
ssh-keygen -t ed25519 -f id_ed25519_hoge
(-f以降は鍵の名前を好きにつける)としてエンター。
id_ed25519_hogeという秘密鍵とid_ed25519_hoge.pubという公開鍵が作成されるので、公開鍵の方をさくらvpsの初期設定時に登録します。
これで秘密鍵の準備はできました。
2 vps初期設定
サーバーにログインしてosのインストールから始めます。
ubuntuを選択してパスワードを設定(忘れないようにどこかに保存)
「公開鍵をインストールする」で最初に作った公開鍵(.pubの方)をコピペ。
スタートアップスクリプトの入力欄をクリックしてSetup and updateをクリック。
sshのポート番号がデフォルトの22からセキュリティを考慮して変更
サーバー内で他のアプリケーションが使っていないポート番号を選んでください。例えば、
49152
から65535
の範囲が「動的ポート」と呼ばれ、一般的には未使用のことが多いです。chatGPT
ログインユーザー名を設定。
ファイアーウォールを有効化するにチェックを入れる。
パケットフィルターを利用しないをクリック。
内容確認をしたら、osインストール。
3 .ssh/config作成、ログイン
まず.ssh/configファイルを作成、次のように書きます。
ServerAliveInterval 60
TCPKeepAlive yes
UseKeychain yes
AddKeysToAgent yes
Host foo # 任意のホスト名
HostName xxx.xxx.xxx.xx # vpsのipアドレス
User bar # vpsユーザー名
Port xxxxx # vpsポート番号
IdentityFile ~/.ssh/id_ed25519_hoge # 秘密鍵のパス
ssh fooでenterとするとパスフレーズを聞かれるので入力。
Are you sure you want to continue connecting (yes/no/[fingerprint])?といった文言が出たらyesで進めます。
foo@xxx-xxx-xxといった表示が出ればログイン成功。
4 fishをインストール
これは好みですが、インストールするだけでオートコンプリッション(自動補完)が効いて便利なのでおすすめです。
パッケージのアップデート
sudo apt update
fishシェルのインストール
sudo apt install fish
確認
fish -v
パスを確認
cat /etc/shells
確認したfishのパスを指定してデフォルトのシェルをfishに変更
chsh -s /usr/bin/fish
一度exitして再度ログイン、この時ログインの度にパスフレーズを入力しなくていいように次の設定をします。
ssh-add --apple-use-keychain ~/.ssh/id_ed25519_hoge
これで次のログインからパスフレーズを聞かれなくなります。
ログインをしてWellcome to fish~という文言を確認できたらshellがfishに切り替わっています。
5 vimのインストール
パッケージのアップデート
sudo apt update
vimのインストール
sudo apt install vim
確認
vim --version
ずらっと情報が表示されますが、最初にVIM – Vi IMproved 9.1 (2024 Jan 02, compiled May 03 2024 02:45:42)というようなコンパイルの日時が出たら成功のようです。
6 sshd_config編集
まずsshディレクトリに移動します
cd /etc/ssh
lsとすればsshd_configファイルがあると思います、編集する前に一度バックアップをとっておきます。
sudo cp sshd_config sshd_configOld
lsとしてsshd_configOldファイルが新しく作成されたことを確認したら編集を始めます。
sudo vim sshd_config
スタートアップスクリプトで設定したportナンバーが反映されているのがわかると思います。
あとは
PasswordAuthentication no
と書いてパスワードによるログインを禁止しておきます、同様に
PermitRootLogin no
としてルートログインの禁止も設定します。
最後に認証試行回数を3に変更
MaxAuthTries 3
認証試行回数を制限することで、ブルートフォース攻撃による試行回数を減らし、セキュリティを強化できます。
chatGPT
escキーでインサートモードを抜けたら:を押してコマンドモード、wqと入力してエンターを押せば保存〜終了となります。
最後に
sudo /etc/init.d/ssh restart
として設定を反映。
Restarting ssh (via systemctl): ssh.service.と出れば成功です。
7 ファイアーウォール設定
まずはファイアーウォールの有効化
sudo ufw enable
この時
Command may disrupt existing ssh connections. Proceed with operation (y|n)?
と出ます。これはportの設定など不備があれば、ファイアーウォールに弾かれてssh接続が切れますよ?ということですが、ここまでの手順で来ていれば大丈夫だと思います。もし弾かれてしまったら、面倒ですがvpsのコントロールパネルからvcsコンソールを開いてログイン、設定を見直して下さい。
問題なければ現在の設定を確認
sudo ufw status verbose
設定したportが許可(allow)されてるのがわかると思います。
次に
sudo ufw default DENY
として許可したポート以外は基本拒否するという設定をします。
次に許可するポートの追加。httpの80番とhttpsの443を許可しておきます。
sudo ufw allow 80
sudo ufw allow 443
確認します
sudo ufw status verbose
ポートの番号に問題がなければ
sudo ufw reload
として設定内容を再読み込みします。
8 docker docker-composeインストール
さくらvpsのスタートアップスクリプトを使ってみたらとても楽でした。
まずはサイドパネルのスクリプトをクリックしてさくらインターネット公式スクリプト内にあるDocker Composeを選択。
スクリプト内容をコピーしたら、サーバーに入り
vim docker_install.sh
などとしてファイルを開きコピーした内容を貼り付けます。
その後:でコマンドモード、wqと打って保存〜終了したら次のコマンドでスクリプトが実行されます。
sudo bash docker_install.sh
途中で続けていいかというようなことを聞かれるますが問題なければenterで続行。
終了したら
docker --version
docker compose version
としてそれぞれバージョンが表示されれば成功です。
次にユーザーをdockerグループに追加。
sudo usermod -aG docker ユーザー名
シェルを再起動
newgrp docker
再起動されたら
groups
としてdockerが追加されていれば成功。
次に
sudo systemctl status docker
とするとActive: inactiveとなっていると思うので
sudo systemctl start docker
として起動します。
再度
sudo systemctl status docker
としてactive(running)となっていることを確認したらqで抜けます。
再起動時に自動で起動させる場合は
sudo systemctl enable docker
とします。
動作確認のため
sudo docker run hello-world
として数行の文字列の中に
Hello from Docker!
という文字列を確認できたら成功です。
動作の確認ができたら、
docker system prune -a
としてコンテナを削除しておきます。