vsftpd:Linux Ubuntu上架設FTP
操作系統(tǒng):Ubuntu (GNU/Linux)
為了在機子上架設ftp服務器,我們需要安裝ftp服務器軟件。Linux下具有代表性的ftp服務器軟件有Wu-FTP,ProFTP和Vsftp。
Wu-FTP(Washington University FTP)由美國華盛頓大學開發(fā)。它的功能強大,配置較復制。由于開發(fā)時間較早,應用十分廣泛,也因此成為黑客們主要的攻擊目標。
ProFTP針對Wu-FTP的弱項而開發(fā),在安全性方面進行了改進,并提供了一些Wu-FTP沒有的功能,大大簡化了架設和管理FTP服務器的工作。
Vsftp在安全性,高性能及穩(wěn)定性3個方面上有上佳的表現(xiàn)。它提供的主要功能包括虛擬IP設置,虛擬用戶,standalone(可自行單獨啟動的daemon),inetd操作模式(由一支特殊的super daemon管理),強大的單用戶設置能力以及帶寬限流等。接下來我們主要講解在ubuntu上如何架設vsftpd。
vsftpd的安裝:
在ubuntu可直接通過apt安裝 sudo apt-get install vsftpd
安裝完畢,檢查vsftpd進程是否已啟動,可以查看進程或者查看監(jiān)聽端口
ps -eaf|grep vsftpd
vsftpd進程已開啟
netstat -tnl|grep :21
端口21正在被監(jiān)聽
vsftpd的配置文件:
在ubuntu中,vsftpd的主要配置文件分布如下:
/etc/vsftpd.conf vsftpd服務器的配置文件
/usr/sbin/vsftpd vsftpd服務器的進程文件
/etc/pam.d/vsftpd vsftpd服務器的PAM接口配置文件
/var/ftp vsftpd服務器匿名用戶的工作目錄
配置vsftpd服務器:
vsftpd服務器的配置文件以及各參數(shù)代表的意義如下:
/etc/vsftpd.conf
————————————————vsftpd.conf————————————————
listen=YES
listen_ipv6=YES # listen=YES和listen_ipv6=YES 設為YES表示將以獨立的方式運行(可自行單獨啟動的daemon),前者監(jiān)聽ipv4,后者監(jiān)聽ipv6,但兩者不能同時在一個配置文件中設置
anonymous_enable=YES # 表示允許匿名用戶登錄FTP服務器
anon_world_readable_only=NO # 只要ftp用戶在操作系統(tǒng)中有讀權限,就可以下載文件
anon_root=/var/ftp/anonymous # 匿名用戶登錄后進入到/var/ftp/anonymous目錄中,可以下載該目錄中的文件
anon_uploads_enable=YES # 匿名用戶可以上傳文件
anon_mkdir_write_enable=YES # 匿名用戶可以在服務器上創(chuàng)建目錄
anon_other_write_enable=YES # 匿名用戶可以在服務器上進行命名,刪除等寫操作
local_enable=YES # 表示允許本地用戶帳號登錄
local_umask=022 # 表示本地用戶創(chuàng)建新的文件時,該文件初始的權限值。022表示初始的權限值是創(chuàng)建者有全部的權限,其他用戶(包括組用戶,其他用戶)只有讀和執(zhí)行權限,077表示初始創(chuàng)建者具有全部權限,其他用戶沒有權限
write_enable=YES # 表示服務器接收與寫有關的控制命令
dirmessage_enable=YES # 表示用戶第一次進入一個新目錄時,會給用戶一些提示信息
use_localtime=YES # 表示服務器顯示本地時區(qū)時間,默認是顯示GMT時間
xferlog_enable=YES # 允許產生日志
xferlog_std_format=YES # 日志采用標準的xferlog格式
xferlog_file=/var/log/vsftpd.log# 日志文件以及所在目錄
connect_from_port_20=YES # 使用20端口作為建立數(shù)據(jù)連接時的源端口
pam_service_name=vsftpd # 指定PAM服務配置文件的名字,在/etc/pam.d
chown_uploads=YES # 這兩個選項是一對相關的配置,表示匿名用戶上傳的文件所以者將變?yōu)閣hoever,這個配置是為了安全目的
chown_username=whoever # 文件所有者變?yōu)槠渌脩艉?,匿名用戶將不能再對文件進行刪除,甚至讀操作,例如作業(yè)上交FTP
idle_session_timeout=600 # 表示控制連接的超時值為600秒
data_connection_timeout=120 # 表示數(shù)據(jù)連接的超時值為120秒
nopriv_user=ftpsecure # 表示當vsftpd進程處于非特權運行狀態(tài)時,所使用的用戶身份是ftpsecure
async_abor_enable=NO # 表示vsftpd支持”async ABOR“的FTP命令,這條命令會影響vsftpd的安全,一般使用默認的NO設置
ascii_upload_enable=YES
ascii_download_enable=YES # 表示上傳下載文件時真正允許ASCII模式。有些FTP服務器在實現(xiàn)ACSII傳輸模式時,容易遭受DoS攻擊。為了避免這種情況的發(fā)送,vsftpd給客戶端回應時可以假裝允AXSCII模式,但實際上使用的是binary模式,通過把這兩個值設置為NO來達到。
ftpd_banner=Welcome to stone FTP service. # 表示用戶登錄時,將顯示Welcome to stone FTP service信息,沒有這個選項時,將顯示vsftpd服務器的名稱和版本信息,存在安全問題,因而這樣做的目的是為了隱藏這些信息
deny_email_enable=YES # 匿名用戶如果輸入aaa@做為登錄密碼,將被拒絕,主要目的是為了防止一些自動登錄工具進行登錄。
banned_email_file=/etc/vsftpd.banned_emails # 指定的deny_mail的文件
chroot_list_enable=YES # 這兩個選項制定了一個用戶列表,這個列表放在/etc/vsftpd/chroot_list文件中。當 chroot_local_user
chroot_list_file=/etc/vsftpd/chroot_list # 設為NO后,這些用戶登錄FTP服務器后,他們看到的根目錄是他們自己的個人目錄,也就是說雖然在實際的文件系統(tǒng)中,這些用戶個人目錄的上級還有目錄,但是不能切換到這些上級目錄
chroot_local_user=YES # 當chroot_local_user被設置為YES時,上述用戶列表將不會被限制在個人目錄中,可以進一步轉到其他目錄
ls_recurse_enable=YES # 表示客戶端在使用ls命令時可以加-R參數(shù),-R參數(shù)表示ls命令可以列出整個目錄樹的內容,需要一些處理時間,特別存在惡意用戶時,情況會更嚴重
anon_max_rate=0 # 用于設置匿名用戶客戶端能夠達到的最大速率,其值是一個數(shù)值,單位為b/s,0表示無限制
local_max_rate=0 # 該選項限制的是本地用戶的速率
max_clients=0 # vsftpd能接收的最大客戶端連接數(shù)
max_per_ip=5 # 限制每一臺主機可以連入的客戶端數(shù),用戶為了加快下載速度,可能會打開很多的客戶端連接,影響其他用戶的正常使用