Linux下架設FTP(轉)

post0發表於2007-08-14
Linux下架設FTP(轉)[@more@]

  Linux下一般最常用的工具wu-ftpd.

  wu-ftpd的安裝非常容易,大多數版本的Linux中都包含了wu-ftpd的rpm軟體包,你可以在安裝Linux時指定裝入。如果你想自行編譯原始碼,也可以到ftp://ftp.wu-ftpd.org下載最新版本的原始碼包。

  安裝好以後,可以用ckconfig命令來檢查是否已經正確安裝。在/etc/passwd中可以指定ftp使用者的登入目錄。

  wu-ftpd主要有以下6個配置檔案:

  ftpaccess(主要配置檔案,控制存取許可權)

  ftpconvertions(配置檔案壓縮/解壓縮轉換)

  ftpgroups(設定ftp自己定義的群組)

  ftphosts(設定個別的使用者許可權)

  ftpservers(設定不同IP/Domain Name以對應到不同的虛擬主機)

  ftpusers(設定哪些帳號不能用ftp連線)

  下面我們來一一介紹。

  ⒈/etc/ftpaccess(wu-ftpd的主要配置檔案)

  class--定義群組,用法如下:

  class[……]

  由class定義的群組使用者才可以連線進來,可以使用多層式的class來規範哪些群組的使用者能夠從哪些地方上來。這裡有三個重要的種類,real、anonymous個guest。real如果沒有列在定義中,那麼這臺機器中任何真實的一般使用者都無法用自己的帳號連上來。anonymous如果沒有在定義,就表示不讓沒有帳號的的人連上來。如果有定義guest,那麼guest群組的人就可以上來。另外是指ftp上來的使用者會用到的IP地址,則可自行設定。以下是一些例子:

  class all real,guest,anonymous *

  定義了一個名為all的class,包含三種人,所有IP的連線使用者(也就是所有人都包括了)

  class local real localhost loopback

  local這個class說,只有real的使用者可以從本機機器連上來

  class remote guest,anonymous *

  remote這個class包含了從任何地方上來的guest和anonymous使用者,但是real使用者不算

  class rmtuser real !*.example.com

  rmtuser這個class包含了從外面來的(除了example.com)真實使用者

  autogroup--自動對應群組,用法如下:

  autogroup[……]

  當你定義好的那些同屬於一個class的使用者,一旦連線上來就會被對應到一個相應的群組下面,這樣你就可以用Unix的檔案許可權對某一群人做限制。

  deny--拒絕某些地址連線,用法如下:

  deny

  禁止某些機器連線,並顯示。例如:

  deny 210.62.146.*:255.255.255.254 /etc/reject.msg

  guestgroup--設定訪客群

  guestuser--設定訪客帳號

  realgroup--設定真實群組

  realuser--設定真實帳號

  nice--設定給某些class多少優先權,用法如下:

  nice

  在Linux中,nice的值是-20(最優先)到19(最後處理),這裡你可以指定負的值來提高某class的優先順序。

  defumask--設定某class的umask,用法如下:

  defumask[]

  umask是建立檔案時該檔案的的許可權掩碼

  tcpwindow--設定tcpwindow的大小

  keepalive--設定是否使用TCP SO_KEEPALIVE來控制斷線情形

  timeout--設定連線超時,用法如下:

  timeout accept

  接受連線超時,預設120秒

  timeout connect

  連線建立超時,預設120秒

  timeout data

  資料傳送超時,預設1200秒

  timeout idle

  使用者發呆超時,預設900秒

  file-limit--限制某class只能傳幾個檔案,用法如下:

  file-limit[][]

  對某個class限制存取檔案的數目,包含了in(上傳)、out(下載),total raw代表整個傳輸的結果,不光是資料檔案。例如:

  file-limit out 20 lvfour

  限制lvfour這個class的使用者最多隻能下載20個檔案

  byte-limit--限制某class只能傳幾個位元組,用法跟file-limit相似

  limit-time--限制一個連線只能持續多久,用法如下:

  limit-time{*|anonymous|guest}

  為了避免有人掛在站上不下來,可以用這個方法限制使用者的上線時間,例如:

  limit-time guest 5

  讓guest帳號的使用者只能用5分鐘

  limit--限制某class能同時幾人上線,用法如下:

  limit

  設定某個class在某一時間區段內最多能夠幾人同時上線,後面是當超過連線數目時要顯示的資訊。例如:

  limit all 32 Any /home/ftp/etc/toomanyuser.msg

  限制所有連線在任何時間只能有32個使用者,超過則拒絕連線並顯示資訊

  limit levellone 5 Any2300-0600 /home/ftp/etc/toomanyuser.msg

  限制levellone這個class的使用者在23:00到6:00這段時間內只能有5人連線

  noretrieve--設定哪些檔案不可下載

  noretrieve[absolute/relative][class=]…[-][…]

  absolute或relative指檔案是用絕對路徑還是相對路徑

  allow=retrieve--設定哪些檔案可以下載

  allow[absolute/relative][class=]…[-][…]

  loginfails--設定登入錯誤可嘗試的次數

  當使用者連線時可能打錯ID或密碼,這個設定可以讓他打錯幾次以後就斷線,避免有人用窮舉法猜測密碼。

  private--設定線上是否可以執行SITE GROUP/SITE GPASS

  當開放SITE GROUP與SITE GPASS指令時,可以用這兩個指令切換到/etc/ftpgroup的群組。一般而言我們不會用到這個功能,以避免安全漏洞。

  greeting--顯示Server的版本資訊,用法如下:

  greeting

  當使用者登入畫面顯示的server資訊,full是預設值,包含版本號以及hostname,brief只有hostname,而terse只有“FTP server ready”的資訊。

  barnner--設定未進入Login畫面之前使用者看到的資訊,用法如下:

  banner

  這裡敘述了在使用者登入時,在還沒打ID/Password之前要出現的資訊。檔案路徑指的是相對於真實的路徑,而不是相對於ftp的根目錄。

  host--設定ftp主機名

  email--指定ftp管理者的email地址

  message--資訊檔案的設定,用法如下:

  message{{……}}

  這裡的檔案的路徑是相對於ftp的根目錄的,“何時”是指當你做了什麼動作之後的反應,有幾個選擇:

  login(登入時)

  cwd=(進入某目錄時)

  class 名稱是前面已經定義過的,允許你的資訊只對哪些人發出。

  而資訊檔案的內容除了文字以外,還可以使用以下一些事先定義好的代號:

  %T(本機時間)

  %F(目前分割槽所剩餘的空間)

  %C(目前所在的目錄)

  %E(管理者的E-mail)

  %R(客戶端主機名稱)

  %L(本機主機名稱)

  %U(使用者名稱稱)

  %M(與我相同class使用者允許多少人連線)

  %N(與我相同class使用者目前有多少人連線)

  %B(絕對磁碟限制大小,目前分割槽(單位blocks))

  %b(preferred磁碟限制大小,目前分割槽(單位blocks))

  %Q(目前已使用的blocks)

  %I(最大可使用的inodes(+1))

  %i(Preferred inodes限制)

  %q(目前使用的indoes)

  %H(超量使用磁碟空間的時間限制)

  %h(超量使用檔案數目的時間限制)

  readme--通知使用者哪些README檔案已經更新

  log commands--記錄使用者所使用過的命令,用法如下:

  log commands

  log transfers--記錄使用者所傳輸的檔案,用法如下:

  log transfers

  設定有哪些型別的使用者傳輸檔案需要記錄,包含了inbound(使用者上傳)和outbound(使用者下載),例如:

  log transfers anonymous,guest inbound,outbound

  log security--記錄安全性,用法如下:

  log security

  特別用於記錄某類使用者關於noretrive、notar等有關安全性的記錄

  log syslog--記錄到系統的syslog檔案

  alias--設定目錄別名,用法如下:

  alias

  cdpath--設定cd更換目錄搜尋順序

  compress,tar--設定是否自動壓縮,用法如下:

  compress[……]

  tar[……]

  定義哪些人可以執行壓縮以及tar

  shutdown--通知使用者要關站了

  shutdown

  如果資訊檔案存在的話,當這個檔案指定的某時間以後,就會拒絕連線並切斷已有的連線,等時間一到就關機。這個資訊檔案的格式如下:

  

  daemon address--指定只監聽某個IP地址,用法如下:

  daemon address

  當你有許多IP的時候,使用這個選項將會取消其它任何虛擬FTP主機的設定。不設定的話,監聽所有IP。

  virtual--設定虛擬FTP站臺

  wu-ftpd提供了虛擬主機的功能,也就是說,在同一臺機器上提供了不同FTP站臺,以主機名稱或IP來區分;當然你要用名稱的話,還需要跟DNS配合才行。virtual有很多個設定:

  virtual

  

  可以是主機名或IP地址

  root指的是ftp的根目錄,banner是歡迎資訊,logfile指的是這個虛擬站臺的log檔案

  以下是一些例子:

  virtual virtual.com.bj root /home/ftp2

  virtual virtual.com.bj banner /etc/vftpbanner.2

  virtual virtual.com.bj logfile /etc/viftplog.2

  virtual

  

  使用者可以查到hostname跟管理者email,以下是一些例子:

  virtual 210.62.146.50 hostname virtual.site.com.bj

  virtual vritual.site.com.bj email ftpown@virtual.site.com.bj

  virtual

  all


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-957037/,如需轉載,請註明出處,否則將追究法律責任。

相關文章