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