1、查看是否已經安裝了vsftpd
vsftpd -version
2、安裝vsftpd(CentOS7)
yum install -y vsftpd
3、新建FTP目錄
創建的FTP目錄如下:
/data/KodServer/data/User/tomas/home
4、創建新用戶
ftpname為你為該ftp創建的用戶名,/data/KodServer/data/User/tomas/home 為登錄進去后的位置
useradd -d /data/KodServer/data/User/tomas/home -s /bin/bash ftpname
5、為新建的用戶設置密碼
passwd ftpname
【備注:用cat etc/passwd可以查看當前系統用戶】
6、設置主目錄(更改登錄時看到的目錄,看個人需要更改,如果第4步已設置好,此步可忽略)
usermod -d /data/KodServer/data/User/tomas/home ftpname
7、添加用戶組(這步可忽略)
groupadd ftpgroup
8、防火牆添加FTP服務
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload
解決辦法:
①、查看ftp的Selinux狀態:sestatus -b | grep ftp
②、在結果中可以看到: ftp_home_dir off
③、將狀態改為on:setsebool -P ftp_home_dir on
④、重啟vsftp服務:systemctl restart vsftpd.service
setsebool -P ftpd_full_access on
systemctl restart firewalld.service
9、配置只能訪問自身目錄(/data/KodServer/data/User/tomas/home),不能訪問其他路徑
修改/etc/vsftpd.conf
cd /etc/vsftpd/
vi vsftpd.conf
#去掉前面的注釋
chroot_local_user=YES
ascii_upload_enable=YES
ascii_download_enable=YES
#文件末尾添加
allow_writeable_chroot=YES
保存,重啟vsftpd
設置開機啟動:
systemctl enable vsftpd.service
啟動vsftpd服務
systemctl start vsftpd.service
禁止ftp用戶通過22端口登錄ftp服務器:
由於需要限制ftp用戶在自己的目錄,在21端口下沒有問題,但當ftp用戶用sftp登錄時,還是可以訪問上級目錄,於是禁止ftp用戶ssh登錄,切斷22端口的通信。
首先,執行如下命令,找到nologin的shell:
vi /etc/shells
可以看到禁止登錄的shell文件為/usr/sbin/nologin,然后執行如下命令:
usermod -s /usr/sbin/nologin tomas
如果要恢復tomas的ssh登錄,執行如下命令:
usermod -s /bin/bash tomas