ISPConfig 3 ProFTPd For Debian
1はじめに
私はISPConfigの新しいユーザーであり、Linuxで数年間遊んでいます。私のサーバーは現在OpenVZを備えたVPSであり、ISPConfigに付属するデフォルトのpureftpdを実行することはできません。そこで、ProFTPdを調べ始めましたが、それを使用するように切り替えるのはそれほど難しくありませんでした。
2プレインストール
注意:私のVPSはクォータのサポートをサポートしていないため、これにはクォータのサポートは含まれていません。 ISPConfig3のftp_user_edit.phpを変更せずにこの統合を改善する方法についての提案やアイデアがあれば、私に知らせてください。これらの手順はDebian5.0Lennyを実行して作成されましたが、6.0でも同じように機能するはずです。他のディストリビューションの場合、これらの手順を少し変更する必要がある場合があります。
注:このプロセスは、新しいサーバーとISPConfig3のインストールで正常に機能しました。既存のサーバーでこれを使用すると、作成されたすべてのftpユーザーにアクセスして編集/保存する必要があり、他の問題が発生する可能性があります。将来、これを自動的に行うための簡単なphpスクリプトを作成する可能性があります。発生する可能性のある問題については責任を負いませんので、自己責任で使用してください。
3インストール
実行
apt-get remove pure-ftpd-common pure-ftpd-mysql
apt-get install proftpd proftpd-mod-mysql
Run as standalone
groupadd -g 2001 ftpgroup
useradd -u 2001 -s / bin / false -d / bin / null -c "proftpd user" -gftpgroup ftpuser
4データベース構成
mysql -u root -p
dbispconfigを使用
クエリの実行:
ALTER TABLE `ftp_user` ADD `shell` VARCHAR( 18 ) NOT NULL DEFAULT
'/sbin/nologin',
ADD `count` INT( 11 ) NOT NULL DEFAULT '0',
ADD `accessed` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
ADD `modified` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00';
CREATE TABLE ftp_group (
groupname varchar(16) NOT NULL default '',
gid smallint(6) NOT NULL default '5500',
members varchar(16) NOT NULL default '',
KEY groupname (groupname)
) TYPE=MyISAM COMMENT='ProFTP group table';
INSERT INTO `ftp_group` (`groupname`, `gid`, `members`) VALUES
('ftpgroup', 2001, 'ftpuser');
5ProFTPd構成
/usr/local/ispconfig/interface/lib/config.inc.phpを編集します:
nano /usr/local/ispconfig/interface/lib/config.inc.php
変数db_passwordを見つけます。
後で使用するためにパスワードをメモします。
/etc/proftpd/proftpd.confを編集
nano /etc/proftpd/proftpd.conf
検索:
#Include /etc/proftpd/sql.conf
変更先:
Include /etc/proftpd/sql.conf
/etc/proftpd/sql.confを編集
nano /etc/proftpd/sql.conf
すべてのコンテンツを消去して、次のように置き換えます:
#
# Proftpd sample configuration for SQL-based authentication.
#
# (This is not to be used if you prefer a PAM-based SQL authentication)
#
<IfModule mod_sql.c>
DefaultRoot ~
SQLBackend mysql
# The passwords in MySQL are encrypted using CRYPT
SQLAuthTypes Plaintext Crypt
SQLAuthenticate users groups
# used to connect to the database
# [email protected] database_user user_password
SQLConnectInfo [email protected] ispconfig _insertpasswordhere_
# Here we tell ProFTPd the names of the database columns in the "usertable"
# we want it to interact with. Match the names with those in the db
SQLUserInfo ftp_user username password uid gid dir shell
# Here we tell ProFTPd the names of the database columns in the "grouptable"
# we want it to interact with. Again the names match with those in the db
SQLGroupInfo ftp_group groupname gid members
# set min UID and GID - otherwise these are 999 each
SQLMinID 500
# create a user's home directory on demand if it doesn't exist
CreateHome off
# Update count every time user logs in
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
# Update modified everytime user uploads or deletes a file
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
RootLogin off
RequireValidShell off
</IfModule>
必ず_insertpasswordhere_をISPConfigから取得したパスワードに変更してください。
MySQLデータベースが別のサーバー上にある場合は、ローカルホストを変更してMySQLサーバーを表します。
編集:/etc/proftpd/modules.conf
nano /etc/proftpd/modules.conf
検索:
#LoadModule mod_sql.c
変更先:
LoadModule mod_sql.c
検索:
#LoadModule mod_sql_mysql.c
変更先:
LoadModule mod_sql_mysql.c
実行:
/etc/init.d/proftpd restart
6ISPConfig3の変更
次に、ispconfigファイルの1つを変更する必要があります。これは、新しいバージョンにアップグレードすると変更が失われるかのように、潮流ではありませんが、proftpdを機能させる唯一の方法です。
/usr/local/ispconfig/interface/web/sites/ftp_user_edit.phpを編集
nano / usr / local / ispconfig / interface / web / sites / ftp_user_edit.php
検索:
$uid = $web["system_user"]; $gid = $web["system_group"];
置換:
$userinfo = posix_getpwnam($web["system_user"]); $uid = $userinfo['uid']; $gid = $userinfo['gid'];
注:現在ISPConfigのWebパネルにログインしている場合は、変更をマシンに登録する前にログアウトする必要があります。