- 技術 💻
パラメータシートの書き方|サーバー設定項目の一覧と記入例テンプレート
パラメータシートとは、1台のサーバーに入れる設定値を、項目ごとに1行ずつ書いた一覧表です。 読んだ人が同じサーバーを作り直せること、そして「なぜこの値なのか」が後から分かることが役目です。
この記事では、Linux サーバーの項目一覧と記入例をタブ区切りで載せ、ip・sysctl・sshd -T などで実機の値を取り出してシートと突き合わせた実行結果を示します。環境ごとの差分を横に並べる一覧ではなく、1台分の設定値を書く文書に絞ります。
確認環境:Ubuntu 24.04.4 LTS(カーネル 6.18.44)、OpenSSH 9.6p1、nginx 1.24.0、iproute2 6.1.0、procps-ng 4.0.4、bash 5.2.21、GNU Awk 5.2.1(確認日 2026-10-05)。Linux のコマンドはすべてこの環境で実行しました。systemd で起動していないコンテナのため、ホスト名とタイムゾーンは hostname と /etc/localtime から取り出しています。出力例のパスは /home/taro/params に置き換えています。
この記事の結論
- 1行に 項目・設定値・既定値・変更の有無・設定根拠・確認コマンド を並べる。
- 既定値と変更の有無を書くと、レビューする人は「変えた行」だけを重点的に見られる。
- 確認コマンドを書いておくと、シートと実機の突き合わせをスクリプトで自動にできる。
- 全項目は書かない。変えた項目と、設計で意識した項目に絞る(
sysctl -aは確認環境で 791 行ありました)。 - 台数が多い・作り直しが多いならコードで管理し、設定根拠はどちらの場合も文章で残す。
パラメータシートの列の早見表
| 列 | 書くこと | 記入例 |
|---|---|---|
| 区分 | 項目のまとまり | sshd |
| 項目 | 設定ファイルやコマンドで使う正式な名前 | PasswordAuthentication |
| 設定値 | このサーバーに入れる値 | no |
| 既定値 | 何も設定しないときの値 | yes |
| 変更 | 既定値から変えたかどうか(有・無) | 有 |
| 設定根拠 | なぜその値にしたか | 公開鍵認証に統一 |
| 確認コマンド | 実機から値を取り出すコマンド | sshd -T の passwordauthentication の行 |
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「パラメータシートの書き方|サーバー設定項目の一覧と記入例テンプレート」
基本設計書・詳細設計書・パラメータシート・構成管理コードの違い
| 文書 | 書くこと | 粒度 | 更新のきっかけ |
|---|---|---|---|
| 基本設計書 | 構成の方針(サーバーの役割、台数、接続の向き、冗長化の考え方) | システム全体 | 構成や方針が変わるとき |
| 詳細設計書 | 方針を満たすための設計内容(ディレクトリ構成、ログの出力先、権限の考え方)と、その理由 | 機能・サーバーの種類ごと | 設計を見直すとき |
| パラメータシート | 1台のサーバーに入れる設定値を、項目ごとに1行で | サーバー1台・設定項目1つ | 値を1つでも変えるとき |
| 構成管理コード(Ansible/Terraform) | 設定値そのものを、ツールが読み込んで適用できる形で | サーバー1台・リソース1つ | 値を変えるとき(コードの変更=設定の変更) |
Ansible の公式ドキュメントは、YAML で書いた playbook にシステムのあるべき状態を宣言し、対象にエージェントを入れずに動かす仕組みと説明しています。Terraform の公式ドキュメントは、宣言的な設定ファイルでクラウドやオンプレミスのリソースを構築・変更・版管理するツールと説明しています。どちらも設定値をコードに書く点で、パラメータシートと役割が重なります。
手で書く範囲とコードで管理する範囲の判断基準
| 条件 | 選ぶ方法 | 理由 |
|---|---|---|
| 同じ設定のサーバーが3台以上ある、または作り直す機会が多い | コードで管理する | 値を1か所直せば全台に同じ内容を適用できる |
| 1〜2台で、作り直す予定がほとんどない | パラメータシートに手で書く | コードを整える手間より、表の見やすさが役立つ |
| 設定根拠・既定値からの変更理由を残したい | パラメータシート(コード管理の場合もコメントか別表で残す) | コードには値が書けても、理由は書かなければ残らない |
| 納品物や引き継ぎ資料として一覧が求められる | パラメータシート(コードから値を取り出して作ってもよい) | コードを読まない人も確認できる |
| 画面でしか設定できない項目がある | パラメータシートに手で書く | コードにできない範囲は表で補う |
| 値の変更履歴をレビューしたい | コードで管理する | 差分が1行単位で見える |
コードで管理する場合も、表の「設定根拠」にあたる情報は残します。値はコードから読み取れますが、理由は誰かが書かない限りどこにも残らないためです。
Linuxサーバーの設定項目一覧
7つの区分で、よく書く項目と取り出すコマンドをまとめました。
| 区分 | 項目 | 取り出すコマンド | 書くときの注意 |
|---|---|---|---|
| OS基本 | ホスト名 | hostname(systemd の環境は hostnamectl でも表示できる) |
命名規則を根拠に書く |
| OS基本 | OS名とバージョン | . /etc/os-release; echo $PRETTY_NAME |
小数点以下の版まで書く |
| OS基本 | カーネルのバージョン | uname -r |
更新で変わるので確認日を添える |
| OS基本 | CPUコア数・メモリ量 | nproc、free -m |
見積もりの根拠(負荷試験など)を書く |
| OS基本 | ディスクの割り当て | df -h |
マウント先ごとに1行 |
| OS基本 | ロケール | locale |
文字コードを明記する |
| OS基本 | 開けるファイル数の上限 | ulimit -n |
実行ユーザーで取り出す |
| ネットワーク | IPアドレスとプレフィックス長 | ip -br addr show dev eth0 |
インターフェース名も書く |
| ネットワーク | デフォルトゲートウェイ | ip route show default |
経路が複数あれば経路ごとに1行 |
| ネットワーク | DNSサーバー | grep ^nameserver /etc/resolv.conf |
順番にも意味があるので1番目・2番目と分ける |
| ネットワーク | hosts の登録 | cat /etc/hosts |
追加した行だけを書く |
| ネットワーク | 待ち受けポート | ss -lnt |
ポート・アドレス・用途を書く |
| 時刻 | タイムゾーン | readlink -f /etc/localtime(systemd の環境は timedatectl でも表示できる) |
ログの時刻に関わるので根拠を書く |
| 時刻 | 時刻同期の状態 | timedatectl(System clock synchronized の表示) |
同期先は使う製品の設定ファイルの値を書く |
| ユーザー | 作成するユーザー | getent passwd ユーザー名 |
UID・ホーム・シェルを1行に |
| ユーザー | 管理者グループの所属 | getent group sudo |
個人ごとのアカウントを書く |
| ユーザー | ミドルウェアの実行ユーザー | getent passwd www-data |
ログインシェルの有無を書く |
| sshd | Port、PermitRootLogin、PasswordAuthentication、PubkeyAuthentication | sshd -T |
設定ファイルではなく、読み込んだ結果の値を取り出す |
| sshd | MaxAuthTries、ClientAliveInterval、ClientAliveCountMax | sshd -T |
秒数と回数の掛け算の結果も根拠に書く |
| sshd | AllowUsers、X11Forwarding | sshd -T |
許可するユーザーは1人1行で出る |
| カーネル | net.ipv4.ip_forward、net.ipv4.tcp_syncookies | sysctl 項目名 |
役割(ルーターかどうか)と結び付けて書く |
| カーネル | net.core.somaxconn、vm.swappiness | sysctl 項目名 |
変えた項目と、設計で意識した項目だけを書く |
| ミドルウェア | nginx:worker_processes、worker_connections | nginx -T |
CPU コア数との関係を書く |
| ミドルウェア | nginx:keepalive_timeout、client_max_body_size、server_tokens、listen | nginx -T |
include されたファイルの値も -T でまとめて出る |
この記事では、作業用に置いた設定ファイルを -f で指定して sshd -T を実行しています。-f を付けずに実行すると、/etc/ssh/sshd_config を読み込んだ結果が表示されました。
記入例テンプレート(架空の備品予約システムのWebサーバー)
サーバー名 yoyaku-web01 の1台分です。確認コマンドは、実行すると設定値と同じ文字列が1行で返る形にそろえています。
| 区分 | 項目 | 設定値 | 既定値 | 変更 | 設定根拠 | 確認コマンド |
|---|---|---|---|---|---|---|
| OS基本 | ホスト名 | yoyaku-web01 | - | 有 | 命名規則(システム名-役割-連番) | hostname |
| OS基本 | OS名とバージョン | Ubuntu 24.04.4 LTS | - | 無 | 検証済みの LTS 版に固定 | . /etc/os-release; echo $PRETTY_NAME |
| OS基本 | CPUコア数 | 2 | - | 無 | 同時接続 100 の負荷試験結果から | nproc |
| ネットワーク | IPv4アドレス(eth0) | 192.0.2.2/24 | - | 有 | アドレス管理表の割り当て | ip -4 -o addr show dev eth0 | awk '{print $4}' |
| ネットワーク | デフォルトゲートウェイ | 192.0.2.1 | - | 有 | セグメントの標準ゲートウェイ | ip route show default | awk '{print $3}' |
| ネットワーク | DNSサーバー(1番目) | 192.0.2.53 | - | 有 | 社内 DNS を優先 | awk '/^nameserver/{print $2; exit}' /etc/resolv.conf |
| 時刻 | タイムゾーン | Asia/Tokyo | - | 有 | ログの時刻を日本時間でそろえる | readlink -f /etc/localtime | sed 's#/usr/share/zoneinfo/##' |
| ユーザー | アプリ実行ユーザーのシェル | /usr/sbin/nologin | /usr/sbin/nologin | 無 | 対話ログインをさせない | getent passwd www-data | cut -d: -f7 |
| ユーザー | sudo グループの所属 | taro | - | 有 | 管理者は個人アカウントで操作 | getent group sudo | cut -d: -f4 |
| sshd | PermitRootLogin | no | prohibit-password | 有 | root の直接ログインを使わない | sshd -T -f /home/taro/params/sshd_config | awk '$1=="permitrootlogin"{print $2}' |
| sshd | PasswordAuthentication | no | yes | 有 | 公開鍵認証に統一 | sshd -T -f /home/taro/params/sshd_config | awk '$1=="passwordauthentication"{print $2}' |
| sshd | MaxAuthTries | 3 | 6 | 有 | 試行回数を絞る | sshd -T -f /home/taro/params/sshd_config | awk '$1=="maxauthtries"{print $2}' |
| sshd | ClientAliveInterval | 300 | 0 | 有 | 無通信の接続を 10 分で切る(300 秒 × 2 回) | sshd -T -f /home/taro/params/sshd_config | awk '$1=="clientaliveinterval"{print $2}' |
| カーネル | net.ipv4.ip_forward | 0 | 0 | 無 | ルーターとして使わない | sysctl -n net.ipv4.ip_forward |
| カーネル | net.core.somaxconn | 4096 | 4096 | 無 | 既定値で接続待ちに余裕あり | sysctl -n net.core.somaxconn |
| カーネル | vm.swappiness | 10 | 60 | 有 | メモリ上のデータをなるべくスワップに出さない | sysctl -n vm.swappiness |
| ミドルウェア | nginx worker_processes | 2 | 1 | 有 | CPU コア数に合わせる | nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | awk '$1=="worker_processes"{gsub(";","",$2); print $2}' |
| ミドルウェア | nginx client_max_body_size | 20m | 1m | 有 | 添付ファイルの上限 20MB に合わせる | nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | awk '$1=="client_max_body_size"{gsub(";","",$2); print $2}' |
| ミドルウェア | nginx server_tokens | off | on | 有 | 応答ヘッダーに版番号を出さない | nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | awk '$1=="server_tokens"{gsub(";","",$2); print $2}' |
タブ区切り版
表計算ソフトの A1 セルに貼ると7列に分かれます。値のない欄には - を入れています(後半のスクリプトで読み込むためです)。
区分 項目 設定値 既定値 変更 設定根拠 確認コマンド
OS基本 ホスト名 yoyaku-web01 - 有 命名規則(システム名-役割-連番) hostname
OS基本 OS名とバージョン Ubuntu 24.04.4 LTS - 無 検証済みの LTS 版に固定 . /etc/os-release; echo $PRETTY_NAME
OS基本 CPUコア数 2 - 無 同時接続 100 の負荷試験結果から nproc
ネットワーク IPv4アドレス(eth0) 192.0.2.2/24 - 有 アドレス管理表の割り当て ip -4 -o addr show dev eth0 | awk '{print $4}'
ネットワーク デフォルトゲートウェイ 192.0.2.1 - 有 セグメントの標準ゲートウェイ ip route show default | awk '{print $3}'
ネットワーク DNSサーバー(1番目) 192.0.2.53 - 有 社内 DNS を優先 awk '/^nameserver/{print $2; exit}' /etc/resolv.conf
時刻 タイムゾーン Asia/Tokyo - 有 ログの時刻を日本時間でそろえる readlink -f /etc/localtime | sed 's#/usr/share/zoneinfo/##'
ユーザー アプリ実行ユーザーのシェル /usr/sbin/nologin /usr/sbin/nologin 無 対話ログインをさせない getent passwd www-data | cut -d: -f7
ユーザー sudo グループの所属 taro - 有 管理者は個人アカウントで操作 getent group sudo | cut -d: -f4
sshd PermitRootLogin no prohibit-password 有 root の直接ログインを使わない sshd -T -f /home/taro/params/sshd_config | awk '$1=="permitrootlogin"{print $2}'
sshd PasswordAuthentication no yes 有 公開鍵認証に統一 sshd -T -f /home/taro/params/sshd_config | awk '$1=="passwordauthentication"{print $2}'
sshd MaxAuthTries 3 6 有 試行回数を絞る sshd -T -f /home/taro/params/sshd_config | awk '$1=="maxauthtries"{print $2}'
sshd ClientAliveInterval 300 0 有 無通信の接続を 10 分で切る(300 秒 × 2 回) sshd -T -f /home/taro/params/sshd_config | awk '$1=="clientaliveinterval"{print $2}'
カーネル net.ipv4.ip_forward 0 0 無 ルーターとして使わない sysctl -n net.ipv4.ip_forward
カーネル net.core.somaxconn 4096 4096 無 既定値で接続待ちに余裕あり sysctl -n net.core.somaxconn
カーネル vm.swappiness 10 60 有 メモリ上のデータをなるべくスワップに出さない sysctl -n vm.swappiness
ミドルウェア nginx worker_processes 2 1 有 CPU コア数に合わせる nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | awk '$1=="worker_processes"{gsub(";","",$2); print $2}'
ミドルウェア nginx client_max_body_size 20m 1m 有 添付ファイルの上限 20MB に合わせる nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | awk '$1=="client_max_body_size"{gsub(";","",$2); print $2}'
ミドルウェア nginx server_tokens off on 有 応答ヘッダーに版番号を出さない nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | awk '$1=="server_tokens"{gsub(";","",$2); print $2}'
実機から設定値を取り出すコマンドと出力
シートを書く前に、検証機で値を取り出しておくと記入が正確になります。
OS基本
$ hostname
vm
$ . /etc/os-release; echo $PRETTY_NAME
Ubuntu 24.04.4 LTS
$ uname -r
6.18.44-fc-v70
$ nproc
2
$ free -m | awk 'NR==2{print $2" MB"}'
8031 MB
ネットワーク
$ ip -br addr show dev eth0
eth0 UP 192.0.2.2/24
$ ip route show default
default via 192.0.2.1 dev eth0
$ grep ^nameserver /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
時刻
$ readlink -f /etc/localtime
/usr/share/zoneinfo/Etc/UTC
$ echo $TZ; date '+%Z %z'
Asia/Tokyo
JST +0900
$ env -u TZ date '+%Z %z'
UTC +0000
date の表示は環境変数 TZ の影響を受けます。この検証機では TZ=Asia/Tokyo が設定されていたため date は JST を表示しましたが、システムの設定(/etc/localtime)は UTC でした。パラメータシートに書くのはシステムの設定のほうです。
ユーザー
$ getent passwd www-data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
$ getent group sudo
sudo:x:27:ubuntu
$ awk -F: '$3>=1000 && $3<65534{print $1,$3,$6,$7}' /etc/passwd
ubuntu 1000 /home/ubuntu /bin/bash
sshd
設定ファイルの中身ではなく、sshd が読み込んだ結果を sshd -T で取り出します。作業用の設定ファイルは次の内容です。
Port 22
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
X11Forwarding no
AllowUsers taro deploy
$ sshd -T -f /home/taro/params/sshd_config | grep -E '^(port|permitrootlogin|passwordauthentication|pubkeyauthentication|maxauthtries|clientaliveinterval|clientalivecountmax|x11forwarding|allowusers) '
port 22
maxauthtries 3
clientaliveinterval 300
clientalivecountmax 2
permitrootlogin no
pubkeyauthentication yes
passwordauthentication no
x11forwarding no
allowusers taro
allowusers deploy
項目名はすべて小文字で表示され、AllowUsers taro deploy は1人1行に分かれました。
カーネルパラメータ
$ sysctl net.ipv4.ip_forward net.ipv4.tcp_syncookies net.core.somaxconn vm.swappiness
net.ipv4.ip_forward = 0
net.ipv4.tcp_syncookies = 1
net.core.somaxconn = 4096
vm.swappiness = 60
$ sysctl -a 2>/dev/null | wc -l
791
ミドルウェア(nginx)
$ nginx -T -c /home/taro/params/ngx/nginx.conf 2>/dev/null | grep -E 'worker_processes|worker_connections|server_tokens|keepalive_timeout|client_max_body_size|listen'
worker_processes 2;
events { worker_connections 1024; }
server_tokens off;
keepalive_timeout 30s;
client_max_body_size 20m;
listen 127.0.0.1:9891;
既定値の調べ方:sshd -T で既定との差分を取る
「既定値」と「変更の有無」の列は、空の設定ファイルを読ませた結果と比べると機械的に埋められます。
$ sshd -T -f /dev/null | sort > sshd_default.txt
$ sshd -T -f /home/taro/params/sshd_config | sort > sshd_actual.txt
$ wc -l sshd_default.txt sshd_actual.txt
92 sshd_default.txt
94 sshd_actual.txt
186 total
$ diff sshd_default.txt sshd_actual.txt
4a5,6
> allowusers deploy
> allowusers taro
17,18c19,20
< clientalivecountmax 3
< clientaliveinterval 0
---
> clientalivecountmax 2
> clientaliveinterval 300
53c55
< maxauthtries 6
---
> maxauthtries 3
57c59
< passwordauthentication yes
---
> passwordauthentication no
61c63
< permitrootlogin without-password
---
> permitrootlogin no
> の行が、既定値から変えた(または追加した)設定です。この差分がそのまま「変更:有」の行になります。
この記事の記入例で使った既定値と、確かめた方法は次のとおりです。
| 項目 | 既定値 | 確かめた方法 |
|---|---|---|
| sshd PermitRootLogin | prohibit-password | OpenBSD マニュアル sshd_config(5)。sshd -T -f /dev/null の表示は without-password |
| sshd PasswordAuthentication | yes | 同マニュアル、sshd -T -f /dev/null |
| sshd MaxAuthTries | 6 | 同上 |
| sshd ClientAliveInterval / ClientAliveCountMax | 0 / 3 | 同上 |
| sshd X11Forwarding | no | 同上 |
| net.ipv4.ip_forward | 0 | Linux カーネル文書 IP Sysctl |
| net.ipv4.tcp_syncookies | 1 | 同上 |
| net.core.somaxconn | 4096(Linux 5.4 より前は 128) | 同上 |
| vm.swappiness | 60(指定できる範囲は 0〜200) | Linux カーネル文書 sysctl/vm |
| nginx worker_processes | 1 | nginx 公式ドキュメント Core functionality |
| nginx worker_connections | 512 | 同上 |
| nginx client_max_body_size | 1m | nginx 公式ドキュメント ngx_http_core_module |
| nginx keepalive_timeout | 75s | 同上 |
| nginx server_tokens | on | 同上 |
パラメータシートと実機を突き合わせるシェルスクリプト
タブ区切りのシートを読み、確認コマンドの結果と設定値を比べます。
#!/usr/bin/env bash
# 使い方: bash check_params.sh params.tsv
# パラメータシート(タブ区切り)の「設定値」と、確認コマンドで取り出した値を突き合わせる
sheet="${1:?シートのファイル名を指定してください}"
ok=0; ng=0
printf '%s\t%s\t%s\t%s\n' "判定" "項目" "シートの値" "サーバーの値"
while IFS=$'\t' read -r kubun item want default changed reason cmd; do
[ "$kubun" = "区分" ] && continue # 見出し行を飛ばす
got="$(bash -c "$cmd" 2>&1 | head -n 1)" # 確認コマンドを実行して1行目を取る
if [ "$got" = "$want" ]; then
mark="一致"; ok=$((ok+1))
else
mark="差分"; ng=$((ng+1))
fi
printf '%s\t%s\t%s\t%s\n' "$mark" "$item" "$want" "$got"
done < "$sheet"
echo "----"
echo "一致 ${ok} 件 / 差分 ${ng} 件"
[ "$ng" -eq 0 ]
記入例のシートを検証機に当てた結果です(タブ区切りで出力されます)。
$ bash check_params.sh params.tsv
判定 項目 シートの値 サーバーの値
差分 ホスト名 yoyaku-web01 vm
一致 OS名とバージョン Ubuntu 24.04.4 LTS Ubuntu 24.04.4 LTS
一致 CPUコア数 2 2
一致 IPv4アドレス(eth0) 192.0.2.2/24 192.0.2.2/24
一致 デフォルトゲートウェイ 192.0.2.1 192.0.2.1
差分 DNSサーバー(1番目) 192.0.2.53 8.8.8.8
差分 タイムゾーン Asia/Tokyo Etc/UTC
一致 アプリ実行ユーザーのシェル /usr/sbin/nologin /usr/sbin/nologin
差分 sudo グループの所属 taro ubuntu
一致 PermitRootLogin no no
一致 PasswordAuthentication no no
一致 MaxAuthTries 3 3
一致 ClientAliveInterval 300 300
一致 net.ipv4.ip_forward 0 0
一致 net.core.somaxconn 4096 4096
差分 vm.swappiness 10 60
一致 nginx worker_processes 2 2
一致 nginx client_max_body_size 20m 20m
一致 nginx server_tokens off off
----
一致 14 件 / 差分 5 件
検証機は yoyaku-web01 として作ったものではないため、ホスト名・DNS・タイムゾーン・sudo グループ・vm.swappiness の5行が「差分」になりました。シートどおりに作れていない箇所が行単位で分かることが確かめられます。シートの5行を検証機の値に合わせて実行し直すと「一致 19 件 / 差分 0 件」となり、スクリプトの終了コードは 0 でした。差分があるときの終了コードは 1 なので、構築後の確認手順にそのまま組み込めます。
Windows Serverで設定値を取り出すPowerShellコマンドレット
Windows 側は、Microsoft Learn の各コマンドレットのページを開いて確認できた範囲を対応表にしました。
| 取り出したい項目 | Linux(この記事で実行) | Windows PowerShell のコマンドレット | Microsoft Learn の説明 |
|---|---|---|---|
| コンピューター名・OS の版 | hostname、/etc/os-release |
Get-ComputerInfo(例:Get-ComputerInfo -Property "*version") |
システムと OS のプロパティをまとめて返す。Windows 専用 |
| IP アドレス | ip -br addr |
Get-NetIPAddress -AddressFamily IPv4 |
IPv4・IPv6 のアドレス構成と、結び付くインターフェースを取得する |
| DNS サーバー | /etc/resolv.conf |
Get-DnsClientServerAddress -AddressFamily IPv4 |
インターフェースに設定された DNS サーバーのアドレスを取得する |
| タイムゾーン | readlink -f /etc/localtime |
Get-TimeZone |
現在のタイムゾーンを取得する。-ListAvailable で一覧 |
| ローカルユーザー | getent passwd |
Get-LocalUser |
組み込み・作成済みのローカルユーザーアカウントを取得する |
| サービスの状態 | (製品ごとのコマンド) | Get-Service |
実行中・停止中のサービスを取得する。Status・Name・DisplayName を表示 |
| ファイアウォールのプロファイル | (製品ごとのコマンド) | Get-NetFirewallProfile -PolicyStore ActiveStore |
Domain・Private・Public の各プロファイルの設定を表示する |
| 役割と機能 | (パッケージ一覧) | Get-WindowsFeature |
Windows Server の役割・役割サービス・機能と、インストール済みかどうかを取得する |
Windows でも列の構成は同じです。確認コマンドの列にコマンドレットを書いておけば、取り出した値とシートを見比べる進め方は変わりません。
確かめて分かったこと
sshd -Tは既定値のprohibit-passwordをwithout-passwordと表示します。 OpenBSD のマニュアルでは PermitRootLogin の既定はprohibit-passwordで、without-passwordはその別名(非推奨)です。シートの設定値と突き合わせるときは、表示される表記に合わせるか、読み替えの注記を入れます。sshd -T -f /dev/nullで、設定ファイルを置かないときの値が 92 行で一覧できました。 既定値の列を埋める出発点になります。- OS の配布物が置いた設定ファイルも「既定からの変更」に含まれます。 この検証機の
/etc/ssh/sshd_configにはX11Forwarding yesが入っており、sshd -Tはx11forwarding yes、sshd -T -f /dev/nullはnoでした。既定値の列には「ソフトウェアの既定」と「OS を入れた直後の値」のどちらを書くかを、シートの冒頭で決めておきます。 dateの表示とシステムのタイムゾーン設定は一致しないことがあります。 環境変数TZを外して実行すると UTC が表示されました。- nginx は
nginx -Tで、include したファイルも含めた設定全体を表示します。 既定値のままの項目は表示されないため、既定値は公式ドキュメントの Default 欄で確かめます。 - タブ区切りを bash の
readで読むとき、空欄が連続すると列がずれます。 タブは空白として扱われ、連続すると1つにまとめられるためです。値のない欄に-を入れているのはこの対策です。
よくある質問
Q. パラメータシートとは何ですか? A. サーバーや機器に設定する値を、項目ごとに1行で書いた一覧表です。設計書で決めた方針を、実際に入力する値まで落とし込んだ文書にあたります。
Q. パラメータシートと詳細設計書の違いは何ですか? A. 詳細設計書は設計の内容と理由を文章と図で書き、パラメータシートは設定値を表で書きます。組織によっては同じ文書を指すこともあるので、最初に「どの文書に何を書くか」を決めておくと重複を防げます。
Q. 既定値のままの項目も書くべきですか? A. 設計で意識した項目だけ書けば十分です。「既定値のままにする」と判断したことに意味がある項目(例:net.ipv4.ip_forward を 0 のままにする)は、変更「無」として根拠と一緒に残します。
Q. 設定根拠が思い付かないときはどう書きますか? A. 「ソフトウェアの既定値を採用」「検証で問題がなかった値を採用」のように、決め方をそのまま書きます。空欄にせず、判断の経緯を1行残すことが後の助けになります。
Q. パラメータシートは Excel で作るべきですか? A. 表の形で並べ替えや絞り込みができれば、道具は問いません。タブ区切りや CSV のテキストで持っておくと、この記事のスクリプトのように機械で読め、変更の差分も確認しやすくなります。
まとめ
- パラメータシートは 1台分の設定値を、項目ごとに1行で書く。
- 列は 項目・設定値・既定値・変更の有無・設定根拠・確認コマンド。
- 既定値は
sshd -T -f /dev/nullや公式ドキュメントで確かめ、推測で書かない。 - 確認コマンドは「設定値と同じ文字列が1行で返る」形にすると、突き合わせを自動にできる。
- 台数や作り直しの多さでコード管理と手書きを使い分け、設定根拠はどちらでも残す。
- Windows は Get-ComputerInfo・Get-NetIPAddress・Get-TimeZone などで同じ進め方ができる。
参考・出典
- OpenBSD マニュアル sshd_config(5)(https://man.openbsd.org/sshd_config)
- Linux カーネル文書「IP Sysctl」(https://docs.kernel.org/networking/ip-sysctl.html)、「Documentation for /proc/sys/vm/」(https://docs.kernel.org/admin-guide/sysctl/vm.html)
- nginx 公式ドキュメント「Core functionality」(https://nginx.org/en/docs/ngx_core_module.html)、「Module ngx_http_core_module」(https://nginx.org/en/docs/http/ngx_http_core_module.html)
- Linux man-pages hostnamectl(1)(https://man7.org/linux/man-pages/man1/hostnamectl.1.html)、timedatectl(1)(https://man7.org/linux/man-pages/man1/timedatectl.1.html)
- Microsoft Learn:Get-ComputerInfo、Get-NetIPAddress、Get-DnsClientServerAddress、Get-TimeZone、Get-LocalUser、Get-Service、Get-NetFirewallProfile、Get-WindowsFeature(https://learn.microsoft.com/en-us/powershell/module/)
- Ansible Community Documentation「Introduction to Ansible」(https://docs.ansible.com/ansible/latest/getting_started/introduction.html)
- HashiCorp Developer「What is Terraform?」(https://developer.hashicorp.com/terraform/intro)
いずれも 2026-10-05 に閲覧しました。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「パラメータシートの書き方|サーバー設定項目の一覧と記入例テンプレート」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。