在Linux系統下FTP的配置與應用(轉)
在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地址。
通常,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地址。
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下啟動ftp及xdm配置(轉)LinuxFTP
- Linux下ftp的安裝配置LinuxFTP
- Linux系統下應用知識大薈萃(轉)Linux
- 在Linux下建立強大的FTP搜尋引擎(轉)LinuxFTP
- 無線技術在Linux作業系統中的應用(轉)Linux作業系統
- Linux系統在儲存技術中的幾項應用(轉)Linux
- 在 linux 系統下安裝 perl(轉)Linux
- ERP系統在我國的應用(轉)
- Dubbo 泛化呼叫在vivo統一配置系統的應用
- Linux檔案系統的桌面應用(轉)Linux
- 在Linux作業系統上執行Windows應用程式(轉)Linux作業系統Windows
- 【轉】Linux下history命令配置及高階應用Linux
- Linux作業系統檔案系統的桌面應用(轉)Linux作業系統
- 在Linux下配置TCP/IP(轉)LinuxTCP
- Linux下架設FTP(轉)LinuxFTP
- 一個在Linux系統下的入侵響應案例Linux
- 在Linux系統下實現Server Push(轉)LinuxServer
- 在Linux系統下實現ServerPush(轉)LinuxServer
- ORACLE在LINUX上的系統配置OracleLinux
- 簡單配置Linux系統下的網路鄰居Samba(轉)LinuxSamba
- 如何配置Linux系統下的yumLinux
- 小乾貨~ NFS在Linux系統中的應用NFSLinux
- Linux下FTP和TFTP服務配置LinuxFTP
- linux雲伺服器系統FTP、apache、mysql配置方法Linux伺服器FTPApacheMySql
- Linux 系統中的Samba配置(轉)LinuxSamba
- PHP4 + MYSQL + APACHE 在 WIN 系統下的安裝、配置 (轉)PHPMySqlApache
- Linux作業系統程式管理的分析與應用Linux作業系統
- Linux 系統中隨機數在 KVM 中的應用Linux隨機
- Linux下NFS(網路檔案系統)的建立與配置方法LinuxNFS
- linux下開啟並配置FTP服務LinuxFTP
- Linux系統配置與最佳化經驗談(轉)Linux
- 在Unix系統下用shell製作通用介面(轉)
- Linux命令FAQ:系統配置(轉)Linux
- 配置安全的Linux作業系統(轉)Linux作業系統
- Linux 系統中的Samba配置(轉貼)LinuxSamba
- Linux 系統管理(下)(轉)Linux
- FTP原理與配置FTP
- 入侵檢測系統分析及其在Linux下的實現(轉)Linux