vsFTPd服務器的常用功能
vsFTPd服務器的常用功能:Unix和Linux中,vsftpd是一款非常安全的FTP服務器。任何發(fā)行版本中的vsftpd都非常安全。像RedHat、Debian、GNU、GNOME、KDE 等等一些大型站點,都采用vsftpd作為它們的FTP服務器。本文將介紹vsFTPd服務器的常用功能。
1、關(guān)于匿名上傳下載的功能
關(guān)于匿名上傳,其實也比較簡單,首先我們要修改一下vsftpd.conf ,此文件位于 /etc/目錄下,可能是/etc/vsftpd.conf,也可能是/etc/vsftpd/vsftpd.conf文件。以您的系統(tǒng)環(huán)境為準;
首先:我們要改一下vsftpd.conf,確保有以下幾行;
- anonymous_enable=YES
- anon_upload_enable=YES
- anon_mkdir_write_enable=YES
- anon_umask=022
其次:在ftp用戶家目錄的下建一個文件夾,并修改其權(quán)限為完全開放;
ftp用戶的家目錄在哪?我們前面已經(jīng)說了,要通過/etc/passwd來查看;也可以通過finger ftp來查看;
- [root@localhost beinan]# finger ftp
- Login: ftp Name: FTP User
Directory: /var/ftp Shell: /sbin/nologin
這說明ftp用戶的家目錄在/var/ftp ,我們要在這個目錄下建一個目錄,然后把他的權(quán)限設(shè)置為任何用戶可讀可寫可執(zhí)行就行了;一般的情況下,在發(fā)行版中,有一個/var/ftp/pub的目錄,如果沒有,您也可以自己建一個;把配置文件改好后,只要把/var/ftp下的任何一個目錄的權(quán)限打開,都可以用來匿名上傳和下載;
比如您想讓匿名用戶上傳和下載都在/var/ftp/pub,就可以把/var/ftp/pub的權(quán)限打開,如果沒有這個目錄,您要自己建一個;
- [root@localhost ~]# mkdir /var/ftp/pub
- [root@localhost ~]# chmod 777 /var/ftp/pub
這樣上傳的時候傳到pub目錄就OK了,對不對??
2、關(guān)于添加本地用戶及打開讀寫權(quán)限示例的功能;
FTP用戶一般是不能登錄系統(tǒng)的,這也是為了安全。在系統(tǒng)中,沒有權(quán)限登錄系統(tǒng)的用戶一般也被稱之為虛擬用戶;虛擬用戶也是要寫進/etc /passwd中;這只是一種虛擬用戶的方法,但說實在的并不是真正的虛擬用戶,只是把他登錄SHELL的權(quán)限去掉了,所以他沒有能力登錄系統(tǒng);
如果我們想把beinan這個用戶目錄定位在/opt/beinan這個目錄中,并且不能登錄系統(tǒng);我們應該如下操作
- [root@localhost ~]# adduser -d /opt/beinan -g ftp -s /sbin/nologin beinan
- [root@localhost ~]# passwd beinan
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
- [root@localhost ~]#
檢查用戶對ftp家目錄有沒有權(quán)限,權(quán)限不是755則修改ftp家目錄權(quán)限,并且再為用戶ftp新建一個目錄pub:
- [root@localhost ~]#finger ftp
- Login: ftp Name: FTP User
- Directory: /home/ftp/ Shell: /bin/false
- [root@localhost ~]#ls -l /home/
- drwxr-xr-x 30 chimin chimin 4096 2010-07-29 00:12 chimin
- drwxrwxrwx 3 root root 4096 2010-07-28 19:26 ftp
- [root@localhost ~]#chmod 755 /home/ftp/
- [root@localhost ~]#mkdir /home/ftp/pub; chmod 777 /home/ftp/pub
其實這還是不夠的,還要改一下配置文件vsftpd.conf ,以確保本地虛擬用戶能有讀寫權(quán)限;
- local_enable=YES
- write_enable=YES
- local_umask=022
- anon_upload_enable=YES
- anon_mkdir_write_enable=YES
3、如何讓匿名用戶擁有刪除上傳文件的功能?
我們可以通過更改vsftpd.conf文件,加入如下的一行
- anon_other_write_enable=yes
4、如何實現(xiàn)虛擬路徑的功能?
比如:
/home/a 映射為 ftp://localhost/a
/home/b/c 則為 ftp://localhost/c
其實這個不能說是vsFTPd的內(nèi)容,其實我們早就接觸過了,可能我們沒有注意,我們可以通過如下的方法來實現(xiàn)。
[root@localhost ~]# mount --bind [原有的目錄] [新目錄]
比如我的ftp的默認目錄是/var/ftp,我想把/mnt/LinG/WinSoft文件夾,映射到/var/ftp目錄中,我就如下操作
我們要先在/var/ftp目錄中建一個目錄
- [root@localhost ~]# mkdir /var/ftp/WinSoft
然后執(zhí)行mount命令
- [root@localhost ~]# mount --bind /mnt/LinG/WinSoft /var/ftp/WinSoft
這樣就OK了。
5、打開vsFTP服務器的日志功能;
把下面xferlog_file前面的#號對掉,也就是把vsftp的log功能打開,這樣我們就能在/var/log目錄下查看vsftpd.log。這是vsFTP的日志功能,這對于我們來說是極為重要的。
- xferlog_file=/var/log/vsftpd.log
6、如何定制歡迎信息的功能;
如何定制歡迎信息,也就是我們登入有些FTP之后,會出現(xiàn)類似:歡迎您來到LinuxSir FTP,在這里,您會得到最真誠的幫助,如果有什么問題和建議,請來信,多謝。
實現(xiàn)這個并不難,我們可以查看vsftpd.conf文件中,是否有這行。
- dirmessage_enable=YES
- message_file=.message
如果沒有就加上,如果dirmessage_enable=YES前面有#號,就把#號去掉。其實FTP信息默認的就是.message,所以可以不加 message_file= 來指定。自己指定也行,無所謂的事;
然后我們制定一個.message文件,寫上您想要寫的東西,比如是.message的內(nèi)容是如下的:
--歡迎您來到LinuxSir FTP!
--在這里,您會得到最真誠的幫助;
--如果有什么問題和建議,請來信,多謝。
我們可以用編輯器來寫這個.message,我想這個過程就不用說了吧。
然后我們把.message這個文件復制到各個用戶的家目錄中。比如我的FTP的一個用戶是beinan,這個用戶所在的家目錄是/opt/beinan
我們就要把.message放在/opt/beinan這個目錄下。如果系統(tǒng)用戶ftp,他的目錄就是/var/ftp這個目錄,這個是默認的,當匿名用戶登入時就訪問的是/var/ftp這個目錄。我們要讓匿名用戶能看到歡迎信息。就要把.message放在/var/ftp目錄中。其它的用戶,也無非就是類似的操作。
#p#
7、硬盤空間有限,如何把帳號ftp默認的家目錄更改到別處的功能?
我的硬盤空間有限,如何把帳號ftp默認的路徑/var/ftp更改到別處?或者是,我的linux所有的目錄都放在/根分區(qū),因為空間緊張,我能否把ftp這個用戶的默認路徑放到別的分區(qū)??
對于ftp這個用戶的管理,我們應該查看/etc/passwd ,然后修改ftp用戶那行;
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
比如我們想把ftp用戶的家目錄改為/opt/ftp,則要把類似上一行改為
ftp:x:14:50:FTP User:/opt/ftp:/sbin/nologin
然后我們要建立ftp用戶的新的家目錄;
- [root@localhost ~]# mkdir /opt/ftp
- [root@localhost ~]# chmod 755 /opt/ftp
- [root@localhost ~]# chown root:root /opt/ftp
如果默認的ftp磁盤空間緊張,我們其實也可以用虛擬路徑映射的方法來解決;也就是mount --bind的辦法;看情況吧,哪個適合就是***的方法;
8、如何讓vsFTP服務器限制鏈接數(shù),以及每個IP***的鏈接數(shù)的功能?
應該改vsFTPd服務器的配制文件vsftpd.conf,加入下面的兩行:
max_clients=數(shù)字
max_per_ip=數(shù)字
舉例:我想讓我的vsFTP***支持鏈接數(shù)為100個,每個IP,最多能支持5個鏈接,所以我應該在vsftpd.conf中加上如下的兩行:
- max_clients=100
- max_per_ip=5
改好了配制文件,不要忘記啟動vsftp服務器。
9、如何限制傳輸速度的功能?
anon_max_rate=數(shù)字
注:這是匿名的速度
local_max_rate=數(shù)字
注:這是vsFTP服務器上本地用戶的速度
注:這個數(shù)字的單位是byte,所以我們要計算一下。比如我想讓匿名用戶和vsFTP上的用戶都以80KB下載,所以這個數(shù)字應該是1024x80=81920
所以我們要在vsftpd.conf中加入下面的兩行
- anon_max_rate=81920
- local_max_rate=81920
10、如何有選擇的把用戶限制在家目錄中的功能呢?
我們要自己建一個文件,在/etc目錄中或/etc/vsftpd目錄中(假如您的vsftpd配置文件都是放在這個目錄的話);
- #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
如果沒有這樣的兩行,就可以自己添加上去也是一樣的。
設(shè)置好后,重新vsFTPD服務器。
補充一之補充:如何把系統(tǒng)內(nèi)所有的FTP用戶都限制在家目錄中呢??經(jīng)juliaugong兄的提示,我查找了vsFTPd的洋文說明,證明這個選項是一刀切的解決所有的用戶都能限制在家目錄中
我們可以通過更改vsftpd.conf文件,加入如下的一行
- chroot_local_user=YES
改完配制文件,不要忘記重啟vsFTPd服務器;
11、如何實現(xiàn)讓綁定IP到vsFTPd的功能?
如何讓綁定IP到vsFTPd?也就是說,如何讓用戶只能通過某個IP來訪問FTP。其實這個功能很有意思。如果綁定的是內(nèi)網(wǎng)的IP,外部是沒有辦法訪問的。如果綁定的是對外服務的IP,內(nèi)網(wǎng)也只能通過對外服務的IP來訪問FTP
在vsftpd.conf中加一行,以我的局域網(wǎng)為例,請看***帖中的操作環(huán)境,這樣外網(wǎng)就不能訪問我的FTP了,內(nèi)網(wǎng)也可能通過192.168.0.2來訪問FTP;
listen_address=192.168.0.2