弐号機 初期設定

参考サイト

  • https://qiita.com/YGocho/items/bcf5563bdfa971a1c0ef
  • https://www.server-world.info/query?os=Ubuntu_18.04&p=download
  • http://www.ellinikonblue.com/blosxom/UNIX/20150721SSH.html
  • https://qiita.com/kotarella1110/items/f638822d64a43824dfa4
  • https://www.yokoweb.net/2016/05/08/ubuntu-16-04-server-japanese/
  • https://ytooyama.hatenadiary.jp/entry/2018/07/20/002249
  • https://qiita.com/kotarella1110/items/f638822d64a43824dfa4#ufw-%E3%81%AE%E8%A8%AD%E5%AE%9A

 

1.root のパスワード・sudo 設定

どういうわけか、インストールの最中に root のパスワードを設定するようなシーンは一切なかった。(初期ユーザーは設定したけれども)

sudo su でルートに su 出来るので、不便は感じないと思うが、何がパスワードに設定されてるのかわからないし、「未設定」ということなら、サーバーのセキュリティとしては考えもの。ポート開放されてない環境なんで、外から SSH とかは出来ないはずだが、MBPにマルウェアが感染して、そこからリモートで・・・というのもありえない話じゃないので、パスワードくらいは設定しときたい。

$ sudo su -
# passwd
Enter new UNIX password: (新パスワード)
Retype new UNIX password: (新パスワードをもう一回)
passwd: password updated successfully

っていうか、sudo su – を叩いた時点で、何のパスワードも聞いてこないってことは、root のパスワードが未設定だった可能性が高い。

root のパスワードを設定したので、sudo の設定もしておく。触るファイルは Cent OS のときと同じようだが、設定値は若干違うようだ。

# This allows root to su without passwords (normal operation)
# auth       sufficient pam_rootok.so  # これが初期設定なのでコメントアウト
auth       required   pam_wheel.so  group=adm  # この行のコメントを解除し、"gruop=adm"を追記

2.パッケージの最新化

$ sudo apt update
$ sudo apt upgrade

すると、途中で見覚えのあるメッセージが。

Need to get 35.8 MB of archives.
After this operation, 1,393 kB disk space will be freed.

・・・これって、Docker で Ubuntu / Debian ベースで開発環境作ってる途中に出てたメッセージじゃないか。

てっきり、ディスク容量が足りてないもんだと思ってたが、よくよく見ると、「このオペレーションの後にXX kB の領域が開放されます」というメッセージで、ディスクが足りない、ってメッセージじゃない。

じゃあ、なんで Docker build のときは”abort”で落ちたたんだ?

まあいい、今は保留としておこう。

3.SSH関係の設定

インストール時に OpenSSH をインストールしたので、すでにMBPから SSH 接続はできているが、追加で root ログインを禁止する設定をしておく。

$ sudo vi /etc/ssh/sshd_config
#PermitRootLogin prohibit-password 
PermitRootLogin no  # 追記
$ sudo systemctl restart ssh

あわせて、鍵認証できるように設定もしていく。

3.1.サーバー側で鍵ファイル生成

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa):
Created directory '/home/ubuntu/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ubuntu/.ssh/id_rsa.
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub.
The key fingerprint is:
(以下略)
$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

3.2.MBP側に鍵ファイルを転送

・・・と思ったら、すでに id_rsa ファイルが存在している。何の用途で作ったのか、イマイチ思い出せないので、消すのも怖いが、単に複数ファイル作って接続するたびに使い分けるのも面倒。ってか、何の用途か思い出せないものをすぐに使うとも思えないので、先に作ってたファイルの方をリネームしておこう。

気を取り直して、手順再開。

$ scp ubuntu@192.168.xxx.xxx:/home/ubuntu/.ssh/id_rsa ~/.ssh/
$ ssh 192.168.xxx.xxx
Enter passphrase for key '/Users/ubuntu/.ssh/id_rsa':
(中略)
ubuntu@hostname:~$

鍵ファイルで無事にログインできたので、SSH の設定を変更し、パスワード認証も切っておく。

$ sudo vi /etc/ssh/sshd_config
#PasswordAuthentication yes
PasswordAuthentication no  # 追記

4.パッケージの自動アップデート(セキュリティパッチのみ)

Ubuntu (というか Debian 系?)では、”unattended-upgrades” というパッケージで自動アップデートをするらしい。

bionic のサーバーをインストールした段階では、すでにインストールされていて、調べると以下の設定ファイルをいじるらしいが、どうも「重要なセキュリティアップデートを自動的にインストールする」のがデフォルトになっている模様。

$ cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";  # リストの更新間隔。1で毎日。
APT::Periodic::Unattended-Upgrade "1";  # アップデートのインストールを行うかどうか。1で行う。
$ cat /etc/apt/apt.conf.d/50unattended-upgrades
// Automatically upgrade packages from these (origin:archive) pairs
(略)
Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
  "${distro_id}:${distro_codename}-security";  # 重要なセキュリティアップデートを更新
  // Extended Security Maintenance; doesn't necessarily exist for
  // every release and this system may not have it installed, but if
  // available, the policy for updates is such that unattended-upgrades
  // should also install from here by default.
  "${distro_id}ESM:${distro_codename}";
//	"${distro_id}:${distro_codename}-updates";  # 推奨アップデートを更新するならコメントアウト
//	"${distro_id}:${distro_codename}-proposed";  # プレリリースされたアップデートを更新するならコメントアウト
//	"${distro_id}:${distro_codename}-backports";  # サポートされていないアップデートを更新するならコメントアウト
};
(以下略)

5.日本語化

$ sudo apt-get -y install language-pack-ja-base language-pack-ja ibus-mozc  # ibus-mozc は日本語入力システム
$ sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"
$ sudo dpkg-reconfigure tzdata  # timezoneもデフォルトはUTCなので設定
-> GUI (と言ってもテキストベースだが) でアジア>東京 と選んで設定していく。

ただ、日本語化しても「本体のコンソール」では日本語は使えないらしいので、下記の設定をして切り替えられるようにしておく。

$ vi ~/.bashrc
# 下記を追記
case $TERM in
    linux) LANG=C ;;
    *)     LANG=ja_JP.UTF-8;;
esac

ついでに、man ページも日本語化しておく。

$ sudo apt-get install manpages-ja

6.時刻同期

$ sudo apt-get install chrony
$ sudo vi /etc/chrony/chrony.conf
$ sudo systemctl restart chrony
$ chronyc sources
## 設定したNTPサーバーが反映されていることを確認
210 Number of sources = 3
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^- ntp-b2.nict.go.jp             1   6    17     2  -7623us[-7623us] +/-   30ms
^* ntp1.jst.mfeed.ad.jp          2   6    17     2  -5674us[-7048us] +/-  118ms
^- ntp2.jst.mfeed.ad.jp          2   6    17     2    +20us[  +20us] +/-   98ms

 

そういえば、Cent OS のインストールや初期設定の手順を調べてると、SELinux / firewalld / NetworkManager をオフにするっていう手順がよく紹介されているが、Ubuntu bionic の場合、そもそも「サーバー」をインストールしても入ってない。

firewalld に関しては ufw が、NetworkManager に関しては、Netplan.io がそれぞれ代わりに入っているようだが、SELinux に関しては代替のものも入っていないようだ。

インストールするときにパッケージを選ぶ画面が出てくるが、そこで選んだパッケージによっては入るのかもしれないが、Open SSH を追加しただけでは入らないようだ。

 

タグ: # #
コメントはまだありません

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA