274
233

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

専任情シスがいない20人規模の町工場で、自分たちでランサムウェア対策基盤を組む

274
Last updated at Posted at 2026-05-17

中小企業や町工場でセキュリティ対策を進めようとすると、よく出てくる悩みがあります。

「大企業みたいな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回、実際にファイルを戻す

自分で構築する場合、最初から複雑にしない方が成功します。

おすすめは、次の順番です。

  1. MFAを入れる
  2. NASの権限を棚卸しする
  3. Linuxバックアップサーバを1台用意する
  4. resticでNASをpull型バックアップする
  5. 復元試験をする
  6. VLANを分ける
  7. ログ監視と資産管理を足す

この順番にしている理由は、バックアップと復元試験が先にない状態でネットワーク変更を進めると、トラブル時に戻れないからです。

全体構成

構成の全体像は次のようになります。

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つです。

  1. MFAで入口を固める
  2. VLANで広がりを止める
  3. まもり蔵で戻せる状態を作る

NASは共有基盤であって、バックアップではありません。
Backupは「取ること」ではなく、「戻せること」が本質です。

そして、LinuxやOSSを使うなら、Ansibleなどで構成管理を整えること。設定が再現できない環境は、セキュリティも再現できません。

最後に、自分で作る場合でも、全部を自力で抱え込む必要はありません。

自分で構築する範囲は、Linuxバックアップ、NAS権限、復元試験、台帳管理から始めるのがよいです。Firewall機器、VPN装置、配線、無線AP、VLAN設計の初期投入は、必要に応じて業者さんに確認してもらう方が安全です。

ただし、業者さんに任せる場合でも、バックアップの中身と復元手順だけは自社で理解してください。ランサムウェア被害の当日に必要になるのは、製品名ではなく、戻せる手順です。

参考資料

274
233
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
274
233

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?