セキュリティ対策の一環として、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等)の場合
config_override.sample.phpをダウンロード- ファイル名を
config_override.phpに変更 - 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サーバーの再起動は不要です。設定ファイルを保存した瞬間に適用されます。
- システム管理者権限でVtigerCRMにログイン
- 「CRM設定」>「ユーザー管理」 を開く
- ユーザーの編集画面(または新規作成画面)でパスワード変更をテスト
- 11文字以下のパスワード ➡ 保存時にエラーになるか
- 記号や数字が含まれないパスワード ➡ 保存時にエラーになるか
- 12文字以上で条件を満たすパスワード ➡ 正常に保存できるか
4. 運用時の注意点とトラブルシューティング
Q. 既存ユーザーは設定後すぐにログインできなくなりますか?
A. ログインできなくなることはありません。
このバリデーションは「パスワードの新規作成・変更時」に実行されるため、既存のパスワードでそのままログイン可能です。次回パスワード変更時や、管理者がユーザー情報を更新するタイミングで新ポリシーが適用されます。
Q. 設定したのに短いパスワードが通ってしまう場合は?
- ファイル名が
config_override.sample.phpのままになっていないか確認してください(.sampleを削除してconfig_override.phpにする必要があります)。 - Webサーバー(Apache/Nginx)がファイルを読み取れるパーミッションになっているか確認してください。
5. まとめ
- VtigerCRMのパスワードポリシーは
config_override.phpで簡単にカスタマイズ可能 - コアファイルを改修しないため、保守性・安全性が高い
- 「12文字以上+大小英数記号」の組み合わせで、組織のセキュリティ水準を手軽に引き上げることができる
セキュリティ強化や社内セキュリティ監査対応の際は、ぜひ本設定をご活用ください。

