Contents
1. vimエディターのインストールと設定
Debianではデフォルトのエディターとして「nano」が設定されています。nanoはやや使いにくいことや、利用されている環境が少ないためエディタを「vim」に変更する手順を紹介します。
1.1 vimパッケージの確認
Debian にはデフォルトでvimがインストールされていますが「vim-tiny」というパッケージになり、機能が少ないバージョンになります。インストールされ ているvimパッケージを確認してみます。Debianではパッケージの確認に"dpkg"コマンドを利用します。"-l"オプションを付けるとパッケー ジリストが表示されます。
"dpkg"コマンドをそのまま実行するとシステムにインストールされている全てのパッケージが表示されるため、文字列「vim」を含むパッケージのみを"grep"コマンドで抽出します。以下のように実行します。
1 2 3 |
huong@debian:~$ 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」パッケージのみがインストールされていることが確認できます。
以降 「huong@debian:~$」は「$」,「root@debian:~#」は「#」に省略して記載します。また、ルートユーザー権限で作業を進めます。
1.2 vimパッケージのインストール
apt installコマンドの"-y"オプションはインストール時の確認を自動的に行うオプションです。
1 2 3 4 5 6 7 8 9 |
$ su - Password : ←Debian11.3のインストール過程で作成したルートユーザーパスワード # apt install -y vim インストール後に再度、dpkgコマンドでvimパッケージを確認してみます # dpkg -l | grep vim ii vim 2:8.2.2434-3+deb11u1 amd64 Vi IMproved - enhanced vi editor ii vim-common 2:8.2.2434-3+deb11u1 all Vi IMproved - Common files ii vim-runtime 2:8.2.2434-3+deb11u1 all Vi IMproved - Runtime files ii vim-tiny 2:8.2.2434-3+deb11u1 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: /usr/bin/editor (editor) を提供するためにマニュアルモードで /usr/bin/vim.basic を使います |
上記のように出力されれば、エディタは変更されています。
1.4 vimの設定変更
全てのユーザーに許可する場合は"/root/"に「.vimrc」ファイルを作成
各ユーザーごとにvimの環境を作る場合は「.vimrc」ファイルをユーザーのホームディレクトリに作成することでvimの環境を設定できます。
今回はrootユーザーのホームディレクトリ"/root/"に「.vimrc」ファイルを作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# 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"コマンドを利用します。以下のように実行します。ここではホスト名として「debian-user」を設定します。
1 |
# hostnamectl set-hostname debian-user |
設定の結果は "/etc/hostname"ファイルを参照することで確認できます。
"cat"コマンドで"/etc/hostname"ファイルを参照して、以下のように設定値の「debian-user」が表示されればホスト名の確認は完了です。
1 2 |
# cat /etc/hostname debian-user |
2.2 ネットワークインターフェイスへのIPアドレス設定
Debian 11インストール時のIPアドレスはDHCP(動的IPアドレス)に設定されていますので、固定のIPアドレスを設定します。IPアドレスの設定には"/etc/network/interfaces"ファイルを変更してから、ネットワークインターフェース(今回はens33)を再起動します。
ネットワークインターフェース名はセットアップを行った環境によって変わりますので、まずはインターフェイス名を確認します。
ネットワーク情報を確認するためのコマンドは"ip addr"になります。実行することでネットワークインターフェース名やIPアドレスの情報が表示されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 00:0c:29:1b:55:05 brd ff:ff:ff:ff:ff:ff altname enp2s1 inet 192.168.11.52/24 brd 192.168.11.255 scope global dynamic ens33 valid_lft 166871sec preferred_lft 166871sec inet6 fe80::20c:29ff:fe1b:5505/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 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# vi /etc/network/interfaces 初期値は以下のようになっています # 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 |
viコマンドで設定ファイルを編集していきます
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# vi /etc/systemd/timesyncd.conf 初期値は以下のようになっています [Time] #NTP= #FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 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: 金 2022-05-27 19:01:54 JST Universal time: 金 2022-05-27 10:01:54 UTC RTC time: 金 2022-05-27 10:01:54 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 |
# 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 |
#deb cdrom:[Debian GNU/Linux 11.3.0 _Bullseye_ - Official amd64 NETINST 2022 0326-11:22]/ bullseye main deb http://ftp.jp.debian.org/debian/ bullseye main deb-src http://ftp.jp.debian.org/debian/ bullseye main deb http://security.debian.org/debian-security bullseye-security main deb-src http://security.debian.org/debian-security bullseye-security main # bullseye-updates, to get updates before a point release is made; # see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_upda tes_and_backports deb http://ftp.jp.debian.org/debian/ bullseye-updates main deb-src http://ftp.jp.debian.org/debian/ bullseye-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.8.0-1 amd64 maintain and query an index of a directory tree |
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 11のタイムゾーンはインストール時に設定されている場合がほとんどですが、もし日本のタイムゾーンである「JST」が指定されていない場合には"timedatectl"コマンドで変更できます。
8.1 現在のタイムゾーンの表示
サーバーに設定されているタイムゾーンを確認するには"timedatectl status"コマンドを実行します
1 2 3 4 5 6 7 8 |
# timedatectl status Local time: 金 2022-05-27 19:28:34 JST Universal time: 金 2022-05-27 10:28:34 UTC RTC time: 金 2022-05-27 10:28:34 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 10 11 12 |
# apt update 取得:1 http://security.debian.org/debian-security bullseye-security InRelease [44.1 kB] ヒット:2 http://ftp.jp.debian.org/debian bullseye InRelease 取得:3 http://ftp.jp.debian.org/debian bullseye-updates InRelease [39.4 kB] 取得:4 http://security.debian.org/debian-security bullseye-security/main Sources [123 kB] 取得:5 http://security.debian.org/debian-security bullseye-security/main amd64 Packages [151 kB] 取得:6 http://security.debian.org/debian-security bullseye-security/main Translation-en [93.8 kB] 451 kB を 1秒 で取得しました (498 kB/s) パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています... 完了 状態情報を読み取っています... 完了 アップグレードできるパッケージが 1 個あります。表示するには 'apt list --upgradable' を実行してください。 |
1 2 3 4 5 6 7 8 9 10 11 12 |
# apt upgrade -y アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。 2,529 kB のアーカイブを取得する必要があります。 この操作後に追加で 99.3 kB のディスク容量が消費されます。 取得:1 http://security.debian.org/debian-security bullseye-security/main amd64 dpkg amd64 1.20.10 [2,529 kB] 2,529 kB を 0秒 で取得しました (40.3 MB/s) apt-listchanges: changelog を読み込んでいます... (データベースを読み込んでいます ... 現在 38002 個のファイルとディレクトリがイン ストールされています。) .../dpkg_1.20.10_amd64.deb を展開する準備をしています ... dpkg (1.20.10) で (1.20.9 に) 上書き展開しています ... dpkg (1.20.10) を設定しています ... man-db (2.9.4-2) のトリガを処理しています ... |