Help us understand the problem. What is going on with this article?

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

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_config
    # Change to no to disable tunnelled clear text passwords
-   PasswordAuthentication yes
+   PasswordAuthentication no

PAM認証を禁止

/etc/ssh/sshd_config
    # 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 に落としている最中なので完成したら公開します。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away