choblog

未分類

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

    としてコンテナを削除しておきます。

    広告

    広告

    広告

    広告

    広告

    広告