對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2012/7/4 8:28:12
VSFTPD的菜鳥篇:
作者:歡樂1982 2007-09-03 23:34 星期一 晴
版權聲明:可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息及本聲明
http://www.5ilinux.com/vsftp01.html
VSFTPD的菜鳥篇:
這是我這個菜鳥學習LINUX所寫的第一篇文章,是比較基礎的FTP架設的應用,如果我寫有什麼問題請大家多指教,我後續會陸續出進階篇把FTP中各種詳細的配置跟大家一起進行探討。
我所用的是LINUX AS+VSFTPD-1.2.0-4的系統架構,在這裡說明的是如果對配置文件不是很熟悉,最好做個備份,以免誤操作:
1. 匿名服務器的連接(獨立的服務器)
在/etc/vsftpd/vsftpd.conf配置文件中添加如下幾項:
功能:只能連接FTP服務器,不能上傳和下傳
註:其中所有和日誌歡迎信息相關連的都是可選項,打了星號的無論什麼帳戶都要添加,是屬於FTP的基本選項
2. 開啟匿名FTP服務器上傳權限
在配置文件中添加以下的信息即可:
3. 開啟匿名服務器下傳的權限
在配置文件中添加如下信息即可:
註:要注意文件夾的屬性,匿名帳戶是其它(other)用戶要開啟它的讀寫執行的權限
(R)讀-----下傳 (W)寫----上傳 (X)執行----如果不開FTP的目錄都進不去
4.普通用戶FTP服務器的連接(獨立服務器)
在配置文件中添加如下信息即可:
功能:可以用本地帳戶登陸vsftpd服務器,有下載上傳的權限
註:在禁止匿名登陸的信息後匿名服務器照樣可以登陸但不可以上傳下傳
5. 用戶登陸限制進其它的目錄,只能進它的主目錄
設置所有的本地用戶都執行chroot
設置指定用戶執行chroot
注意:vsftpd.chroot_list 是沒有創建的需要自己添加,要想控制帳號就直接在文件中加帳號即可
6. 限制本地用戶訪問FTP
註:開啟userlist_enable=yes匿名帳號不能登陸
7. 安全選項
8. 查看誰登陸了FTP,並殺死它的進程
作者:龍磊
------------------------ Quick Setup for Impatient ------------------------
This document tends to be 10 minutes "grab & use" guide for Pure-FTPd
==== INSTALATION ====
If you don't have pure-ftpd installed on your system, grab latest source
package from http://www.pureftpd.org.
Let's say we have downloaded file 'pure-ftpd-1.0.20.tar.bz2'
Now configure, build and install package like this:
Everything should be at the right place in /usr/local
==== CREATE NEW USER ACCOUNT ====
First thing to do: create group named "ftpgroup" and system user "ftpuser"
with following commands:
Create directory "/home/ftpgroup"
Now, let's create "joe", whoose home directory will be /home/ftpusers/joe
==== LAUNCH THE SERVER ====
Type following command to start pure-ftpd server:
Don't forget & at the end!
Now try to ftp://localhost and log as "joe".
IMPORTANT NOTICE: By default, /etc/pureftpd.passwd and /etc/pureftpd.pdb
files matter for authentification. If you have installed binary version
of Pure-FTPd from your disto package management system (rpm,deb,..) these
files can have different location. (eg. /etc/pure-ftp/pureftpd.passwd)
There is no need to restart server when another new user is created.
You can create "mike" now:
and log as "mike".
==== SETTING UP ANONYMOUS FTP ====
Well, let's create system user named "ftp"
If "ftp" user already exists, check your /etc/passwd what his
homedir is. (can be /var/ftp or whatever)
Home directory of "ftp" user MUST be readable.
Now, pure-ftpd should accept login "anonymous" or "ftp".
Anonymous user will see directory /home/ftp
FEW THINGS TO NOTICE: If server is run with "-i", anonymous users will
not be able upload/delete files whatever directory permissions are.
If you wish to create writeable "incomming", run server without "-i" and
set appropriate permissions. Writeable directories must have owner set to 'ftp'.
Don't chown the public files to 'ftp', just writable directories.
Example:
If you want to allow users to create directories, run server with "-M" switch.
TIP: Place ".banner" file with some text in /home/ftp (user will see this text when logging)
==== STOPPING Pure-FTPd SERVER ====
We need to find PID of pure-ftpd process and kill it.
1) search in process table
and look for line like this:
PID is 3954
2) /var/run/pure-ftpd.pid
This file is created always when server is launched and contains the PID we need
Now simple kill this process:
==== Other Quick Usefull Info ====
- if you want pure-ftpd to start automatically on boot,
add "launch command" (eg. /usr/local/sbin/pure-ftpd -j -lpuredb:/etc/pureftpd.pdb &)
to file /etc/rc.d/rc.local
- use command 'pure-ftpwho' to see actual ftp activity
- add '-O clf:/var/log/pureftpd.log' when starting server and transfers
will be logged into /var/log/pureftpd.log
==== Other not Quick Usefull Info ====
Can be found in documentation files, README (at least recognised switches)
and README.Virtual-Users are recommended.
Feel free to send your comments to sector[`at`]ynet[`dot`]sk
[轉貼]Pure-ftpd on FreeBSD之攻略(中文簡體版)
作者:leolee761128 發表時間:2002/12/22 11:57am
此貼(繁體原版)MaxBSD以前已經貼出來過,個人感覺看起來不方便,就把它弄成了簡體的,希望對大家有點幫助。
有錯漏的地方請指正,謝過!
********************************************************************************
Pure-ftpd on FreeBSD之攻略
----[作者]far
<一>;PureFTPD介紹
顧名思義.他是純粹的一套FTPD.(-.-"廢話).她好用在哪裡?唔...就是
好用.用了就對了.問那麼多幹嘛.^_^!!
--------------------------------------------------------------
<二>;安裝PureFTPD
FreeBSD的ports裡面也有.如果你偷懶的話.可以直接到ports下安裝即
可(/usr/ports/ftp/pure-ftpd).不過我建議你去他的官方網站抓
新版的(http://www.pureftpd.org/).我用的是1.0.12版.用起來還不錯.
以往我都是懶人安裝法:到ports目錄下打make install clean.完成!!
後來.發現用ports裝並不能將pure-ftpd的強大體現出來.(其實是舊版
fxp支持上有問題.)所以...難得...這麼懶的我.也就用source裝了.
廢話了好多.:D
A。把抓下來的source解開.(建議解在/tmp下)
如果沒事做.可以看看裡面的README.* 很值得看.如果你有什
麼特殊需求的話.也可以直接在裡面去找.應該是可以找到你要的東
東.(Ex: LDAP.MySQL.Virtual.......)
B。開始準備依你的意願做出你想要的ftp-server.
在README中[ADVANCED COMPILATION]的段落中,有對上面的使用的
詳細說明.在這裡我只對常用的做簡略的解釋.
C.好了就準備安裝上去吧!!
D.把一些東東搬到該放的位置.
-------OK.PureFTPD就這樣裝完了.其他Config等下回分解.:p-----------
在上一章節.我們已經成功把PureFTPD架起來了.現在我們要開始設定他的設定文件.:)
--------------------------------------------------------------------------
<三>;pure-ftpd.conf的設定
*在上一次,我們把PureFTPD的default設定文件(pure-ftpd.conf)拷貝一
份在/usr/local/etc/下.(其實哪都可以,只是我習慣).建議再拷貝
一份叫pure-ftpd.xxx.conf(如果你要跑多支ftpd的話.xxx部分可以自
由替代成你要的名字.方便就好).開始編輯pure-ftpd.xxx.conf.
-----------------------------------------------------------
<四>;建立賬號
有了ftp.理所當然得也要有賬號才行.
-d ; : chroot user (建議值)
-D ; : don't chroot user
-y 0 : 同時最多鏈接數不限
-m : 同時更新/etc/pureftpd.pdb文件.(如果PureDB不放置在此的請不要加)
For a 1:10 ratio, use -q 1 -Q 10
To allow access only between 9 am and 6 pm, use -z 0900-1800
****************************************************************
關於文件權限部份.(需要將可Upload的使用者改成ftpuser:ftpgroup.可
下載的文件權限也要是644)
------------------------------------------------------------------
<五>;啟動
到/usr/local/bin/rc.d/下編輯一個pure-ftpd.sh
ok...開始測試看看吧
ftp xxx.far2.net 21
Connected to ftp.far2.net.
220-=(<*>;)=-.:. (( 歡迎來到 PureFTPd 1.0.12 )) .:.-=(<*>;)=-
220-您是第 48 個使用者,最多可達 999 個連線
220-現在本地時間是 19:52 負載是 1.37。服務器端口: 21。
220-這是私用系統 - 不開放匿名登入
220 在 5 分鐘內沒有活動,您會被斷線。
Name (xxx.far2.net:far):far
331 使用者 far OK. 需要密碼.
Password:
230-使用者 far 有群組存取於: ftpgroup
230-這個服務器支持FXP傳輸
230 OK. 目前限制的目錄是 /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>;
當你看到以上信息時.恭喜你.你已經成功的架起一個ftp了.:)
--------------------------------------------------------------------
是不是很簡單呢.現在你可以好好享用你的FTP Server了.:)
--------------------------------------------------------------------
ps.如果你是超超超超超超大的b3k站.PureFTPD下面有幾點建議.
* Compile with :
-=特殊功能都不要加.以減輕Server負擔=-
*用standalone的模式去啟動.不要打開pure-ftpwho & pure-uploadscript
& per-userlimits 的選項
-=因為那幾個都是很吃系統資源的工具=-
;
*編輯/etc/fstab, 對所有filesystems的options增加",noatime"
*在/boot/loader.conf裡增加以下兩行
*在/etc/sysctl.conf裡增加
vsFTP服務器的配置
VSFTPD的高手篇
版權聲明:可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息及本聲明
[原文出處 http://www.5ilinux.com/vsftp02.html]
我可不是高手!!!^_^我只不過是個菜鳥,盡我的能力寫出了我這個菜鳥覺得的高手篇,所以有什麼錯誤請大家指正哦!!!
環境:linux as 3.0 + vsftpd -1.2.0-4的系統架構,是在獨立服務器下的哦!討厭XINETD^_^
配置本地組訪問的FTP
首先創建用戶組 test和FTP的主目錄
然後創建用戶
註:G:用戶所在的組 d:表示創建用戶的自己目錄的位置給予指定
M:不建立默認的自家目錄,也就是說在/home下沒有自己的目錄
接著改變文件夾的屬主和權限
這個實驗的目的就是usr1有上傳、刪除和下載的權限
而usr2只有下載的權限沒有上傳和刪除的權限
當然啦大家別忘了我們的主配置文件vsftpd.conf
要確定local_enable=yes、write_enable=yes、chroot_local_usr=yes這三個選項是有的哦!
配置獨立FTP的服務器的非端口標準模式進行數據連接
這個非常容易:在VSFTPD。CONF中添加
就可以了啦!
配置單獨的虛擬FTP,使用虛擬FTP用戶,並使建立的四個帳戶中有不同的權限
(兩個有讀目錄的權限,一個有瀏覽、上傳、下載的權限,一個有瀏覽、下載、刪除和改文件名的權限)
A:配置網卡
第一塊網卡地址是10.2.3.4 掩碼是255.255.0.0
B:寫入/etc/sysconfig中(為了重起後IP地址不會丟失)
wq退出
C:進入vsftpd.conf所在的文件夾
修改vsftpd.conf添加以下信息
修改vsftpd2.conf添加以下信息
到此虛擬的FTP服務器建立好了
D:建立logins.txt
添加入下信息:
格式要按照我的來哦,一個用戶名,一個密碼啦
E:建立訪問者的口令庫文件,然後修改其權限
F:進如/etc/pam.d/中創建ftp.vu
在此文件中添加如下信息
G:在/var/ftp/創建目錄並改變其屬性和它的屬主
在目錄中添加test_file測試文件
H:進入vsftpd2.conf修改其中的信息
註:在主配置文件中給的權限越低,在後面分用戶管理的時候對擁護的權限劃分的空間就越大,因為主配置文件最高的限制服務先讀主配置文件,然後再讀用戶的配置文件
重起服務。到此虛擬USER就建好了
I:在vsftpd.comf所在的目錄中創建virtaul文件目錄並在文件目錄中創建以你用戶名命名的配置文件
在longlei中添加:
在lxp中添加
這樣此兩個用戶就有了瀏覽目錄的權限了
在jinhui中添加
此用戶就有了上傳、下載和瀏覽的權限
在zhangweibo中添加
此用戶就有了上傳、下載、刪除文件目錄、修改文件名和瀏覽的權限
J:修改vsftpd2.conf
加入user_config_dir=/vsftpd.conf所在的目錄/virtual
重起服務器就搞定了
vsftpd.conf中的所有配置信息
vsFTP服務器的維護
現在這裡還沒有關於維護vsftp服務器的資料。歡迎大家編輯2
vsFTP使用的一些補充
補充一:如何有選擇的把用戶限制在家目錄中呢?
我們要自己建一個文件,在/etc目錄中
以beinan和nanbei這兩個用戶限制在他們所在的家目錄中,而其它的FTP用戶不做此限制。
在vsftpd.chroot_list這個文件中,把beinan和nanbei添上去就行,注意,每個用戶占一行。
然後改/etc/vsftpd/vsftpd.conf文件,找如下的兩行
把前面的#號去掉,也就是這樣的
如果沒有這樣的兩行,就可以自己添加上去也是一樣的。
設置好後,重新vsFTPD服務器。
補充一之補充:如何把系統內所有的FTP用戶都限制在家目錄中呢??經juliaugong兄的提示,我查找了vsFTPd的洋文說明,證明這個選項是一刀切的解決所有的用戶都能限制在家目錄中
我們可以通過更改vsftpd.conf文件,加入如下的一行
改完配製文件,不要忘記重啟vsFTPd服務器
補充二:打開vsFTP服務器的日誌功能
把下面xferlog_file前面的#號對掉,也就是把vsftp的log功能打開,這樣我們就能在/var/log目錄下查看vsftpd.log。這是vsFTP的日誌功能,這對於我們來說是極為重要的。
補充三:如何讓綁定IP到vsFTP?
也就是說,如何讓用戶只能通過某個IP來訪問FTP。其實這個功能很有意思。如果綁定的是內網的IP,外部是沒有辦法訪問的。如果綁定的是對外服務的IP,內網也只能通過對外服務的IP來訪問FTP
在/etc/vsftpd/vsftpd.conf中加一行,以我的局域網為例,請看第一帖中的操作環境,這樣外網就不能訪問我的FTP了,內網也可能通過192.168.0.2來訪問FTP
加完後,要重啟vsFTP服務器
補充四:如何讓vsFTP服務器限制鏈接數,以及每個IP最大的鏈接數??
答:應該改vsFTP服務器的配製文件vsftpd.conf,加入下面的兩行:
舉例:我想讓我的vsFTP最大支持鏈接數為100個,每個IP,最多能支持5個鏈接,所以我應該在vsftpd.conf中加上如下的兩行:
改好了配製文件,不要忘記啟動vsftp服務器。
補充五:如何限制下載的速度?
註:這個數字的單位是字節,所以我們要計算一下。比如我想讓匿名用戶和vsFTP上的用戶都以80KB下載,所以這個數字應該是1024x80=81920 所以我們要在vsftpd.conf中加入下面的兩行
不要忘記重啟vsftpd服務
補充六:我的硬盤空間有限,怎麼辦?
我的硬盤空間有限,如何把帳號ftp默認的路徑/var/ftp更改到別處?或者是,我的linux所有的目錄都放在/根分區,因為空間緊張,我能否把ftp這個用戶的默認路徑放到別的分區?
可以,應該如下操作!
首先要把ftp這個用戶刪除
會有錯誤信息,不過不用理,這是正常的。
然後我們再把這個用戶添加上,比如我想為帳號ftp的家目錄設置在/mnt/LinG/ftp,我們就可以如下操作
僅僅是這樣做還不行,因為這樣還是不能讓匿名用戶找到它的家目錄,所以我們必須改變/mnt/LinG/ftp這個目錄的權限。
補充七:如何定制歡迎信息
如何在我們登入有些FTP之後,會出現類似:歡迎您來到LinuxSir FTP,在這裡,您會得到最真誠的幫助,如果有什麼問題和建議,請來信,多謝。
實現這個並不難,我們可以查看vsftpd.cof文件中,是否有這行。
如果沒有就加上,如果dirmessage_enable=YES前面有#號,就把#號去掉。
然後我們制定一個.message文件,寫上您想要寫的東西,比如是.message的內容是如下的:
我們可以用編輯器來寫這個.message,我想這個過程就不用說了吧。
然後我們把.message這個文件複製到各個用戶的家目錄中。比如我的FTP的一個用戶是beinan,這個用戶所在的家目錄是/home/beinan
我們就要把.message放在/home/beinan這個目錄下。如果系統用戶ftp,他的目錄就是/var/ftp這個目錄,這個是默認的,當匿名用戶登入時就訪問的是/var/ftp這個目錄。我們要讓匿名用戶能看到歡迎信息。就要把.message放在/var/ftp目錄中。其它的用戶,也無非就是類似的操作。
補充八:如何實現虛擬路徑?
比如: /home/a 映射為ftp://localhost/a /home/b/c 則為ftp://localhost/c
其實這個不能說是vsFTPd的內容,其實我們早就接觸過了,可能我們沒有注意,我們可以通過如下的方法來實現。
比如我的ftp的默認目錄是/var/ftp,我想把/mnt/LinG/WinSoft文件夾,映射到/var/ftp目錄中,我就如下操作
我們要先在/var/ftp目錄中建一個目錄
然後執行mount命令
這樣就OK了。
補充九:如何上匿名訪問、上傳,並支持下載和執行?
在默認的情況下,vsftp是不支持匿名用戶的訪問的,所以我們要自己打開相應的選項。現在我針對這個問題,我們要打開如下的選項。
當然打開這些選項還是不行的,我們還要讓匿名寫入文件的上一級目錄有寫入權,以我所做的FTP為例,我所做的FTP的匿名訪問的目錄是 /var/ftp,在vsFTPd中,/var/ftp這個目錄是不能讓匿名用戶有寫入權限的,這是為了安全考慮,所以我們必須自己在/var/ftp目錄中建一個目錄,讓這個目錄有寫入權。
比如:我在/var/ftp目錄建一個upload目錄,然後把它的權限設置成777,這樣匿名用戶就能寫入了。
改了一系列的文件,不要忘記重啟vsFTPd服務器
我是用standalone模式的,當然用下面的方法
如果您用的是xinetd模式來啟動vsFTPd,我們要重啟xinetd服務器
補充十:通過pam認證方式,添加虛擬用戶
通過pam認證,用db_load添加用戶,是真正的虛擬用戶。現在我們簡單的介紹一下,通過以後的學習,我們再深入補充:
1。在/etc/pam.d/目錄中創建一個文件ftp
2。在/etc/pam.d/ftp裡面加上如下的兩行
3。創建一系統的用戶名用密碼的文件logins.txt
在logins.txt文件中,輸入如下的內容。這個內容您可以自己來定。比如我下面的。其實linuxsir007是FTP的虛擬用戶名, 123456是linuxsir007的密碼;linuxsir008是虛擬用戶名,234567是linuxsir008的密碼,以此類推,您想加入幾個就是幾個;下面是我添加的FTP的虛擬用戶名和密碼。
4。創建一個真實的用戶名linuxsir006,這個linuxsir006的用戶,所在的家目錄由您來定。我在這裡不多說了。我是按系統默認的來添加的。
5。把/etc/hosts複製到/home/linuxsir006,並改變它的屬主
6。通過db_load來創建虛擬用戶的庫文件。我們在前面建的logins.txt文件,我是放在了/root用戶目錄下。所以咱們得把目錄切換到/root目錄來創建虛擬用戶的庫文件。
7。更改vsftpd.conf文件,加入如下的幾行
8。重啟vsFTPd服務器;改了一系列的文件,不要忘記重啟vsFTPd服務器
我是用standalone模式的,當然用下面的方法
如果您用的是xinetd模式來啟動vsFTPd,我們要重啟xinetd服務器
9。如果您想讓用戶登入FTP時,登入成功的相應的信息,請把您製作的.message複製到您的用戶的家目錄中,這方面的請參考前面的補充。
10。測試:
補充十一:如何把系統默認用standalone啟動改為用xinetd啟動?
如何把Redhat 9.0中系統默認安裝的vsftpd-1.1.3-8.i386.rpm,系統默認vsFTPd是用standalone啟動方式,改為xinetd啟動方式 ?如果是用源碼包安裝的,安裝後就是xinetd模式,如果是用RPM包安裝的,在Redhat 9.0中,應該用下面的方法來解決。
1.在/etc/xinetd.d/目錄中創建一個文件vsftpd
/etc/xinetd.d/vsftpd內容如下:
2。複製vsftpd.conf到/etc/目錄下,因為xinetd對vsFTPd配製文件應該在/etc目錄下,所以我們就必須把這個文件複製到/etc目錄下,否則會出現系統中local用戶無法登入,也就是說,不複製這個文件會出現ftp非匿名用戶無法訪問,只能用匿名用戶訪問。
3。更改配製文件/etc/vsftpd.conf,把如下的項注掉:也就是把
改為
或者是把這行刪除也行。
4。把/etc/init.d/vsftpd這個文件刪除。其實最好的備份到別處,因為我們有時實驗來實驗去,可能還會轉到standalone模式啟動。我就直接移動到別的目錄,比如是/root下面的backup目錄。
5。運行ntsysv,把vsftpd的服務取消
6。重啟xinetd服務
原文出處:VSFTPD的菜鸟篇:_天涯博客_有见识的人都在此_天涯社区
作者:歡樂1982 2007-09-03 23:34 星期一 晴
版權聲明:可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息及本聲明
http://www.5ilinux.com/vsftp01.html
VSFTPD的菜鳥篇:
這是我這個菜鳥學習LINUX所寫的第一篇文章,是比較基礎的FTP架設的應用,如果我寫有什麼問題請大家多指教,我後續會陸續出進階篇把FTP中各種詳細的配置跟大家一起進行探討。
我所用的是LINUX AS+VSFTPD-1.2.0-4的系統架構,在這裡說明的是如果對配置文件不是很熟悉,最好做個備份,以免誤操作:
1. 匿名服務器的連接(獨立的服務器)
在/etc/vsftpd/vsftpd.conf配置文件中添加如下幾項:
Anonymous_enable=yes (允許匿名登陸)
Dirmessage_enable=yes (切換目錄時,顯示目錄下.message的內容)
Local_umask=022 (FTP上本地的文件權限,默認是077)
Connect_form_port_20=yes (啟用FTP數據端口的數據連接)*
Xferlog_enable=yes (激活上傳和下傳的日誌)
Xferlog_std_format=yes (使用標準的日誌格式)
Ftpd_banner=XXXXX (歡迎信息)
Pam_service_name=vsftpd (驗證方式)*
Listen=yes (獨立的VSFTPD服務器)*
功能:只能連接FTP服務器,不能上傳和下傳
註:其中所有和日誌歡迎信息相關連的都是可選項,打了星號的無論什麼帳戶都要添加,是屬於FTP的基本選項
2. 開啟匿名FTP服務器上傳權限
在配置文件中添加以下的信息即可:
Anon_upload_enable=yes (開放上傳權限)
Anon_mkdir_write_enable=yes (可創建目錄的同時可以在此目錄中上傳文件)
Write_enable=yes (開放本地用戶寫的權限)
Anon_other_write_enable=yes (匿名帳號可以有刪除的權限)
3. 開啟匿名服務器下傳的權限
在配置文件中添加如下信息即可:
Anon_world_readable_only=no
註:要注意文件夾的屬性,匿名帳戶是其它(other)用戶要開啟它的讀寫執行的權限
(R)讀-----下傳 (W)寫----上傳 (X)執行----如果不開FTP的目錄都進不去
4.普通用戶FTP服務器的連接(獨立服務器)
在配置文件中添加如下信息即可:
Local_enble=yes (本地帳戶能夠登陸)
Write_enable=no (本地帳戶登陸後無權刪除和修改文件)
功能:可以用本地帳戶登陸vsftpd服務器,有下載上傳的權限
註:在禁止匿名登陸的信息後匿名服務器照樣可以登陸但不可以上傳下傳
5. 用戶登陸限制進其它的目錄,只能進它的主目錄
設置所有的本地用戶都執行chroot
Chroot_local_user=yes (本地所有帳戶都只能在自家目錄)
設置指定用戶執行chroot
Chroot_list_enable=yes (文件中的名單可以調用)
Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list
注意:vsftpd.chroot_list 是沒有創建的需要自己添加,要想控制帳號就直接在文件中加帳號即可
6. 限制本地用戶訪問FTP
Userlist_enable=yes (用userlistlai 來限制用戶訪問)
Userlist_deny=no (名單中的人不允許訪問)
Userlist_file=/指定文件存放的路徑/ (文件放置的路徑)
註:開啟userlist_enable=yes匿名帳號不能登陸
7. 安全選項
Idle_session_timeout=600(秒) (用戶會話空閒後10分鐘)
Data_connection_timeout=120(秒) (將數據連接空閒2分鐘斷)
Accept_timeout=60(秒) (將客戶端空閒1分鐘後斷)
Connect_timeout=60(秒) (中斷1分鐘後又重新連接)
Local_max_rate=50000(bite) (本地用戶傳輸率50K)
Anon_max_rate=30000(bite) (匿名用戶傳輸率30K)
Pasv_min_port=50000 (將客戶端的數據連接端口改在
Pasv_max_port=60000 50000—60000之間)
Max_clients=200 (FTP的最大連接數)
Max_per_ip=4 (每IP的最大連接數)
Listen_port=5555 (從5555端口進行數據連接)
8. 查看誰登陸了FTP,並殺死它的進程
ps –xf |grep ftp
kill 進程號
作者:龍磊
------------------------ Quick Setup for Impatient ------------------------
This document tends to be 10 minutes "grab & use" guide for Pure-FTPd
==== INSTALATION ====
If you don't have pure-ftpd installed on your system, grab latest source
package from http://www.pureftpd.org.
Let's say we have downloaded file 'pure-ftpd-1.0.20.tar.bz2'
$ tar -xjvf pure-ftpd-1.0.20.tar.bz2
$ cd pure-ftpd-1.0.20
Now configure, build and install package like this:
$ ./configure --with-everything
$ make
$ make install
Everything should be at the right place in /usr/local
==== CREATE NEW USER ACCOUNT ====
First thing to do: create group named "ftpgroup" and system user "ftpuser"
with following commands:
$ groupadd ftpgroup
$ useradd -g ftpgroup -d /dev/null -s /etc ftpuser
Create directory "/home/ftpgroup"
$ mkdir /home/ftpgroup
Now, let's create "joe", whoose home directory will be /home/ftpusers/joe
$ pure-pw useradd joe -u ftpuser -d /home/ftpusers/joe -m
Joe's password is asked twice.
==== LAUNCH THE SERVER ====
Type following command to start pure-ftpd server:
$ /usr/local/sbin/pure-ftpd -j -lpuredb:/etc/pureftpd.pdb &
Don't forget & at the end!
Now try to ftp://localhost and log as "joe".
IMPORTANT NOTICE: By default, /etc/pureftpd.passwd and /etc/pureftpd.pdb
files matter for authentification. If you have installed binary version
of Pure-FTPd from your disto package management system (rpm,deb,..) these
files can have different location. (eg. /etc/pure-ftp/pureftpd.passwd)
There is no need to restart server when another new user is created.
You can create "mike" now:
$ pure-pw useradd mike -u ftpuser -d /home/ftpusers/mike -m
and log as "mike".
==== SETTING UP ANONYMOUS FTP ====
Well, let's create system user named "ftp"
$ useradd ftp
If "ftp" user already exists, check your /etc/passwd what his
homedir is. (can be /var/ftp or whatever)
Home directory of "ftp" user MUST be readable.
Now, pure-ftpd should accept login "anonymous" or "ftp".
Anonymous user will see directory /home/ftp
FEW THINGS TO NOTICE: If server is run with "-i", anonymous users will
not be able upload/delete files whatever directory permissions are.
If you wish to create writeable "incomming", run server without "-i" and
set appropriate permissions. Writeable directories must have owner set to 'ftp'.
Don't chown the public files to 'ftp', just writable directories.
Example:
chmod 555 /home/ftp
chown ftp /home/ftp/incomming
chgrp ftp /home/ftp/incomming
chmod 755 /home/ftp/incomming
If you want to allow users to create directories, run server with "-M" switch.
TIP: Place ".banner" file with some text in /home/ftp (user will see this text when logging)
==== STOPPING Pure-FTPd SERVER ====
We need to find PID of pure-ftpd process and kill it.
1) search in process table
$ ps aux | grep pure
and look for line like this:
root 3954 0.0 0.1 3992 620 pts/3 S 20:43 0:00 pure-ftpd (SERVER)
PID is 3954
2) /var/run/pure-ftpd.pid
This file is created always when server is launched and contains the PID we need
Now simple kill this process:
$ kill 3954 (or whatever PID you've got)
==== Other Quick Usefull Info ====
- if you want pure-ftpd to start automatically on boot,
add "launch command" (eg. /usr/local/sbin/pure-ftpd -j -lpuredb:/etc/pureftpd.pdb &)
to file /etc/rc.d/rc.local
- use command 'pure-ftpwho' to see actual ftp activity
- add '-O clf:/var/log/pureftpd.log' when starting server and transfers
will be logged into /var/log/pureftpd.log
==== Other not Quick Usefull Info ====
Can be found in documentation files, README (at least recognised switches)
and README.Virtual-Users are recommended.
Feel free to send your comments to sector[`at`]ynet[`dot`]sk
[轉貼]Pure-ftpd on FreeBSD之攻略(中文簡體版)
作者:leolee761128 發表時間:2002/12/22 11:57am
此貼(繁體原版)MaxBSD以前已經貼出來過,個人感覺看起來不方便,就把它弄成了簡體的,希望對大家有點幫助。
有錯漏的地方請指正,謝過!
********************************************************************************
Pure-ftpd on FreeBSD之攻略
----[作者]far
<一>;PureFTPD介紹
顧名思義.他是純粹的一套FTPD.(-.-"廢話).她好用在哪裡?唔...就是
好用.用了就對了.問那麼多幹嘛.^_^!!
--------------------------------------------------------------
<二>;安裝PureFTPD
FreeBSD的ports裡面也有.如果你偷懶的話.可以直接到ports下安裝即
可(/usr/ports/ftp/pure-ftpd).不過我建議你去他的官方網站抓
新版的(http://www.pureftpd.org/).我用的是1.0.12版.用起來還不錯.
以往我都是懶人安裝法:到ports目錄下打make install clean.完成!!
後來.發現用ports裝並不能將pure-ftpd的強大體現出來.(其實是舊版
fxp支持上有問題.)所以...難得...這麼懶的我.也就用source裝了.
廢話了好多.:D
A。把抓下來的source解開.(建議解在/tmp下)
#tar zxvf pure-ftpd-1.0.12.tar.gz
如果沒事做.可以看看裡面的README.* 很值得看.如果你有什
麼特殊需求的話.也可以直接在裡面去找.應該是可以找到你要的東
東.(Ex: LDAP.MySQL.Virtual.......)
B。開始準備依你的意願做出你想要的ftp-server.
#./configure --with-paranoidmsg --with-sysquotas --with-puredb \
--with-altlog --with-throttling --with-ratios --with-ftpwho \
--with-welcomemsg --with-uploadscript --with-largefile \
--with-virtualhosts --with-virtualchroot --with-diraliases \
--with-quotas --with-peruserlimits --with-language=traditional-chinese
在README中[ADVANCED COMPILATION]的段落中,有對上面的使用的
詳細說明.在這裡我只對常用的做簡略的解釋.
--without-standalone
不能以standalone的方式執行ftpd.
--without-inetd
不能以inetd的方式執行ftpd.
--without-iplogging
做log時不將IP 地址給log下來.
--without-shadow
不做shadow.除非是用PAM, LDAP or SQL.不然極不建議拿掉.
--without-usernames
文件列表只會列出UID & GID,不列出實際user or group name.
--without-humor
嘿嘿嘿....
--without-ascii
不支持7-bits transfers(ASCII).
--with-paranoidmsg
唔....不知該怎麼說.算是可以給特定人的信息吧.
--with-sysquotas
吃系統的quota設定.
--with-minimal
最小化安裝.
--with-pam
--with-puredb
--with-ldap
--with-mysql
--with-pgsql
以上五種都是存儲資料的格式?!(算吧?!).看你比較習慣什麼.
我是比較喜歡用puredb.
--with-altlog
留log拉....
--with-cookie
使用者進站看到的東東.類似進站畫面.
--with-ratios
上下傳比.
--with-throttling
頻寬可設限.
--with-ftpwho
可用pure-ftpwho來看線上使用者.像是Serv-u的線上狀態.
--with-uploadscript
當一個文件被完整上傳完後自動呼叫某一script去對這個文件
處理.當然.這個script得你自己寫.
--with-largefile
支持下載超過2G的文件.
--with-virtualhosts
跟http的virtualhost有異曲同工之妙.
--with-virtualchroot
配合上面的chroot.
--with-diraliases
跟Serv-U上面的link功能一樣.
--with-nonroot
不需root權限.一般user即可啟動ftpd.
--with-quotas
使用quota.(非系統下的quota)
--with-peruserlimits
enable per-user concurrency limits.Avoid this on
very loaded servers.(太難翻譯了)
--with-everything
所有功能全上.
--with-language=traditional-chinese
顯示出來的信息的語言.缺省為英語.
(意外的發現.在config.h中作者以為大陸用traditional-chinese
台灣用simplified-chinese.但不管如何,這不影響我們的使用)
C.好了就準備安裝上去吧!!
#make ; make check ; make install
D.把一些東東搬到該放的位置.
#chmod 755 configuration-file/pure-config.pl
#cp configuration-file/pure-config.pl /usr/local/sbin/
#cp configuration-file/pure-ftpd.conf /usr/local/etc/
-------OK.PureFTPD就這樣裝完了.其他Config等下回分解.:p-----------
在上一章節.我們已經成功把PureFTPD架起來了.現在我們要開始設定他的設定文件.:)
--------------------------------------------------------------------------
<三>;pure-ftpd.conf的設定
*在上一次,我們把PureFTPD的default設定文件(pure-ftpd.conf)拷貝一
份在/usr/local/etc/下.(其實哪都可以,只是我習慣).建議再拷貝
一份叫pure-ftpd.xxx.conf(如果你要跑多支ftpd的話.xxx部分可以自
由替代成你要的名字.方便就好).開始編輯pure-ftpd.xxx.conf.
#vim pure-ftpd.xxx.conf (看你喜歡用什麼編輯器.自己選用)
####pure-ftpd.xxx.conf#######
ChrootEveryone yes
TrustedGID 50
#以上兩者要一起用
BrokenClientsCompatibility no
MaxClientsNumber 999
#最大鏈接數
Daemonize yes
#Fork in background
MaxClientsPerIP 5
#每個ip最多鏈接數
VerboseLog no
#是否要把所有client端的指令都log下來
DisplayDotFiles no
#顯示開頭的文件
AnonymousOnly no
#是否只讓匿名登錄
NoAnonymous yes
#不開放匿名登入
SyslogFacility ftp
DontResolve yes
#不反向解釋客戶端的ip
MaxIdleTime 5
#最大閒置時間
PureDB /ftp/etc/pureftpd.pdb
#使用者資料的DB存放地點 [由於我是用PureFTPD的內建DB.固有此選項]
UnixAuthentication yes
#如果你想要有簡單的Unix(/etc/passwd)的認證的話
LimitRecursion 1000 3
#ls最多列出1000個文件.最深3層
MaxLoad 4
#當system load超過4時.使用者將不能再下載
AntiWarez no
#上傳的文件不能被下載(owner is ftp).等到local admin確認
Bind 21
#要綁定哪個ip/port
#格式->; 127.0.0.1,21 如果只寫port表All ip,port
Umask 133:022
#上傳文件的Umask.(;:;)
MinUID 1000
# UID至少多少才能登錄
AllowUserFXP yes
#支不支持FXP
ProhibitDotFilesWrite no
ProhibitDotFilesRead no
#.開頭的文件能不能被讀寫
AutoRename no
#上傳文件若有相同文件名自動改名(file.1,file.2...)
TrustedIP 10.1.1.1
#鎖IP.
AltLog stats:/ftp/etc/log/pureftpd.log
#log存放地點
NoChmod yes
#不給Chmod指令的權限
KeepAllFiles yes
#使用者可續傳.但不可刪除文件
CreateHomeDir no
#如果user的home不存在自動建立
PIDFile /ftp/etc/log/pure-ftpd.pid
#記錄pure-ftpd的PID文件
Quota 1000:10
#<文件數:Megabytes>;
CallUploadScript yes
#呼叫UploadScript
MaxDiskUsage 99
#當硬盤使用率到多少時將停止上傳
NoRename yes
#不給改文件名
PerUserLimits 3:20
#<每個賬號最多可登入幾次:Anonymous最多可同時登入幾次>;
#############################
-----------------------------------------------------------
<四>;建立賬號
有了ftp.理所當然得也要有賬號才行.
#vipw
ftpuser:$1$rEO39XEq$kRMKuch12ugYu3hCh/sPA.:9999:9999::0:0:ftp:/ftp:
/sbin/nologin
#vim /etc/group
ftpgroup:*:9999:
上面是ftp 客戶以什麼身份登入.
接下來我想要把pure-ftpd要吃的密碼文件選個地方放.我是選擇放在/ftp/etc/下
#pure-pw far -f pureftpd.ps -u 9999 -g 9999 -d /ftp/far -y 2
#pure-pw mkdb pureftpd.pdb -f pureftpd.ps
useradd ; [-f <密碼文件>;] -u ; [-g ;]
-D/-d <主目錄>; [-c ;]
[-t <下載頻寬>;] [-T <上傳頻寬>;]
[-n <最多下載文件數>;] [-N <最多下載Mb>;]
[-q ;] [-Q ;](上下傳比)
[-r ;/;] [-R ;/;]
[-i ;/;] [-I ;/;]
[-y <同時最多鏈接數>;]
[-z ;-;](可登入時間24小時制) [-m]
pure-pw usermod ; -f ; -u ; [-g ;]
-D/-d ; -[c ;]
[-t ;] [-T ;]
[-n ;] [-N ;]
[-q ;] [-Q ;]
[-r ;/;] [-R ;/;]
[-i ;/;] [-I ;/;]
[-y ;]
[-z ;-;] [-m]
pure-pw userdel ; [-f ;] [-m]
pure-pw passwd ; [-f ;] [-m]
pure-pw show ; [-f ;]
pure-pw mkdb [; [-f ;]]
-d ; : chroot user (建議值)
-D ; : don't chroot user
-y 0 : 同時最多鏈接數不限
-m : 同時更新/etc/pureftpd.pdb文件.(如果PureDB不放置在此的請不要加)
For a 1:10 ratio, use -q 1 -Q 10
To allow access only between 9 am and 6 pm, use -z 0900-1800
****************************************************************
關於文件權限部份.(需要將可Upload的使用者改成ftpuser:ftpgroup.可
下載的文件權限也要是644)
#chown -R ftpuser:ftpgroup Upload/
------------------------------------------------------------------
<五>;啟動
到/usr/local/bin/rc.d/下編輯一個pure-ftpd.sh
#############################
#!/bin/sh
case "$1" in
start)
if [ -f /usr/local/etc/pure-ftpd.xxx.conf ]; then
/usr/local/sbin/pure-config.pl /usr/local/etc/pure-
ftpd.xxx.conf >; /dev/null 2>;&1 && echo -n 'pure-ftpd Begin!'
fi
;;
stop)
/usr/bin/killall pure-ftpd >; /dev/null 2>;&1 && echo -n 'pure-
ftpd Stop!'
;;
*)
echo ""
echo "Usage: `basename $0` { start | stop }"
echo ""
exit 64
;;
esac
#############################
#chmod +x pure-ftpd.sh
#./pure-ftpd.sh start
ok...開始測試看看吧
ftp xxx.far2.net 21
Connected to ftp.far2.net.
220-=(<*>;)=-.:. (( 歡迎來到 PureFTPd 1.0.12 )) .:.-=(<*>;)=-
220-您是第 48 個使用者,最多可達 999 個連線
220-現在本地時間是 19:52 負載是 1.37。服務器端口: 21。
220-這是私用系統 - 不開放匿名登入
220 在 5 分鐘內沒有活動,您會被斷線。
Name (xxx.far2.net:far):far
331 使用者 far OK. 需要密碼.
Password:
230-使用者 far 有群組存取於: ftpgroup
230-這個服務器支持FXP傳輸
230 OK. 目前限制的目錄是 /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>;
當你看到以上信息時.恭喜你.你已經成功的架起一個ftp了.:)
--------------------------------------------------------------------
是不是很簡單呢.現在你可以好好享用你的FTP Server了.:)
--------------------------------------------------------------------
ps.如果你是超超超超超超大的b3k站.PureFTPD下面有幾點建議.
* Compile with :
#env CFLAGS="-O2 -fomit-frame-pointer -fgcse -Os"
#./configure --with-minimal --without-inetd --without-pam
#make install-strip
-=特殊功能都不要加.以減輕Server負擔=-
*用standalone的模式去啟動.不要打開pure-ftpwho & pure-uploadscript
& per-userlimits 的選項
-=因為那幾個都是很吃系統資源的工具=-
;
*編輯/etc/fstab, 對所有filesystems的options增加",noatime"
*在/boot/loader.conf裡增加以下兩行
hw.ata.wc="1"
kern.ipc.nmbclusters="60000"
*在/etc/sysctl.conf裡增加
vfs.vmiodirenable=1
kern.ipc.maxsockbuf=2097152
kern.ipc.somaxconn=8192
kern.ipc.maxsockets=16424
kern.maxfiles=65536
kern.maxfilesperproc=32768
net.inet.tcp.rfc1323=1
net.inet.tcp.delayed_ack=0
net.inet.tcp.sendspace=65535
net.inet.tcp.recvspace=65535
net.inet.udp.recvspace=65535
net.inet.udp.maxdgram=57344
net.local.stream.recvspace=65535
net.local.stream.sendspace=65535
vsFTP服務器的配置
VSFTPD的高手篇
版權聲明:可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息及本聲明
[原文出處 http://www.5ilinux.com/vsftp02.html]
我可不是高手!!!^_^我只不過是個菜鳥,盡我的能力寫出了我這個菜鳥覺得的高手篇,所以有什麼錯誤請大家指正哦!!!
環境:linux as 3.0 + vsftpd -1.2.0-4的系統架構,是在獨立服務器下的哦!討厭XINETD^_^
配置本地組訪問的FTP
首先創建用戶組 test和FTP的主目錄
groupadd test
mkdir /tmp/test
然後創建用戶
useradd -G test –d /tmp/test –M usr1
註:G:用戶所在的組 d:表示創建用戶的自己目錄的位置給予指定
M:不建立默認的自家目錄,也就是說在/home下沒有自己的目錄
useradd –G test –d /tmp/test –M usr2
接著改變文件夾的屬主和權限
chown usr1.test /tmp/test ----這表示把/tmp/test的屬主定為usr1
chmod 750 /tmp/test ----7表示wrx 5表示rx 0表示什麼權限都沒有
這個實驗的目的就是usr1有上傳、刪除和下載的權限
而usr2只有下載的權限沒有上傳和刪除的權限
當然啦大家別忘了我們的主配置文件vsftpd.conf
要確定local_enable=yes、write_enable=yes、chroot_local_usr=yes這三個選項是有的哦!
配置獨立FTP的服務器的非端口標準模式進行數據連接
這個非常容易:在VSFTPD。CONF中添加
Listen_port=33333
就可以了啦!
配置單獨的虛擬FTP,使用虛擬FTP用戶,並使建立的四個帳戶中有不同的權限
(兩個有讀目錄的權限,一個有瀏覽、上傳、下載的權限,一個有瀏覽、下載、刪除和改文件名的權限)
A:配置網卡
第一塊網卡地址是10.2.3.4 掩碼是255.255.0.0
ifconfig eth0:1 211.131.4.253 netmask 255.255.255.0 up
B:寫入/etc/sysconfig中(為了重起後IP地址不會丟失)
cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-eth0:1
vi ifcfg-eth0:1在其中修改內容如下
DEVICE=eth0:1
BROADCAST=211.131.4.255
HWADDR=該網卡的MAC地址
IPADDR=211.131.4.253
NETMASK=255.255.255.0
NETWORK=211.131.4.0
onBOOT=yes
TYPE=Ethernet
wq退出
C:進入vsftpd.conf所在的文件夾
cp vsftpd.conf vsftpd2.conf
修改vsftpd.conf添加以下信息
Listen_address=10.2.3.4
修改vsftpd2.conf添加以下信息
Listen_address=211.131.4.253
Ftpd_banner=this is a virtual ftp test
到此虛擬的FTP服務器建立好了
D:建立logins.txt
vi /tmp/logins.txt
添加入下信息:
longlei------------用戶名
longlei------------密碼
zhangweibo
zhangweibo
jinhui
jinhui
lxp
lxp
格式要按照我的來哦,一個用戶名,一個密碼啦
E:建立訪問者的口令庫文件,然後修改其權限
db_load –T –t hash –f /tmp/logins.txt /etc/vsftpd_login.db
F:進如/etc/pam.d/中創建ftp.vu
在此文件中添加如下信息
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
G:在/var/ftp/創建目錄並改變其屬性和它的屬主
useradd -d /var/ftp/test qiang
chmod 700 /var/ftp/test
在目錄中添加test_file測試文件
H:進入vsftpd2.conf修改其中的信息
Listen_yes
Anonymous_enable=no
Local_enable=yes
Write_enable=no
Anon_upload_enable=no
Anon_mkdir_write_enable=no
Anon_other_write_enable=no
Chroot_local_user=yes
Guest_enable=yes----------起用虛擬用戶
Guest_username=qiang------將虛擬用戶映射為本地用戶
Listen_port=5555
Max_client=10
Max_per_ip=1
Ftpd_banner=this is a virtual server and users
Pam_service_name=ftp.vu
註:在主配置文件中給的權限越低,在後面分用戶管理的時候對擁護的權限劃分的空間就越大,因為主配置文件最高的限制服務先讀主配置文件,然後再讀用戶的配置文件
重起服務。到此虛擬USER就建好了
I:在vsftpd.comf所在的目錄中創建virtaul文件目錄並在文件目錄中創建以你用戶名命名的配置文件
Longlei zhangweibo jinhui lxp
在longlei中添加:
Anon_world_readable_only=no
在lxp中添加
Anon_world_readable_only=no
這樣此兩個用戶就有了瀏覽目錄的權限了
在jinhui中添加
Anon_world_readable_only=no
Write_enable=yes
Anon_upload_enable=yes
此用戶就有了上傳、下載和瀏覽的權限
在zhangweibo中添加
Anon_world_readable_only=no
Write_enable=yes
Anon_upload_enable=yes
Anon_other_write_enable=yes
此用戶就有了上傳、下載、刪除文件目錄、修改文件名和瀏覽的權限
J:修改vsftpd2.conf
加入user_config_dir=/vsftpd.conf所在的目錄/virtual
重起服務器就搞定了
vsftpd.conf中的所有配置信息
vsftpd.conf的參數: Anonymous_enable=yes 允許匿名登陸
Dirmessage_enable=yes 切換目錄時,顯示目錄下.message的內容
Local_umask=022 FTP上本地的文件權限,默認是077
Connect_form_port_20=yes 啟用FTP數據端口的數據連接 *
Xferlog_enable=yes 激活上傳和下傳的日誌
Xferlog_std_format=yes 使用標準的日誌格式
Ftpd_banner=XXXXX 歡迎信息
Pam_service_name=vsftpd 驗證方式 *
Listen=yes 獨立的VSFTPD服務器 *
Anon_upload_enable=yes 開放上傳權限
Anon_mkdir_write_enable=yes 可創建目錄的同時可以在此目錄中上傳文件
Write_enable=yes 開放本地用戶寫的權限
Anon_other_write_enable=yes 匿名帳號可以有刪除的權限
Anon_world_readable_only=no 放開匿名用戶瀏覽權限
Ascii_upload_enable=yes 啟用上傳的ASCII傳輸方式
Ascii_download_enable=yes 啟用下載的ASCII傳輸方式
Banner_file=/var/vsftpd_banner_file 用戶連接後歡迎信息使用的是此文件中的相關信息
Idle_session_timeout=600(秒) 用戶會話空閒後10分鐘
Data_connection_timeout=120(秒) 將數據連接空閒2分鐘斷
Accept_timeout=60(秒) 將客戶端空閒1分鐘後斷
Connect_timeout=60(秒) 中斷1分鐘後又重新連接
Local_max_rate=50000(bite) 本地用戶傳輸率50K
Anon_max_rate=30000(bite) 匿名用戶傳輸率30K
Pasv_min_port=50000 將客戶端的數據連接端口改在
Pasv_max_port=60000 50000—60000之間
Max_clients=200 FTP的最大連接數
Max_per_ip=4 每IP的最大連接數
Listen_port=5555 從5555端口進行數據連接
Local_enble=yes 本地帳戶能夠登陸
Write_enable=no 本地帳戶登陸後無權刪除和修改文件
下面這是一組
Chroot_local_user=yes 本地所有帳戶都只能在自家目錄
Chroot_list_enable=yes 文件中的名單可以調用
Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list 前提是chroot_local_user=no
這又是一組
Userlist_enable=yes 在指定的文件中的用戶不可以訪問
Userlist_deny=yes
Userlist_file=/指定的路徑/vsftpd.user_list
又開始單的了
Banner_fail=/路徑/文件名 連接失敗時顯示文件中的內容
Ls_recurse_enable=no
Async_abor_enable=yes
one_process_model=yes
Listen_address=10.2.2.2 將虛擬服務綁定到某端口
Guest_enable=yes 虛擬用戶可以登陸
Guest_username=所設的用戶名 將虛擬用戶映射為本地用戶
User_config_dir=/任意指定的路徑/為用戶策略自己所建的文件夾 指定不同虛擬用戶配置文件的路徑
又是一組
Chown_uploads=yes 改變上傳文件的所有者為root
Chown_username=root
又是一組
Deny_email_enable=yes 是否允許禁止匿名用戶使用某些郵件地址
Banned_email_file=//任意指定的路徑/xx/
又是單的
Pasv_enable=yes 服務器端用被動模式
User_config_dir=/任意指定的路徑//任意文件目錄 指定虛擬用戶存放配置文件的路徑
vsFTP服務器的維護
現在這裡還沒有關於維護vsftp服務器的資料。歡迎大家編輯2
vsFTP使用的一些補充
補充一:如何有選擇的把用戶限制在家目錄中呢?
我們要自己建一個文件,在/etc目錄中
#touch /etc/vsftpd.chroot_list
以beinan和nanbei這兩個用戶限制在他們所在的家目錄中,而其它的FTP用戶不做此限制。
在vsftpd.chroot_list這個文件中,把beinan和nanbei添上去就行,注意,每個用戶占一行。
beinan
nanbei
然後改/etc/vsftpd/vsftpd.conf文件,找如下的兩行
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
把前面的#號去掉,也就是這樣的
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
如果沒有這樣的兩行,就可以自己添加上去也是一樣的。
設置好後,重新vsFTPD服務器。
補充一之補充:如何把系統內所有的FTP用戶都限制在家目錄中呢??經juliaugong兄的提示,我查找了vsFTPd的洋文說明,證明這個選項是一刀切的解決所有的用戶都能限制在家目錄中
我們可以通過更改vsftpd.conf文件,加入如下的一行
chroot_local_user=YES
改完配製文件,不要忘記重啟vsFTPd服務器
[root@linuxsir001 root]# /etc/init.d/vsftpd restart
關閉 vsftpd: [ 確定 ]
為 vsftpd 啟動 vsftpd: [ 確定 ]
[root@linuxsir001 root]#
補充二:打開vsFTP服務器的日誌功能
把下面xferlog_file前面的#號對掉,也就是把vsftp的log功能打開,這樣我們就能在/var/log目錄下查看vsftpd.log。這是vsFTP的日誌功能,這對於我們來說是極為重要的。
#xferlog_file=/var/log/vsftpd.log
補充三:如何讓綁定IP到vsFTP?
也就是說,如何讓用戶只能通過某個IP來訪問FTP。其實這個功能很有意思。如果綁定的是內網的IP,外部是沒有辦法訪問的。如果綁定的是對外服務的IP,內網也只能通過對外服務的IP來訪問FTP
在/etc/vsftpd/vsftpd.conf中加一行,以我的局域網為例,請看第一帖中的操作環境,這樣外網就不能訪問我的FTP了,內網也可能通過192.168.0.2來訪問FTP
listen_address=192.168.0.2
加完後,要重啟vsFTP服務器
[root@linuxsir001 root]# /etc/init.d/vsftpd restart
關閉 vsftpd: [ 確定 ]
為 vsftpd 啟動 vsftpd: [ 確定 ]
[root@linuxsir001 root]#
補充四:如何讓vsFTP服務器限制鏈接數,以及每個IP最大的鏈接數??
答:應該改vsFTP服務器的配製文件vsftpd.conf,加入下面的兩行:
max_clients=數字
max_per_ip=數字
舉例:我想讓我的vsFTP最大支持鏈接數為100個,每個IP,最多能支持5個鏈接,所以我應該在vsftpd.conf中加上如下的兩行:
max_clients=100
max_per_ip=5
改好了配製文件,不要忘記啟動vsftp服務器。
補充五:如何限制下載的速度?
anon_max_rate=數字 註:這是匿名的下載速度 local_max_rate=數字 註:這是vsFTP服務器上普通用戶的下載速度
註:這個數字的單位是字節,所以我們要計算一下。比如我想讓匿名用戶和vsFTP上的用戶都以80KB下載,所以這個數字應該是1024x80=81920 所以我們要在vsftpd.conf中加入下面的兩行
anon_max_rate=81920
local_max_rate=81920
不要忘記重啟vsftpd服務
補充六:我的硬盤空間有限,怎麼辦?
我的硬盤空間有限,如何把帳號ftp默認的路徑/var/ftp更改到別處?或者是,我的linux所有的目錄都放在/根分區,因為空間緊張,我能否把ftp這個用戶的默認路徑放到別的分區?
可以,應該如下操作!
首先要把ftp這個用戶刪除
#userdel -r ftp
會有錯誤信息,不過不用理,這是正常的。
然後我們再把這個用戶添加上,比如我想為帳號ftp的家目錄設置在/mnt/LinG/ftp,我們就可以如下操作
[root@linuxsir001 root]# mkdir /mnt/LinG
[root@linuxsir001 root]# adduser -d /mnt/LinG/ftp -g ftp -s /sbin/nologin ftp
僅僅是這樣做還不行,因為這樣還是不能讓匿名用戶找到它的家目錄,所以我們必須改變/mnt/LinG/ftp這個目錄的權限。
[root@linuxsir001 root]# chmod 755 /mnt/LinG/ftp/
[root@linuxsir001 root]# chown -R root.root /mnt/LinG/ftp/
補充七:如何定制歡迎信息
如何在我們登入有些FTP之後,會出現類似:歡迎您來到LinuxSir FTP,在這裡,您會得到最真誠的幫助,如果有什麼問題和建議,請來信,多謝。
實現這個並不難,我們可以查看vsftpd.cof文件中,是否有這行。
dirmessage_enable=YES
如果沒有就加上,如果dirmessage_enable=YES前面有#號,就把#號去掉。
然後我們制定一個.message文件,寫上您想要寫的東西,比如是.message的內容是如下的:
歡迎您來到LinuxSir FTP!
在這裡,您會得到最真誠的幫助;
如果有什麼問題和建議,請來信,多謝。
我們可以用編輯器來寫這個.message,我想這個過程就不用說了吧。
然後我們把.message這個文件複製到各個用戶的家目錄中。比如我的FTP的一個用戶是beinan,這個用戶所在的家目錄是/home/beinan
我們就要把.message放在/home/beinan這個目錄下。如果系統用戶ftp,他的目錄就是/var/ftp這個目錄,這個是默認的,當匿名用戶登入時就訪問的是/var/ftp這個目錄。我們要讓匿名用戶能看到歡迎信息。就要把.message放在/var/ftp目錄中。其它的用戶,也無非就是類似的操作。
補充八:如何實現虛擬路徑?
比如: /home/a 映射為ftp://localhost/a /home/b/c 則為ftp://localhost/c
其實這個不能說是vsFTPd的內容,其實我們早就接觸過了,可能我們沒有注意,我們可以通過如下的方法來實現。
#mount --bind [原有的目錄] [新目錄]
比如我的ftp的默認目錄是/var/ftp,我想把/mnt/LinG/WinSoft文件夾,映射到/var/ftp目錄中,我就如下操作
我們要先在/var/ftp目錄中建一個目錄
#mkdir /var/ftp/WinSoft
然後執行mount命令
#mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft
這樣就OK了。
補充九:如何上匿名訪問、上傳,並支持下載和執行?
在默認的情況下,vsftp是不支持匿名用戶的訪問的,所以我們要自己打開相應的選項。現在我針對這個問題,我們要打開如下的選項。
anonymous_enable=YES 註:允許匿名訪問
anon_upload_enable=YES 註:允許上傳
anon_mkdir_write_enable=YES 註:允許建立相應的目錄
anon_umask=022 把上傳到FTP的文件或者目錄改變權限
當然打開這些選項還是不行的,我們還要讓匿名寫入文件的上一級目錄有寫入權,以我所做的FTP為例,我所做的FTP的匿名訪問的目錄是 /var/ftp,在vsFTPd中,/var/ftp這個目錄是不能讓匿名用戶有寫入權限的,這是為了安全考慮,所以我們必須自己在/var/ftp目錄中建一個目錄,讓這個目錄有寫入權。
比如:我在/var/ftp目錄建一個upload目錄,然後把它的權限設置成777,這樣匿名用戶就能寫入了。
#mkdir /var/ftp/upload
#chmod 777 /var/ftp/upload
改了一系列的文件,不要忘記重啟vsFTPd服務器
我是用standalone模式的,當然用下面的方法
[root@linuxsir001 root]# service vsftpd restart
關閉 vsftpd: [ 確定 ]
為 vsftpd 啟動 vsftpd: [ 確定 ]
[root@linuxsir001 root]#
如果您用的是xinetd模式來啟動vsFTPd,我們要重啟xinetd服務器
[root@linuxsir001 root]# service xinetd restart
停止 xinetd: [ 確定 ]
啟動 xinetd: [ 確定 ]
[root@linuxsir001 root]# ]
補充十:通過pam認證方式,添加虛擬用戶
通過pam認證,用db_load添加用戶,是真正的虛擬用戶。現在我們簡單的介紹一下,通過以後的學習,我們再深入補充:
1。在/etc/pam.d/目錄中創建一個文件ftp
[root@linuxsir001 root]# touch /etc/pam.d/ftp
2。在/etc/pam.d/ftp裡面加上如下的兩行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
3。創建一系統的用戶名用密碼的文件logins.txt
[root@linuxsir001 root]# touch logins.txt
在logins.txt文件中,輸入如下的內容。這個內容您可以自己來定。比如我下面的。其實linuxsir007是FTP的虛擬用戶名, 123456是linuxsir007的密碼;linuxsir008是虛擬用戶名,234567是linuxsir008的密碼,以此類推,您想加入幾個就是幾個;下面是我添加的FTP的虛擬用戶名和密碼。
linuxsir007
123456
linuxsir008
234567
linuxsir009
567890
linuxsir010
678901
linuxsir011
789012
4。創建一個真實的用戶名linuxsir006,這個linuxsir006的用戶,所在的家目錄由您來定。我在這裡不多說了。我是按系統默認的來添加的。
[root@linuxsir001 root]# useradd linuxsir006
5。把/etc/hosts複製到/home/linuxsir006,並改變它的屬主
[root@linuxsir001 root]#cp /etc/hosts /home/linuxsir006/hosts
[root@linuxsir001 root]#chown linuxsir006.linuxsir006 /home/linuxsir006/hosts
6。通過db_load來創建虛擬用戶的庫文件。我們在前面建的logins.txt文件,我是放在了/root用戶目錄下。所以咱們得把目錄切換到/root目錄來創建虛擬用戶的庫文件。
[root@linuxsir001 root]# db_load -T -t hash -f logins.txt /etc/vsftpd_login.db
7。更改vsftpd.conf文件,加入如下的幾行
pam_service_name=ftp
guest_enable=YES
guest_username=linuxsir006
anon_world_readable_only=NO
8。重啟vsFTPd服務器;改了一系列的文件,不要忘記重啟vsFTPd服務器
我是用standalone模式的,當然用下面的方法
[root@linuxsir001 root]# service vsftpd restart
關閉 vsftpd: [ 確定 ]
為 vsftpd 啟動 vsftpd: [ 確定 ]
[root@linuxsir001 root]#
如果您用的是xinetd模式來啟動vsFTPd,我們要重啟xinetd服務器
[root@linuxsir001 root]# service xinetd restart
停止 xinetd: [ 確定 ]
啟動 xinetd: [ 確定 ]
[root@linuxsir001 root]#
9。如果您想讓用戶登入FTP時,登入成功的相應的信息,請把您製作的.message複製到您的用戶的家目錄中,這方面的請參考前面的補充。
10。測試:
[root@linuxsir001 root]# ftp 192.168.0.1
Connected to 192.168.0.1.
220 (vsFTPd 1.1.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.0.1:root): linuxsir007
331 Please specify the password.
Password:
230-歡迎光臨LinuxSir自由FTP
230-在這裡,您將得到最真誠的幫助!
230-本站限度為30KB!
230-每個IP限四個線程
230-請大家遵守FTP的有關規定。
230-多謝合作!
230-
230-LinuxSir管理部
230 Login successful. Have fun.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,0,1,85,171)
150 Here comes the directory listing.
-rw-r--r-- 1 ftp ftp 174 Jun 01 12:59 hosts
drwxr-xr-x 3 ftp ftp 4096 Jun 01 13:29 linuxsir008
drwxr-xr-x 2 ftp ftp 4096 Jun 01 13:24 sun
226 Directory send OK.
ftp>
補充十一:如何把系統默認用standalone啟動改為用xinetd啟動?
如何把Redhat 9.0中系統默認安裝的vsftpd-1.1.3-8.i386.rpm,系統默認vsFTPd是用standalone啟動方式,改為xinetd啟動方式 ?如果是用源碼包安裝的,安裝後就是xinetd模式,如果是用RPM包安裝的,在Redhat 9.0中,應該用下面的方法來解決。
1.在/etc/xinetd.d/目錄中創建一個文件vsftpd
[root@linuxsir001 root]# touch /etc/xinetd.d/vsftpd
/etc/xinetd.d/vsftpd內容如下:
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
# server_args =
# log_on_success += DURATION USERID
# log_on_failure += USERID
nice = 10
disable = no
}
2。複製vsftpd.conf到/etc/目錄下,因為xinetd對vsFTPd配製文件應該在/etc目錄下,所以我們就必須把這個文件複製到/etc目錄下,否則會出現系統中local用戶無法登入,也就是說,不複製這個文件會出現ftp非匿名用戶無法訪問,只能用匿名用戶訪問。
[root@linuxsir001 root]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd.conf
3。更改配製文件/etc/vsftpd.conf,把如下的項注掉:也就是把
listen=YES
改為
#listen=YES
或者是把這行刪除也行。
4。把/etc/init.d/vsftpd這個文件刪除。其實最好的備份到別處,因為我們有時實驗來實驗去,可能還會轉到standalone模式啟動。我就直接移動到別的目錄,比如是/root下面的backup目錄。
[root@linuxsir001 root]#mkdir /root/backup
[root@linuxsir001 root]# mv /etc/init.d/vsftpd /root/backup
5。運行ntsysv,把vsftpd的服務取消
[root@linuxsir001 root]#ntsysv
[ ] vsftpd
6。重啟xinetd服務
[root@linuxsir001 root]# service xinetd restart
原文出處:VSFTPD的菜鸟篇:_天涯博客_有见识的人都在此_天涯社区