Open6

Ubuntuの初期設定メモ

Mikihiro SaitoMikihiro Saito

さくらのVPSでUbuntuサーバーを借りたので構築メモ

今回使用するスペック

16GBプラン

  • CPU: 仮想8core
  • メモリ: 16GB
  • SSD: 800GB(今回はキャンペーン中だったので1600GB)
  • リージョン: 東京第2
  • 購入台数1台
  • SSHキーは自分で設定したかったので初期設定なし
  • スタートアップスクリプトなし

パスワードを保管しておく

コンソールパネルを開く

  1. 電源操作から起動
  2. コンソールを開く
  3. ログインして先程メモったパスワードを入力
Mikihiro SaitoMikihiro Saito

Ubuntuの初期設定

リポジトリ、パッケージの最新化

sudo apt update
sudo apt list –upgradable
sudo apt upgrade

時間設定

以下のコマンドでタイムゾーンの確認。今回は元々日本の設定になっていた

timedatectl status 

ロケールの設定

ロケールも元々合わせてあった

localectl status 

ファイアウォールの設定

# UFWの有効化
sudo ufw enable
# ポートの開放
sudo ufw allow 22
# ポートの閉鎖
sudo ufw deny 22
# ポートの開放状況確認
sudo ufw status

ドキュメント: https://ubuntu.com/server/docs/security-firewall

SSH接続設定

# Open SSHサーバーが起動しているか確認
systemctl status sshd.service
# インストールされていない場合は以下
sudo apt install openssh-server
# ssh設定ファイル下へ移動
cd /etc/ssh
# 設定ファイルを念のため残しておく
sudo cp -p sshd_config sshd_config.copied
# sshdファイルの編集ができる
sudo vim ssh_config

クライアントPCでssh接続を試す。コンソールを参照して接続用コマンドもメモっておく

ssh username@xxxxxxxxxxxxxx.sakura.ne.jp

このままだと毎回パスワードを入力しなければならず安全でないので、公開鍵認証を導入する
クライアント側で以下を実行。今回はさくらVPSなのでid_sakura_dev_rsaという名前をつけた

cd ~/.ssh
# 鍵の生成
ssh-keygen -t rsa
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):id_sakura_dev_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
# サーバー側にキーをコピーする
ssh-copy-id -i id_sakura_dev_rsa.pub username@xxxxxxxxxxxxxx.sakura.ne.jp
# 以下でログインできたら成功(接続するときに毎回使用するのでメモる)
ssh -i ~/.ssh/id_sakura_dev_rsa username@xxxxxxxxxxxxxxx.sakura.ne.jp

VPSサーバー側
SSHでの接続ができるようになったのでセキュリティを強める

cd /etc/ssh
sudo vim sshd_config
sshd_config
port 56789 # 普段使わないport番号に変更
PublicAuthentication yes
PasswordAuthentication no
Use PAM no

ssh接続の最終的なコマンドをメモっておく

ssh -i ~/.ssh/id_sakura_dev_rsa -p 56789 username@xxxxxxxxxxxxx.sakura.ne.jp

sshdのサービスを再起動

sudo service sshd restart

更にファイアウォールも調整しておく

# ssh接続で使うportを開く
sudo ufw allow 56789
# 22はもう使わないので閉じる
sudo ufw deny 22

SSHが切断されないようにしたい

クライアントPC側でsshのconfigファイルを編集する

sudo vim ~/.ssh/config

1分毎に信号を送って接続が切れないようにする

~/.ssh/config
Host *
  ServerAliveInterval 60
Mikihiro SaitoMikihiro Saito

パッケージのインストール

必須パッケージのインストール

gitがインストールされているか確認

sudo apt-get install build-essential procps curl file git unzip tmux

zshのインストール

sudo apt install zsh

さくらのVPSにはデフォルトでインストールされていた

dockerのインストール

dockerがインストールされているか確認

docker

dockerがインストールされていなかったので、以下を参照してインストール

https://docs.docker.com/engine/install/ubuntu/

Linux Homebrew

Macと同じようにbrewが使えると何かと便利なので入れとく

https://docs.brew.sh/Homebrew-on-Linux

Pythonのインストール

brew install python3
pip3 install -U neovim

nvimのインストール

Pythonのサポートされたnvimをインストールする必要がある

sudo add-apt-repository ppa:neovim-ppa/stable
sudo apt-get update
sudo apt-get install neovim

ただこれだとnvimが最新バージョンでなかった。

# 一度削除
sudo apt remove neovim
#appimageをダウンロード
cd ~/Downloads
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage
chmod u+x nvim.appimage
# ファイルを展開
./nvim.appimage --appimage-extract
# ディレクトリを移動してシンボリックを貼る
sudo mv squashfs-root /
sudo ln -s /squashfs-root/AppRun /usr/bin/nvim

これでpythonのサポートされたnvimが使えるようになる

nvim

denoの導入

vimのパッケージ管理でdpp.vimを使用するために必要

https://zenn.dev/mikinovation/articles/20230930-install-deno-on-ubuntu

Nodejs(volta)の導入

https://volta.sh/

pnpmの導入

volta install pnpm

gituiをインストール

brewを使ってgituiをインストール

https://github.com/extrawurst/gitui

ripgrepのインストール

brewを使ってripgrepのインストール
vimで全体検索をできるようにする

https://github.com/BurntSushi/ripgrep

Mikihiro SaitoMikihiro Saito

Githubのssh接続設定

基本的には初期設定で行ったssh接続と同じ

cd ~/.ssh
ssh-keygen -t rsa
# 今回はファイル名を指定しない
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
cat id_rsa.pub # これをコピーして、GithubのSSHキーに登録
# 接続確認
ssh -T git@github.com
Mikihiro SaitoMikihiro Saito

開発環境のportを開ける

  1. さくらのVPSのパケットフィルター設定
  2. カスタムで3000番port(使いたいport)を開けておく
  3. ファイアウォールを設定
    自分のIPアドレスを調べる
    https://www.cman.jp/network/support/go_access.cgi
sudo ufw allow from xxx.xxx.xxx.xxx to any port 3000

これで開発環境にもhttp接続できるようになる

Mikihiro SaitoMikihiro Saito

DBのクライントインストール

postgreの場合

sudo apt install postgresql
psql -v
sudo service postgresql stop # サーバーを止めておく