1. apt-get install proftpd

2. vi /etc/proftpd.conf

ServerName                 "ProFTPD server"                 # 顯示在Client端的ftp軟體的基本訊息
ServerIdent                  on "FTP Server ready."
ServerAdmin               root@localhost
ServerType                  standalone                            # server獨立啟動

DefaultServer              on                                          # 當設定到兩個ip或虛擬主機時,才設成off
AccessGrantMsg         "User %u logged in."

MaxInstances 30                                                        # 同一時間允許連線數目

RequireValidShell off                                                 # 當使用者在/etc/passwd中的狀態為/bin/false時,
                                                                                   # 這個設定可讓其使用ftp。
DefaultRoot ~ !adm                                                    # ~ 為家目錄的符號
                                                                                   # ! 為非的符號
                                                                                   # adm為群組
                                                                                   # 如果為 ~ adm,即代表adm群組的使用者 不可以離開自已的家目錄。
                                                                                   # 如果為 ~ !adm,代表非adm群組(adm以外)的使用者不可離開自已的家目錄。

# 以下為匿名者的設定
<Anonymous ~ftp>
   User ftp
   Group ftp
   UserAlias anonymous ftp                                        # UserAlias "登入者的帳號" "實際 Linux 主機的帳號"

   DisplayLogin welcome.msg                                    # 當使用者登入之後的歡迎畫面的檔案內容
   DisplayFirstChdir .message                                     # 轉換到某目錄時(cd指令),顯示該目錄的注意事項檔案內容
   MaxClients 20 "人數已滿"                                     # 最多僅允許 幾 個 anonymous 登入主機!
# 限速設定,單位為 KBytes/second
   TransferRate STOR 100 user anonymous,ftp            # 限上傳
   TransferRate RETR 50 user anonymous,ftp              # 限下載
                                               # 使用者
<Limit WRITE>
    Denyall
</Limit>
                                                # 設定 upload目錄中,可上傳、寫入,不能瀏覽,不能下載
                                                # 其它目錄不可寫入
<Directory /var/ftp/upload/*>
   <Limit READ>
      Denyall
   </Limit>
   <Limit WRITE>
     Allowall
   </Limit>
</Directory>

</Anonymous>
                                 # 設定上傳/下載比例
                                 # Ratios            on
                                 # SaveRatios     on
                                 # RatioFile        ratio.dat
                                                          # ratio.dat 內容,以 | 隔開
                                                          # 帳號 | 上傳檔案數 | 上傳檔案總量(KBytes) | 下載檔案數 | 下載檔案總量(KBytes)
                                
                                 # RatioTempFile    ratio.tmp
                                 # UserRatio           "使用者帳號"    fileratio           filequota         byteratio              bytequota
                                 # UserRatio             ftpuser1                  0                      0                    2                       100000
                                                                                         #以檔案         # 預設下載     # 設定比列        # 預設能夠下載多少 kb
                                                                                         # 為基準        # 多少檔案     # 上傳 / 下載
                                                                                                                                        # 1 : 2
                                                                                                                                        # 如果設成 -2
                                                                                                                                        # 為 2 : 1
                                 # 下載速度的限制
                                 # TransferRate     RETR        50       group      群組名稱

3. 建立歡迎畫面,vi welcome.msg

歡迎光臨!這個是 FTP 站台!
我的主機: %L
目前時間: %T
最大連線: %M
目前連線: %N
您的主機: %R
您的帳號: %U
目前目錄: %C

4. 在/var/ftp/upload目錄中建立一特殊訊息
vi /var/ftp/upload/.message

這個目錄僅能上傳不能下載;
您的身份為 anonymous

5. /etc/init.d/proftpd start

註:
Limit 的動作

CWD                     :Change Working Directory,變換目錄之意;
MKD                     :MaKe Directory,可建立目錄與否;
RNFR                    :ReName FRom,可更改檔名與否;
DELE                    :DELEt,可刪除檔案語法;
RMD                     :ReMove Directory,可移除目錄與否;
RETR                    :RETRieve,下載之意!由 Server 傳送資料到 Client;
READ                   :可讀取與否
WRITE                  :可寫入與否
STOR                    :STORe,上傳之意,由 Client 傳送資料到 Server !
ALL                       :全部的動作!

變數

%T                 目前的時間
%F                  所在硬碟剩下的容量
%C                 目前所在的目錄
%R                 Client 端的主機名稱
%L                 Server 端的主機名稱
%U                使用者帳號名稱
%M                最大允許連線人數
%N                目前的主機連線人數
%E                  FTP 主機管理員的 email
%i                  本次上傳的檔案數目
%o                  本次下載的檔案數量
%t                  本次上傳+下載的檔案數量

proftpd + openldap

1.
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.10.tar.bz2
tar zxvf proftpd-1.2.10.tar.bz2
cd proftpd-1.2.10.tar.bz2
./configure –prefix=/usr/local/proftpd –with-modules=mod_ldap
make
make install

2.
/usr/local/sbin/proftpd -l

Compiled-in modules:
mod_core.c
mod_xfer.c
mod_auth_unix.c
mod_auth_file.c
mod_auth.c
mod_ls.c
mod_log.c
mod_site.c
mod_ldap.c
mod_cap.c

3. vi /usr/local/proftpd/etc/proftpd.conf

LDAPServer                                  localhost
LDAPDNInfo                                cn=Manager,dc=cross,dc=com secret
LDAPDoAuth                                on ou=People,dc=cross,dc=com
LDAPHomedirOnDemandSuffix   ""

4. /usr/local/sbin/proftpd -c /usr/local/proftpd/etc/proftpd.conf

註:

# Allow to resume not only the downloads but the uploads too
AllowRetrieveRestart             on
AllowStoreRestart                  on

# Using LDAP Authentication
LDAPServer                                 localhost
LDAPDNInfo                               cn=Manager,dc=smoc,dc=com,dc=tw secret
LDAPDoAuth                               on ou=People,dc=smoc,dc=com,dc=tw
LDAPHomedirOnDemandSuffix   ""

LogFormat    default        "%h %l %u %t "%r" %s %b"
LogFormat    auth            "%v [%P] %h %t "%r" %s"

ExtendedLog        /var/log/proftpd/proftpd.log          AUTH,DIRS,READ,WRITE

SystemLog           /var/log/proftpd/proftpd.log

# This is where we want to put the pid file
ScoreboardFile     /var/run/proftpd.score

SSL/TLS

rpm 安裝

# TLS
TLSEngine                            on
TLSRequired                         on
TLSRSACertificateFile          /etc/CA/proftpd.crt
TLSRSACertificateKeyFile    /etc/CA/proftpd.key
TLSCipherSuite                     ALL:!ADH:!DES
TLSOptions                           NoCertRequest
TLSVerifyClient                    off
TLSRenegotiate                     ctrl 3600 data 512000 required off timeout 300
TLSLog                                 /var/log/proftpd/tls.log

client程式需選擇ssl/tls連線

Related posts 相關文章
FTP 50 年了,這麼久囉 ?
More...
Filezilla 非官方的下載點被駭,放上假的 FTP 軟體偷你的連線帳密
More...
使用 jailkit 建置 ssh + chroot 環境,限制使用者只能 scp/sftp 到固定目錄
More...
proftpd conf 備註
More...

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。