choblog

未分類

2025/01/13

キャッチアップ画像

Xserver vps 初期設定

~ 目次 ~

    1 秘密鍵の作成。

    まずローカルの~/.sshディレクトリがなければ作成して移動

    ssh-keygen -t ed25519 -f id_ed25519_hoge

    とします。-f以降は鍵の名前を好きに決めます。

    この場合id_ed25519_hogeという『秘密鍵』とid_ed25519_hoge.pubという『公開鍵』の2種類が作成されるので、公開鍵の方をvpsの初期設定時に登録します。

    これで秘密鍵の準備はできました。

    2 osインストール

    まずはos(今回はubuntu)をインストール、先ほど作成した公開鍵も登録します。

    パケットフィルターはあとでファイアーウォールを設定するのでoffにします。

    3 ssh接続〜osアップデート

    インストールが完了したらipアドレスをコピー、ローカルから

    ssh -i ~/.ssh/秘密鍵の名前 root@ipアドレス

    としてvpsに接続

    初回のみAre you sure you want to continue connecting (yes/no/[fingerprint])?

    と聞かれるのでyesとして続行

    root@x162-43-7-38:~#

    といった表示になったら成功です

    まずはosのアップデート

    apt update
    apt upgrade

    5分ほどかかります。

    4 新規ユーザー作成

    adduser ユーザー名

    としてpassword設定

    もう一度入力して確認

    いろいろ聞かれますが、必要なければそのままエンター、yで進めていいと思います。

    次に作成したユーザーにsudo権限を付与します。

    usermod -aG sudo ユーザー名

    確認

    groups ユーザー名

    ユーザー名:sudo といった表示が出れば成功です。

    早速切り替えてみます。

    su - ユーザー名

    ユーザー名@xxxxといった表示になれば成功です。

    5 新規ユーザーのssh設定

    ~/.sshディレクトリがなければ作成

    mkdir .ssh

    権限の変更

    chmod 700 ~/.ssh

    ローカルから公開鍵の方をコピーしてきます。

    ~/.sshに移動して

    cat 鍵の名前.pub

    として表示された公開鍵をコピー

    再度vps側に移動して

    echo コピーした公開鍵 >> ~/.ssh/authorized_keys

    とすると公開鍵の入ったauthorized_keysが作成されます。

    次に権限を変更

    chmod 600 ~/.ssh/authorized_keys

    これでローカルからユーザー名で直接ssh接続できるはずです。

    一度

    exit
    exit

    として今度はrootをユーザー名に変えて接続してみます。

    ssh -i ~/.ssh/秘密鍵の名前 ユーザー名@ipアドレス

    として無事入れたら成功です。

    6 fish インストール

    ここは完全に好みですが、fishシェルをインストールしてコンプリッション(自動補完)が効くようにします。

    zというプラグインも入れると、一度行ったディレクトリにいちいちパスを入力しなくても「z ディレクトリ名」だけで移動できるようになって楽なのでおすすめです。

    まずはインストール

    sudo apt install fish

    確認

    fish -v

    パスの確認

    sudo cat /etc/shells

    表示されたパスをchsh -s の後に入力

    sudo chsh -s /usr/bin/fish

    一度exitしてもう一度接続

    ssh -i ~/.ssh/秘密鍵の名前 ユーザー名@ipアドレス

    Wellcome to fish ~ というような表示が出ればfishに切り替わっています。

    次にプラグインマネージャーのfisherをインストール

    curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher

    プラグインのzをインストール

    fisher install jethrokuan/z

    これで一度行ったディレクトリには「z ディレクトリ名」とするだけで移動できます。

    7 vimの基本操作

    デフォルトで入っているエディターvimの基本操作を少し解説します。

    全てを説明するとなるとかなりの量になるので、とりあえず基本中の基本を。

    まずvimにはモードという概念があって、ノーマルモードでカーソルの移動、インサートモードで編集、ビジュアルモードで選択範囲の指定、コマンドモードでコマンドの入力となっています。

    escキーで基本のノーマルモード、iキーでインサートモード、vキーでビジュアルモード、:でコマンドモードに入ります。

    よくわからなくなったらとりあえずescキーを押して一度ノーマルモードに戻ると覚えておくといいでしょう。

    ノーマルモードでのカーソル移動はhで←、jで↓、kで↑、lで→、となります。

    コマンドモードへは:でコマンド入力モードに入り、wが保存、qで終了、あたりをとりあえず覚えておけばいいでしょう。

    vimは最初少しややこしいですが慣れると高速で編集できるようになってとても楽しいので、興味がある方は一度neovimをインストールして使ってみることをお勧めします。

    8 sshの設定

    vimの基本操作を覚えたところで、早速ssh接続時のセキュリティ面を考慮した設定をしていきます。

    まずは移動

    cd /etc/ssh/sshd_config.d

    次に設定ファイルを作成〜編集します

    sudo vim custom.conf

    まずはiキーでインサートモードに入ります。

    私は次のように設定しています。

    Port xxxxx
    PermitRootLogin no
    PubkeyAuthentication yes
    PasswordAuthentication no

    Port xxxxx としてPort番号をデフォルトの22から五桁の番号に変更

    PermitRootLogin noとしてrootでの接続を禁止

    PubkeyAuthentication yesとして秘密鍵による接続許可を明示

    PasswordAuthentication noとしてパスワードによる接続を禁止

    MaxAuthTries 3として認証試行回数を3に変更

    入力を終えたらescキーでノーマルモードに戻り、:でコマンドモード、wqと打ってエンターすれば保存&終了となります。

    cat custom.conf

    として編集内容を確認してから再読み込み

    sudo systemctl restart ssh

    9 ssh.socket設定

    次にssh.socketの方もポートの変更を設定します。

    まずは状態を確認

    sudo systemctl status ssh.socket

    activeになっていることを確認して編集。

    sudo vim /lib/systemd/system/ssh.socket

    ListenStreamのところに新しく設定したport番号を入力します。 

    [Unit]
    Description=OpenBSD Secure Shell server socket
    Before=sockets.target ssh.service
    ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
    
    [Socket]
    ListenStream=xxxxx //ポート番号
    Accept=no
    FreeBind=yes
    
    [Install]
    WantedBy=sockets.target
    RequiredBy=ssh.service

    入力したら:wqで保存終了

    次に読み込み、再スタート、確認

    sudo systemctl daemon-reload
    sudo systemctl restart ssh.socket
    sudo systemctl status ssh.socket

    設定したポートの確認

    ss -l

    として設定したポートが待ち受け(listen)されているのが確認できたら完了。

    一度exitしてまずはポートを指定しない(デフォルトの22番ポート)で接続できないことを確認してみます。

    ssh -i ~/.ssh/秘密鍵の名前 ユーザー名@ipアドレス

    無事接続を拒否されたら、今度はポート番号を指定して接続してみます。

    ssh -i ~/.ssh/秘密鍵の名前 ユーザー名@ipアドレス -p ポート番号

    無事接続できたら成功です。

    10 ファイアーウォールの設定

    最後にファイアーウォールの設定です。

    まずはファイアーウォールの起動

    sudo ufw enable

    次に許可するポートの設定をします。まずは先ほど設定したポート番号、加えて必要ならhttpの80番ポートとhttpsの443番ポートも許可しておきます。

    sudo ufw allow 設定したポート番号
    sudo ufw allow 80
    sudo ufw allow 443

    設定したら確認。

    sudo ufw status verbose

    設定したポート番号がALLOW(許可)されているのが確認できたら、ファイアーウォールを再起動して設定を適用させます。

    sudo ufw reload

    最後に

    exit

    して再度ssh接続ができるのを確認。

    ここまでやればとりあえず一安心ですね、お疲れ様でした。

    広告

    広告

    広告

    広告

    広告

    広告