Ubuntu

Ubuntu18.04に移行 SSHと静的IPアドレス、IPv6無効化、タイムゾーン設定

Ubuntu18.04がリリースされ、利用させてもらっている主要パッケージが対応していることがわかったので、色々と整理しながら徐々に新システムに移行しようと考えた。

利用しているサービスが増えてきたからLDAPを導入しようとか、よくよく考えるとAndroidからVPN接続できていないからなんとかしようとか、夢広がリング。

広告


それと、今までお世話になってきたデスクトップは入れない方向で考えている。運用を始めた頃にはGUIは簡単と思っていたのだけれど、自分的に割とコマンドでできることが増えてきた。余計なものを動かさないシンプルさを求め、デスクトップなしで頑張ってみよう。

まずは、Ubuntu18.04 Server をダウンロード(サポート終了に伴ってリンク切れ)。

インストールはとっても簡単、インストール時に日本語は選べないようなので英語にした。

それと、インストールの段階でIPアドレスを手動で固定した。

インストール直後にログインしたら、このメッセージが表示された。

Ubuntu 18.04 LTS hogeserver tty1

hogeserver login: hoge
Password:
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64)

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

 System information disabled due to load higher than 1.0

0 packages can be updated.
0 updates are security updates.



The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To run a command as administrator (user "root"), user "sudo <command>".
See "man sudo_root" for details.

hoge@hogeserver:~$ _

このまっさらな感じがステキ。


■公開鍵暗号を用いた接続

SSHDは最初から入ってるので、公開鍵暗号を用いた接続に切り替えていく。

本来はクライアント側で秘密鍵と公開鍵を作り、サーバーに公開鍵を渡す…という事のようなんだけれど、クライアント側がWindowsなので、サーバー側で鍵を作り秘密鍵をクライアントに持ってくることにした(いつもサーバー側で作業するから、サーバーとクライアントの意味を取り違えて、仕組みを上手く理解できずにいた…)。

※参考サイト

【Linux/Ubuntu】SSH公開鍵認証の設定方法

SSHでリモートホストに接続する前にやっておくと便利なことは? ssh-keygenコマンド

公開鍵暗号を用いてのSSH接続(きほん)

お前らのSSH Keysの作り方は間違っている

$ cd
$ mkdir .ssh
$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hogeuser/.ssh/id_rsa):何も入力せず[Enter]
Enter passphrase (empty for no passphrase):パスフレーズを入力[Enter]
Enter same passphrase again:同じパスフレーズを入力[Enter]
Your identification has been saved in /home/hogeuser/.ssh/id_rsa.
Your public key has been saved in /home/hogeuser/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:qD3z4gGcRjNr2q2la85hbn++nm7MmDfI6pjwRgqlgp0 hogeuser@hogeserver
The key's randomart image is:
+---[RSA 4096]----+
|O*B+             |
|BoO+.            |
|OO =    .        |
|*+* =  + o       |
|++ B.o+ S        |
|+.*.*. o         |
| +.E             |
|                 |
|                 | ← これは作成の都度変わる
+----[SHA256]-----+
$ ll ~/.ssh
total 16
drwxrwxr-x 2 hogeuser hogeuser 4096 May 19 04:46 ./
drwxr-xr-x 5 hogeuser hogeuser 4096 May 19 04:42 ../
-rw------- 1 hogeuser hogeuser 3326 May 19 04:46 id_rsa
-rw-r--r-- 1 hogeuser hogeuser  745 May 19 04:46 id_rsa.pub

これで秘密鍵と公開鍵ができた。

サーバー側でauthorized_keysに公開鍵(id_rsa.pub)を追記し、パーミッションを変更。

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ ll ~/.ssh
total 20
drwxrwxr-x 2 hogeuser hogeuser 4096 May 19 09:37 ./
drwxr-xr-x 5 hogeuser hogeuser 4096 May 19 09:36 ../
-rw------- 1 hogeuser hogeuser  745 May 19 09:37 authorized_keys
-rw------- 1 hogeuser hogeuser 3326 May 19 04:46 id_rsa
-rw-r--r-- 1 hogeuser hogeuser  745 May 19 04:46 id_rsa.pub

クライアント側のWindowsのどこに秘密鍵を置くのが正しいのか…見られなそうなところって…

%LOCALAPPDATA%\VirtualStore\Program Files (x86)\teraterm

あたり?に ~/.ssh/id_rsa の中身をテキストに貼り付けて配置。

Teratermでこのファイルを利用して接続を試し、問題なければパスワード認証をやめる。

/etc/ssh/sshd_config

HostKey /etc/ssh/ssh_host_rsa_key ← (1)コメントになっていたのを外に出す(鍵接続許可)
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
…
# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
PasswordAuthentication no ← (2)追加してパスワード接続をできなくする
#PermitEmptyPasswords no

$ sudo systemctl restart ssh

最後、サーバー上にある id_rsa を削除すればOKっぽい。


■静的IPアドレスの設定

当面IPv4のみとして、インストール時に静的IPアドレスを設定したが、変更するときにはどこで何をするのか…。答えはここに。

※参考サイト

Ubuntu 18.04 LTSで固定IPアドレスの設定

サイトに従って実際に中身を見てみると…

/etc/netplan/50-cloud-init.yaml

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    ethernets:
        ens33:
            addresses:
            - 192.168.33.55/24
            gateway4: 192.168.33.2
            nameservers:
                addresses:
                - 192.168.33.231
                search:
                - hogeserver.hogeddns.jp
            optional: true
    version: 2

となっていた。

変更したらこのコマンドで反映させるそうな。

$ sudo netplan apply


■IPv6無効化

IPv6を無効化する場合は以下で行う。昔書いた /etc/sysctl.confに書き込む手は一時的には使えるんだが、再起動すると戻ってしまう。

※DNS管理の知識が足らないので、トラブルが起きないように…

How to disable IPv6 on Linux

恒久的に反映させるならGrubの設定が必要、赤文字部分を追記し…

/etc/default/grub

・・・
GRUB_CMDLINE_LINUX_DEFAULT="maybe-ubiquity"
GRUB_CMDLINE_LINUX="ipv6.disable=1"
・・・

以下のコマンドでGrubに反映。

$ sudo update-grub

これでIPv6は無効化する。


■タイムゾーンの設定

ログを見たらタイムゾーンがUTCだ。解決策はここに。

Qiita / [Ubuntu16.04] timezoneの確認と設定

$ timedatectl ← 現状確認
                      Local time: Sun 2018-05-20 06:00:12 UTC
                  Universal time: Sun 2018-05-20 06:00:12 UTC
                        RTC time: Sun 2018-05-20 06:00:12
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no
$ sudo timedatectl set-timezone Asia/Tokyo ← タイムゾーン設定
$ timedatectl ← 反映結果の確認
                      Local time: Sun 2018-05-20 15:05:11 JST
                  Universal time: Sun 2018-05-20 06:05:11 UTC
                        RTC time: Sun 2018-05-20 06:05:11
                       Time zone: Asia/Tokyo (JST, +0900)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

設定ファイルを一生懸命修正する方法もあるようだけれども、コマンドに任せたほうが安心感が高そうな気がする…


これからの道のりを想像すると、ワクワクとドキドキがないまぜになってやってくる。

どうかうまくいきますように…。

広告

コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他