Linux環境PureFTPd安裝配置

來源:互聯網
上載者:User
1、下載pure-ftpd源碼包,解壓
  2、編譯、安裝、準備
  進入解壓好的源碼目錄
  #配置編譯參數,偷懶--everything
  ./configure --with-everything --with-language=simplified-chinese
  #編譯、安裝
  make
  make install
  #設定組態工具
  chmod 755 configuration-file/pure-config.pl
  cp configuration-file/pure-config.pl /usr/local/sbin/
  cp configuration-file/pure-ftpd.conf /etc/
  #配置自動啟動指令碼,採用官方編譯範例,寫得確實比較一般
  vi /etc/rc.d/init.d/pure-ftpd
  #!/bin/bash
  #
  # script for the pure-ftpd FTP Server  $Revision: 1.3 $
  #
  # chkconfig: 2345 85 15
  # description: Pure-FTPd is an FTP server daemon based upon Troll-FTPd
  # processname: pure-ftpd
  # pidfile: /var/run/pure-ftpd.pid
  # config: /etc/pure-ftpd.conf

 

  # Source function library.
  . /etc/rc.d/init.d/functions

  RETVAL=0

  # Path to the pure-ftp binaries.
  prog=pure-config.pl
  fullpath=/usr/local/sbin/$prog
  pureftpwho=/usr/local/sbin/pure-ftpwho

  start() {
   echo -n $"Starting $prog: "
   $fullpath /etc/pure-ftpd.conf --daemonize
   RETVAL=$?
   [ $RETVAL = 0 ] && touch /var/lock/subsys/$prog
   echo
  }
  stop() {
   echo -n $"Stopping $prog: "
   kill $(cat /var/run/pure-ftpd.pid)
   RETVAL=$?
   [ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog
   echo
  }

  # See how we were called.
  case "$1" in
   start)
    start
    ;;
   stop)
    stop
    ;;
   restart)
    stop
    start
    ;;
   condrestart)
    if [ -f /var/lock/subsys/$prog ] ; then
     stop
     # avoid race
     sleep 3
     start
    fi
    ;;
   status)
    status $prog
    RETVAL=$?
    if [ -f $pureftpwho ] && [ $RETVAL -eq 0 ] ; then
     $pureftpwho
    fi
    ;;
   *)
    echo $"Usage: $prog {start|stop|restart|condrestart|status}"
    RETVAL=1
  esac
  exit $RETVAL
  修改執行許可權
  chmod a+x /etc/rc.d/init.d/pure-ftpd
  進入setup工具,配置自動啟動

  3、運行選項設定
  vi /etc/pure-ftpd.conf
  # 參考chinaunix站jeffwu的翻譯

  # 限制所有使用者在其主目錄中,注釋掉表示不限制

  ChrootEveryone yes

  # 如果前一個指令被設定為了 "yes",下面組的成員(GID)可以不受限制。而其他的使用者則受限制在自己的主目錄裡。
  # 特別提示:如果前一個指令被設定為了 "no",下面組的成員(GID)可以不受限制。而其他的使用者還是會受限制在自己的主目錄裡。
  # 如果你不想把任何使用者限制在自己的主目錄裡,可以注釋掉ChrootEveryone和TrustedGID
  # 或ChrootEveryone no,同時注釋TrustedGID
  # (外國人的邏輯很另類,比較人性化,但是不是很好理解)
  # 此參數必須與上一個參數同時使用。

  # TrustedGID 100

  # 相容非正規化的ftp用戶端,現在這種用戶端比較少見,建議設為no

  BrokenClientsCompatibility no

  # 總共允許同時串連的最大使用者數

  MaxClientsNumber 50

  # 做為守護(doemon)進程運行(Fork in background)

  Daemonize yes

  # 同一IP允許同時串連的使用者數

  MaxClientsPerIP 8

  # 如果你要記錄所有的客戶命令,設定這個指令為 "yes"。

  VerboseLog no

  # 即使用戶端沒有發送 '-a' 選項也列出隱藏檔案( 以點開頭的檔案dot-files )。

  DisplayDotFiles yes

  # 僅作為一個公用的匿名FTP,不接受認證使用者。

  AnonymousOnly no

  # 不允許匿名串連,僅允許認證使用者使用,和上一條相反。

  NoAnonymous no

  # 寫入系統日誌的事件層級 (auth, authpriv, daemon, ftp, security, user, local*)
  # 預設( facility )為 "ftp";"none" 表示禁止寫入系統日誌。

  SyslogFacility ftp

  # 定製使用者登陸後的顯示資訊(Display fortune cookies)

  # FortunesFile /usr/share/fortune/zippy

  # 在記錄檔中不解析主機名稱,建議設為yes以減少系統開銷。

  DontResolve yes

  # 用戶端允許的最大的空閑時間(分鐘,預設15分鐘)

  MaxIdleTime 15

  # LDAP 設定檔 (參考 README.LDAP)

  # LDAPConfigFile /etc/pureftpd-ldap.conf

  # MySQL 設定檔 (參考 README.MySQL)

  # MySQLConfigFile /etc/pureftpd-mysql.conf

  # Postgres 設定檔 (參考 README.PGSQL)

  # PGSQLConfigFile /etc/pureftpd-pgsql.conf

  # PureDB 使用者資料庫 (參考 README.Virtual-Users)

  PureDB /etc/pureftpd.pdb

  # 提示,設定上面任何一種認證方式,將屏蔽系統使用者認證,除非把下面的UnixAuthentication開啟
  # 但是,如果沒有設定任何認證方式,pureftp將預設採用系統使用者認證(外國人的邏輯真的很另類)

  # pure-authd 的socket 路徑(參考 README.Authentication-Modules)

  # ExtAuth /var/run/ftpd.sock

  # 如果你要啟用 PAM 認證方式, 去掉下面行的注釋。

  # PAMAuthentication yes

  # 如果你要啟用 簡單的 Unix系統 認證方式(/etc/passwd), 去掉下面行的注釋。

  # UnixAuthentication yes

  # 請注意,LDAP, MySQL, PAM等資料庫認證和
  # UnixAuthentication 這些指令只能被使用一次,不過,他們能被混合在一起用。例如:如果你使用了
  # MySQLConfigFile 和 UnixAuthentication,那麼 SQL 伺服器將被訪問。如果因為使用者名稱未找
  # 到而使 SQL 認證失敗的話,就會在/etc/passwd 和 /etc/shadow 中嘗試另外一種認證,如果因
  # 為密碼錯誤而使 SQL 認證失敗的話,認證就會在此結束了。認證方式由它們被給出來的順序而被鏈
  # 接了起來。

  # 'ls' 命令的遞迴限制。第一個參數給出檔案顯示的最大數目。第二個參數給出最大的子目錄深度。

  LimitRecursion 2000 8

  # 允許匿名使用者建立新目錄?

  AnonymousCanCreateDirs no

  # 如果系統被 loaded 超過下面的值,匿名使用者會被禁止下載。

  MaxLoad 4

  # 被動串連響應的連接埠範圍,需要調整防火牆。

  # PassivePortRange 30000 50000

  # 強制一個IP地址使用被動響應( PASV/EPSV/SPSV replies)。 - for NAT.
  # Symbolic host names are also accepted for gateways with dynamic IP
  # addresses.

  # ForcePassiveIP 192.168.0.1

  # 匿名使用者的上傳/下載的比率。

  # AnonymousRatio 1 10

  # 所有使用者的上傳/下載的比率。
  # This directive superscedes the previous one.

  # UserRatio 1 10

  # 不接受所有者為 "ftp" 的檔案的下載。例如:那些匿名使用者上傳後未被本地管理員驗證的檔案。

  AntiWarez yes

  # 服務監聽的IP 位址和連接埠。(預設是所有IP地址和21連接埠)

  # Bind 127.0.0.1,21

  # 匿名使用者的最大頻寬(KB/s)。

  # AnonymousBandwidth 8

  # 所有使用者的最大頻寬(KB/s),包括匿名使用者。
  # Use AnonymousBandwidth *or* UserBandwidth, both makes no sense.

  # UserBandwidth 8

  # 建立目錄及檔案的屬性掩碼值。<檔案掩碼>:<目錄掩碼> .
  # 最安全的是177:077,但是會帶來維護上的困難。

  Umask 133:022

  # 認證使用者允許登陸的最小組ID(UID) 。
  # 注意這個設定,最好不要設定為0(root可登陸),nobody的ID通常為99,看著辦

  MinUID 100

  # 僅允許認證使用者進行 FXP 傳輸。

  AllowUserFXP yes

  # 對匿名使用者和非匿名使用者允許進行匿名 FXP 傳輸。

  AllowAnonymousFXP no

  # 使用者不能刪除和寫點檔案(檔案名稱以 '.' 開頭的檔案),即使使用者是檔案的所有者也不行。
  # 如果 TrustedGID 指令沒有被注釋 ,檔案所屬組使用者能夠訪問點檔案(dot-files)。

  ProhibitDotFilesWrite no

  # 禁止讀點檔案(檔案名稱以 '.' 開頭的檔案) (.history, .ssh...)

  ProhibitDotFilesRead no

  # 永不覆蓋檔案。當上傳的檔案,其檔案名稱已經存在時,自動重新命名,如: file.1, file.2, file.3, ...

  AutoRename no

  # 不接受匿名使用者上傳新檔案( no = 允許上傳)

  AnonymousCantUpload no

  # 僅允許來自以下IP地址的非匿名使用者串連。你可以使用這個指令來開啟幾個公網IP來提供匿名FTP,
  # 而保留一個私人的防火牆保護的IP來進行遠端管理。你還可以只允許一內網地址進行認證,而在另外
  # 一個IP上提供純匿名的FTP服務。

  # TrustedIP 10.1.1.1

  # 如果你要為日誌每一行添加 PID ,請去掉下面行的注釋。

  # LogPID yes

  # 使用類似於Apache的格式建立一個額外的記錄檔,如:
  # fw.c9x.org - jedi [13/Dec/1975:19:36:39] "GET /ftp/linux.tar.bz2" 200 21809338
  # 這個記錄檔能被 www 流量分析器處理。

  # AltLog clf:/var/log/pureftpd.log

  # 使用最佳化過的格式為統計報告建立一個額外的記錄檔。

  # AltLog stats:/var/log/pureftpd.log

  # 使用標準的W3C格式建立一個額外的記錄檔。(與大部分的商業日誌分析器相容)

  # AltLog w3c:/var/log/pureftpd.log

  # 不接受 CHMOD 命令。使用者不能更改他們檔案的屬性。

  # NoChmod yes

  # 允許使用者恢複和上傳檔案,卻不允許刪除他們。

  # KeepAllFiles yes

  # 使用者主目錄不存在的話,自動建立。

  # CreateHomeDir yes

  # 啟用虛擬磁碟限額。第一個數字是最大的檔案數。
  # 第二個數字是最大的總的檔案大小(單位:Mb)。
  # 所以,1000:10 就限制每一個使用者只能使用 1000 個檔案,共10Mb。

  # Quota 1000:10

  # 如果你的 pure-ftpd 編譯時間加入了獨立伺服器( standalone )支援,你能夠改變 pid 檔案
  # 的位置。預設位置是 /var/run/pure-ftpd.pid 。

  # PIDFile /var/run/pure-ftpd.pid

  # 如果你的 pure-ftpd 編譯時間加入了 pure-uploadscript 支援,這個指令將會使 pure-ftpd
  # 發送關於新上傳的情況資訊到 /var/run/pure-ftpd.upload.pipe,這樣 pure-uploadscript
  # 就能讀然後調用一個指令碼去處理新的上傳。

  # CallUploadScript yes

  # 這個選項對允許匿名上傳的伺服器是有用的。當 /var/ftp 在 /var 裡時,需要保留一定磁碟空間
  # 來保護記錄檔。當所在磁碟分割使用超過百分之 X 時,將不在接受新的上傳。

  MaxDiskUsage 99

  # 如果你不想要你的使用者重新命名檔案的話,就設定為 'yes' 。

  # NoRename yes

  # 是 'customer proof' : 工作區(workaround)反對普通的客戶錯誤,類似於:'chmod 0 public_html' 的錯誤。
  # 那是一個有效命令,不過,將導致無知的客戶所定他們自己的檔案,將使你的支援人員忙於愚蠢的的問題中。
  # 如果你確信你所有的使用者都有基本的Unix知識的話,這個特性將沒什麼用了。不過,如果你是一個主機供應商
  # 的話,啟用它。

  CustomerProof yes

  # 每一個使用者的並發限制。只有在添加了 --with-peruserlimits 編譯選項進行編譯後,這個指令才起
  # 作用。(大部分的二進位的發布版本就是例子)
  # 格式是 : <每一個使用者最大允許的進程>:<最大的匿名使用者進程>
  # 例如: 3:20 意思是同一個認證使用者最大可以有3個同時活動的進程。而且同時最多隻能有20個匿名使用者進程。

  # PerUserLimits 3:20

  4、使用者管理
  # 如果開啟puredb,則必須增加至少一個使用者
  增加使用者
  pure-pw useradd xxx -u 映射系統使用者(不要小於MinUid) -g 映射系統組 -d 使用者目錄(-D 表示不鎖定使用者目錄) -m(僅在開啟puredb選項時需要)
  編輯使用者
  pure-pw usermod xxx
  刪除使用者
  pure-pw userdel xxx
  其餘的看pure-pw協助

  5、啟動服務
  /etc/rc.d/init.d/pure-ftpd start

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.