在Linux系統下FTP的配置與應用(轉)

ba發表於2007-08-10
在Linux系統下FTP的配置與應用(轉)[@more@]FTP服務是Internet上的標準服務之一,用來在網路上傳輸檔案。在linux系統中,通常用wu-ftpd來實現該服務(。

  通常,wu-ftpd提供三種ftp登入形式:

  1、anonymous ftp

  2、real ftp

  3、guest ftp

  anonymous ftp 應用最廣泛的一種ftp,通常,使用者以anonymous為使用者名稱,以電子郵件地址為密碼進行登入。

  real ftp 就是以真實的使用者名稱和密碼進行登入,登入以後,使用者可以訪問整個目錄結構。通常認為,real ftp 能對系統安全構成極大威脅,所以,除非萬不得以,應儘量避免使用real ftp。

  guest ftp 也是real ftp 的一種形式,不同之處在於,一個geust登入後,他就不能訪問除宿主目錄以外的內容。

  在wu-ftpd中,是透過特定的配置文來控制ftp 訪問的,主要的配置檔案有:

/etc/ftpaccess

/etc/ftpusers

/etc/ftphosts

/etc/ftpconversions



  等等,下面我們就分別來講講這些配置檔案。

  ftpaccess是主要的ftp配置檔案,在該檔案內你可以實現對ftp各方面的控制,由於控制命令名目繁多,我們將以wu-ftpd的2.6版本為例分幾個部分來講,相關文件可見wu-ftpd手冊。

  1、訪問控制

  class [...]

  說明:該命令用於定義使用者類,定義使用者類的目的是為了方便對服務的控制。其中:

  為類名,為一字串;

  可以以逗號分隔的"anonymous"、"guest"、"real"關鍵字之一,real說明該使用者類中的使用者可以用真實的賬號來訪問ftp,anonymous說明該使用者類中的使用者使用匿名ftp,guest說明該使用者類中的使用者用guest賬號訪問ftp。

  定義該使用者類源ip地址或域名,可以用以下定義方法:ip地址:子網掩碼,或address/cidr。這裡也可以指定一個檔案,該檔案包含了該使用者類源ip地址的定義。之前還可以用驚歎號表示除以外的地址類。

  例子:

  class anon anonymous *

  class mng real 210.221.80.0/24

  class user real !domainname.com

  第一條定義了anon使用者類,為匿名使用者,可以是來自任何地方。

  第二條定義了mng使用者類,為真實使用者,來自210.221.80網段。

  第三條定義了user使用者類,為真實使用者,可以是除domainname.com以外的任何地址。

  我們接著來看ftpaccess的其他配置。

  deny

  說明:拒絕源地址符合的訪問,同時顯示檔案的內容。也可以是某一檔案,該檔案包含了拒絕的ip地址類的定義。可以用 !nameserverd來拒絕沒有註冊域名的客戶端請求。

  如:

  deny !nameserverd /home/ftp/etc/noname.msg

  拒絕沒有註冊域名的客戶端請求,並且顯示noname.msg的內容。

  guestgroup [...]

  guestuser [...]

  realgroup [...]

  realuser [...]

  說明:如果客戶端為中的真實使用者(real user)則該客戶端被當作guest使用者處理;如果客戶端為真實使用者則該客戶端也被當作guest使用者處理;realgroup和realuser把非匿名連線視為真實使用者連線。和也可以用使用者id和組id代替。

  比如:guestuser *

  realgroup admin

  表示除了admin組以外的任何非匿名連線視為guest使用者連線,admin仍舊視為真實使用者連線。

  nice []

  說明:如果為中的使用者連線的話,則調整ftpd程式的nice值為中指定的值。

  keepalive

  說明:是否在會話過程中保持資料通道的啟用狀態。

  timeout accept

  timeout connect

  timeout data

  timeout idle

  timeout maxidle

  timeout RFC931

  說明:設定各種超時。

  accept設定ftpd服務等待被動資料通道連線請求的超時。(預設為120秒)

  connect設定ftpd服務標準資料通道連線請求的超時。(預設為120秒)

  data設定ftpd服務等待客戶端在資料通道上多長時間沒有動作為超時。(預設為1200秒)

  idle 設定ftpd服務等待客戶端使用者在命令通道上多長時間沒有動作為超時。(預設為900秒)

  maxidle 設定使用者可以在客戶端設定的更長的空閒時間的上限。(預設為10秒)

  RFC931 設定一個RFC931協議會話的最長時間。為零則取消對該協議的支援。

  tcpwindows []

  說明:設定tcp 視窗的大小。一般linux系統預設值為6。如果網路連線情況較好可以增大該值,否則,應減小之。

  我們接著來看ftpaccess的其他配置。

  file-limit [] []

  說明:用來限制在給定類中的使用者可以傳輸的檔案數目。可分為進、出、合計三類。如果沒有指定類,則改選項將應用於所有沒有傳輸檔案限制的類。可選引數raw用來限制總的流量。

  byte-limit [] []

  說明:說明:用來限制在給定類中的使用者可以傳輸的資料流量。可分為進、出、合計三類。如果沒有指定類,則改選項將應用於所有沒有傳輸檔案限制的類。可選引數raw用來限制總的流量。

  limit-time {*anonymousguest}

  說明:用於限制一個ftp會話的總時間。預設值為無限,真實使用者不受限制。

  guestserver []

  說明:控制那一部主機用來提供anonymous或guest訪問。如果沒有指定,則拒絕所有anonymous或guest訪問。

  limit

  說明:控制在一定的時間內,可以訪問ftp的指定),當達到最大限制數時,顯示的內容。

  格式有些複雜:星期天到星期六分別為Su、Mo、Tu、We、Th、Fr、Sa,時間採用軍用格式,在小時和分鐘間沒有冒號,範圍用破折號指定。

  如:

  limit anon 20 MoTuWe,Th0800-1730 /home/ftp/etc/topmsg

  表示在星期一、星期二、星期三的全天,星期四的上午八點到下午五點半這段時間內,對anon類的使用者登入數目限制為20,達到這一限制時顯示topmsg的內容。

  noretrieve [absolutrelative][class=]...[-]

  說明:拒絕傳送某些檔案。你可以指定該檔案的絕對路徑,也可以只給出檔名。如果只給出檔名,則將拒絕傳送所有符合該檔名的檔案。

  如:

  noretrieve /etc/group passwd anon

  將拒絕向anon類傳送etc目錄下的group檔案及任何目錄下的passwd檔案。

  allow-retrieve [absolutrelative] [class=]...[-]

  說明:定義允許傳送的檔案,即使被noretrieve拒絕。

  loginfails

  說明:當登入失敗的次數達到時,顯示“repeated login failures"並終止ftp會話。

  private

  說明:是否允許使用者利用SITE GROUP和SITE GPASS命令進入需要密碼的特權使用者組中。

  在這裡要引用到/etc/ftpgroups檔案,該檔案的格式為:

  access_groupname:encrypted_passard:real_group

  access_groupname為用來引用特殊組的名字,encrypted_passard是該組的密碼, real_group為/etc/group中實際被引用的組。

  2、顯示資訊控制

  指當使用者連線到ftp或做出某些特定行為(如改變目錄)時,向使用者顯示的特定資訊。

  greeting fullbreifterse

  greeting text

  說明:定義再使用者登入前向使用者顯示的資訊。

  full 向使用者顯示主機名和ftp服務程式的版本,為預設設定。

  breif 只向使用者顯示主機名。

  terse 僅僅顯示“FTP server ready"

  text 可以指定你所想顯示的任何資訊。

  從安全形度出發,建議用terse.

  banner

  說明:在使用者鍵入使用者名稱和密碼前向使用者顯示的資訊。

  為想要顯示的檔案的完整路徑名。

  如:banner /home/ftp/etc/.banner

  hostname

  說明:定義在greeting時,向使用者顯示的主機名。

  email

  說明:定義網路管理員的email地址。

  message { {...}}

  說明:當使用者登入或更改目錄時,向使用者顯示所定義的檔案的內容。

  可以是LOGIN,說明當使用者登入成功時向使用者顯示資訊。

  也可以是CWD=,即當使用者更改目錄到時顯示資訊。

  為了避免迷惑使用者,該資訊將只顯示一次。

  當anonymous使用者觸發message時,必須相對於ftp主目錄。

  在該檔案中可以包含一些特殊的引數(完整引數請參考手冊):

%T 本地時間

%F 目錄的可用空間

%C 當前的工作目錄

%E 管理員的email地址

%R 遠端主機名

%L 本地主機名

%U 使用者登入時的使用者名稱

%M 在該使用者類中最大的允許登入數

%N 該使用者類的再線人數



  readme {}

  說明:基本用法和功能同message.

  3、日誌控制

  log commands

  說明:對特定的typelist的任何命令都進行日誌。

  typelist可以是real、anonymous、guest 中的一種。

  log transfers

  說明:對特定的typelist的檔案傳輸進行日誌。

  typelist同上,direction可以是inbound或oubound兩種。

  如:

  log transfers real inbound,outbound

  對real使用者下載或上傳進行日誌。

  log security

  說明:對種種違反安全規則的行為進行日誌,typelist同上。

  log syslog

  說明:把特定檔案inbound或oubound的傳輸日誌重定向到syslog.沒有該條語句則會把這些日誌寫到xferlog.

  log syslog+xferlog

  說明:把特定檔案inbound或oubound的傳輸日誌寫到系統日誌和xferlog.

  4、其他控制

  alias

  說明:為目錄定義已個別名。

  比如:alias tools /pub/soft/tools

  則當使用者使用cd tools命令時,不管使用者當前處於什麼目錄都將進入/pub/soft/tools目錄,從這裡我們也可以看出是相對於ftp宿主目錄的。

  cdpath

  說明:和dos中的path命令一樣,cdpath 是用來定義ftp會話中的使用者使用cd命令時的搜尋路徑。

  如:cdpath /pub/soft

  cdpath /pub/doc

  假設使用者執行了一條cd net命令,則搜尋的順序如下:

  a. ./net (搜尋當前目錄)

  b. 搜尋所有別名定義

  c. /pub/soft/net

  d. /pub/doc/net

  compress []...

  tar []...

  說明:使符合定義的使用者在傳輸之前可以對檔案進行壓縮、解壓和歸檔。實際的傳輸過程在/etc/ftpconversions中定義。

  shutdown

  說明:如果指向的檔案存在的話,則服務程式將定期地檢查該檔案,看看伺服器是不是將被關閉。如果伺服器將被關閉,則會通知使用者,並在指定的時間後拒絕新的使用者連線,在指定的時間後中斷當前的使用者會話。

  該檔案的格式如下:

其中:

必須大於1970

範圍為0—11

範圍為0—23

範圍為0—59

拒絕新的使用者連線的時間,格式為HHMM。

中斷當前的使用者會話的時間,格式為HHMM。

為向使用者的資訊。可以包含以下變數:

%s 系統關閉的時間

%r 拒絕新的使用者連線的時間

%d 中斷當前的使用者會話的時間



  daemonaddress

  說明:讓ftp監聽指定的ip地址,預設將監聽說有的ip地址。

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

相關文章