http://proftpd.org/docs/howto/index.html 官網地址html
1、安裝node
一、wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.5.tar.gz mysql
tar -zxf proftpd-1.3.5.tar.gz sql
cd proftpd-1.3.5shell
./configure --prefix=/usr/local/proftpd --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql:mod_tls --with-includes=/usr/local/mysql/include/mysql --with-libraries=/usr/local/mysql/bin/ ide
make && make installui
#注意:--with-modules=後面能夠加要使用的模塊(多個)用‘:’隔開,若是用2個以上--with-modules會致使只編譯最後一個模塊;--with-includes= 指msyql模塊的頭文件,yum裝的mysql(/usr/include/mysql);--with-libraries指mysql的庫文件yum裝的mysql(/usr/lib64/mysql),加密
源碼安裝的mysql,proftpd 啓動會報 libmysqlclient.so.18 不存在,spa
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/.net
或
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
2、mysql 重建數據及表,這裏我只建了用戶和組,沒有建立配額表
create database proftpd;
grant all privileges on proftpd.* to proftpd@localhost identified by '123456';
CREATE TABLE `ftpUser` (
`idno` int(11) NOT NULL AUTO_INCREMENT,
`userid` varchar(100) NOT NULL DEFAULT '',
`uid` int(11) DEFAULT NULL,
`gid` int(11) DEFAULT NULL,
`passwd` varchar(200) NOT NULL DEFAULT '',
`shell` varchar(150) NOT NULL DEFAULT '/bin/false',
`homedir` varchar(250) DEFAULT NULL,
`regtime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`expire_date` date NOT NULL DEFAULT '2100-01-01',
`active` enum('Y','N') NOT NULL DEFAULT 'Y',
`count` int(11) DEFAULT '0',
`memo` varchar(250) DEFAULT NULL,
`agent` varchar(30) NOT NULL DEFAULT '111',
PRIMARY KEY (`idno`),
KEY `userid` (`userid`)
) ;
CREATE TABLE `ftpGroups` (
`gidno` int(11) NOT NULL AUTO_INCREMENT,
`groupname` varchar(100) NOT NULL DEFAULT '',
`gid` int(11) NOT NULL DEFAULT '0',
`members` varchar(200) NOT NULL DEFAULT '',
PRIMARY KEY (`gidno`),
KEY `groupname` (`groupname`)
) ;
3、配置文件
一、ServerName "FTP Server"
ServerType standalone
DefaultServer on
Port 21
Umask 022
MaxInstances 50
User nobody
Group nobody
DefaultRoot ~
AllowOverwrite on
AllowRetrieveRestart on
AllowStoreRestart on
<Limit SITE_CHMOD>
</Limit>
#加密模塊tls
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd-tls.log
TLSProtocol SSLv23
TLSRequired ctrl
#生成證書及key值(瞭解openssl 加密技術)
#openssl req -new -x509 -nodes -out proftpd.crt -keyout proftpd.key 一路回車便可
TLSRSACertificateFile /usr/local/proftpd/etc/proftpd.crt
TLSRSACertificateKeyFile /usr/local/proftpd/etc/proftpd.key
TLSVerifyClient off
</IfModule>
ServerIdent off
PassivePorts 55000 60000
TimesGMT off
UseReverseDNS off
IdentLookups off
#mysql 虛擬用戶配置
SQLConnectInfo proftpd@localhost :3306 proftpd 123456
SQLAuthTypes Crypt #使用mysqld encrypt 模式加密,還有其餘passwd、md5加密方式,針對不一樣認證模式
SQLUserInfo ftpUser userid passwd uid gid homedir shell
SQLGroupInfo ftpGroups groupname gid members
RequireValidShell off
SQLAuthenticate users groups usersetfast groupsetfast
SQLUserWhereClause " active='Y' AND agent='111' AND expire_date > CURDATE() "
SQLLogFile /var/log/proftpd-sql.log
SQLLog PASS updatecount
SQLNamedQuery updatecount UPDATE "count=count+1 WHERE userid='%u'" ftpUser
二、
useradd nobody
groupadd nobody
touch /var/log/proftpd-tls.conf
touch /var/log/proftpd-sql.conf
chown -R nobody:nobody /var/log/proftpd.conf /var/log/proftpd-tls.conf
chown -R nobody:nobody /var/log/proftpd.conf /var/log/proftpd-sql.conf
三、插入數據
insert into ftpuser(userid,uid,gid,passwd,homedir) VALUES('test2',1001,1001,ENCRYPT('test'),'/www/test_ksgw')
4、客戶端登陸(FileZilla)
選擇登陸模式,
協議:ftp -文件傳輸協議
加密:要求顯示的FTP over TLS