Contents
1. vimエディターのインストールと設定
Debianではデフォルトのエディターとして「nano」が設定されています。nanoはやや使いにくいことや、利用されている環境が少ないためエディタを「vim」に変更する手順を紹介します。
1.1 vimパッケージの確認
Debian にはデフォルトでvimがインストールされていますが「vim-tiny」というパッケージになり、機能が少ないバージョンになります。インストールされ ているvimパッケージを確認してみます。Debianではパッケージの確認に"dpkg"コマンドを利用します。"-l"オプションを付けるとパッケー ジリストが表示されます。
"dpkg"コマンドをそのまま実行するとシステムにインストールされている全てのパッケージが表示されるため、文字列「vim」を含むパッケージのみを"grep"コマンドで抽出します。以下のように実行します。
1 2 3 |
# dpkg -l | grep vim ii vim-common 2:8.2.2434-3+deb11u1 all Vi IMproved - Common files ii vim-tiny 2:8.2.2434-3+deb11u1 amd64 Vi IMproved - enhanced vi editor - compact version |
上記のように「vim-tiny」パッケージのみがインストールされていることが確認できます。
1.2 vimパッケージのインストール
apt installコマンドの"-y"オプションはインストール時の確認を自動的に行うオプションです。
1 |
# apt install -y vim |
インストール後に再度、dpkgコマンドでvimパッケージを確認
1 2 3 4 5 |
# dpkg -l | grep vim ii vim 2:8.1.0875-5+deb10u4 amd64 Vi IMproved - enhanced vi editor ii vim-common 2:8.1.0875-5+deb10u4 all Vi IMproved - Common files ii vim-runtime 2:8.1.0875-5+deb10u4 all Vi IMproved - Runtime files ii vim-tiny 2:8.1.0875-5+deb10u4 amd64 Vi IMproved - enhanced vi editor - compact version |
上記のようにVimがインストールされています
1.3 デフォルトで利用されるエディタの変更
デフォルトのエディタをnanoからインストールした「vim」に変更します。デフォルトエディタの変更には"update-alternatives --set editor"コマンドを実行します。vimに変更する場合には以下のように実行します。
1 2 |
# update-alternatives --set editor /usr/bin/vim.basic update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode |
上記のように出力されれば、エディタは変更されています。
1.4 vimの設定変更
全てのユーザーに許可する場合は"/root/"に「.vimrc」ファイルを作成
各ユーザーごとにvimの環境を作る場合は「.vimrc」ファイルをユーザーのホームディレクトリに作成することでvimの環境を設定できます。
今回はrootユーザーのホームディレクトリ"/root/"に「.vimrc」ファイルを作成します。
1 |
# vi ~/.vimrc |
"テキストの貼り付けやコピーを有効
set clipboard+=autoselect
" vim の独自拡張機能を使う(viとの互換性無し)
set nocompatible
" 文字コードを指定する
set encoding=utf-8
" ファイルエンコードを指定する
set fileencodings=utf-8,iso-2022-jp,sjis,euc-jp
" 自動認識させる改行コードを指定する
set fileformats=unix,dos
" バックアップを取得する
set backup
" バックアップを取得するディレクトリを指定する
set backupdir=~/backup
" 検索履歴を残す世代数
set history=50
" 検索時に大文字小文字を区別しない
set ignorecase
" 検索語に大文字を混ぜると検索時に大文字を区別する
set smartcase
" 検索語にマッチした単語をハイライトする
set hlsearch
" インクリメンタルサーチを使用する
(検索語の入力最中から随時マッチする文字列の検索を開始)
set incsearch
" 行番号を表示する
set number
" 改行 ( $ ) やタブ ( ^I ) を可視化する
set list
" 括弧入力時に対応する括弧を強調する
set showmatch
" ファイルの末尾に改行を入れない
set binary noeol
" 自動インデントを有効にする
set autoindent
" 構文ごとに色分け表示する
syntax on
" [ syntax on ] の場合のコメント文の色を変更する
highlight Comment ctermfg=LightCyan
" ウィンドウ幅で行を折り返す
set wrap
上記の中で不必要なものはコメントアウトして下さい。
1.5 vimの設定変更内容の有効化
設定した内容を有効にするために、システムからログアウトして下さい。再度、システムへログインすると上記内容が反映されます。
2. ネットワークの設定
2.1 ホスト名の設定
Debian のインストール時にホスト名を設定していますが、何らかの理由でホスト名を変更する場合について説明します。
ホスト名の設定には"hostnamectl set-hostname"コマンドを利用します。以下のように実行します。ここではホスト名として「Lepard」を設定します。
1 |
# hostnamectl set-hostname Lepard |
設定の結果は "/etc/hostname"ファイルを参照することで確認できます。
"cat"コマンドで"/etc/hostname"ファイルを参照して、以下のように設定値の「Lepard」が表示されればホスト名の確認は完了です。
1 2 |
# cat /etc/hostname Lepard |
2.2 ネットワークインターフェイスへのIPアドレス設定
Debian 10インストール時のIPアドレスはDHCP(動的IPアドレス)に設定されていますので、固定のIPアドレスを設定します。IPアドレスの設定には"/etc/network/interfaces"ファイルを変更してから、ネットワークインターフェース(今回はens33)を再起動します。
ネットワークインターフェース名はセットアップを行った環境によって変わりますので、まずはインターフェイス名を確認します。
ネットワーク情報を確認するためのコマンドは"ip addr"になります。実行することでネットワークインターフェース名やIPアドレスの情報が表示されます。
1 |
# ip addr |
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:f3:3d:d3 brd ff:ff:ff:ff:ff:ff
inet 192.168.11.25/24 brd 192.168.11.255 scope global dynamic ens33
valid_lft 157298sec preferred_lft 157298sec
inet6 fe80::20c:29ff:fef3:3dd3/64 scope link
valid_lft forever preferred_lft forever
連番の次に表示されているものが「ネットワークインターフェース名」になります。「lo」は「ローカルループバックインターフェイス」になりますので、通常は利用されません。上記の場合は「ens33」がネットワークインターフェース名です。
2.3 固定IPアドレスの設定
ネットワークインターフェース名が分かったところで、ネットワークの設定を行います。ネットワークの設定に必要な情報と、今回設定を行うパラメータを以下のように仮定して進めます。
・IPアドレス 192.168.11.83
・サブネットマスク 255.255.255.0(24ビット)
・デフォルトゲートウェイ 192.168.11.1
・DNSサーバー 192.168.11.1
IPアドレスの設定は"/etc/network/interfaces"ファイルを変更することで行います。viコマンドでinterfacesファイルを開きます。
1 |
# vi /etc/network/interfaces |
初期値は以下のようになっています
#This file describes the network interfaces available on your system
#and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
#The loopback network interface
auto lo
iface lo inet loopback
#The primary network interface
allow-hotplug ens33
iface ens33 inet dhcp
次のように変更します
#The primary network interface
allow-hotplug ens33
#iface ens33 inet dhcp ←コメントアウト
#network interface settings
iface ens33 inet static ←追加
address 192.168.11.83 ←追加
netmask 255.255.255.0 ←追加
gateway 192.168.11.1 ←追加
dns-nameservers 192.168.11.1 ←追加
2.4 固定IPアドレスの有効化
1 |
# systemctl restart networking ifup@ens33 |
3. サーバーの時刻同期を設定
こではサーバーの時刻を自動的に合わせるサービスである「timesyncd」を設定していきます。
3.1 timesyncdサービスの設定
timesyncdサービスの設定は"/etc/systemd/timesyncd.conf"ファイルで行います。ファイルの変更前に、元のファイルをバックアップとしてコピーしておきます。
1 |
# cp -p /etc/systemd/timesyncd.conf /etc/systemd/timesyncd.conf.org |
設定ファイルを編集していきます
1 |
# vi /etc/systemd/timesyncd.conf |
初期値は以下のようになっています
[Time]
#NTP=
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.o rg 3.debian.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
これを次のように日本国内のタイムサーバーに変更します。
NTP=ntp.jst.mfeed.ad.jp
FallbackNTP=ntp.nict.jp
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
3.2 timesyncdサービスの設定の反映
1 |
# systemctl restart systemd-timesyncd |
エラーが出力されなければ、サービスは再起動しています。時刻同期の確認をおこないます。時刻同期の確認は"timedatectl status"コマンドで行います。以下のように実行します。
1 2 3 4 5 6 7 8 |
# timedatectl status Local time: Fri 2023-02-10 15:31:57 JST Universal time: Fri 2023-02-10 06:31:57 UTC RTC time: Fri 2023-02-10 06:31:57 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes NTP service: active RTC in local TZ: no |
「System clock synchronized: yes」と表示されていれば時刻同期は行われています。
4. suできるユーザーを制限する
Debianではデフォルト設定の場合"su"コマンドでどのユーザーでもrootユーザーに移行することができます。
複数のユーザーがサーバーに作成されている場合、どれか一つでもユーザーのログイン情報が分かってしまうと不正アクセス後にsuコマンドでrootユーザー権限を奪取されてしまうため、できる限りsuコマンドを実行できるユーザーを制限します。
wheelグループに属するユーザーのみにsuを実行できる権限を与えることができるようにします。
4.1 wheelグループへのユーザー追加
まず、次のコマンドでwheelグループを作成する
1 |
# groupadd wheel |
usermodコマンドを実行してwheelグループへユーザーを追加します。例として追加したいユーザーを「lan」とします。
1 |
# usermod -g wheel lan |
idコマンドを利用してwheelグループへ追加されていることを確認。
1 2 |
# id lan uid=1000(lan) gid=1001(wheel) groups=1001(wheel) |
4.2 suコマンドの設定ファイルを編集
suコマンドの設定ファイルは/etc/pam.d/suになります。(15行目あたり)
1 2 3 4 5 6 7 8 9 10 |
# vi /etc/pam.d/su # Uncomment this to force users to be a member of group wheel # before they can use `su'. You can also add "group=foo" # to the end of this line if you want to use a group other # than the default "wheel" (but this may have side effect of # denying "root" user, unless she's a member of "foo" or explicitly # permitted earlier by e.g. "sufficient pam_rootok.so"). # (Replaces the `SU_WHEEL_ONLY' option from login.defs) auth required pam_wheel.so ← コメントを外す |
これで、lanユーザーは「su -」コマンドを利用してroot権限に移行できます。
5. Debian リポジトリ ミラー設定編集
リポジトリ ミラー 設定ファイルは/etc/apt/sources.listです、コピーをとってから編集します。
1 2 3 |
# cd /etc/apt/ # cp sources.list sources.list_back # vi /etc/apt/sources.list |
ファイル内容は
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# # deb cdrom:[Debian GNU/Linux 10.13.0 _Buster_ - Official amd64 NETINST 2022 0910-18:03]/ buster main #deb cdrom:[Debian GNU/Linux 10.13.0 _Buster_ - Official amd64 NETINST 20220 910-18:03]/ buster main deb http://ftp.jp.debian.org/debian/ buster main deb-src http://ftp.jp.debian.org/debian/ buster main deb http://security.debian.org/debian-security buster/updates main deb-src http://security.debian.org/debian-security buster/updates main # buster-updates, previously known as 'volatile' deb http://ftp.jp.debian.org/debian/ buster-updates main deb-src http://ftp.jp.debian.org/debian/ buster-updates main # This system was installed using small removable media # (e.g. netinst, live or single CD). The matching "deb cdrom" # entries were disabled at the end of the installation process. # For information about how to configure apt package sources, # see the sources.list(5) manual. |
一番上のは、インストール時に使ったメディアです。もう使わないので、コメントアウトしています。
日本で使う場合は、jpの付いたミラーにしておきます。
6. locateコマンドを利用できるようにする
Linuxシステム全体を対象として、特定のファイルを検索するにはfindコマンドを利用しますが、findはオプションの指定がやや分かりにくいところがあります。
locateコマンドは指定したファイル名をもつファイルを全て抽出することが可能です。
事前にファイルとフォルダ名のデータベースを作成しなければなりませんが、高速にファイルが検索出来て、使い勝手が良いというメリットがあります。ここでは"locate"コマンドを利用できるようにします。
6.1 locateパッケージのインストール
1 2 3 |
# apt install -y locate # dpkg -l | grep locate ii locate 4.6.0+git+20190209-2 amd64 maintain and query an index of a directory tree |
上記のように実行結果にlocateパッケージ名が表示されれば、インストールの確認は完了です
6.2 データベースを作成
1 |
# updatedb |
6.3 locateコマンドの実行
例として「sshd」という名前のファイルを全て検索します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# locate sshd /etc/pam.d/sshd /etc/ssh/sshd_config /etc/systemd/system/sshd.service /run/sshd /run/sshd.pid /usr/sbin/sshd /usr/share/man/man5/sshd_config.5.gz /usr/share/man/man8/sshd.8.gz /usr/share/openssh/sshd_config /usr/share/openssh/sshd_config.md5sum /usr/share/vim/vim81/syntax/sshdconfig.vim /var/lib/systemd/deb-systemd-helper-enabled/sshd.service /var/lib/ucf/cache/:etc:ssh:sshd_config |
sshdを含むファイル名のリストが表示されました。
7. ロケールの設定
Linuxシステムの言語設定です。Debianのインストール時にロケールとして日本語を選択している場合には、元々が日本語環境になっていますので、変更する必要はありません。
もしご利用の環境で「英語ロケール」で、尚且つ、日本語ロケールの方が良いという場合には実施してください。
7.1 現在のロケール確認
システムで設定されているロケールを確認します。ロケールを確認するには"localectl status"コマンドを利用します。
1 2 3 4 5 |
# localectl status System Locale: LANG=C.UTF-8 VC Keymap: n/a X11 Layout: jp X11 Model: pc105 |
上記の場合、「C.UTF-8」がロケールになりますので、Cロケール(POSIXロケール)ということになります。
7.2 日本語ロケールへ変更
Debianではロケールのリストは"localectl list-locales"コマンドで確認できます。実行してシステムで利用できるロケールを表示してみます。
1 2 3 |
# localectl list-locales C.UTF-8 ja_JP.UTF-8 |
2つのロケールが表示されました。表示された結果の「ja_JP.UTF-8」が日本語のロケールになりますので、「ja_JP.UTF-8」ロケールの設定を行います。
ロケールを設定するためには"localectl set-locale"コマンドを利用します。以下のように実行します。
1 2 3 4 5 6 7 |
# localectl set-locale LANG=ja_JP.UTF-8 確認する # localectl status System Locale: LANG=ja_JP.UTF-8 VC Keymap: n/a X11 Layout: jp X11 Model: pc105 |
上記のように「ja_JP.UTF-8」ロケールが設定されていることが確認できました。
8. タイムゾーンの設定
Debian 10のタイムゾーンはインストール時に設定されている場合がほとんどですが、もし日本のタイムゾーンである「JST」が指定されていない場合には"timedatectl"コマンドで変更できます。
8.1 現在のタイムゾーンの表示
サーバーに設定されているタイムゾーンを確認するには"timedatectl status"コマンドを実行します
1 2 3 4 5 6 7 8 |
# timedatectl status Local time: Fri 2023-02-10 15:52:04 JST Universal time: Fri 2023-02-10 06:52:04 UTC RTC time: Fri 2023-02-10 06:52:04 Time zone: Asia/Tokyo (JST, +0900) System clock synchronized: yes NTP service: active RTC in local TZ: no |
上記のようにタイムゾーンが「Asia/Tokyo (JST)」に設定されています。
8.2 タイムゾーンを日本に変更
もし、「Asia/Tokyo (JST)」になっていない場合は、"timedatectl set-timezone"コマンドでタイムゾーンを変更できます。
1 |
# timedatectl set-timezone Asia/Tokyo |
9. システムパッケージのアップデート
メディアからインストールされたDebianシステムは含まれているパッケージが古いことがあります。基本的な設定が完了した時点でシステムに含まれている パッケージを全て、新しいものに更新します。Debianでは全てのパッケージを更新するためにも"apt"を利用します。
パッケージの更新を実行しないで、更新されるパッケージのリストだけを確認するには"apt update"コマンドを実行します。以下のように実行します。
1 2 3 4 5 6 7 8 9 |
# apt update Hit:1 http://ftp.jp.debian.org/debian buster InRelease Hit:2 http://security.debian.org/debian-security buster/updates InRelease Get:3 http://ftp.jp.debian.org/debian buster-updates InRelease [56.6 kB] Fetched 56.6 kB in 0s (155 kB/s) Reading package lists... Done Building dependency tree Reading state information... Done All packages are up to date. |
パッケージのアップデートには"apt upgrade"コマンドを実行します。
1 2 3 4 5 6 |
# apt upgrade -y Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. |