中小企業や町工場でセキュリティ対策を進めようとすると、よく出てくる悩みがあります。
「大企業みたいなSOCやSIEMは無理だけど、ランサムウェアは怖い」
「NASで共有している図面や受発注データが止まったら、本当に仕事にならない」
「専任の情シスはいない。でも、できるところは自分たちで構築したい」
この記事では、20人規模の町工場を想定して、IPA「中小企業の情報セキュリティ対策ガイドライン 第4.0版」の考え方に沿いながら、現実的に運用できる、壊れても戻せるセキュリティ構成を整理します。
前提は「全部を業者任せにしない」ことです。Firewallや回線まわりは機器選定・保守の都合で業者に頼るとしても、NAS、バックアップ、Linux、ログ、台帳、復元試験は自分たちで理解して回せるようにします。
ポイントは高価な製品を並べることではありません。
- MFAで入口を固める
- VLANで横展開を止める
- NASをバックアップ扱いしない
- 復元できるバックアップを別系統で持つ
- 開発LANを危険領域として扱う
- ログ監視は重要なところから始める
という、地味だけど効く構成を、小さく作って運用に乗せることです。
想定する会社
この記事では、次のような会社を前提にします。
| 項目 | 前提 |
|---|---|
| 規模 | 20人前後 |
| 業種 | 町工場・製造業 |
| 情シス | 専任なし。兼任担当が自分で構築・運用する |
| 端末 | 現場・事務・CAD/CAMはWindows中心 |
| 開発 | Linux/macOS、Git、Dockerあり |
| デザイン | macOS利用 |
| ファイル共有 | NASあり |
| リモート | 一部テレワーク、VPNあり |
| SaaS | Microsoft 365、Google Workspace、会計、勤怠など |
| 重視するリスク | ランサムウェア、NAS暗号化、古いVPN侵害 |
大事なのは、OSを全部そろえることではありません。Windows、macOS、Linuxが混在していてもよいです。
むしろ重要なのは、OS統一よりID統一です。
誰が、どの端末で、どの共有に、どの権限でアクセスしているのか。ここが整理できていないと、どんな製品を入れても運用が崩れます。
まず結論
20人規模の町工場では、優先順位はこう考えるのが現実的です。
| 優先度 | 対策 | 理由 |
|---|---|---|
| S | MFA | VPN、SaaS、Git、管理者アカウントの乗っ取りを防ぐ |
| S | バックアップ | ランサム被害時に戻れるかどうかが事業継続を決める |
| S | VPN更新 | 古いVPN装置は侵入口になりやすい |
| A | VLAN分離 | 侵入されても社内全体へ広げない |
| A | EDR | 端末侵害の検知と封じ込め |
| B | 資産管理 | 古い端末、野良端末、退職者アカウントを見つける |
| B | ログ監視 | VPN、Firewall、NAS、認証ログから始める |
| C | 高度なSIEM | 20人規模では最初から高価なSIEMは重すぎることが多い |
最初から大企業のセキュリティ構成を真似しない方がよいです。
高価なSIEMより、まずはMFAとバックアップです。
ランサムウェア対策では、検知より先に「止める」「広げない」「戻す」を作る方が効果が大きいです。
自分で構築する場合の到達点
この記事で目指すのは、いきなり完璧なゼロトラスト環境を作ることではありません。
まずは、次の状態を目標にします。
| 項目 | 到達点 |
|---|---|
| 認証 | VPN、SaaS、Git、管理者アカウントにMFAを入れる |
| ネットワーク | 事務、製造、開発、来客Wi-Fi、カメラ、NASをVLANで分ける |
| NAS | 共有用途に限定し、Everyoneフル権限をやめる |
| バックアップ | Linux + resticでpull型バックアップを作る |
| 外部退避 | USB HDDローテーションまたはクラウド退避を持つ |
| ログ | Firewall、VPN、NAS、Linuxバックアップサーバのログを見る |
| 台帳 | 端末、利用者、共有権限、バックアップ対象を表で管理する |
| 復元 | 半年に1回、実際にファイルを戻す |
自分で構築する場合、最初から複雑にしない方が成功します。
おすすめは、次の順番です。
- MFAを入れる
- NASの権限を棚卸しする
- Linuxバックアップサーバを1台用意する
- resticでNASをpull型バックアップする
- 復元試験をする
- VLANを分ける
- ログ監視と資産管理を足す
この順番にしている理由は、バックアップと復元試験が先にない状態でネットワーク変更を進めると、トラブル時に戻れないからです。
全体構成
構成の全体像は次のようになります。
ASCIIで書くと、こうです。
Internet
|
[Firewall / UTM]
FortiGate / OPNsense
|
+-------------+-------------+
| |
[VPN/ZTNA] [Guest Wi-Fi]
MFA必須 / 端末制御 Internetのみ
|
+----------+----------+----------------+----------------+
| | | |
[VLAN10 事務] [VLAN20 製造] [VLAN30 開発] [VLAN50 カメラ]
Windows PC CAD/CAM/設備 Linux/macOS NVR/Camera
| | | |
+----------+----------+----------------+----------------+
|
[VLAN60 Server/NAS]
みんな蔵 NAS / 認証 / ログ
|
read-only / pull
|
[控え蔵 Backup]
Linux + restic
|
offline / cloud / external
|
逃がし蔵 外部退避
ここで重要なのは、社内LANを一枚岩にしないことです。
「同じ会社の中だから全部つながっていて当然」ではなく、事務、製造、開発、NAS、カメラ、来客Wi-Fiは別の危険度を持つ区画として扱います。
VLAN設計
最低限、次の6つに分けるのが現実的です。
| VLAN | 対象 | 役割 | アクセス制御 |
|---|---|---|---|
| VLAN10 | 事務系 | 会計、受発注、メール、SaaS | NASの事務共有のみ許可。製造設備へ原則不可 |
| VLAN20 | 製造設備系 | CAD/CAM端末、加工機、古いWindows | Internet制限。NASの必要フォルダのみ |
| VLAN30 | 開発系 | Linux/macOS、Git、Docker | 開発共有のみ。事務・製造へ原則不可 |
| VLAN40 | 来客Wi-Fi | 来客端末、私物端末 | Internetのみ。社内LAN完全遮断 |
| VLAN50 | 監視カメラ | カメラ、NVR | NVR管理端末のみ許可。Internet原則不可 |
| VLAN60 | サーバ/NAS | NAS、認証、ログ、バックアップ連携 | 管理者端末と必要通信のみ許可 |
特に注意したいのが開発LANです。
開発LANには、Gitの認証情報、SSH鍵、Docker、検証用コンテナ、場合によっては本番に近い設定ファイルがあります。便利だからといって、開発LANからNAS管理画面や製造設備へ広く到達できる構成にすると、侵害時の横展開が一気に進みます。
開発LANは便利な管理LANではなく、危険領域として扱うべきです。
NASはバックアップではない
町工場では、NASが業務の中心になりがちです。
- 図面
- 見積
- 受発注
- 加工条件
- 写真
- 品質記録
- CAD/CAMデータ
こうしたファイルをNASに集めること自体は自然です。ただし、NASをバックアップだと思ってはいけません。
NASは共有基盤です。
バックアップではありません。
ランサムウェアに感染したPCがSMB共有に書き込める状態なら、NAS上の共有フォルダも暗号化されます。NASのスナップショットがあっても、設定や世代、権限、容量、管理者アカウントの状態によっては復旧できないことがあります。
だから、共有系と復旧系を分けます。
「まもり蔵」構成
社内で説明しやすいように、バックアップ構成に名前を付けます。
| 名称 | 意味 | 実体 |
|---|---|---|
| まもり蔵 | 全体バックアップシステム | バックアップ設計全体 |
| みんな蔵 | 共有NAS | Synology / QNAP / TrueNASなど |
| 控え蔵 | resticバックアップ | Linux + restic |
| 逃がし蔵 | 外部退避 | USB HDD、別拠点、S3互換クラウドなど |
経営者向けに言うなら、こうです。
- みんな蔵:皆で使う作業棚
- 控え蔵:鍵付き倉庫
- 逃がし蔵:別の場所に置く控え
ランサムウェアは、作業棚を暗号化します。
だから、作業棚と同じ権限で触れる場所に控えを置いてはいけません。
pull型バックアップにする
ポイントは、バックアップの向きです。
NASからバックアップ先に書き込ませるのではなく、バックアップサーバ側からNASを読みに行く構成にします。
NAS(みんな蔵)
↓ read-only mount
Linuxバックアップサーバ(控え蔵)
↓ restic repository
外部退避(逃がし蔵)
理由は単純です。
NASが侵害されたとき、NASからバックアップ先へ書き込める構成だと、バックアップ先まで削除・暗号化される可能性があります。
控え蔵側が読み取り専用でNASを見に行く形にしておけば、NAS側から控え蔵を壊しにくくなります。
resticの運用例
Linux + resticで、シンプルに始めるならこんな運用です。
# 読み取り専用でマウントしたNASをバックアップ
restic -r /backup/restic-repo backup /mnt/minna-gura
# 世代管理
restic forget \
--keep-daily 14 \
--keep-weekly 8 \
--keep-monthly 12 \
--prune
# バックアップ健全性確認
restic check
# 復元試験
restic restore latest --target /restore-test
世代管理の例は会社のデータ量に応じて変えます。
たとえば、最初は次のような考え方で十分です。
| 世代 | 保持例 |
|---|---|
| 日次 | 14世代 |
| 週次 | 8世代 |
| 月次 | 12世代 |
| 外部退避 | 週1回または月1回 |
大事なのは、バックアップを取ったことではありません。
戻せることです。
半年に1回は、実際に戻してください。
自分で作る最小バックアップ構成
ここからは、自分で構築する場合の最小構成です。
想定する機材は次の程度です。
| 用途 | 例 |
|---|---|
| 共有NAS | 既存のSynology/QNAP/TrueNASなど |
| 控え蔵 | 小型PC、ミニPC、中古サーバ、Linux搭載機 |
| OS | Debian / Ubuntu Server LTS |
| バックアップ | restic |
| 外部退避 | USB HDD 2本ローテーション、またはS3互換クラウド |
控え蔵は高性能である必要はありません。ただし、バックアップ容量と暗号化処理があるので、メモリ8GB以上、SSD起動、バックアップ用HDDまたは外部ストレージを推奨します。
1. バックアップ専用ユーザーを作る
NAS側に、バックアップ専用の読み取りユーザーを作ります。
例:
ユーザー名: backup-reader
権限: バックアップ対象共有フォルダを読み取り専用
禁止: NAS管理者権限、書き込み権限、削除権限
ここで重要なのは、普段の管理者アカウントをバックアップに使わないことです。
2. Linux側で読み取り専用マウントする
SMB共有を読む場合の例です。
sudo apt update
sudo apt install -y cifs-utils restic
sudo mkdir -p /mnt/minna-gura
sudo mkdir -p /etc/samba/credentials
sudo chmod 700 /etc/samba/credentials
認証情報を保存します。
sudo editor /etc/samba/credentials/minna-gura
username=backup-reader
password=ここにNAS側の専用パスワード
権限を絞ります。
sudo chmod 600 /etc/samba/credentials/minna-gura
/etc/fstab に読み取り専用で追加します。
//192.168.60.10/share /mnt/minna-gura cifs credentials=/etc/samba/credentials/minna-gura,iocharset=utf8,ro,noserverino,vers=3.0 0 0
マウントします。
sudo mount /mnt/minna-gura
mount | grep minna-gura
ro になっていることを確認します。
3. resticリポジトリを初期化する
ローカルディスクに保存する例です。
sudo useradd --system --create-home --shell /usr/sbin/nologin backup
sudo mkdir -p /backup/restic-repo
sudo chown -R backup:backup /backup
専用ユーザーで初期化します。
sudo -u backup restic -r /backup/restic-repo init
resticのパスワードファイルを作ります。
sudo mkdir -p /etc/restic
sudo editor /etc/restic/minna-gura.pass
sudo chown root:backup /etc/restic/minna-gura.pass
sudo chmod 640 /etc/restic/minna-gura.pass
resticのパスワードは、紙またはパスワードマネージャにも厳重に保管します。
このパスワードを失うと復元できません。
4. バックアップスクリプトを作る
例として /usr/local/sbin/backup-minna-gura.sh を作ります。
#!/usr/bin/env bash
set -euo pipefail
export RESTIC_REPOSITORY=/backup/restic-repo
export RESTIC_PASSWORD_FILE=/etc/restic/minna-gura.pass
restic backup /mnt/minna-gura \
--tag minna-gura \
--exclude '*/@eaDir/*' \
--exclude '*/#recycle/*'
restic forget \
--keep-daily 14 \
--keep-weekly 8 \
--keep-monthly 12 \
--prune
restic check
実行権限を付けます。
sudo chmod 700 /usr/local/sbin/backup-minna-gura.sh
5. systemd timerで日次実行する
cronでもよいですが、Linuxに慣れているならsystemd timerの方がログを追いやすいです。
/etc/systemd/system/minna-gura-backup.service
[Unit]
Description=Backup minna-gura NAS share with restic
[Service]
Type=oneshot
User=backup
Group=backup
ExecStart=/usr/local/sbin/backup-minna-gura.sh
/etc/systemd/system/minna-gura-backup.timer
[Unit]
Description=Run minna-gura backup daily
[Timer]
OnCalendar=*-*-* 02:30:00
Persistent=true
[Install]
WantedBy=timers.target
有効化します。
sudo systemctl daemon-reload
sudo systemctl enable --now minna-gura-backup.timer
systemctl list-timers | grep minna-gura
ログ確認はこうです。
journalctl -u minna-gura-backup.service -n 100 --no-pager
6. 復元試験をする
バックアップ直後に、必ず小さく戻します。
sudo mkdir -p /restore-test
sudo -u backup restic -r /backup/restic-repo snapshots
sudo -u backup restic -r /backup/restic-repo restore latest --target /restore-test
戻したファイルを実際に開きます。
- 図面ファイルを開けるか
- Excelを開けるか
- PDFを開けるか
- 文字化けしていないか
- 必要なフォルダが含まれているか
ここまで確認して、初めてバックアップです。
3-2-1ルールとimmutableの考え方
バックアップでは、よく3-2-1ルールと言われます。
| 要素 | 内容 |
|---|---|
| 3 | データを3コピー持つ |
| 2 | 2種類の媒体に分ける |
| 1 | 1つは外部またはオフラインへ置く |
町工場向けに言い換えると、こうです。
- 作業データ:NAS
- 控え:Linux + restic
- 逃がし:USB HDD、別拠点、クラウド
さらに、可能ならimmutableの考え方を取り入れます。
immutableとは、一定期間は削除・改ざんされにくくする考え方です。S3 Object Lockのようなクラウド機能を使う方法もありますし、USB HDDをローテーションして物理的に外す方法もあります。
20人規模では、最初から複雑なクラウド構成にしなくてもよいです。
ただし、同じ認証情報で全部消せる構成は避けるべきです。
推奨OSSと現実解
OSSは強力ですが、運用できなければ意味がありません。
以下は、OSS、有償製品、中小企業向けの現実解を分けた表です。
| カテゴリ | OSS | 有償 | 中小企業向け現実解 |
|---|---|---|---|
| Firewall | OPNsense, pfSense CE | FortiGate, Sophos | FortiGate小型機が現実的 |
| VPN/ZTNA | WireGuard, Headscale | Cloudflare Zero Trust, FortiClient | 既存VPN更新 + MFA |
| MFA | privacyIDEA | Duo, Okta, Microsoft Entra ID | Microsoft/Google/DuoのMFA |
| ID管理 | Keycloak | Entra ID, Okta, Google Workspace | SaaS中心ならEntra ID/Google |
| MDM | Fleet, Munki | Intune, Jamf, Mosyle | WindowsはIntune、MacはMosyle/Jamf |
| EDR | Wazuh agent | Defender for Business, CrowdStrike | Defender for Business |
| SIEM | Wazuh, OpenSearch | Microsoft Sentinel, Splunk | 最初はWazuhで十分 |
| ログ監視 | Wazuh, syslog-ng | FortiAnalyzer | Firewall/VPN/NAS/認証ログから開始 |
| バックアップ | restic, Borg, Kopia | Acronis, Veeam | Linux + restic + 外部退避 |
| Secrets管理 | Vault, SOPS | 1Password, Bitwarden Enterprise | まず1Password/Bitwarden |
| NAS | TrueNAS | Synology, QNAP | Synology + 別バックアップ |
| VLAN/Wi-Fi | OpenWrt | UniFi, Aruba, Fortinet | UniFiまたはFortiGate連携 |
| コンテナセキュリティ | Trivy, Grype | Snyk, Aqua | TrivyをCIと定期実行 |
| 資産管理 | Snipe-IT, GLPI | LANSCOPE, SKYSEA | LANSCOPEまたはSnipe-IT |
OSSを使う場合、Linuxサーバの構成管理が重要です。
手作業で設定したサーバは、担当者がいなくなった瞬間にブラックボックス化します。Ansibleなどで再現可能にしておくと、セキュリティ品質も保守性も上がります。
Linux OSS環境では、構成管理品質がセキュリティ品質です。
ありがちな事故
現場でよくある事故を並べると、かなりパターン化できます。
| 事故 | 起き方 | 対策 |
|---|---|---|
| 古いVPN侵害 | 脆弱なVPN装置や漏えいIDから侵入 | VPN更新、MFA、管理画面の外部公開停止 |
| NAS暗号化 | 感染PCがSMB共有を書き換える | 権限最小化、世代管理、別系統バックアップ |
| 開発LANから横展開 | SSH鍵、Docker、検証サーバが足場になる | 開発VLAN分離、鍵管理、管理通信制限 |
| SMB共有事故 | Everyoneフル権限の共有が残る | グループ権限化、月次棚卸し |
| 古いCAD端末 | 更新不可Windowsが感染入口になる | 製造VLAN隔離、Internet制限 |
| SSH鍵管理崩壊 | 個人PCの鍵で本番やNASへ接続 | 1Password/Vault、鍵ローテーション |
| バックアップ未検証 | 保存していたが戻せない | 半年ごとの復元試験 |
この中で特に怖いのは、NAS暗号化とバックアップ未検証です。
「バックアップしているはずだった」が一番危ないです。
バックアップ成功ログだけで安心せず、実際に戻してください。
運用サイクル
専任情シスなしの会社では、毎日何時間もログを見る運用は続きません。だから、頻度ごとに作業を小さくします。
| 頻度 | 作業 |
|---|---|
| 日次 | バックアップ成功確認、EDR重大アラート確認、VPN失敗ログ確認 |
| 週次 | Windows Update状況、NAS容量、バックアップ世代、不要アカウント確認 |
| 月次 | 資産台帳更新、共有権限棚卸し、Firewall/VPN更新確認、Trivyスキャン |
| 半年 | 復元試験、VPN/管理者権限レビュー、非常時連絡訓練、古い端末の隔離確認 |
ポイントは、作業を「人の記憶」に置かないことです。
チェックリスト、台帳、手順書に落とします。
自分で構築する場合も、この単位で分けておくと、後から設定を見直しやすくなります。
自分で構築するときのチェックリスト
自分で構築する場合は、作業を小さく分けて、1つずつ確認します。
認証
- VPNにMFAがある
- SaaSにMFAがある
- GitHub/GitLabにMFAがある
- NAS管理者アカウントを共有していない
- 退職者アカウントを無効化できる
NAS
- Everyoneフル権限がない
- 部門別・用途別のグループ権限になっている
- バックアップ専用ユーザーは読み取り専用
- NAS管理画面を来客Wi-Fiや開発LANから触れない
- スナップショットを有効化している
バックアップ
- NASからバックアップ先へ書き込めない
- Linux側からpullしている
- resticのパスワードを安全に保管している
- 日次バックアップが自動実行される
-
restic checkが通る - 復元試験を実施済み
- 外部退避がある
ネットワーク
- 来客Wi-FiはInternetのみ
- 製造設備VLANはInternet制限済み
- 開発VLANから事務・製造へ直接行けない
- NAS VLANへのアクセスは必要ポートだけ
- Firewall/VPNの管理画面を外部公開していない
Linux運用
- SSHは鍵認証
- rootログイン禁止
- unattended-upgradesまたは定期更新がある
- Ansibleなどで設定を再現できる
- バックアップログを確認できる
- ディスク残量アラートがある
自分でやる場合にやってはいけないこと
DIY構築でありがちな失敗もあります。
| NG | 理由 |
|---|---|
| NASの管理者IDでバックアップする | NAS侵害時にバックアップ先も壊されやすい |
| バックアップ先をNASから書けるようにする | ランサムウェアがバックアップまで暗号化できる |
| 復元試験をしない | いざという時に戻せない可能性が高い |
| VLANを分けずに全部同じLANに置く | 感染時に横展開しやすい |
| 開発PCを管理用踏み台にする | SSH鍵やDocker経由で被害が広がる |
| 個人の手作業だけでLinuxを設定する | 担当者不在時に再現できない |
| resticパスワードを1台のPCだけに保存する | PC故障時に復元不能になる |
自分で構築する場合、技術そのものよりも「戻せる手順」と「再現できる設定」の方が重要です。
まとめ
20人規模の町工場に必要なのは、派手なセキュリティ製品の全部入り構成ではありません。
まず必要なのは、次の3つです。
- MFAで入口を固める
- VLANで広がりを止める
- まもり蔵で戻せる状態を作る
NASは共有基盤であって、バックアップではありません。
Backupは「取ること」ではなく、「戻せること」が本質です。
そして、LinuxやOSSを使うなら、Ansibleなどで構成管理を整えること。設定が再現できない環境は、セキュリティも再現できません。
最後に、自分で作る場合でも、全部を自力で抱え込む必要はありません。
自分で構築する範囲は、Linuxバックアップ、NAS権限、復元試験、台帳管理から始めるのがよいです。Firewall機器、VPN装置、配線、無線AP、VLAN設計の初期投入は、必要に応じて業者さんに確認してもらう方が安全です。
ただし、業者さんに任せる場合でも、バックアップの中身と復元手順だけは自社で理解してください。ランサムウェア被害の当日に必要になるのは、製品名ではなく、戻せる手順です。