1. Debian13の概要
今回はユーザーフレンドリーなLinuxディストリビューションのUBUNTUの基になっているDebianでサーバー構築する方法を説明します。最新は2026年 5 月 16 日 にリリースされた安定版 Debian 13.5 "Trixie" です。
Debian 13.5 では「Trixie」リリースに新機能は追加されていません。今回の更新は、特定のパッケージにおけるバグの修正とセキュリティ問題への対応が主な内容です。
2. Debian13.5インストールイメージのダウンロード
Debianの公式サイト にアクセスし、debian-13.5.0-amd64-netinst.isoをダウンロードする
上記で保存したisoイメージをお好きなライティングソフトでCD、USBに起動ディスクとして書き込む。
3. Debian13.5 インストール
上記で作成したインストールディスクから起動できるようにBIOSを変更して、PCを起動する。
以降、インストール手順についてはDebian13.1と同様ですので省略します。
下記ページを参考にしてください。
以降、WindowsからSSHリモート接続し、Tabby Terminalで作業します
下記コマンドでIPアドレスを確認
# ip a
Tabby Terminalで下記コマンドでDebian Serverに接続する
# ssh huong@<IP address>
4. vimエディターのインストールと設定
Debianではデフォルトのエディターとして「nano」が設定されています。nanoはやや使いにくいことや、利用されている環境が少ないためエディタを「vim」に変更する手順を紹介します。
①vimパッケージのインストール
apt installコマンドの"-y"オプションはインストール時の確認を自動的に行うオプションです。
$ su -
Password : ←Debian13のインストール過程で作成したルートユーザーパスワード
# apt install -y vim
インストール後dpkgコマンドでvimパッケージを確認してみます
# dpkg -l | grep vim
ii vim 2:9.1.1230-2 amd64 Vi IMproved - enhanced vi editor
ii vim-common 2:9.1.1230-2 all Vi IMproved - Common files
ii vim-runtime 2:9.1.1230-2 all Vi IMproved - Runtime files
ii vim-tiny 2:9.1.1230-2 amd64 Vi IMproved - enhanced vi editor - compact version
上記のようにVimがインストールされています。
➁デフォルトで利用されるエディタの変更
デフォルトのエディタをnanoからインストールした「vim」に変更します。デフォルトエディタの変更には"update-alternatives --set editor"コマンドを実行します。vimに変更する場合には以下のように実行します。
# update-alternatives --set editor /usr/bin/vim.basic
update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode
上記のように出力されれば、エディタは変更されています。
➂vimの設定変更
全てのユーザーに許可する場合は"/root/"に「.vimrc」ファイルを作成
各ユーザーごとにvimの環境を作る場合は「.vimrc」ファイルをユーザーのホームディレクトリに作成することでvimの環境を設定できます。
今回はrootユーザーのホームディレクトリ"/root/"に「.vimrc」ファイルを作成します。
# 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 history=50
" 検索時に大文字小文字を区別しない
set ignorecase
" 検索語に大文字を混ぜると検索時に大文字を区別する
set smartcase
" 検索語にマッチした単語をハイライトする
set hlsearch
" インクリメンタルサーチを使用する(検索語の入力最中から随時マッチする文字列の検索を開始)
set incsearch
" 行番号を表示する
set number
" 括弧入力時に対応する括弧を強調する
set showmatch
" ファイルの末尾に改行を入れない
set binary noeol
" 自動インデントを有効にする
set autoindent
" 構文ごとに色分け表示する
syntax on
" [ syntax on ] の場合のコメント文の色を変更する
highlight Comment ctermfg=LightCyan
" ウィンドウ幅で行を折り返す
set wrap
5. ネットワークの設定
①ホスト名の設定
Debian のインストール時にホスト名を設定していますが、何らかの理由でホスト名を変更する場合について説明します。
ホスト名の設定には"hostnamectl set-hostname"コマンドを利用します。以下のように実行します。ここではホスト名として「Lepard」を設定します。
# hostnamectl set-hostname Lepard
設定の結果は "/etc/hostname"ファイルを参照することで確認できます。
"cat"コマンドで"/etc/hostname"ファイルを参照して、以下のように設定値の「Lepard」が表示されればホスト名の確認は完了です。
# cat /etc/hostname
Lepard
➁ネットワークインターフェイスへのIPアドレス設定
Debian 13インストール時のIPアドレスはDHCP(動的IPアドレス)に設定されていますので、固定のIPアドレスを設定します。IPアドレスの設定には"/etc/network/interfaces"ファイルを変更してから、ネットワークインターフェース(今回はens33)を再起動します。
ネットワークインターフェース名はセットアップを行った環境によって変わりますので、まずはインターフェイス名を確認します。
ネットワーク情報を確認するためのコマンドは"ip addr(もしくはip a)"になります。実行することでネットワークインターフェース名やIPアドレスの情報が表示されます。
# 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 noprefixroute
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:8b:5d:aa brd ff:ff:ff:ff:ff:ff
altname enp2s1
altname enx000c298b5daa
inet 192.168.11.4/24 brd 192.168.11.255 scope global dynamic noprefixroute ens33
valid_lft 168039sec preferred_lft 146439sec
inet6 fe80::48eb:a0df:d0ff:2ed3/64 scope link
valid_lft forever preferred_lft forever
連番の次に表示されているものが「ネットワークインターフェース名」になります。「lo」は「ローカルループバックインターフェイス」になりますので、通常は利用されません。上記の場合は「ens33」がネットワークインターフェース名です。
➂固定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ファイルを開きます。
# 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
④固定IPアドレスの有効化
# systemctl restart networking ifup@ens33
6. 時刻同期サービスを提供する NTP サーバー
①timesyncdサービスの設定
timesyncdサービスの設定は"/etc/systemd/timesyncd.conf"ファイルで行います。ファイルの変更前に、元のファイルをバックアップとしてコピーしておきます。
# cp -p /etc/systemd/timesyncd.conf /etc/systemd/timesyncd.conf.org
設定ファイルを編集していきます
# 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
#ConnectionRetrySec=30
#SaveIntervalSec=60
これを次のように日本国内のタイムサーバーに変更します。
[Time]
NTP=ntp.jst.mfeed.ad.jp
FallbackNTP=ntp.nict.jp
#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
#ConnectionRetrySec=30
#SaveIntervalSec=60
➁timesyncdサービスの設定の反映
# systemctl restart systemd-timesyncd
エラーが出力されなければ、サービスは再起動しています。時刻同期の確認をおこないます。時刻同期の確認は"timedatectl status"コマンドで行います。以下のように実行します。
# timedatectl status
Local time: Mon 2026-05-18 19:22:38 JST
Universal time: Mon 2026-05-18 10:22:38 UTC
RTC time: Mon 2026-05-18 10:22:38
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
「System clock synchronized: yes」と表示されていれば時刻同期は行われています。
7. suできるユーザーを制限する
Debianではデフォルト設定の場合"su"コマンドでどのユーザーでもrootユーザーに移行することができます。
複数のユーザーがサーバーに作成されている場合、どれか一つでもユーザーのログイン情報が分かってしまうと不正アクセス後にsuコマンドでrootユーザー権限を奪取されてしまうため、できる限りsuコマンドを実行できるユーザーを制限します。
wheelグループに属するユーザーのみにsuを実行できる権限を与えることができるようにします。
①wheelグループへのユーザー追加
まず、次のコマンドでwheelグループを作成する
# groupadd wheel
usermodコマンドを実行してwheelグループへユーザーを追加します。例として追加したいユーザーを「lan」とします。
# useradd lan
# usermod -g wheel lan
idコマンドを利用してwheelグループへ追加されていることを確認。
# id lan
uid=1001(lan) gid=1001(wheel) groups=1001(wheel)
➁suコマンドの設定ファイルを編集
suコマンドの設定ファイルは/etc/pam.d/suになります
# vi /etc/pam.d/su
(15行目あたり)
# 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権限に移行できます。
8. Debian リポジトリ ミラー設定編集
リポジトリ ミラー 設定ファイルは/etc/apt/sources.listです、コピーをとってから編集します。
# cd /etc/apt/
# cp sources.list sources.list_org
# vi sources.list
ファイル内容は
#deb cdrom:[Debian GNU/Linux 13.5.0 _Trixie_ - Official amd64 NETINST with firmware 20260516-10:08]/ trixie contrib main non-free-firmware
deb http://deb.debian.org/debian/ trixie main non-free-firmware
deb-src http://deb.debian.org/debian/ trixie main non-free-firmware
deb http://security.debian.org/debian-security trixie-security main non-free-firmware
deb-src http://security.debian.org/debian-security trixie-security main non-free-firmware
# trixie-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://deb.debian.org/debian/ trixie-updates main non-free-firmware
deb-src http://deb.debian.org/debian/ trixie-updates main non-free-firmware
# 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.
一番上のは、インストール時に使ったメディアです。もう使わないので、コメントアウトしています。
Backports リポジトリを追加(最終行に下記を追記)
deb http://deb.debian.org/debian/ trixie-backports main non-free-firmware
ソースリストをアップデート
# apt update
上記コマンドを実行すると、次のようなエラーが出る場合
Err:3 http://security.debian.org/debian-security trixie/security InRelease Temporary failure resolving 'security.debian.org'
Err:2 http://ftp.jp.debian.org/debian trixie-updates InRelease Temporary failure resolving 'ftp.jp.debian.org'
Err:1 http://ftp.jp.debian.org/debian trixie InRelease Temporary failure resolving 'ftp.jp.debian.org'
どうもDNSサーバーで名前解決ができていないようなのでresolv.confに当方のnameserverを下記の通り明記しました
# vi /etc/resolv.conf
nameserver 192.168.11.1
再度updateするとうまくいきました。
9. locateコマンドを利用できるようにする
Linuxシステム全体を対象として、特定のファイルを検索するにはfindコマンドを利用しますが、findはオプションの指定がやや分かりにくいところがあります。
locateコマンドは指定したファイル名をもつファイルを全て抽出することが可能です。
事前にファイルとフォルダ名のデータベースを作成しなければなりませんが、高速にファイルが検索出来て、使い勝手が良いというメリットがあります。ここでは"locate"コマンドを利用できるようにします。
①locateパッケージのインストール
# apt install -y locate
# dpkg -l | grep locate
ii locate 4.10.0-3 amd64 maintain and query an index of a directory tree
上記のように実行結果にlocateパッケージ名が表示されれば、インストールの確認は完了です
➁データベースを作成
# updatedb
➂locateコマンドの実行
例として「sshd」という名前のファイルを全て検索します。
# locate sshd
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/ssh/sshd_config.d
/etc/systemd/system/ssh.service.wants/sshd-keygen.service
/etc/systemd/system/ssh.socket.wants/sshd-keygen.service
/etc/systemd/system/sshd.service
/etc/systemd/system/sshd.service.wants
/etc/systemd/system/sshd.service.wants/sshd-keygen.service
/etc/systemd/system/sshd@.service.wants
/etc/systemd/system/sshd@.service.wants/sshd-keygen.service
/run/sshd
/run/sshd.pid
/run/systemd/generator/sockets.target.wants/sshd-unix-local.socket
/run/systemd/generator/sockets.target.wants/sshd-vsock.socket
/run/systemd/generator/sshd-unix-local.socket
/run/systemd/generator/sshd-unix-local@.service
/run/systemd/generator/sshd-vsock.socket
/run/systemd/generator/sshd-vsock@.service
/usr/lib/openssh/sshd-auth
/usr/lib/openssh/sshd-session
/usr/lib/systemd/system/sshd-keygen.service
/usr/lib/systemd/system/sshd@.service
/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/vim91/ftplugin/sshdconfig.vim
/usr/share/vim/vim91/syntax/sshdconfig.vim
/var/lib/systemd/deb-systemd-helper-enabled/ssh.service.wants/sshd-keygen.service
/var/lib/systemd/deb-systemd-helper-enabled/ssh.socket.wants/sshd-keygen.service
/var/lib/systemd/deb-systemd-helper-enabled/sshd-keygen.service.dsh-also
/var/lib/systemd/deb-systemd-helper-enabled/sshd.service
/var/lib/systemd/deb-systemd-helper-enabled/sshd.service.wants
/var/lib/systemd/deb-systemd-helper-enabled/sshd.service.wants/sshd-keygen.service
/var/lib/systemd/deb-systemd-helper-enabled/sshd@.service.wants
/var/lib/systemd/deb-systemd-helper-enabled/sshd@.service.wants/sshd-keygen.service
/var/lib/ucf/cache/:etc:ssh:sshd_config
sshdを含むファイル名のリストが表示されました。
10. ロケールの設定
Linuxシステムの言語設定です。Debianのインストール時にロケールとして英語を選択しています。
もしご利用の環境で「英語ロケール」で、尚且つ、日本語ロケールの方が良いという場合には実施してください。
①現在のロケール確認
システムで設定されているロケールを確認します。ロケールを確認するには"localectl status"コマンドを利用します。
現在はLANG=en_US.UTF-8で英語になっています
# localectl status
System Locale: LANG=en_US.UTF-8
LANGUAGE=en_US:en
VC Keymap: (unset)
X11 Layout: jp
X11 Model: pc105
➁日本語ロケールへ変更
dpkg-reconfigureコマンドで、ロケールを設定します
# dpkg-reconfigure locales
"en_US.UTF-8 UTF-8" のチェックを外す

"ja_JP.UTF-8 UTF-8 "を選択し、チェックを入れる

"ja_JP,UTF-8"を選択し、OK クリック

下記のように表示される
Generating locales (this might take a while)…
ja_JP.UTF-8… done
Generation complete.
*** update-locale: Warning: LANGUAGE ("en_US:en") is not compatible with LANG (ja_JP.UTF-8). Disabling it.
再度確認する
# localectl status
System Locale: LANG=ja_JP.UTF-8
VC Keymap: (unset)
X11 Layout: jp
X11 Model: pc105
上記のように「ja_JP.UTF-8」ロケールが設定されていることが確認できました。
11. タイムゾーンの設定
Debian のタイムゾーンはインストール時に設定されている場合がほとんどですが、もし日本のタイムゾーンである「JST」が指定されていない場合には"timedatectl"コマンドで変更できます。
①現在のタイムゾーンの表示
サーバーに設定されているタイムゾーンを確認するには"timedatectl status"コマンドを実行します
# timedatectl status
Local time: Mon 2026-05-18 21:17:35 JST
Universal time: Mon 2026-05-18 12:17:35 UTC
RTC time: Mon 2026-05-18 12:17:35
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
上記のようにタイムゾーンが「Asia/Tokyo (JST)」に設定されています。
➁タイムゾーンを日本に変更
もし、「Asia/Tokyo (JST)」になっていない場合は、"timedatectl set-timezone"コマンドでタイムゾーンを変更できます。
# timedatectl set-timezone Asia/Tokyo
12. システムパッケージのアップデート
メディアからインストールされたDebianシステムは含まれているパッケージが古いことがあります。基本的な設定が完了した時点でシステムに含まれている パッケージを全て、新しいものに更新します。Debianでは全てのパッケージを更新するためにも"apt"を利用します。
パッケージの更新を実行しないで、更新されるパッケージのリストだけを確認するには"apt update"コマンドを実行します。以下のように実行します。
# apt update
Hit:1 http://deb.debian.org/debian trixie InRelease
Hit:2 http://deb.debian.org/debian trixie-updates InRelease
Hit:3 http://security.debian.org/debian-security trixie-security InRelease
Hit:4 http://deb.debian.org/debian trixie-backports InRelease
All packages are up to date.
今回はnet installのためすべてアップデート済みですが、もしアップデートするパッケージあれば"apt upgrade"コマンドを実行します。
# apt upgrade -y
Summary:
Upgrading: 0, Installing: 0, Removing: 0, Not Upgrading: 0

