vsFTPd 安裝與配置

vsFTPd 安裝與配置

vsFTPD是一款小巧易用FTP服務器程序,是一款在Linux發行版中最受推崇的FTP服務器程序,特點是小巧輕快,安全易用。

vsFTPd的安裝

在最新的各大發行版中的安裝盤中都有vsFTPd的軟件包,用相應發行版提供的軟件包管理工具就能安裝。當然也可以到各大發行版的FTP鏡像中找到vsftpd的軟件包,用軟件包的管理工具在線安裝。推薦用發行版提供的軟件來安裝,不推薦自己編譯源碼包的安裝方式。

Fedora 或Redhat 系統,可以用下面的命令在線安裝;

[root@localhost ~]# yum install vsftpd

如果是debian 類系統,可以用apt 來在線安裝;

[root@localhost ~]# apt-get install vsftpd

如果是RPM的系統,也可以找到vsftpd-xxxx.rpm 的包來通過rpm命令來安裝;

[root@localhost ~]# rpm -ivh vsftpd*.rpm

下載源碼包安裝

[root@localhost ~]# tar zxvf vsftpd-2.0.3.tar.gz
[root@localhost ~]# cd vsftpd-2.0.3
[root@localhost ~]# make ;make install
[root@localhost ~]# cp vsftpd.conf /etc

然後修改/etc/vsftpd.conf ,在配置文件的最後一行加入下面一行;

listen=yes

源碼包安裝的方法,如果您的系統是RPM包管理的系統,可以刪除/etc/xinetd.d/vsftpd 這個文件;然後啓動xinetd 服務器;

[root@localhost ~]# /etc/init.d/xinetd restart
停止 xinetd: [ 確定 ]
啓動 xinetd: [ 確定 ]

vsFTPd服務器的運行

[root@localhost ~]# /usr/sbin/vsftpd &
[root@localhost ~]# /usr/local/sbin/vsftpd &

vsFTPd 服務器關閉

用pkill vsftpd 來殺死vsftpd進程,這樣就把vsFTPd關閉,用psgrep vsftpd 來查看進程,如果沒有進程,證明vsFTPd已經關掉;要用到root權限。

[root@localhost ~]# pkill vsftpd
[root@localhost ~]# pgrep vsftpd

在Fedora/Redhat/CentOS中vsFTPd 服務器的啓動和關閉:

在Fedora/Redhat/CentOS中,也可以用下面的方法來啓動vsFTPd;當然也要用到root權限;

[root@localhost beinan]# /etc/init.d/vsftpd start
爲 vsftpd 啓動 vsftpd: [ 確定 ]

重新啓動vsFTPd用下面的命令;

[root@localhost beinan]# /etc/init.d/vsftpd restart
關閉 vsftpd: [ 確定 ]
爲 vsftpd 啓動 vsftpd: [ 確定 ]

關掉vsFTPd服務器,應該用下面的命令;

[root@localhost beinan]# /etc/init.d/vsftpd stop
關閉 vsftpd: [ 確定 ]

vsFTPd配置文件

vsftpd.conf是vsFTPd服務器的配置文件,此文件一般是/etc/vsftpd.conf或 /etc/vsftpd/vsftpd.conf,vsftpd.conf配置文件就是vsFTPd服務器的全局控制文件,此配置文件中,每行應該算做一 個規則。配置完後需要重啓纔有效。

vsFTPd配置虛擬用戶

FTP用戶一般是不能登錄系統的,這也是爲了安全。在系統中,沒有權限登錄系統的用戶一般也被稱之爲虛擬用戶;虛擬用戶也是要寫進 /etc/passwd中;這只是一種虛擬用戶的方法,但說實在的並不是真正的虛擬用戶,只是把他登錄SHELL的權限去掉了,所以他沒有能力登錄系統;

如果我們想把beinan這個用戶目錄定位在/opt/beinan這個目錄中,並且不能登錄系統;我們應該如下操作

[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 ~]#

其實這還是不夠的,還要改一下配置文件vsftpd.conf ,以確保本地虛擬用戶能有讀寫權限;

local_enable=YES
write_enable=YES
local_umask=022

如何實現虛擬路徑?

比如:

/home/a 映射爲 ftp://localhost/a
/home/b/c 則爲 ftp://localhost/c

可以通過如下的方法來實現。

[root@localhost ~]# mount –bind [原有的目錄] [新目錄]

比如我的ftp的默認目錄是/var/ftp,我想把/mnt/LinG/WinSoft文件夾,映射到/var/ftp目錄中,我就如下操作

我們要先在/var/ftp目錄中建一個目錄

[root@localhost ~]# mkdir /var/ftp/WinSoft

然後執行mount命令

[root@localhost ~]# mount –bind /mnt/LinG/WinSoft /var/ftp/WinSoft

這樣就OK了。

打開vsFTP服務器的日誌功能

把下面xferlog_file前面的#號對掉,也就是把vsftp的log功能打開,這樣我們就能在/var/log目錄下查看vsftpd.log。這是vsFTP的日誌功能,這對於我們來說是極爲重要的。

xferlog_file=/var/log/vsftpd.log

如何讓vsFTP服務器限制鏈接數,以及每個IP最大的鏈接數?

應該改vsFTPd服務器的配製文件vsftpd.conf,加入下面的兩行:

max_clients=數字
max_per_ip=數字

舉例:我想讓我的vsFTP最大支持鏈接數爲100個,每個IP,最多能支持5個鏈接,所以我應該在vsftpd.conf中加上如下的兩行:

max_clients=100
max_per_ip=5

如何限制傳輸速度?

anon_max_rate=數字

注:這是匿名的速度

local_max_rate=數字

注:這是vsFTP服務器上本地用戶的速度

注:這個數字的單位是byte,所以我們要計算一下。比如我想讓匿名用戶和vsFTP上的用戶都以80KB下載,所以這個數字應該是1024×80=81920

所以我們要在vsftpd.conf中加入下面的兩行

anon_max_rate=81920
local_max_rate=81920

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章