FTP服務器之pure-ftpd源碼編譯及參數配置

  1. Pure-ftpd介紹 node

    PureFTPd是一款免費、安全、符合國際標準的FTP 服務器軟件,具有高效性和易用性。虛擬帳戶、系統帳戶及匿名帳戶登錄支持,多種認證方式支持,磁盤配額支持,上傳下載速率限制支持,訪問IP限制支持,Mysql數據結合使用存儲ftp虛擬帳戶支持等等,獨特的實用功能爲我的用戶和託管服務提供商提供優質的定製化ftp配置選擇。 mysql

  2. 源碼下載及安裝 ios

    a. libiconv庫安裝---用戶編碼轉換(爲後面的with-rfc2640參數準備) sql

              cd /usr/local/src             數據庫

             wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz 安全

             tar -jxvf libiconv-1.14.tar.gz 服務器

             cd libiconv-1.14 cookie

             ./configure --prefix=/usr 併發

            make&&make check 測試

            make install

        b. pure-ftpd源碼安裝

            cd /usr/local/src

            wget ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-1.0.36.tar.gz

            cd /usr/local/src/pure-ftpd-1.0.36

            ./configure --prefix=/usr/local/pure-ftpd/ --with-everything --with-altlog --with-puredb  --with-ftpwho --with-mysql –with-throttling –with-ratios –with-quotas –with-virtualhosts  –with-virtualchroot –with-sysquotas –with-cookie --with-rfc2640  --with-language=simplified-chinese

            其中config參數表以下,供參考:

             –prefix=PREFIX         指定安裝目錄
             –with-sysquotas        使用系統磁盤配額 (非虛擬)
             –with-altlog               支持選擇日誌格式(相似Apache)
             –with-puredb             支持虛擬用戶 (FTP登錄用戶而非系統用戶)
             –with-extauth              支持擴展驗證模塊
             –with-pam                  啓用PAM驗證支持 (默認=禁用)
             –with-cookie               啓用Cookie支持 (-F 選項)
             –with-throttling           支持帶寬控制 (默認=禁用)
             –with-ratios                   支持 上傳/下載 速度控制
             –with-quotas               支持 .ftpquota 文件(指定磁盤配額使用)
             –with-ftpwho               支持pure-ftpwho(查看在線用戶的程序)
             –with-largefile              支持大於2G的文件
             –with-welcomemsg      支持 welcome.msg 向後兼容(已通過時)
             –with-uploadscript       上傳後容許執行外部腳本 (測試階段)
             –with-virtualhosts         在不一樣的IP地址提供虛擬服務器功能
             –with-virtualchroot        容許在chroot的環境下經過符合鏈接跳轉到外部
             –with-diraliases               啓用目錄別名
             –with-nonroot                  普通模式或者說是限制模式. 若是你在該服務器上沒有root權限那只有啓用該項
             –with-peruserlimits            支持每一個用戶的併發限制
             –with-language=            語言支持< english | traditional-chinese | simplified-chinese>
             –with-ldap                     在LDAP目錄中提供用戶數據庫
             –with-mysql                    在MySQL數據庫中存放用戶數據
             –with-pgsql                    在PostgreSQL數據庫中存放用戶數據
             –with-privsep                 啓用權限分離
             –with-tls                      啓用 SSL/TLS 支持 (測試階段, 須要安裝 OpenSSL)
             –with-certfile=            證書文件 (默認目錄: /etc/ssl/private/pure-ftpd.pem)
             –with-rfc2640              啓用兼容 RFC 2640 支持(UTF-8 編碼的文件名,須要安裝iconv)
             –with-everything       啓用大多數選項,編譯完功能版本的服務器端。

             make&&make check
             make install

            注意:這裏在編譯的時候,若是你在這操做以前還沒有安裝mysql,那麼會報錯,錯誤及解決辦法以下:

             錯誤: configure: error: libmysqlclient is needed for MySQL support
             解決方法:  yum install mysql-devel

              拷貝pure-ftpd配置文件
              mkdir /usr/local/pure-ftpd/etc
             cp /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-ftpd.conf /usr/local/pure-ftpd/etc/        # 配置文件拷貝到/etc目錄下

             cp /usr/local/src/pure-ftpd-1.0.36/purepureftpd-mysql.conf /usr/local/pure-ftpd/etc
             cp /usr/local/src/pure-ftpd-1.0.36/configuration-file/pure-config.pl /usr/local/pure-ftpd/sbin/
             彷佛make install忘記了將這個文件複製到相應的目錄了,咱們只有手動本身作了
             chmod 755 /usr/local/pure-ftpd/sbin/pure-config.pl # 設置相應的權限

             系統集成

              cd /usr/local/bin/
              ln -s /usr/local/pure-ftpd/bin/* .
              ln -s /usr/local/pure-ftpd/sbin/* /usr/local/sbin/
              ln -s /usr/local/pure-ftpd/man/man8/* /usr/local/share/man/man8/

          c. Mysql YUM安裝(我這偷懶,懼怕解決依賴問題,直接YUM)

             rpm -aq |grep mysql

             rpm -e --nodeps mysql 或者 yum remove 上面列出來的系統老的mysql安裝文件,好比 yum remove mysql mysql-server mysql-libs mysql-devel

            rpm qa|grep mysql 查看老的mysql是否已經卸載徹底,若無,則採用find / -name "mysql"  找到關聯文件用 rm強制刪除

            yum install mysql mysql-server mysql-devel mysql-libs;

    3.    創建用於pureftpd認證用戶的系統信息
           虛擬用戶則可以更好的控制訪問權限,虛擬用戶是和Linux系統用戶關聯的獨立的帳戶系統。因此在建立虛擬用戶以前最好先建立一個系統的帳戶和組。
           [root@localhost  /]# groupadd -g 2000 pureftp
           [root@localhost  /]# useradd -u 2000 -g pureftp -d /var/pureftp -s/sbin/nologin pureftp

    4.    修改pure-ftp.conf

             ChrootEveryone              yes         # 啓用chroot
             BrokenClientsCompatibility  yes         # 兼容不一樣客戶端
             Daemonize                   yes            # 後臺運行

             MaxClientsNumber            50      #服務器併發鏈接數
             MaxClientsPerIP               5          # 每一個ip最大鏈接數
             VerboseLog                  yes          # 記錄日誌
             DisplayDotFiles             no          # 顯示隱藏文件
             AnonymousOnly               no          # 只容許匿名用戶訪問
             NoAnonymous                 yes         # 不容許匿名用戶鏈接
             SyslogFacility              ftp            # 將日誌在syslog日誌中顯示
             DontResolve                 yes         # 不進行客戶端DNS解析
             MaxIdleTime                 15          # 最大空閒時間

             #MySQLConfigFile              /usr/local/pure-ftpd/etc/pureftpd-mysql.conf      #Mysql虛擬用戶配置檔,在還沒有弄好Mysql虛擬帳戶時先註銷,稍後開啓
             PureDB                     /usr/local/pure-ftpd/etc/pureftpd.pdb        # 用戶數據庫文件

             LimitRecursion              10000 8      # 瀏覽限制,文件10000,目錄8層
             AnonymousCanCreateDirs      no          # 匿名用戶能夠建立目錄
             MaxLoad                     4           # 超出負載後禁止下載
             PassivePortRange          50000 51000   # 被動模式端口範圍
             #AnonymousRatio                1 10     # 匿名用戶上傳/下載比率
             UserRatio                 1 10          # 全部用戶上傳/下載比率
             AntiWarez                   yes         # 禁止下載匿名用戶上傳但未經驗證的文件
             #AnonymousBandwidth            200      # 匿名用戶帶寬限制(KB)
             UserBandwidth               8           # 全部用戶最大帶寬(KB)
             Umask                       133:022     # 建立文件/目錄默認掩碼
             MinUID                      100         # 最大UID限制
             AllowUserFXP               yes        # 用戶進行FXP傳輸
             AllowAnonymousFXP           no          # 對匿名用戶和非匿名用戶容許進行匿名 FXP 傳輸
             ProhibitDotFilesWrite       no          # 不能刪除/寫入隱藏文件
             ProhibitDotFilesRead        no          # 禁止讀取隱藏文件
             AutoRename                  yes         # 有同名文件時自動從新命名
             AnonymousCantUpload         yes         # 不容許匿名用戶上傳文件
             AltLog                     clf:/var/log/pureftpd.log                # clf格式日誌文件位置
             MaxDiskUsage               99           # 當磁盤使用量打到99%時禁止上傳

             PIDFile                     /var/run/pure-ftpd.pid     #pureftp的PID
             CreateHomeDir              yes          # 若是虛擬用戶的目錄不存在則自動建立
             CustomerProof              yes          # 防止命令誤操做

             FileSystemCharset      UTF-8         #服務器以UTF-8格式
             ClientCharset          gb2312          #客戶端gb2312

未完待續.....

相關文章
相關標籤/搜索