====== proftpd 使用 TLS 加密 ======
===== 產生金鑰 =====
openssl genrsa -out proftpd.key2 1024
openssl req -new -x509 -days 3650 -key proftpd.key -out proftpd.crt
Country Name (2 letter code) [AU]:TW
State or Province Name (full name) [Some-State]:Taiwan
Locality Name (eg, city) []:Jhungli
Organization Name (eg, company) [Internet Widgits Pty Ltd]:SARS.tw
Organizational Unit Name (eg, section) []:FTP
Common Name (eg, YOUR name) []:sars.tw
Email Address []:username@domain.name
chmod go-r proftpd.key proftpd.crt
mv proftpd.key proftpd.crt /etc/ssl/certs/
===== 設定 tls.conf =====
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/certs/proftpd.key
TLSVerifyClient off
TLSRequired on
TLSRenegotiate required off
===== 設定 proftpd.conf =====
在檔案中加入:
Include /etc/proftpd/tls.conf
並檢查 modules.conf 中是否有:
LoadModule mod_tls.c
====== 用 mysql 管理 proftpd 帳號 ======
http://www.castaglia.org/proftpd/doc/contrib/ProFTPD-mini-HOWTO-SQL.html
http://blog.wu-boy.com/2006/10/21/22
http://www.khoosys.net/single.htm?ipg=848
http://www.lslnet.com/linux/f/docs1/i34/big5258812.htm
===== 建立資料庫 =====
CREATE DATABASE `ftp` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
===== 建立使用者資料表 =====
此資料表紀錄使用者的基本資訊,uid 是使用者系統 uid,gid 是使用者 group 的 id,passwd 密碼,homedir 為使用者登入的家目錄,shell 可以為該使用者指定相應的 shell。
CREATE TABLE `ftp` (
`username` varchar( 60 ) default NULL ,
`uid` int( 11 ) NOT NULL ,
`gid` int( 11 ) default NULL ,
`password` varchar( 30 ) default NULL ,
`homedir` varchar( 60 ) default NULL ,
`shell` varchar( 11 ) default '/bin/false',
PRIMARY KEY ( `uid` ) ,
UNIQUE KEY ( `username` )
) TYPE = MYISAM
;
===== 建立使用者群組資料表 =====
grpname 是群組名稱,gid 是系統組的 ID,members 是組的成員。注意:多成員,他們之間要用逗號隔開,不能使用空格
例如 3 個使用者 test1 test2 test3 ,members就要寫 (test1,test2,test3)。
CREATE TABLE `groups` (
`groupname` varchar( 30 ) NOT NULL default '',
`gid` int( 11 ) NOT NULL default '0',
`members` text default NULL
) TYPE = MYISAM;
===== 建立 mysql 使用者 =====
建立使用者 proftpd,並指定 ftp 資料庫權限。
===== proftpd 設定 =====
==== proftpd.conf ====
使用 sql.conf 設定,檔案中要有這行:
Include /etc/proftpd/sql.conf
==== sql.conf ====
SQLBackend mysql
SQLEngine on
SQLAuthenticate on
SQLAuthTypes Crypt Plaintext
SQLConnectInfo ftp@localhost proftpd Cc:Y6yn9fnH7Zhtx
SQLUserInfo ftp username password uid gid homedir shell
SQLGroupInfo groups groupname gid members
#設定mysql log檔
SQLLogFile /var/log/proftpd/sql.log
PersistentPasswd off
===== 建立 group =====
# groupadd ftpgroup
===== 建立 user 和 group 資料 =====
===== 重新啟動 proftpd =====
# /etc/init.d/proftpd restart