コア改修なし!パスワードポリシーを「12文字以上・記号必須」に強化する設定手順

VtigerCRMCRM

セキュリティ対策の一環として、CRMログインパスワードの強化を求められるケースが増えています。

オープンソース版VtigerCRM(v7.4以降等)では、本体コードに手を加えることなく、設定ファイルを1つ用意するだけで「12文字以上」「英大文字・小文字・数字・記号をすべて含む」といった強固なパスワードポリシーを強制することが可能です。

本記事では、初期同梱の config_override.sample.php を活用した具体的な設定手順と、おすすめの正規表現パターン、運用時の注意点を解説します。

1. この記事でできること

  • ユーザー(Users)のログインパスワードを 12文字以上 に強制
  • 英小文字・英大文字・数字・記号 をそれぞれ最低1回以上含める複雑性を強制
  • 予期せぬエラーを防ぐため、安全性の高い記号セット に限定
  • コアファイルの改修を行わないため、今後のバージョンアップ時にも安心

2. パスワードポリシー設定の仕組み

VtigerCRMのルートディレクトリには、デフォルトで config_override.sample.php というサンプル設定ファイルが用意されています。

このファイルを config_override.php として配置・有効化することで、config.inc.php(標準設定)を上書きし、パスワード検証用の正規表現(Regex)を適用する仕組みになっています。

3. 設定手順(3ステップ)

ステップ1:設定ファイルを作成・有効化する

VtigerCRMがインストールされているサーバーへ接続し、ルートディレクトリにあるサンプルファイルをコピー(リネーム)します。

■ Linux(ターミナル操作)の場合

Bash

# VtigerCRMのルートディレクトリへ移動
cd /var/www/html/vtigercrm

# サンプルファイルをコピーして本番用ファイルを作成
cp config_override.sample.php config_override.php

# Webサーバーの実行権限を付与(環境に合わせて apache / www-data 等を指定)
chown www-data:www-data config_override.php
chmod 644 config_override.php

■ Windows / SFTP(WinSCP等)の場合

  1. config_override.sample.php をダウンロード
  2. ファイル名を config_override.php に変更
  3. VtigerCRMのルートディレクトリ直下にアップロード

ステップ2:パスワード検証の正規表現を記述する

作成した config_override.php をテキストエディタで開き、パスワードポリシーを定義します。

PHP

<?php
/*+**********************************************************************************
 * The contents of this file are subject to the vtiger CRM Public License Version 1.0
 * ("License"); You may not use this file except in compliance with the License
 * The Original Code is:  vtiger CRM Open Source
 * The Initial Developer of the Original Code is vtiger.
 * Portions created by vtiger are Copyright (C) vtiger.
 * All Rights Reserved.
 ************************************************************************************/

// パスワードポリシー設定(12文字以上 / 大小英字・数字・記号必須)
$validation_regex = array(
    'password_regex' => '/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*_\-+=.?]).{12,}$/'
);

【推奨】トラブルを起こしにくい記号セット

一部の特殊記号("'\<> など)は、データベース連携や他システム連携時にエスケープ処理の不備でエラーの原因になることがあります。

そのため、以下の「支障が出にくい記号」に限定するのがおすすめです。

  • 使用可能な記号:! @ # $ % ^ & * _ - + = . ?

ステップ3:動作確認を行う

Webサーバーの再起動は不要です。設定ファイルを保存した瞬間に適用されます。

  1. システム管理者権限でVtigerCRMにログイン
  2. 「CRM設定」>「ユーザー管理」 を開く
  3. ユーザーの編集画面(または新規作成画面)でパスワード変更をテスト
    • 11文字以下のパスワード ➡ 保存時にエラーになるか
    • 記号や数字が含まれないパスワード ➡ 保存時にエラーになるか
    • 12文字以上で条件を満たすパスワード ➡ 正常に保存できるか

4. 運用時の注意点とトラブルシューティング

Q. 既存ユーザーは設定後すぐにログインできなくなりますか?

A. ログインできなくなることはありません。

このバリデーションは「パスワードの新規作成・変更時」に実行されるため、既存のパスワードでそのままログイン可能です。次回パスワード変更時や、管理者がユーザー情報を更新するタイミングで新ポリシーが適用されます。

Q. 設定したのに短いパスワードが通ってしまう場合は?

  • ファイル名が config_override.sample.php のままになっていないか確認してください(.sample を削除して config_override.php にする必要があります)。
  • Webサーバー(Apache/Nginx)がファイルを読み取れるパーミッションになっているか確認してください。

5. まとめ

  • VtigerCRMのパスワードポリシーは config_override.php で簡単にカスタマイズ可能
  • コアファイルを改修しないため、保守性・安全性が高い
  • 「12文字以上+大小英数記号」の組み合わせで、組織のセキュリティ水準を手軽に引き上げることができる

セキュリティ強化や社内セキュリティ監査対応の際は、ぜひ本設定をご活用ください。

タイトルとURLをコピーしました