基本設定

最低限必要なOSの設定の他、通常利用のためのsshdを設定します。
また、あったほうが便利な諸々もインストールします。

aptの設定

apt-lineを修正し、contribおよびnon-freeもインストール対象にします。

  1. /etc/apt/sources.listから余計なコメント行は削除し、全部にcontribとnon-freeを追加します。
    deb http://ftp.jp.debian.org/debian/ stretch main contrib non-free
    deb-src http://ftp.jp.debian.org/debian/ stretch main contrib non-free
    
    deb http://security.debian.org/debian-security stretch/updates main contrib non-free
    deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free
    
    deb http://ftp.jp.debian.org/debian/ stretch-updates main contrib non-free
    deb-src http://ftp.jp.debian.org/debian/ stretch-updates main contrib non-free
  2. apt-lineを更新します。
    # apt update
  3. システムを更新します。(この段階では特に何も更新はないはずですが、念の為。)
    # apt upgrade

sudoのインストール

基本的にrootでログインして作業するのはよろしくないため、sudoを入れて一般ユーザーで作業できるようにします。(とはいえ最初の方はroot権限が必要な作業ばかりですが…)

  1. インストールし、許可ユーザーをsudoグループに追加します。
    # apt install sudo
    # adduser username sudo
    これで、指定したユーザーはsudoが実行できるようになったので、rootでのログインは不要になります。
    ただし、該当のユーザーがログインし直すまで有効にならないので注意してください。

なお、上記のやり方だとsudoしたユーザーはすべてのコマンドが利用可能です。より細かい指定のためには、# visudoで sudoの設定ファイルを変更する必要があります。

よく使うツール類

最初に余計なものは何も入れなかったこともあり、通常ありそうなツールも入っていません。後々必要になるものはまとめて入れておきます。

# apt install rsync telnet dnsutils less lv tmux man-db nkf

RubyやPythonといったスクリプト実行環境も入れておきます。(phpはApacheとセットで後ほど。)

# apt install ruby python3
python2.7のほうは、必要であれば何かのパッケージの依存として入るでしょうからここでは無視しています。

fail2banのインストール

これからsshdを入れるため、外部からのアクセスが本格的に可能になります。ブルートフォースアタックに備え、連続でログインに失敗しているIPを一定時間自動排除するfail2banを入れてセキュリティを高めます。
(別途、パスワードによるログインの禁止をsshdのほうでも設定はします。)

# apt install fail2ban

sshdのインストール

CUIなのにQEMUの画面で作業するのは意味がないので、sshサーバーを導入します。

  1. インストールするパッケージはsshです。
    # apt install ssh
  2. rootのログイン禁止、パスワード認証の無効化のため、/etc/ssh/sshd_configファイル変更します。(ssh_configと sshd_configの両ファイルがあるので注意。)
    # Authentication:
    #LoginGraceTime 2m
    #PermitRootLogin prohibit-password
    PermitRootLogin no ※rootのログイン禁止
    #StrictModes yes
    ...(中略)
    # To disable tunneled clear text passwords, change to no here!
    #PasswordAuthentication yes
    PasswordAuthentication no ※パスワードによるログイン禁止
    ...(中略)
    # Change to yes to enable challenge-response passwords (beware issues with
    # some PAM modules and threads)
    ChallengeResponseAuthentication no ←念の為noであることを確認
    sshd_configの設定については、以下を参考にしました。
  3. sshdを再起動して、設定反映します。
    # service ssh restart
    ここからは、sshで接続しての作業が可能になります。

言語設定

日本語のロケールを追加します。

  1. 最初はlocaleがインストールされていないので、そこから対応します。
    # apt install locales
  2. 新たに日本語ロケールを設定します。
    # dpkg-reconfigure locales
  3. ロケールの一覧で、"ja_JP.UTF-8 UTF-8"にチェックを付けます。
  4. システム全体のデフォルトロケールは"None"を選んでおきます。
  5. これでja_JP.UTF-8のロケールが作成され、localeの再設定が完了します。ログインし直すと、日本語も表示されるようになります。
  6. うまくいかない場合は、~/.bashrcの最後に以下の言語設定を追加します。
    # Set locales
    export LANG=ja_JP.UTF-8
    export LANGUAGE=ja_JP.UTF-8
    export LC_ALL=ja_JP.UTF-8

vimのインストール

viをパワーアップしたvimをインストールします。お好みの方はemacsを入れてください。

  1. インストールします。
    # apt install vim vim-doc
  2. /etc/vim/vimrcを編集します。コメントアウト(#ではなく"です)されている行を有効化することで機能をonにしています。
    私もそこまで詳しくないので、設定解説は他のサイトに譲ります。
    " Vim5 and later versions support syntax highlighting. Uncommenting the next
    " line enables syntax highlighting by default.
    syntax on
    
    " If using a dark background within the editing area and syntax highlighting
    " turn on this option as well
    set background=dark ※これは私が背景色を黒にしているための設定です。白で使っている場合は不要です。
    ...(中略)
    
    " Uncomment the following to have Vim load indentation rules and plugins
    " according to the detected filetype.
    if has("autocmd")
      filetype plugin indent on
    endif
    
    ...(中略)
    
    " The following are commented out as they cause vim to behave a lot
    " differently from regular Vi. They are highly recommended though.
    "set showcmd            " Show (partial) command in status line.
    set showmatch           " Show matching brackets.
    "set ignorecase         " Do case insensitive matching
    "set smartcase          " Do smart case matching
    set incsearch           " Incremental search
    "set autowrite          " Automatically save before commands like :next and :make
    "set hidden             " Hide buffers when they are abandoned
    "set mouse=a            " Enable mouse usage (all modes)
  3. 日本語を扱うための設定と、インデント設定を最後に追加します。(インデントはお好みで。)
    set ambw=double
    set shiftwidth=4

NTPのインストール

サーバーの時間が狂うとメールの時間がおかしくなったりAmazon S3との通信が失敗したりするので、ntpを入れます。

  1. インストールします。
    # apt install ntp ntp-doc
  2. 設定ファイルは/etc/ntp.confです。
    サポートにあるOS基本設定を参考に設定しました。
    # You do need to talk to an NTP server or two (or three).
    #server ntp.your-provider.example
    server ntp1.sakura.ad.jp iburst
    
    # pool.ntp.org maps to about 1000 low-stratum NTP servers.  Your server will
    # pick a different set every time it starts up.  Please consider joining the
    # pool: <http://www.pool.ntp.org/join.html>
    #server 0.debian.pool.ntp.org iburst
    #server 1.debian.pool.ntp.org iburst
    #server 2.debian.pool.ntp.org iburst
    #server 3.debian.pool.ntp.org iburst
    (中略)
    # By default, exchange time with everybody, but don't allow configuration.
    #restrict -4 default kod notrap nomodify nopeer noquery
    #restrict -6 default kod notrap nomodify nopeer noquery
    restrict -4 default ignore
    restrict -6 default ignore
    restrict -4 ntp1.sakura.ad.jp kod nomodify notrap nopeer noquery
    restrict -6 ntp1.sakura.ad.jp kod nomodify notrap nopeer noquery
  3. ntpを再起動して設定反映します。
    # service ntp restart

cronの事故防止

$ crontab -eはcronの編集をするときに使うコマンドですが、隣のキーをつい押して$ crontab -rと打つと、容赦なくcrontabの内容が全削除されます。しかもUndo機能はありません。
この事故を事前に防ぐ方法で対処しようとしている人も多いですが、私は単にcrontabのバックアップを取ることで備えています。

# m h  dom mon dow   command
 30  4  *   *   *    crontab -l>$HOME/crontab.back

これで、毎朝4:30にcrontabの内容を書きだしたファイルがホームディレクトリにできています。
ちなみに、cronの初回起動時にはエディタとして何を使うか聞かれます。途中で変えたくなった場合は、$ select-editorというコマンドで変えられます。

ipv6の設定

インストール時にipv4しか設定していないので、ipv6のアドレスも設定します。

  1. /etc/network/interfacesに設定を追加します。割り当てられているアドレス類は、サーバーコントロールパネルで確認してください。
    # ipv6
    iface ens3 inet6 static
            address 2401:xxxx:xxx:xxxx:xxx:xxx:xxx:xx
            gateway xxxx::x
            netmask 64
            dns-nameservers 2401:xxxx::x
    
  2. ens3を再起動します。
    # ifdown ens3 && ifup ens3
    なお、設定ミスなどで失敗してifdownで止まるとsshからは操作できません。コントロールパネルからVNCで入って直してください。

ローカルネットワーク

さくらのVPSの場合、同一リージョン内のVPS同士は1Gbpsベストエフォートのローカルネットワークで接続できます。
1つのVPSに仮想NICが3つずつついており、1つ目はインターネット接続に使用するので2つ目をLANにします。

  1. スイッチの作成とローカルネットワーク接続
    これは、それぞれサポートページを参照してください。
    スイッチ作成:https://help.sakura.ad.jp/hc/ja/articles/206208041
    ローカルネットワーク接続:https://help.sakura.ad.jp/hc/ja/articles/206207941
  2. /etc/network/interfacesに設定を追加します。
    # The secondary network interface
    allow-hotplug ens4
    iface ens4 inet static
            address 192.168.0.x/24
    
  3. ens4を起動します。
    # ifup ens4
  4. ipコマンドで設定が反映されたか、他のローカルネットワーク接続先から接続できるかテストします。
    # ip addr show

目次へ戻る