Pure-ftpd-mysqlをインストールしましたが、md5パスワードハッシュで正常に動作します。これはあまり安全ではないので、dovecotで使用している方法であるsaltedsha512でcryptを使用したいと思います。
これをpure-ftpdで設定するにはどうすればよいですか?
Sha512パスで新しいユーザーを作成する:
INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`,
`ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`)
VALUES ('MyUserName',
'1',
ENCRYPT('_mypassword_', CONCAT('$6$', SUBSTRING(SHA(Rand()), -16))),
'2001',
'2001',
'/var/www/test',
'100',
'100',
'',
'*',
'50',
'0');
設定ファイルの値:
MYSQLCrypt md5
MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
したがって、私の質問は、上記の方法を使用して生成されたパスワードを機能させるために、構成ファイルに何を入れる必要があるかということです。
MYSQLCrypt
をcrypt
に変更するだけで十分だと思いました。しかし、これは機能しません。
他の方法が機能しない場合、マニュアルには認証モジュールの作成方法が記載されています http://download.pureftpd.org/pure-ftpd/doc/README.Authentication-Modules (ただし、どうすればよいですか?有効にしますか?)
pure-ftpd-mysqlは、saltを使用したsha512cryptをサポートしています。
それは次のように簡単です:
MYSQLCrypt crypt
また、Password
列の長さが十分であることを確認してください。 crypt $ 6 $の場合、106文字です。
したがって、クエリで機能するテーブル構造は次のようになります。
CREATE TABLE ftpd (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
Password varchar(106) NOT NULL default '',
Uid varchar(11) NOT NULL default '-1',
Gid varchar(11) NOT NULL default '-1',
Dir varchar(128) NOT NULL default '',
ULBandwidth smallint(5) NOT NULL default '0',
DLBandwidth smallint(5) NOT NULL default '0',
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default '*',
QuotaSize smallint(5) NOT NULL default '0',
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) ENGINE=MyISAM;