Step1 サーバーを確保する

何が何でもまずはマシンが必要です。今では月額2000円程度でVPSを借りることができますし、家にグローバルIPがある場合はRaspberry Piを使うこともできます。 少し上級者向けにはなりますが、グローバルIPがなくてもCloudflare Tunnelを使うことでも解決できます。

Raspberry Piを使う

Raspberry Piでも十分にサーバーとして利用することが可能です。 ただし、OSとしてはRaspbianではなく、Ubuntuを使うことをお勧めします。

Ubuntu Desktop 24.04 LTS

VPSを借りる

VPSはVirtual Private Serverの略であり、国内のベンダーであれば、さくらインターネットやエックスサーバーなどが有名です。 月額数千円ででサーバーを借りることができます。

スペックとしては、最低でも2GBのメモリがあると良いでしょう。

最低限のセキュリティ設定を行う

ベンダーによっては、セキュリティ設定がデフォルトで甘い場合があります。以下の設定を行っておくと良いでしょう。

set hostname

root@x203-0-113-100:~# vim /etc/hostname
root@x203-0-113-100:~#

create user

root@x203-0-113-100:~# useradd -m YOUR_NAME
root@x203-0-113-100:~# ls /home
YOUR_NAME
root@x203-0-113-100:~#

パスワードを設定

root@ariake:~# passwd YOUR_NAME
New password:
Retype new password:
passwd: password updated successfully
root@ariake:~#

sshログイン設定

root@ariake:~# sudo -u YOUR_NAME mkdir -p /home/YOUR_NAME/.ssh/
root@ariake:~# echo "<YOUR_PUBKEY>" | sudo -u YOUR_NAME tee /home/YOUR_NAME/.ssh/authorized_keys
root@ariake:~#
root@ariake:~# ll /home/YOUR_NAME/.ssh/
total 12
drwxrwxr-x 2 YOUR_NAME YOUR_NAME 4096 May 25 18:37 ./
drwxr-x--- 3 YOUR_NAME YOUR_NAME 4096 May 25 18:35 ../
-rw-rw-r-- 1 YOUR_NAME YOUR_NAME   99 May 25 18:37 authorized_keys
root@ariake:~#

sudo設定

root@ariake:~# visudo
# User privilege specification
root    ALL=(ALL:ALL) ALL
YOUR_NAME ALL=(ALL:ALL) ALL
sudoの確認
YOUR_NAME@ariake:~$ sudo w
[sudo] password for YOUR_NAME:
 18:39:16 up 12 min,  2 users,  load average: 0.05, 0.03, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root              125.197.166.184  18:34   11:48   0.00s  0.08s sshd: root@pts/0
totegamm          125.197.166.184  18:37   11:48   0.00s   ?    sshd: YOUR_NAME [priv]
YOUR_NAME@ariake:~$

rootログイン禁止 & パスワードログイン禁止

root@ariake:~# vim /etc/ssh/sshd_config
33行目 PermitRootLogin prohibit-password
-> PermitRootLogin no
58行目 PasswordAuthentication yes
-> PasswordAuthentication no
(僕の場合すでにnoになっていた)

root@ariake:~# systemctl restart ssh
root@ariake:~#

ログイン確認

> 05/25 18:46 ~$ ssh [email protected]
[email protected]: Permission denied (publickey).
Exit status: 255
> 05/25 18:46 ~$


> 05/25 18:47 ~$ ssh [email protected]
Welcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-31-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Sat May 25 18:47:59 JST 2024

  System load:  0.0               Processes:             139
  Usage of /:   3.3% of 95.82GB   Users logged in:       0
  Memory usage: 5%                IPv4 address for ens3: 162.43.29.124
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status


The list of available updates is more than a week old.
To check for new updates run: sudo apt update

Last login: Sat May 25 18:45:13 2024 from 125.197.166.184
$ sudo w
[sudo] password for YOUR_NAME:
 18:48:06 up 21 min,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
totegamm          125.197.166.184  18:47   20:38   0.00s   ?    sshd: YOUR_NAME [priv]
$

デフォルトシェルをbashに変更

$ chsh
Password:
Changing the login shell for YOUR_NAME
Enter the new value, or press ENTER for the default
        Login Shell [/bin/sh]: /bin/bash
$