Ubuntu 20.04の初期設定

owner203はUbuntu信者です。2019年1月ごろに、Ubuntu 18.04のサーバー作成後の初期設定に関する記事を公開しましたが、時はすでに2021年、Ubuntu 20.04もかなり普及してきたと思いますので、今度はUbuntu 20.04のサーバーをConoHaで作成後の初期設定の流れを整理しました。

IPv6の有効化

ConoHaはIPv6をサポートしています。しかし、ConoHaのUbuntu 20.04ディスクイメージでデプロイした場合はデフォルトでIPv6が無効化されています。なので、rootユーザーで初回ログインしたら、まずIPv6を有効にします。Ubuntu 20.04ではifupdownを使っていないので、ネットワークの設定は「/etc/network」ではなく、代わりに「/etc/netplan」でやります。

vi /etc/netplan/10-gmovps.yaml
/etc/netplan/10-gmovps.yaml

network:
    ethernets:
        eth0:
            addresses: []
            dhcp4: true
            --dhcp6: false
            --accept-ra: false
            ++dhcp6: true
            optional: true
    version: 2

そして変更を適用します

netplan apply

Host名設定

ホスト名を設定します。

vi /etc/hostname
/etc/hostname

--XXX-XXX-XXX-XXX
++myhostname

編集した内容はサーバー再起動後に反映されますので、ここで一回再起動します。

reboot

ユーザー追加

次にrootではない一般ユーザーを作成して、sudo権限を付与します。

adduser username
gpasswd -a username sudo

rootユーザーをログアウトして、一般ユーザーを使います。

パッケージ更新

sudo apt update
sudo apt upgrade
reboot

SSHに関する設定

これからSSHセキュリティに関する諸設定をやります。オリジナルの設定ファイルをバックアップしてから編集します。まず、デフォルトのポート番号を変更して、rootでの接続を禁止にします。

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig
sudo vi /etc/ssh/sshd_config
/etc/ssh/sshd_config

Port 12345 #コメントマークを外してポートを変えます

--PermitRootLogin yes
++PermitRootLogin no
sudo service ssh restart

ufwを有効にして、使うポート番号を開きます。

sudo ufw enable
sudo ufw allow 12345/tcp

セキュリティ向上のため、SSHポートの接続ポリシーをlimitにします。

sudo ufw limit 12345/tcp

通常SSHはパスワード認証ではなく、鍵認証が望ましいので、サーバーで鍵ペアを作成して、scpでクライアントに保存します。

username@server

ssh-keygen -t rsa
mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys #権限設定間違えると怒られる
@client

mkdir ~/.ssh
chmod 700 ~/.ssh
scp -P 12345 username@server_ip:/home/username/.ssh/id_rsa ~/.ssh/sshkey.pem

そしたらSSHのパスワード認証を禁止にします。

username@server

sudo vi /etc/ssh/sshd_config
/etc/ssh/sshd_config

--PasswordAuthentication yes
++PasswordAuthentication no

最後にsshdを再起動して、設定を適用します。

sudo service ssh restart

クライアントからサーバーにSSH接続してみて、パスワードが要求されなければOKです。

ssh -p 12345 -i ~/.ssh/id_rsa username@server_ip_or_domain

SSHクライアント側の追加設定

SSH接続するたびにポート番号、そしてIPアドレスまたはドメインを入力するのは大変なので、クライアントの.sshフォルダに設定を記憶するconfigファイルを置くと毎回IPアドレスやドメイン名を入力することなく楽です。

~/.ssh/config

Host myhostname
     Hostname server_ip_or_domain
     AddressFamily inet
     Port 12345
     User username
     IdentityFile ~/.ssh/sshkey.pem

接続してみます。

ssh myhostname

コメントを残す