Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> Linux下用vsftpd構建FTP服務器

Linux下用vsftpd構建FTP服務器

日期:2017/2/8 10:32:28      編輯:關於服務器

在Linux下如何使用vsftpd構建FTP服務器,構建後的FTP服務器有哪些特點?本文將作詳細介紹。

vsftpd 是“very secure FTP daemon”的縮寫,安全性是它的一個最大的特點。vsftpd 是一個 UNIX 類操作系統上運行的服務器的名字,它可以運行在諸如 Linux、BSD、Solaris、 HP-UNIX等系統上面,是一個完全免費的、開發源代碼的ftp服務器軟件,支持很多其他的 FTP 服務器所不支持的特征。比如:非常高的安全性需求、帶寬限制、良好的可伸縮性、可創建虛擬用戶、支持IPv6、速率高等。

本文以RedHat Linux 9.0為例介紹一下如何安裝和配置vsftpd服務器。

安裝服務器程序

程序下載地址:ftp://vsftpd.beasts.org/users/cevans/,目前最新版本為2.0.3,源程序文件名為vsftpd-2.0.3.tar.gz。

1.安裝之前的准備:

安裝之前我們應該看看用戶“nobody”和目錄“/usr/share/empty”是否存在,如果不存在需要新建這個用戶和目錄。

[root@localhost root]# useradd nobody

[root@localhost root]# mkdir /usr/share/empty

如果要允許匿名訪問,還需要創建ftp用戶,並將其主目錄設置為/var/ftp。在RedHat Linux 9.0中這些都已默認設置好了,只需要創建一個/var/ftp目錄即可。

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

為了安全,目錄“/var/ftp”不應該屬於用戶“ftp”,也不應該有寫權限。在此,我們做如下設置:

[root@localhost root]# chown root.root /var/ftp

[root@localhost root]# chmod 755 /var/ftp

2.開始安裝:

以管理員身份登錄Linux系統,將vsftpd-2.0.3.tar.gz復制到/root目錄下。

[root@localhost root]# tar xzvf vsftpd-2.0.3.tar.gz

[root@localhost root]# cd vsftpd-2.0.3

[root@localhost vsftpd-2.0.3]# make

[root@localhost vsftpd-2.0.3]# make install

3.安裝後續工作

由於采用源代碼方式安裝,很多必要的配置文件沒有復制到系統中,需要手動復制。

復制配置文件:

[root@localhost vsftpd-2.0.3]# cp vsftpd.conf /etc

復制pam驗證文件:(多數使用vsftpd的用戶在用源代碼安裝後都會遇到這樣的問題:匿名用戶可以登錄,而本地用戶無論怎樣設置都無法登錄,原因就在於vsftpd采用了PAM驗證的方式,需要復制一個驗證文件本地用戶才能訪問。)

[root@localhost vsftpd-2.0.3]# cp RedHat/vsftpd.pam /etc/pam.d/ftp

vsftpd的配置

vsftpd服務器的配置文件為/etc/vsftpd.conf,其配置選項比較多,在此我只選擇幾個常用的配置選項介紹。

1.禁止匿名用戶訪問。

anonymous_enable=NO

2.允許本地用戶登錄並允許其上傳文件。

local_enable=YES

write_enable=YES

要使上述選項生效,必須復制一個pam驗證文件到/etc/pam.d,並改名為ftp。當然也可以改為其他名稱,但必須修改pam_service_name的值,默認為ftp。

3.將本地用戶鎖定在主目錄中,不允許切換到上一級目錄中。

chroot_local_user=YES

4.禁止某些用戶通過ftp登錄服務器。

如果設置了local_enable=YES,那麼所有的用戶包括root也能通過ftp登錄服務器,出於安全考慮,需要對某些用戶進行限制。

在vsftpd.conf中有三個選項控制:

userlist_deny=YES/NO

userlist_enalbe=YES

userlist_file=/etc/vsftpd.user_list

如果userlist_deny=YES,/etc/vsftpd.user_list中列出的用戶名就不允許登錄ftp服務器;如果userlist_deny=NO,/etc/vsftpd.user_list中列出的用戶名允許登錄ftp服務器。

我們只要在/etc目錄下創建vsftpd.user_list文件,文件內容為允許登錄或禁止登錄的用戶名,每個用戶占一行。

5.禁止用戶通過FTP修改文件或文件夾的權限。

chmod_enable=NO(默認值為YES)

6.設置本地用戶上傳的文件或文件夾的umask值。

local_umask=022(默認值為077)

umask的值設為022表示,上傳的如果是文件將權限改為644,如果是文件夾將權限改為755。在上傳網頁時,如果設置為077,就會出現用戶沒有權限(Permission denied)訪問網頁的問題,所以建議將umask的值設為022。

7.添加一個只能從ftp登錄服務器,而不能從本地登錄的用戶。以下創建一個用戶ftpuser,不允許從本地登錄,並創建該用戶的密碼。 //本文來自電腦軟硬件應用網www.45it.com

[root@localhost root]# useradd –g ftp –s /sbin/nologin ftpuser

[root@localhost root]# passwd ftpuser

Changing password for user ftpuser.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

8.讓vsftp服務器限制總的連接數以及每個IP最大的連接數。

#最多同時允許100個客戶連接

max_clients=100

#每個ip地址最多允許開3個線程

max_per_ip=3

vsftpd的配置文件中有很多選項,但個人認為,如果是架設一個簡單的ftp服務器,以上選項就足夠了。

Copyright © Windows教程網 All Rights Reserved