ProFTPd服務(wù)安裝設(shè)置
使用 Proftpd 有個好處,可以用其它方式認(rèn)證,不用實(shí)體帳號登入,可以減少試帳號機(jī)會。
這次利用mysql 數(shù)據(jù)庫,
環(huán)境:Ubuntu 6.06.1 LTS
1. 安裝 proftpd-mysql 套件
sudo apt-get install proftpd-mysql
2. 設(shè)定 mysql 帳號
mysql -u root -p
create database ftp;
GRANT SELECT, INSERT, UPDATE, DELETE ON ftp.* TO ‘proftpd’@'localhost’ IDENTIFIED BY ‘password’;
FLUSH PRIVILEGES;
3. 建立mysql資料庫
- CREATE TABLE ftpgroup (
- 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’;
- CREATE TABLE ftpuser (
- id int(10) unsigned NOT NULL auto_increment,
- userid varchar(32) NOT NULL default ”,
- passwd varchar(32) NOT NULL default ”,
- uid smallint(6) NOT NULL default ‘5500′,
- gid smallint(6) NOT NULL default ‘5500′,
- homedir varchar(255) NOT NULL default ”,
- shell varchar(16) NOT NULL default ‘/sbin/nologin’,
- count int(11) NOT NULL default ‘0′,
- accessed datetime NOT NULL default ‘0000-00-00 00:00:00′,
- modified datetime NOT NULL default ‘0000-00-00 00:00:00′,
- PRIMARY KEY (id),
- UNIQUE KEY userid (userid)
- ) TYPE=MyISAM COMMENT=’ProFTP user table’;
4. 設(shè)定 proftpd.conf
讓 proftp 可以用 mysql 資料認(rèn)證
- SQLBackend mysql # 使用 mysql 資料庫為主
- SQLAuthTypes Backend # 密碼認(rèn)證 已 PASSWORD() 產(chǎn)生為主
- SQLAuthenticate on
- SQLConnectInfo ftp@localhost proftpd password # MySQL 連線資訊,資料庫名稱@主機(jī) 帳號 密碼
- SQLUserInfo ftpuser userid passwd uid gid homedir shell # 使用者資料庫欄位
- SQLGroupInfo ftpgroup groupname gid members # 群組資料庫欄位
- SQLLogFile /var/log/proftpd/sql.log # SQL Log 檔
- SQLHomedirOnDemand on # 當(dāng) Home 目錄不存在,會自己產(chǎn)生。
- SQLLog PASS updatecount # SQL Log 格式,當(dāng)正確登入時,要執(zhí)行的 SQL 語法
- SQLNamedQuery updatecount UPDATE “countcount=count+1, accessed=now() where userid=’%u’” ftpuser
- SQLLog STOR,DELE modified # SQL Log 格式,當(dāng)儲存或刪除檔案時,要執(zhí)行的 SQL 語法
- SQLNamedQuery modified UPDATE “modified=now() where userid=’%u’” ftpuser
- RequireValidShell off
5. 建立使用者帳號
- mysql -u root -p
- insert into ftp (userid, passwd , uid, gid , homedir ) values (’ubuntu_user’,password(’12345′), ‘5500′,’5500′,’/home/ftp/ubuntu_user’);
建立 ubuntu_user 帳號,密碼為 12345 ,目錄位于 /home/ftp/ubuntu_user , uid / gid 為此 user 上傳檔案時的 uid / gid。
6. 重新啟動 Proftpd
sudo /etc/init.d/proftpd restart
請用剛剛建立好的帳號登入看看,若順利就可以登入指定目錄內(nèi)。
7. 除錯
有任何問題,請檢查 sql.log ,會有資訊說明錯誤的原因。
【編輯推薦】