FTP使用兩個端口
21 是建立連接
20 是傳輸數據
FTP模式,主動模式和被動模式
主動模式,也是默認的模式,建立連接後,FTP服務器會主動通過20端口向客戶端發送數據。
被動模式,中間有防火牆,FTP服務器會開啓端口等待客戶端來連接自己。
vsftp的三種用戶模式
匿名用戶 不需要輸入密碼
本地用戶 以本地用戶驗證賬號和密碼
虛擬用戶 只在FTP上專有的用戶賬號(增加安全性)
FTP配置文件
anonymous_enable=YES 允許匿名訪問
local_enable=YES 允許本地用戶訪問
write_enable=YES 本地用戶可上傳,刪除,重命名等
local_umask=022 本地用戶上傳文件的隱藏權限
#anon_upload_enable=YES 允許匿名用戶上傳文件
#anon_mkdir_write_enable=YES 允許匿名用戶新建或寫入文件
在做實驗過程中,客戶端訪問出錯如沒有權限創建文件或上傳文件,檢查一下防火牆及SElinux 關閉SELinux
#vi /etc/selinux/config
SELINUX=disabled 關閉SELinux 需重啓
匿名用戶上傳下載
/var/ftp/ ftp匿名用戶的家目錄,權限755不能更改,切忌
#chown ftp pub 把pub文件的屬主改爲ftp程序用戶
把配置文件下的兩行註釋去掉
anon_upload_enable=YES 允許匿名用戶上傳文件
anon_mkdir_write_enable=YES 允許匿名用戶新建或寫入文件
重啓服務,使用客戶端訪問,
本地用戶
客戶端在使用本地用戶登錄的時候,如不做設置默認登錄的是它的家目錄。
關閉匿名用戶訪問
使用chroot鎖定本地用戶的家目錄,
#vi /etc/vsftpd/vsftpd.conf 編輯配置文件
#useradd test1 新建用戶test1
#usermod –s /sbin/nologin test1 爲了安全,不讓此用戶登錄到系統
local_root=/var/www/html 設定本地用戶的家目錄
chroot_local_user=YES 本地用戶使用chroot
chroot_list_enable=YES 使用chroot列表
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list chroot列表在/etc/vsvtpd/chroot_list 這個文件沒有則新建
新建chroot列表後,把本地用戶名輸入到chroot_list文件中,可以不被chroot鎖定在固定的目錄裏
虛擬用戶
虛擬用戶使用PAM認證方式,把賬號和密碼於/etc/passwd文件分開用哈希算法加密,防止別人暴力破解,或破解後使用chroot鎖定家目錄對系統不能照成危害
使用虛擬用戶後不能使用本地用戶需把配置文件中local_root=/var/www/html給註釋掉不能同時使用。或者讓兩者不在同一配置文件下,纔不會衝突
#vi /etc/vsftpd/virtualuser 創建虛擬用戶文件
vip 賬戶名
123 密碼
ftp 賬號名
123 密碼
# yum install db4* 安裝db4軟件包
#db_load –T –t hash –f virtualuser virutaluser.db 把虛擬用戶文件創建數據庫文件並-t是指定hash算法加密 -f 是文件
#chmod 600 virtualuser.db 爲了安全更改600權限
#useradd –s /sbin/nologin vip 新建用戶
#chmod 777 /home/vip 修改家目錄的權限
#vim /etc/pam.d/vsftpd
把所有內容用#號全部註釋掉,在添加兩行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtualuser(注意比如virtualuser.db文件,在這裏不用加.db)account required /lib/security/pam_userdb.so db=/etc/vsftpd/virtualuser
保存退出
#vi /etc/vsftpd/vsftpd.conf
guest_enable=YES 是否啓用虛擬用戶,如不啓用按本地用戶登錄
quest_username=vip 所有其他虛擬用戶都登錄到vip用戶的家目錄裏
pam_service_name=vsftpd 配置vsftpd使用的PAM模塊爲vsftpd
userlist_enable=YES
tcp_wrappers=YES
客戶端
#wget ftp://172.16.1.4/pub/file 下載文件