用vsftpd搭建FTP服務(wù)器
用VSFTPD搭建FTP服務(wù)器
搭建FTP服務(wù)器可選用的軟件很多,在這里介紹一款Very Secure FTP daemon(VSFTPD)。
1. 安裝vsftpd
- $sudo apt-get install vsftpd
2. 啟動vsftpd
- $sudo /etc/init.d/vsftpd start
關(guān)閉vsftpd
- $sudo /etc/init.d/vsfptd stop
重啟vsftpd
- $sudo /etc/init.d/vsfptd.restart
3. 配置vsftpd
配置文件在/etc/vsftpd.conf。關(guān)于配置解釋轉(zhuǎn)載自文章:用vsftp建立個ftp站點(diǎn)。
首先是最基本的配置,請看我的/etc/vsftpd/vsftpd.conf
###############################################################################
#接受匿名用戶
anonymous_enable=YES
#匿名用戶login時不詢問口令
no_anon_password=YES
#接受本地用戶
local_enable=YES
#可以上傳(全局控制).若想要匿名用戶也可上傳則需要設(shè)置anon_upload_enable=YES,若想要匿名用戶可以建立目錄則需要設(shè)置anon_mkdir_write_enable=YES.這里禁止匿名用戶上傳,所以不設(shè)置這兩項(xiàng).
write_enable=YES
#本地用戶上傳文件的umask
local_umask=022
#使用上傳/下載日志,日志文件默認(rèn)為/var/log/vsftpd.log,可以通過xferlog_file選項(xiàng)修改
xferlog_enable=YES
#日志使用標(biāo)準(zhǔn)xferlog格式
xferlog_std_format=YES
#login時的歡迎信息
ftpd_banner=Welcome to KingArthur's FTP service.
#設(shè)置的話將覆蓋上面的ftpd_banner設(shè)置,用戶login時將顯示/etc/vsftpd/banner中的內(nèi)容
banner_file=/etc/vsftpd/banner
#為YES則進(jìn)入目錄時顯示此目錄下由message_file選項(xiàng)指定的文本文件(,默認(rèn)為.message)的內(nèi)容
dirmessage_enable=YES
#本地用戶login后所在目錄,若沒有設(shè)置此項(xiàng),則本地用戶login后將在他的home目錄(/etc/passwd的第六個字段)中.匿名用戶的對應(yīng)選項(xiàng)是anon_root
local_root=/var/ftp
#設(shè)置為YES則下面的控制有效
chroot_list_enable=YES
#若為NO,則記錄在chroot_list_file選項(xiàng)所指定的文件(默認(rèn)是/etc/vsftpd.chroot_list)中的用戶將被chroot在登錄后所在目錄中,無法離開.如果為YES,則所記錄的用戶將不被chroot.這里選擇YES.
chroot_local_user=YES
#若設(shè)置為YES則記錄在userlist_file選項(xiàng)指定文件(默認(rèn)是/etc/vsftpd.user_list)中的用戶將無法login,并且將檢察下面的userlist_deny選項(xiàng)
userlist_enable=YES
#若為NO,則僅接受記錄在userlist_file選項(xiàng)指定文件(默認(rèn)是/etc/vsftpd.user_list)中的用戶的login請求.若為YES則不接受這些用戶的請求.
userlist_deny=NO
#注意!!!vsftpd還要檢察/etc/vsftpd.ftpusers文件,記錄在這個文件中的用戶將無法login!!
#服務(wù)器以standalong模式運(yùn)行,這樣可以進(jìn)行下面的控制
listen=YES
#匿名用戶的傳輸比率(b/s)
anon_max_rate=51200
#本地用戶的傳輸比率(b/s)
local_max_rate=512000
#可接受的最大client數(shù)目
max_clients=100
#每個ip的最大client數(shù)目
max_per_ip=5
connect_from_port_20=YES
tcp_wrappers=YES
pam_service_name=vsftpd
##############################################################################
下面是我的/etc/vsftpd.user_list
##############################################################################
ftpuser
anonymous
##############################################################################
/etc/vsftpd.ftpusers可以使用系統(tǒng)自帶的文件
/etc/vsftpd.chroot_list內(nèi)容為空
接著建立系統(tǒng)用戶ftpuser,將他加入ftp組并將/etc/passwd中他的記錄的最后一個字段改成/sbin/nologin(禁止本地登錄).
設(shè)置/var/ftp的所有者和所有組為root,權(quán)限為755
設(shè)置/var/ftp/pub的所有者為root,所有組為ftp,權(quán)限為775
至此vsftpd的基本配置就完成了.這里我們接受匿名用戶anonymous和本地用戶ftpuser的請求.anonymous只能下載, ftpuser可以下載和上傳.他們登錄后均在/var/ftp目錄下且無法離開這個目錄(被chroot了).ftpuser可以在 /var/ftp/pub目錄中建立目錄和上傳文件,上傳文件的權(quán)限為755(設(shè)置了local_umask=022).匿名用戶的傳輸比率為 50kb/s,ftpuser的傳輸比率為500kb/s.可聯(lián)接的最多客戶數(shù)為100,每ip可聯(lián)接的最多客戶數(shù)為5.
如果需要使本地用戶ftpput可以login,只需要將他加入/etc/vsftpd.user_list,要使他可以上傳,只需將他加入ftp組.
接著我們可以在/var/ftp下的各個目錄(包括/var/ftp)下建立.message文件,這樣用戶進(jìn)入這個目錄時vsftpd將顯示. message的內(nèi)容,你可以在這里面寫上歡迎信息或者注意事項(xiàng)等等.另外可以編輯/etc/vsftpd/banner,建立login時的歡迎信息, 讓你的ftp更加個性化.
下面我們使用quota為ftpuser加入磁盤限額,避免惡意用戶用垃圾數(shù)據(jù)塞滿你的硬盤.
假設(shè)/var/ftp在根分區(qū)/(/dev/hda5)中,則將/etc/fstab中根分區(qū)的記錄的第4個字段改成defaults,usrquota,這樣這條記錄看起來類似這樣:
LABEL=/ / ext3 defaults,usrquota 1 1
接著重啟系統(tǒng)后輸入下列命令:
quotacheck -acu #檢查啟用了配額的文件系統(tǒng),并為每個文件系統(tǒng)建立一個當(dāng)前磁盤用來的表
quotacheck -avu #生成每個啟用了配額的文件系統(tǒng)的當(dāng)前磁盤用量表
edquota ftpuser #為用戶ftpuser設(shè)置磁盤配額
這時系統(tǒng)會在默認(rèn)文本編輯器(vi)中打開配額文件,顯示類似這樣:
- Disk quotas for user ftpuser (uid 501):
- Filesystem blocks soft hard inodes soft hard
- /dev/hda5 0 0 0 0 0 0
第一列是啟用了配額的文件系統(tǒng)的名稱。第二列顯示了用戶當(dāng)前使用的塊數(shù)。隨后的兩列用來設(shè)置用戶在該文件系統(tǒng)上的軟硬塊限度。inodes 列顯示了用戶當(dāng)前使用的i節(jié)點(diǎn)數(shù)量。最后兩列用來設(shè)置用戶在該文件系統(tǒng)上的軟硬i節(jié)點(diǎn)限度.硬限是用戶或組群可以使用的磁盤空間的絕對最大值。達(dá)到了該限度后,磁盤空間就不能再被用戶或組群使用了。軟限定義可被使用的最大磁盤空間量。和硬限不同的是,軟限可以在一段時期內(nèi)被超過。這段時期被稱為過渡期(grace period)。過渡期可以用秒鐘、分鐘、小時、天數(shù)、周數(shù)、或月數(shù)表示。如果以上值中的任何一個被設(shè)置為 0,那個限度就不會被設(shè)置.按你的需要修改后存盤推出.
要校驗(yàn)用戶的配額是否被設(shè)置,使用以下命令:
quota testuser
接著使用edquota -t來設(shè)置過渡期(grace period)
和另一個 edquota 命令相似,這個命令也會在文本編輯器中打開當(dāng)前的文件系統(tǒng)配額:
- Grace period before enforcing soft limits for users:
- Time units may be: days, hours, minutes, or seconds
- Filesystem Block grace period Inode grace period
- /dev/hda5 7days 7days
按你的需要修改后存盤退出。
【編輯推薦】