說明:
vsftpd是一款在Linux發行版中最受推崇的FTP服務器程序。特點是小巧輕快,安全易用。vsftpd 的名字代表"very secure FTP daemon", 安全是它的開發者 Chris Evans 考慮的首要問題之一。在這個 FTP 服務器設計開發的最開始的時候,高安全性就是一個目標
常用的FTP命令
ftp kt@192.168.0.10 |
連接服務器 |
bye |
中斷與服務器的連接 |
open |
與服務器相連接 |
send |
上傳文件用put也可以 |
get |
下載文件 |
mget |
下載多個文件 |
del |
刪除文件 |
安裝軟件包:
[root@zzh /]# yum install vsftpd
相關文件說明:
/etc/vsftpd/vsftpd.conf |
核心配置文件 |
/etc/vsftpd/ftpusers |
用於指定哪些用戶不能訪問FTP服務器 |
/etc/vsftpd/user_list |
指定允許使用vsftpd的用戶列表文件 |
/etc/vsftpd/vsftpd_conf_migrate.sh |
是vsftpd操作的一些變量和設置腳本 |
/var/ftp/ |
默認情況下匿名用戶的根目錄 |
需求:
1、公司技術部準備搭建一臺功能簡單的FTP服務器,允許所有員工上傳和下載文件,並允許創建用戶自己的目錄 |
2、允許kangte帳號登錄FTP服務器.但不能登錄本地系統.並將這帳號的根目錄限制爲/var/www/html.不能進入該目錄以外的任何目錄 |
[root@zzh /]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES |
匿名訪問 #不用輸入用戶密碼之間進入 |
local_enable=YES |
允許本地用戶登錄 |
write_enable=YES |
是否有寫入權限 |
ocal_umask=022 |
上傳的文件所生成的權限 |
anon_upload_enable=YES |
允許匿名用戶上傳文件 默認爲#註釋 |
anon_mkdir_write_enable=YES |
允許匿名用戶創建目錄 默認爲#註釋 |
chroot_list_enable=YES |
激chroot功能 默認爲#註釋 |
chroot_list_file=/etc/vsftpd/chroot_list |
設置鎖定用戶在根目錄中的列表文件 默認爲#註釋 |
xferlog_enable=YES |
啓用日誌 |
xferlog_file=/var/log/xferlog |
日誌文件存放位置 |
local_root=/var/www/html |
設置本地用戶的根目錄 注意:這個字段需要自己添加 |
[root@zzh /]# vim /etc/vsftpd/chroot_list |
根據上面設置建立鎖定用戶在根目錄中列表文件 |
添加需要鎖定用戶在根目錄的帳號
kangte
zzh |
創建目錄並配置權限:
注意:目錄權限是訪問和創建文件最關鍵的一定要注意
/var/ftp/ |
注意:這個目錄的權限默認是755一定不要改 |
[root@zzh /]# mkdir /var/ftp/niming |
創建一個匿名訪問目錄默認權限即可 |
[root@zzh /]# chown ftp /var/ftp/niming/ |
給匿名訪問目錄目錄ftp屬主權限 |
[root@zzh /]# chmod -R o+w /var/www/html/ |
添加目錄其他用戶組可寫權限 |
創建用戶:
[root@zzh /]# useradd -s /sbin/nologin kangte |
創建用戶並禁止本地登錄 |
[root@zzh /]# passwd kangte |
設置一下密碼 |
[root@zzh /]# service vsftpd restart |
重啓服務生效 |
注意:這個目錄現在有創建目錄和上傳文件的權限但沒有刪除的權限
進階虛擬賬戶
要求:用虛擬賬戶對用戶進行不同的權限配置
[root@zzh /]# vim /etc/vsftpd/vsftpd_user.txt |
創建用戶數據庫文件 |
添加兩個虛擬帳號
kangte1
123456
kangte2
1234567 |
生成數據庫:
[root@zzh CentOS]# rpm -ivh db4-utils-4.3.29-10.el5.i386.rpm |
安裝生成數據庫所需程序 |
保存虛擬帳號和密碼的文本文件無法被系統帳號直接調用我們需要使用db_load命令生成db數據庫文件
[root@zzh /]# db_load -T -t hash -f /etc/vsftpd/vsftpd_user.txt /etc/vsftpd/vsftpd_user.db |
生成db庫文件 |
[root@zzh /]# chmod 600 /etc/vsftpd/vsftpd_user.db |
對文件設置權限只要root用戶有權限 |
配置PAM文件:
爲了使服務器能夠使用數據庫文件.對客戶端進行身份驗證.需要調用系統的PAM模塊
PAM爲可插拔認證模塊.不必重新安裝應用系統.通過修改指定的配置文件.調整對該程序的認證方式。PAM模塊配置文件路徑爲/etc/pam.d/目錄.此目錄下保存着大量與認證有關的配置文件.並以服務名稱命名 |
[root@zzh /]# vim /etc/pam.d/ktvsftpd
添加下面字段
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_user
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_user |
創建虛擬帳號對應的系統用戶
[root@zzh /]# useradd -d /var/ftp/kagnte1 kangte1
[root@zzh /]# useradd -d /var/ftp/kagnte2 kangte2 |
將兩個帳號的目錄進行隔離.控制用戶的文件訪問
[root@zzh /]# chmod -R 500 /var/ftp/kagnte1 |
設置讀和執行權限 |
[root@zzh /]# chmod -R 700 /var/ftp/kagnte2 |
設置所以權限 |
注意:一定要對目錄做相應的權限設置.不然配置文件有可寫權限也不能向目錄添加文件
[root@zzh /]# vim /etc/vsftpd/vsftpd.conf
主配置文件
anonymous_enable=NO |
匿名訪問 |
local_enable=YES |
允許本地用戶登錄 |
write_enable=YES |
是否有寫入權限 |
chroot_list_enable=YES |
激chroot功能 默認爲#註釋 |
chroot_list_file=/etc/vsftpd/chroot_list |
設置鎖定用戶在根目錄中的列表文件 默認爲#註釋 |
pam_service_name=ktvsftpd |
配置vsftpd使用的PAM模塊 功能就是審覈用戶名密碼 |
user_config_dir=/etc/vsftpd/vuserconfig |
設置虛擬帳號的主目錄 用於保存虛擬賬戶權限配置文件 注意:這個字段需要自己添加 |
max_clients=300 |
設置FTP服務器最大接入客戶端數爲300個 注意:這個字段需要自己添加 |
max_per_ip=10 |
設置每個IP地址最大連接數爲10個 注意:這個字段需要自己添加 |
注意:在windows地址欄方式登錄直接退出並沒有端口連接.設置最大數爲10.windows第10個用戶就登不上去了
[root@zzh /]# vim /etc/vsftpd/chroot_list |
根據上面設置建立鎖定用戶在根目錄中列表文件 |
添加需要鎖定用戶在根目錄的帳號 注意:這裏必要設置
kangte1
kangte2 |
建立配置文件
設置多個虛擬帳號的不同權限.需要爲每個虛擬帳號建立獨立的配置文件.並根據需要進行相應的設置
[root@zzh /]# mkdir /etc/vsftpd/vuserconfig |
根據上面配置建立虛擬帳號的主目錄 |
在user_config_dir指定路徑下建立與虛擬帳號同名的配置文件並添加相應的配置字段
[root@zzh /]# vim /etc/vsftpd/vuserconfig/kangte1
添加下面字段
guest_enable=yes |
開啓虛擬帳號登錄 |
guest_username=kangte1 |
設置ftp對應的系統帳號 |
anon_world_readable_only=no |
允許匿名用戶瀏覽器整個服務器的文件系統 |
anon_max_rate=50000 |
限定傳輸速率爲50KB/s |
[root@zzh /]# vim /etc/vsftpd/vuserconfig/kangte2
添加下面字段
guest_enable=yes |
開啓虛擬帳號登錄 |
guest_username=kangte2 |
設置ftp對應的系統帳號 |
anon_world_readable_only=no |
允許匿名用戶瀏覽器整個服務器的文件系統 |
write_enable=yes |
允許在文件系統寫入權限 |
anon_mkdir_write_enable=yes |
允許創建文件夾 |
anon_upload_enable=yes |
開啓匿名帳號的上傳功能 |
anon_max_rate=100000 |
限定傳輸速度爲100KB/s |
[root@zzh /]# service vsftpd restart |
重啓服務生效 |