Ubuntu 最低限抑えておきたい初期設定

More than 1 year has passed since last update.


hostname の設定

$ sudo hostnamectl set-hostname <hostname>


パッケージリストの更新

$ sudo apt-get update


インストールされてるパッケージの更新

$ sudo apt-get upgrade


パッケージ自動アップデート


unattended-upgrades のインストール

$ sudo apt-get install unattended-upgrades


自動アップデートの適用

<Yes> を選択し設定することが可能です。

$ sudo dpkg-reconfigure -plow unattended-upgrades

Creating config file /etc/apt/apt.conf.d/20auto-upgrades with new version


自動アップデートの設定


設定項目

項目
意味

security
重要なセキュリティーアップデート

updates
奨励アップデート

proposed
プレリリースされたアップデート

backports
サポートされていないアップデート


セキュリティーアップデートと奨励アップデートの自動設定


/etc/apt/apt.conf.d/50unattended-upgrades

    // Automatically upgrade packages from these (origin:archive) pairs

Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
- // "${distro_id}:${distro_codename}-updates";
+ "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};


sshd の設定


ポートの変更


/etc/ssh/sshd_config

    # What ports, IPs and protocols we listen for

- Port 22
+ Port 2222


root ログインを禁止


/etc/ssh/sshd_config

    # Authentication:

LoginGraceTime 120
- PermitRootLogin without-password
+ PermitRootLogin no
StrictModes yes


パスワード認証を禁止


/etc/ssh/sshd_cofig

    # Change to no to disable tunnelled clear text passwords

- PasswordAuthentication yes
+ PasswordAuthentication no


PAM認証を禁止


/etc/ssh/sshd_cofig

    # Set this to 'yes' to enable PAM authentication, account processing,

# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
- UsePAM yes
+ UsePAM no


ssh サービスの再起動

$ sudo service ssh restart


ファイアウォールの設定


ufw のインストール

$ sudo apt-get install ufw


ufw の設定


IPv6サポートのOFF


/etc/default/ufw

    # Set to yes to apply rules to support IPv6 (no means only IPv6 on loopback

# accepted). You will need to 'disable' and then 'enable' the firewall for
# the changes to take affect.
- IPV6=yes
+ IPV6=no


ポートの開放


ssh

$ sudo ufw allow 2222



http

$ sudo ufw allow 80



https

$ sudo ufw allow 443



許可されたポート以外全ての閉鎖

$ sudo ufw default deny


ufw の有効化

$ sudo ufw enable


確認

$ sudo ufw status

Status: active

To Action From
-- ------ ----
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
2222/tcp ALLOW Anywhere
443 ALLOW Anywhere


locale の設定


language-pack-ja のインストール

$ sudo apt-get install language-pack-ja


locale に ja_JP.UTF-8 を設定

$ sudo update-locale LANG=ja_JP.UTF-8


確認

$ strings /etc/default/locale

# Created by cloud-init v. 0.7.5 on Tue, 16 Feb 2016 06:41:26 +0000
LANG=ja_JP.UTF-8


timezone の設定


/usr/share/zoneinfo/Asia/Tokyo から /etc/localtime にリンクを張る

$ sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime


timezone に Asia/Tokyo を設定

dpkg-reconfigure tzdata コマンドを実行し、インタラクティブウィンドウから timezone を選択し設定することが可能です。

Ansible など、構成管理ツールで設定する際はノンインタラクティブでないと実行できません。

下記のように、 dpkg-reconfigure tzdata コマンドに --frontend noninteractive オプションを付けことでノンインタラクティブに実行出来ます。

$ sudo dpkg-reconfigure --frontend noninteractive tzdata

Current default time zone: 'Asia/Tokyo'
Local time is now: Tue Feb 16 15:47:47 JST 2016.
Universal Time is now: Tue Feb 16 06:47:47 UTC 2016.


確認

$ strings /etc/localtime

TZif2
JCST
TZif2
JCST
JST-9


フォントの設定


ipafont 一式のインストール

$ sudo apt-get install fonts-ipafont


確認

truetype ディレクトリが存在することを確認します。

$ ls /usr/share/fonts/

X11 truetype


時刻の設定


ntp のインストール

$ sudo apt-get install ntp


ntp サービスの停止

時刻を取得するために ntp を停止します。

$ sudo service ntp stop

* Stopping NTP server ntpd
...done.


時刻を他サーバから取得する

日本標準時を時刻配信している ntp サーバ ( ntp.nict.jp ) から時刻を取得します。

$ sudo ntpdate ntp.nict.jp

16 Feb 17:03:22 ntpdate[6848]: adjust time server 133.243.238.244 offset -0.085880 sec


時刻の自動同期の設定


/etc/ntp.conf

    # Specify one or more NTP servers.

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
- server 0.ubuntu.pool.ntp.org
- server 1.ubuntu.pool.ntp.org
- server 2.ubuntu.pool.ntp.org
- server 3.ubuntu.pool.ntp.org
+ server -4 ntp.nict.jp
+ server -4 ntp1.jst.mfeed.ad.jp
+ server -4 ntp2.jst.mfeed.ad.jp
+ server -4 ntp3.jst.mfeed.ad.jp



ntp サービスの起動

$ sudo service ntp start

* Starting NTP server ntpd
...done.


サービス自動起動の設定


sysv-rc-conf のインストール

sysv-rc-conf は簡単に説明すると chkconfig の代わりとなるものです。

$ sudo apt-get install sysv-rc-conf


sysv-rc-conf で ntp サービス自動起動の設定

$ sudo sysv-rc-conf ntp on


確認

$ sudo sysv-rc-conf --list ntp

ntp 1:off 2:on 3:on 4:on 5:on


OS の再起動

$ sudo reboot


追記

これやってるなと思い出したものがあれば随時更新していきます。

本記事の内容を Ansible の Playbook に落としている最中なので完成したら公開します。