用vsftp建立個人ftp網站
首先是最基本的配置,請看我的/etc/vsftpd/vsftpd.conf
###############################################################################
#接受匿名使用者
anonymous_enable=YES
#匿名使用者login時不詢問口令
no_anon_password=YES
#接受本機使用者
local_enable=YES
#可以上傳(全域控制).若想要匿名使用者也可上傳則需要設定anon_upload_enable=YES,若想要匿名使用者可以建立目錄則需要設定anon_mkdir_write_enable=YES.這裡禁止匿名使用者上傳,所以不設定這兩項.
write_enable=YES
#本機使用者上傳檔案的umask
local_umask=022
#使用上傳/下載日誌,記錄檔預設為/var/log/vsftpd.log,可以通過xferlog_file選項修改
xferlog_enable=YES
#日誌使用標準xferlog格式
xferlog_std_format=YES
#login時的歡迎資訊
ftpd_banner=Welcome to KingArthur's FTP service.
#設定的話將覆蓋上面的ftpd_banner設定,使用者login時將顯示/etc/vsftpd/banner中的內容
banner_file=/etc/vsftpd/banner
#為YES則進入目錄時顯示此目錄下由message_file選項指定的文字檔(,預設為.message)的內容
dirmessage_enable=YES
#本機使用者login後所在目錄,若沒有設定此項,則本機使用者login後將在他的home目錄(/etc/passwd的第六個欄位)中.匿名使用者的對應選項是anon_root
local_root=/var/ftp
#設定為YES則下面的控制有效
chroot_list_enable=YES
#若為NO,則記錄在chroot_list_file選項所指定的檔案(預設是/etc/vsftpd.chroot_list)中的使用者將被chroot在登入後所在目錄中,無法離開.如果為YES,則所記錄的使用者將不被chroot.這裡選擇YES.
chroot_local_user=YES
#若設定為YES則記錄在userlist_file選項指定檔案(預設是/etc/vsftpd.user_list)中的使用者將無法login,並且將檢察下面的userlist_deny選項
userlist_enable=YES
#若為NO,則僅接受記錄在userlist_file選項指定檔案(預設是/etc/vsftpd.user_list)中的使用者的login請求.若為YES則不接受這些使用者的請求.
userlist_deny=NO
#注意!!!vsftpd還要檢察/etc/vsftpd.ftpusers檔案,記錄在這個檔案中的使用者將無法login!!
#伺服器以standalong模式運行,這樣可以進行下面的控制
listen=YES
#匿名使用者的傳輸比率(b/s)
anon_max_rate=51200
#本機使用者的傳輸比率(b/s)
local_max_rate=512000
#可接受的最大client數目
max_clients=100
#每個ip的最大client數目
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可以使用系統內建的檔案
/etc/vsftpd.chroot_list內容為空白
接著建立系統使用者ftpuser,將他加入ftp組並將/etc/passwd中他的記錄的最後一個欄位改成/sbin/nologin(禁止本地登入).
設定/var/ftp的所有者和所有組為root,許可權為755
設定/var/ftp/pub的所有者為root,所有組為ftp,許可權為775
至此vsftpd的基本配置就完成了.這裡我們接受匿名使用者anonymous和本機使用者ftpuser的請求.anonymous只能下載,
ftpuser可以下載和上傳.他們登入後均在/var/ftp目錄下且無法離開這個目錄(被chroot了).ftpuser可以在
/var/ftp/pub目錄中建立目錄和上傳檔案,上傳檔案的許可權為755(設定了local_umask=022).匿名使用者的傳輸比率為
50kb/s,ftpuser的傳輸比率為500kb/s.可聯結的最多客戶數為100,每ip可聯結的最多客戶數為5.
如果需要使本機使用者ftpput可以login,只需要將他加入/etc/vsftpd.user_list,要使他可以上傳,只需將他加入ftp組.
接著我們可以在/var/ftp下的各個目錄(包括/var/ftp)下建立.message檔案,這樣使用者進入這個目錄時vsftpd將顯示.
message的內容,你可以在這裡面寫上歡迎資訊或者注意事項等等.另外可以編輯/etc/vsftpd/banner,建立login時的歡迎資訊,
讓你的ftp更加個人化.
下面我們使用quota為ftpuser加入磁碟限額,避免惡意使用者用垃圾資料塞滿你的硬碟.
假設/var/ftp在根分區/(/dev/hda5)中,則將/etc/fstab中根分區的記錄的第4個欄位改成defaults,usrquota,這樣這條記錄看起來類似這樣:
LABEL=/ / ext3 defaults,usrquota 1 1
接著重啟系統後輸入下列命令:
quotacheck -acu #檢查啟用了配額的檔案系統,並為每個檔案系統建立一個當前磁碟用來的表
quotacheck -avu #產生每個啟用了配額的檔案系統的當前磁碟用量表
edquota ftpuser #為使用者ftpuser設定磁碟配額
這時系統會在預設文字編輯器(vi)中開啟配額檔案,顯示類似這樣:
Disk quotas for user ftpuser (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hda5 0 0 0 0 0 0
第一列是啟用了配額的檔案系統的名稱。第二列顯示了使用者當前使用的塊數。隨後的兩列用來設定使用者在該檔案系統上的軟硬塊限度。inodes
列顯示了使用者當前使用的i節點數量。最後兩列用來設定使用者在該檔案系統上的軟硬i節點限度.硬限是使用者或組群可以使用的磁碟空間的絕對最大值。達到了該限
度後,磁碟空間就不能再被使用者或組群使用了。軟限定義可被使用的最大磁碟空間量。和硬限不同的是,軟限可以在一段時期內被超過。這段時期被稱為過渡期
(grace period)。過渡期可以用秒鐘、分鐘、小時、天數、周數、或月數表示。如果以上值中的任何一個被設定為
0,那個限度就不會被設定.按你的需要修改後存檔推出.
要校正使用者的配額是否被設定,使用以下命令:
quota testuser
接著使用edquota -t來設定過渡期(grace period)
和另一個 edquota 命令相似,這個命令也會在文字編輯器中開啟當前的檔案系統配額:
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
按你的需要修改後存檔退出
這樣我們就成功的為ftpuser增添了磁碟配額.而一個比較完整的FTP網站也配置完成了