1.ftp服務器安裝
安裝ftp服務器: yum install vsftpd -y
關閉ftp服務器:systemctl stop vsftpd.service
啓動ftp服務器:systemctl start vsftpd.service
查看ftp服務器狀態:systemctl status vsftpd.service
設置ftp服務器開機自啓:
2.創建ftp用戶並指定對應的上傳目錄
創建一個目錄: mkdir -p /home/wwwroot/ftptest
創建用戶ftptest,並指定用戶目錄: useradd -d /home/wwwroot/ftptest -g ftp -s /sbin/nologin ftptest
把目錄/home/wwwroot/ftptest的擁有者設置爲ftptest: chown -R ftptest /home/wwwroot/ftptest
使ftptest用戶擁有這個目錄的讀寫權限: chmod -R 775 /home/wwwroot/ftptest
爲ftptest用戶設置密碼: passwd ftptest (paw123###)
3.在vsftpd服務器中配置該用戶
a.刪除默認情況下vsftpd服務器的允許匿名登陸模式
首先通過vi命令打開ftp服務器配置文件:vi /etc/vsftpd/vsftpd.conf
然後把本來的anonymous_enable=YES 修改爲 anonymous_enable=NO
b.限制用戶對於其他目錄的訪問
首先通過vi命令打開ftp服務器配置文件: vi /etc/vsftpd/vsftpd.conf
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
並修改爲:
chroot_list_enable=YES #表示對用戶訪問進行限制
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list #對chroot_list用戶清單裏面指定的用戶進行限制
c.添加用戶到用戶清單中
首先通過vi命令打開chroot_list文件:vi /etc/vsftpd/chroot_list
然後增加一行: ftptest
d.允許用戶的寫權限
vsftpd服務器是這樣的,一旦某個用戶被限制訪問了,那麼默認情況下,該用戶的寫權限也被剝奪了。 這就導致ftp客戶端連接上服務器之後無法上傳文件。
首先通過vi命令打開ftp服務器配置文件: vi /etc/vsftpd/vsftpd.conf
在最後面新加一行:allow_writeable_chroot=YES
4.ftp的端口配置
vsftpd有兩種端口,一個是21端口,用來監聽客戶端連接請求的,一般說來是固定的。另一種是,一旦獲取到請求之後,再專門用戶服務端和客戶端傳輸數據的端口。
打開配置文件:vi /etc/vsftpd/vsftpd.conf
在最後添加:這表示使用被動模式,用於傳輸數據的端口分配從30000-30010之間。
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30010
5.用戶鑑權
因爲用戶 ftptest 是 nologin的,所以存在鑑權的問題。 如果鑑權問題不解決,就是永不停息的 530錯誤。
編輯 vi /etc/pam.d/vsftpd 註釋掉: auth required pam_shells.so
編輯 vi /etc/shells 添加一行:/sbin/nologin
6.重啓ftp服務器
systemctl restart vsftpd.service
systemctl status vsftpd.service
7.鏈接
http://how2j.cn/k/deploy2linux/deploy2linux-ftpuser/1601.html
8.防火牆
linux的防火牆,vmware所在windows機器的防火牆
查看防火牆狀態 firewall-cmd --state
關閉防火牆 systemctl stop firewalld.service
禁止開機啓動啓動防火牆 systemctl disable firewalld.service
9.客戶端連接:
ftp://192.168.162.128 (爲ip address中的ip)
10.linux連接ftp:
ftp localhost