使用者工具

網站工具


service:proftpd

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

<IfModule mod_tls.c>
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
</IfModule>

設定 proftpd.conf

在檔案中加入:

Include /etc/proftpd/tls.conf

並檢查 modules.conf 中是否有:

LoadModule mod_tls.c

用 mysql 管理 proftpd 帳號

建立資料庫

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

<IfModule mod_sql.c>
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
</IfModule>

建立 group

# groupadd ftpgroup

建立 user 和 group 資料

重新啟動 proftpd

# /etc/init.d/proftpd restart
service/proftpd.txt · 上一次變更: 2008/12/16 20:13 由 wenpei