====== 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