一、FTP服務概述:
FTP服務器(File Transfer Protocol Server)是在互聯網上提供文件存儲和訪問服務的計算機,它們依照FTP協議提供服務。
FTP(File Transfer Protocol: 文件傳輸協議)作用: Internet 上用來傳送文件的協議
可以在局域網傳輸,當然也可以在廣域網傳輸ftp文件。
vsftp:(Linux系統相稱,也是Linux系統中的安裝包名稱)
VSFTP是一個基於GPL發布的類Unix系統上使用的FTP服務器軟件,它的全稱是Very Secure FTP 從此名稱可以看出來,編制者的初衷是代碼的安全。
特點:
它是一個安全、高速、穩定的FTP服務器;
模式:
C/S 模式
vsftp端口:
20 (傳數據) 21 (傳指令) #傳數據端口為20、用戶連接端口為21.
安裝vsftp服務器端(vsftpd)、客戶端(lftp)
[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-2.2.2-6.el6_0.1.x86_64.rpm
或:
yum -y install vsftpd
二、安裝客戶端:
[root@localhost ~]# yum install -y vsftp
vsftp主配置文件位置和其他ftp相關配置文件:
/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件
/etc/vsftpd/ftpusers:用於指定哪些用戶不能訪問FTP 服務器。 黑名單
/etc/vsftpd/user_list:指定允許使用vsftpd 的用戶列表文件。 白名單
vim /etc/vsftpd/user_list
# 如果userlist_deny= YES(默認),絕不允許在這個文件中的用戶登錄ftp,甚至不提示輸入密碼
#prompt 提示
/etc/vsftpd/vsftpd_conf_migrate.sh:是vsftpd 操作的一些變量和設置腳本
/var/ftp/:默認情況下匿名用戶的根目錄;
修改配置文件:
[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.back #修改配置文件先備份,失誤的時候可以在做恢復;
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf #vsftp 配置文件;
1.允許匿名用戶訪問:
anonymous_enable=YES #是否允許匿名用戶訪問;(默認YES)
2.允許匿名用戶上傳文件並可以創建目錄:
anon_upload_enable=YES #允許匿名用戶上傳文件;
anon_mkdir_write_enable=YES #允許匿名用戶創建目錄;
3.允許匿名用戶刪除文件和文件命名:
anon_other_write_enable=YES #允許匿名用戶命名文件刪除文件;
4.設置匿名用戶所上傳的文件的默認掩碼值:
anon_umask=022 #......
5.設置匿名用戶的FTP根目錄(默認為/var/ftp/)
anon_root=/var/ftp #......
給匿名用戶權限最好不要太大,建議755
注:實際生活中,匿名用戶只是只讀訪問,寫的權限也沒有。
本地用戶:
1.允許本地用戶登錄:
local_enable=YES #允許本地用戶登錄
2.設置本地用戶的FTP根目錄(默認為用戶的宿主目錄)
Local_root=/var/ftp
3.本地用戶上傳的默認權限掩碼值:
Local_umask=022
4.設置本地用戶上傳寫入支持:
write_enable=YES #啟動上傳寫入支持
5.為不同的虛擬用戶建立獨立的配置文件:
user_config_dir=/etc/vsftp/vusers_dir #設置從/etc/vsftp/vusers_dir目錄中查找每個用戶的獨立配置文件;
添加虛擬用戶:
[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd.vu //修改
userlist_enable=NO //修改
anon_root=/var/ftp/soft //末尾添加
guest_enable=yes //添加
guest_username=zhangsan //添加
user_config_dir=/etc/vsftpd/vusers_dir //添加
allow_writeable_chroot=YES //添加
########################################################################
例: 為虛擬用戶建立獨立配置文件。
mkdir /etc/vsftpd/vusers_dir/ #創建用戶配置文件夾;
cd /etc/vsftpd/vusers_dir/ #進入/etc/vsftpd/vusers_dir/下;
vim john #為用戶john建立獨立的配置文件;
local_root=/var/ftp
anon_umask=022
write_enable=YES
anon_mkdir_write_enable=YES
chroot_list_enable=YES:激chroot 功能
chroot_list_file=/etc/vsftpd/chroot_list:設置鎖定用戶在根目錄中的列表文件。此文件存放要鎖定的用戶名
allow_writeable_chroot=YES :允許鎖定的用戶有寫的權限
設置好本地權限:
啟動服務
[root@localhost vsftpd]# systemctl start vsftpd
[root@localhost vsftpd]# systemctl enable vsftpd
##注意關閉iptables 和selinux
[root@localhost ~]# netstat -antup | grep ftp
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
重啟vsftpd 服務使配置生效:
service vsftpd restart
客戶端登錄lftp:
[root@localhost ~]# lftp 192.168.0.63 -u team1,123456