서버 설정 · 2 min read · Nov 06, 2025
ISPConfig 3 ProFTPd For Debian
ISPConfig 3 ProFTPd For Debian
1 소개
저는 ISPConfig의 새로운 사용자이며 몇 년 동안 리눅스를 사용해왔습니다. 제 서버는 현재 OpenVZ를 사용하는 VPS이며, ISPConfig와 함께 제공되는 기본 pureftpd를 실행할 수 없기 때문에 ProFTPd로 전환하는 방법을 알아보았습니다. 그렇게 하는 것이 그리 어렵지 않다는 것을 알게 되었습니다.
2 사전 설치
참고: 이 설정은 제 VPS가 지원하지 않기 때문에 쿼터 지원을 포함하지 않습니다. ftp_user_edit.php를 수정하지 않고 이 통합을 개선할 수 있는 제안이나 아이디어가 있다면 알려주세요. 이 지침은 Debian 5.0 Lenny에서 실행되었지만 6.0에서도 동일하게 작동해야 합니다. 다른 배포판에서는 이 지침을 약간 수정해야 할 수 있습니다.
또한 참고: 이 과정은 새 서버와 ISPConfig 3 설치에서 잘 작동했습니다. 기존 서버에서 사용하려면 생성된 모든 ftp 사용자를 편집하고 저장해야 하며, 다른 문제가 발생할 수 있습니다. 앞으로 이를 자동으로 수행하는 간단한 php 스크립트를 만들 수도 있습니다. 발생할 수 있는 문제에 대해서는 책임지지 않으므로, 이 작업은 전적으로 귀하의 책임 하에 진행하시기 바랍니다.
3 설치
실행
apt-get remove pure-ftpd-common pure-ftpd-mysql
apt-get install proftpd proftpd-mod-mysql
Standalone으로 실행그룹 및 사용자 생성
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c “proftpd 사용자” -g ftpgroup ftpuser
4 데이터베이스 구성
mysql -u root -p
Use 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 그룹 테이블';
INSERT INTO `ftp_group` (`groupname`, `gid`, `members`) VALUES
('ftpgroup', 2001, 'ftpuser');5 ProFTPd 구성
/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모든 내용을 지우고 다음으로 교체:
#
# SQL 기반 인증을 위한 Proftpd 샘플 구성.
#
# PAM 기반 SQL 인증을 선호하는 경우 사용하지 마십시오.
#
DefaultRoot ~
SQLBackend mysql
# MySQL의 비밀번호는 CRYPT를 사용하여 암호화됩니다.
SQLAuthTypes Plaintext Crypt
SQLAuthenticate users groups
# 데이터베이스에 연결하는 데 사용
# databasename@host database_user user_password
SQLConnectInfo dbispconfig@localhost ispconfig _insertpasswordhere_
# ProFTPd가 상호작용할 "usertable"의 데이터베이스 열 이름을 지정합니다.
# db의 이름과 일치시킵니다.
SQLUserInfo ftp_user username password uid gid dir shell
# ProFTPd가 상호작용할 "grouptable"의 데이터베이스 열 이름을 지정합니다.
# 다시 db의 이름과 일치합니다.
SQLGroupInfo ftp_group groupname gid members
# 최소 UID 및 GID 설정 - 그렇지 않으면 각각 999입니다.
SQLMinID 500
# 사용자의 홈 디렉토리가 존재하지 않으면 필요에 따라 생성
CreateHome off
# 사용자가 로그인할 때마다 카운트 업데이트
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
# 사용자가 파일을 업로드하거나 삭제할 때마다 수정 업데이트
SQLLog STOR,DELE modified
SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
RootLogin off
RequireValidShell off
insertpasswordhere를 ISPConfig에서 가져온 비밀번호로 변경해야 합니다.
MySQL 데이터베이스가 다른 서버에 있는 경우 localhost를 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 restart6 ISPConfig 3 변경 사항
이제 ISPConfig 파일 중 하나를 변경해야 합니다. 이는 이상적이지 않지만, 새로운 버전으로 업그레이드하면 변경 사항이 사라지므로 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의 웹 패널에 로그인되어 있는 경우, 변경 사항이 귀하의 컴퓨터에 등록되기 전에 로그아웃해야 합니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.