Ubuntu 18.04の初期設定

owner203はUbuntu信者です。このメモではConoHaでサーバー作成後、安全のために行った初期設定の流れを記録します。ディスクイメージはUbuntu 18.04を選んで、後で18.10にアップグレードしました。

(2021/4/14追記)
Ubuntu 20.04で書き直したので、この記事を見てください。

Host名設定

まずホスト名を設定します。

hostnamectl set-hostname myhostname

ユーザー追加

rootユーザーをこのまま使うと危ないから、一般ユーザーを追加して、sudo権限を付与します。

adduser username
gpasswd -a username sudo

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

SSHに関する設定

デフォルトのポート番号を変えます。

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

--Port 22
++Port 12345 #5桁のポート番号がおすすめ

--PermitRootLogin yes
++PermitRootLogin no

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

sudo ufw enable
sudo ufw allow 12345

安全のため、SSHをパスワード認証ではなく鍵認証にします。サーバーで鍵ペアを作成して、クライアントに保存します。

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

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ファイルを置くと楽です。

~/.ssh/config

Host myhostname
     Hostname server_ip_or_domain
     Port 12345
     User username
     IdentityFile ~/.ssh/id_rsa

接続してみます。

ssh myhostname