未分類
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接続ができるのを確認。
ここまでやればとりあえず一安心ですね、お疲れ様でした。