Linux下架FTP

來源:互聯網
上載者:User


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
allow<使用者>[<使用者>……]
virtual
deny<使用者>[<使用者>……]
很明顯,以上兩個選項是設定是否允許連線的,以下是一些例子:
virtual virtual.site.com.bj allow *
virtual virtual.site.com.bj deny badman
virtual
private
本虛擬月台拒絕anonymous使用者
defaultserver deny <使用者>[<使用者>……]
defaultserver allow <使用者>[<使用者>……]
當我們使用了虛擬機器主機,原先的deny,allow設定不知道要設哪個server,所以會無效,用defaultserver代表原來的主機
defaultserver private
主月台拒絕anonymous使用者
passive address--轉換IP數值
passive address<外部IP>/cidr
passive ports--passive的ports範圍
passive ports
pasv-allow--允許使用pasv
pasv-allow[<地址>……]
port-allow--允許使用port
port-allow[<地址>……]
mailserver--指定Upload通知的mail伺服器
incmail--指定anonymous upload的email通知地址
virtual incmail--指定虛擬機器主機anonymous upload的email通知地址
defaultserver incmail--指定預設主機anonymous upload的email通知地址
mailfrom--通知的寄信人upload
virtual mailfrom--虛擬機器主機upload通知的寄信人
defaultserver mailfrom--預設主機upload通知的寄信人
chmod--設定是否可以改變檔案許可權
delete--設定是否可以刪除檔案
overwrite--覆蓋檔案
rename--重新命名檔案
umask--允許設定umask
passwd-check--設定anonymous FTP的密碼檢查程度,用法如下:
passwd-check()
設定對anonymous ftp使用者的密碼是否檢查,none表示不檢查,trivial為包含@的任意密碼,rfc822則表示密碼要遵循RFC822格式,enforce表示密碼檢查不過不允許進入,warn表示密碼檢查不過只出現警告資訊。
deny=email--拒絕特定的email當密碼
path-filer--攝定哪些檔案名稱不可使用
path-filer<錯誤資訊檔><允許字元><不允許字元>
upload--設定upload許可權
upload[absloute/relative][class=]…[-]<設定的目錄> >[dirs/nodirs][d_mode]
用來對我們要設定的目錄做許可權設定:
absoulte/relative使用絕對路徑或是相對路徑
class=指定某個class
root-dir指的是對哪些root-dir的人,也就是chroot後的登入目錄,應用這個規則
設定的目錄指的就是我們要限制的目錄
yes/no指得是能否在此目錄下開新檔案
owner,group指出是開出來的檔案擁有者及群組
Mode指的是檔案許可權
dirs/nodirs指的是能否開新目錄
d_mode設定建立新目錄時目錄的許可權,如果不設定會根據mode來設定
thoughput--控制下載速度
thoughput<子目錄列表><檔案><遠端地址清單>
對遠端的地址,控制他抓某個子目錄下的某些檔案時的速度,例如:
thoughput /e/ftp * * oo - *
thoughput /e/ftp /sw* * 1024 0.5 *
thoughput /e/ftp sw* readme oo - *
thoughput /e/ftp sw* * oo - *.foo.com
以上的設定你是否能夠看出來呢?“oo”表示不限制bytes/sec,“-”或是“1.0”都是代表一倍。第一行的意思是說,在/e/ftp下面的檔案不限制下載速度;第二行說,在/sw*下面的任何檔案限速為1024bytes/sec*
0.5=512bytes/sec;第三行又把readme檔案的限速取消;最後一行則對*.foo.com開放全速。
anonymous-root--對某class設定匿名使用者的根目錄
anonymous-root[]
guest-root--預設一個guest使用者根目錄
guest-root[]
其中用於指定uid的範圍
deny-uid,deny-gid--拒絕某段UID(GID)範圍
allow-uid,allow-gid--允許某段UID(GID)範圍
restricted-uid,restricted-gid--限制使用者不能離開他的登入目錄
unrestricted-uid,unrestricted-gid--使用者可以離開他的登入目錄
dns refuse_mismatch--設定DNS查到名稱與使用者設定不符的動作
dns refuse_mismatch<資訊檔>[override]
當使用者使用未註冊IP時,拒絕他的連線,override則是不理會錯誤而讓他連線,資訊檔則是我們要給使用者看的。
dns refuse_no_reverse--設定無反查記錄拒絕連線
dns refuse_no_reverse<資訊檔>[override]
當使用者的IP反查無記錄時,拒絕他的連線
dns resolveoptions--設定DNS解析選項
dns resolveoptions[options]
這裡可以設定DNS解析選項
⒉/etc/ftphosts
ftphosts檔案其實跟ftpaccess裡面的access,deny很像,它是特別用來設定某些ID的連線,它沒有class定義,所以必須是真實使用者。
allow|deny<使用者><地址>[<地址>……]
以下是一些例子:
allow rose 140.0.0/8
deny jack 140.123.0.0:255.255.0.0
允許rose從140.*.*.*進來,拒絕jack從140.123.*.*上來
⒊/etc/ftpservers
這個檔案控制了當你有不同的IP/hostname的時候,進來的連線使用哪一個設定檔。例如:
10.196.145.10 /etc/ftpd/ftpaccess.somedomain/
10.196.145.200 /etc/ftpd/ftpaccess.someotherdomain/
some.domain internal
10.196.145.20 /etc/ftpd/config/faqs.org/
ftp.some.domain /etc/ftpd/config/faqs.org/
⒋/etc/ftpusers
在這個檔案裡記錄的使用者禁止使用FTP
⒌/etc/ftpgroups
給SITE GROUP指令使用,線上切換group。SITE EXEC容易造成安全性漏洞,一般我們都不開放。
⒍/etc/ftpconversions
用來做tar、compress、gzip等動作指令設定檔,只要用預設即可,如果你不開放即時壓縮打包,也可以把內容清除。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.