👋

VPS操作雑メモ

2023/09/14に公開

Ubuntu 22.04 amd64

<VARIABLE>は変数を意味する。

一般ユーザーの作成

$ ssh ubuntu@<IP_ADDRESS># rootユーザーにsshログイン
$ sudo apt-get update # OSアップデート
$ sudo adduser <USER_NAME> # 一般ユーザー作成
$ sudo gpasswd -a <USER_NAME> sudo # 一般ユーザーにsudo権限を追加
$ su <USER_NAME> # 一般ユーザーにログイン

$ sudo apt-get update # パッケージリストの更新
$ sudo apt-get upgrade # パッケージの更新
$ sudo vim /etc/ssh/sshd_config # sshdの設定

ポートの変更

-   Port 22
+   Port <PORT>

rootユーザーによるログインを禁止

-   PermitRootLogin prohibit-password
+   PermitRootLogin no

パスワード認証を禁止

-   PasswordAuthentication yes
+   PasswordAuthentication no
$ sudo service ssh restart # sshサービスの再起動
$ sudo apt-get install ufw # ufw のインストール
$ sudo ufw allow <PORT> # ポート解放
$ sudo ufw enable # ufwの有効化
$ sudo ufw status # 解放されているポートの確認

SSHの設定

$ sudo apt install openssh-server # opensshのインストール
$ sudo systemctl status ssh # sshサービスの状況確認(running)
$ sudo systemctl enable ssh # sshの有効化
$ mkdir .ssh
$ cd .ssh
$ vim authorized_keys # 公開鍵を入力

今後は以下のコマンドにより一般ユーザーでsshログインできるようになる。

$ ssh <USER_NAME>@<IP_ADDRESS> -p <PORT>

Nginxの設定

$ sudo apt install nginx # Nginxのインストール
$ sudo ufw allow 'Nginx Full' # 80番ポートと443番ポートを開く
$ systemctl status nginx # Nginxサービスの状況確認(running)

自分のIPアドレスにアクセスするとNginxのウェルカムページが表示される。

Let's Encryptの設定

$ sudo apt-get install certbot
$ sudo apt-get install python3-certbot-nginx
$ sudo vim /etc/nginx/conf.d/<DOMAIN_NAME>.conf
$ sudo systemctl stop nginx
$ sudo certbot certonly --standalone -d <DOMAIN_NAME> # 質問に答える
$ sudo systemctl start nginx
$ sudo vim /etc/nginx/conf.d/<DOMAIN_NAME>.conf
server {
        listen 80;
        listen [::]:80;
        server_name <DOMAIN_NAME>;
        return 301 https://$host$request_uri;
}

server {
        listen  443 ssl;
        server_name     <DOMAIN_NAME>;
        ssl_certificate         /etc/letsencrypt/live/<DOMAIN_NAME>/fullchain.pem;
        ssl_certificate_key     /etc/letsencrypt/live/<DOMAIN_NAME>/privkey.pem;
}

Nodeのインストール

$ sudo apt install nodejs # Node本体をインストール(いらないかも?)
$ nodejs -v # Nodeのバージョン確認
$ sudo apt install npm # npmのインストール
$ sudo npm install n -g # nのインストール
$ sudo n stable # 最新のNodeのインストール
$ sudo apt purge -y nodejs npm # 古いNodeとnpmをpurge

Dockerのインストール

$ sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common # いろいろインストール
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # dockerのGPG公開鍵をインストール
$ sudo apt-get install docker-ce docker-ce-cli containerd.io # dockerのインストール
$ sudo add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) \
    stable"
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
$ sudo usermod -aG docker <USER_NAME>
$ su - <USER_NAME>

https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-20-04-ja
これでいいのかな?

おまけ

localhost:3000の内容をnginxで流したい場合は,設定ファイルを以下のように書く。

server {
        listen 80;
        listen [::]:80;
        server_name <DOMAIN_NAME>;
        return 301 https://$host$request_uri;
}

server {
        listen  443 ssl;
        server_name     <DOMAIN_NAME>;
        ssl_certificate         /etc/letsencrypt/live/<DOMAIN_NAME>/fullchain.pem;
        ssl_certificate_key     /etc/letsencrypt/live/<DOMAIN_NAME>/privkey.pem;
	location / {
		proxy_pass http://127.0.0.1:3000;
	    }
}

Discussion