Linux下用vsftpd構(gòu)建FTP服務(wù)器_Ftp服務(wù)器教程
在Linux下如何使用vsftpd構(gòu)建FTP服務(wù)器,構(gòu)建后的Ftp服務(wù)器有哪些特點(diǎn)?本文將作詳細(xì)介紹。
vsftpd 是“very secure FTP daemon”的縮寫(xiě),安全性是它的一個(gè)最大的特點(diǎn)。vsftpd 是一個(gè) UNIX 類操作系統(tǒng)上運(yùn)行的服務(wù)器的名字,它可以運(yùn)行在諸如 Linux、BSD、Solaris、 HP-UNIX等系統(tǒng)上面,是一個(gè)完全免費(fèi)的、開(kāi)發(fā)源代碼的Ftp服務(wù)器軟件,支持很多其他的 FTP 服務(wù)器所不支持的特征。比如:非常高的安全性需求、帶寬限制、良好的可伸縮性、可創(chuàng)建虛擬用戶、支持IPv6、速率高等。
本文以RedHat Linux 9.0為例介紹一下如何安裝和配置vsftpd服務(wù)器。
安裝服務(wù)器程序
程序下載地址:ftp://vsftpd.beasts.org/users/cevans/,目前最新版本為2.0.3,源程序文件名為vsftpd-2.0.3.tar.gz。
1.安裝之前的準(zhǔn)備:
安裝之前我們應(yīng)該看看用戶“nobody”和目錄“/usr/share/empty”是否存在,如果不存在需要新建這個(gè)用戶和目錄。
[root@localhost root]# useradd nobody
[root@localhost root]# mkdir /usr/share/empty
如果要允許匿名訪問(wèn),還需要?jiǎng)?chuàng)建ftp用戶,并將其主目錄設(shè)置為/var/ftp。在RedHat Linux 9.0中這些都已默認(rèn)設(shè)置好了,只需要?jiǎng)?chuàng)建一個(gè)/var/ftp目錄即可。
[root@localhost root]# mkdir /var/ftp
為了安全,目錄“/var/ftp”不應(yīng)該屬于用戶“ftp”,也不應(yīng)該有寫(xiě)權(quán)限。在此,我們做如下設(shè)置:
[root@localhost root]# chown root.root /var/ftp
[root@localhost root]# chmod 755 /var/ftp
2.開(kāi)始安裝:
以管理員身份登錄Linux系統(tǒng),將vsftpd-2.0.3.tar.gz復(fù)制到/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.安裝后續(xù)工作
由于采用源代碼方式安裝,很多必要的配置文件沒(méi)有復(fù)制到系統(tǒng)中,需要手動(dòng)復(fù)制。
復(fù)制配置文件:
[root@localhost vsftpd-2.0.3]# cp vsftpd.conf /etc
復(fù)制pam驗(yàn)證文件:(多數(shù)使用vsftpd的用戶在用源代碼安裝后都會(huì)遇到這樣的問(wèn)題:匿名用戶可以登錄,而本地用戶無(wú)論怎樣設(shè)置都無(wú)法登錄,原因就在于vsftpd采用了PAM驗(yàn)證的方式,需要復(fù)制一個(gè)驗(yàn)證文件本地用戶才能訪問(wèn)。)
[root@localhost vsftpd-2.0.3]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
vsftpd的配置
vsftpd服務(wù)器的配置文件為/etc/vsftpd.conf,其配置選項(xiàng)比較多,在此我只選擇幾個(gè)常用的配置選項(xiàng)介紹。
1.禁止匿名用戶訪問(wèn)。
anonymous_enable=NO
2.允許本地用戶登錄并允許其上傳文件。
local_enable=YES
write_enable=YES
要使上述選項(xiàng)生效,必須復(fù)制一個(gè)pam驗(yàn)證文件到/etc/pam.d,并改名為ftp。當(dāng)然也可以改為其他名稱,但必須修改pam_service_name的值,默認(rèn)為ftp。
3.將本地用戶鎖定在主目錄中,不允許切換到上一級(jí)目錄中。
chroot_local_user=YES
4.禁止某些用戶通過(guò)ftp登錄服務(wù)器。
如果設(shè)置了local_enable=YES,那么所有的用戶包括root也能通過(guò)ftp登錄服務(wù)器,出于安全考慮,需要對(duì)某些用戶進(jìn)行限制。
在vsftpd.conf中有三個(gè)選項(xiàng)控制:
userlist_deny=YES/NO
userlist_enalbe=YES
userlist_file=/etc/vsftpd.user_list
如果userlist_deny=YES,/etc/vsftpd.user_list中列出的用戶名就不允許登錄ftp服務(wù)器;如果userlist_deny=NO,/etc/vsftpd.user_list中列出的用戶名允許登錄Ftp服務(wù)器。
我們只要在/etc目錄下創(chuàng)建vsftpd.user_list文件,文件內(nèi)容為允許登錄或禁止登錄的用戶名,每個(gè)用戶占一行。
5.禁止用戶通過(guò)FTP修改文件或文件夾的權(quán)限。
chmod_enable=NO(默認(rèn)值為YES)
6.設(shè)置本地用戶上傳的文件或文件夾的umask值。
local_umask=022(默認(rèn)值為077)
umask的值設(shè)為022表示,上傳的如果是文件將權(quán)限改為644,如果是文件夾將權(quán)限改為755。在上傳網(wǎng)頁(yè)時(shí),如果設(shè)置為077,就會(huì)出現(xiàn)用戶沒(méi)有權(quán)限(Permission denied)訪問(wèn)網(wǎng)頁(yè)的問(wèn)題,所以建議將umask的值設(shè)為022。
7.添加一個(gè)只能從ftp登錄服務(wù)器,而不能從本地登錄的用戶。以下創(chuàng)建一個(gè)用戶ftpuser,不允許從本地登錄,并創(chuàng)建該用戶的密碼。
[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服務(wù)器限制總的連接數(shù)以及每個(gè)IP最大的連接數(shù)。
#最多同時(shí)允許100個(gè)客戶連接
max_clients=100
#每個(gè)ip地址最多允許開(kāi)3個(gè)線程
max_per_ip=3
vsftpd的配置文件中有很多選項(xiàng),但個(gè)人認(rèn)為,如果是架設(shè)一個(gè)簡(jiǎn)單的Ftp服務(wù)器,以上選項(xiàng)就足夠了。
- 相關(guān)鏈接:
- 教程說(shuō)明:
Ftp服務(wù)器教程-Linux下用vsftpd構(gòu)建FTP服務(wù)器
。