web-dev-qa-db-ja.com

cryptsha512を使用したpureftpd認証

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")

したがって、私の質問は、上記の方法を使用して生成されたパスワードを機能させるために、構成ファイルに何を入れる必要があるかということです。

MYSQLCryptcryptに変更するだけで十分だと思いました。しかし、これは機能しません。

他の方法が機能しない場合、マニュアルには認証モジュールの作成方法が記載されています http://download.pureftpd.org/pure-ftpd/doc/README.Authentication-Modules (ただし、どうすればよいですか?有効にしますか?)

1
Sfisioza

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;
2
takeshin