服务器用的阿里云的轻量应用服务器。安装的系统为:CentOS 7.3。
文档参考
http://how2j.cn/k/deploy2linux/deploy2linux-intro/1599.html?p=68863
目录
目录
安装ftp
ftp用的:vsftpd :安装的命令为:yum install vsftpd -y
执行之后,最后看到Complete! 就表示安装成功了
安装成功后可用的命令:systemctl start vsftpd.service(启动 vsftpd 服务)
systemctl status vsftpd.service(查看 vsftpd 服务状态(可用来查看是否成功开启))
systemctl stop vsftpd.service (关闭 vsftpd 服务)
由于本人在FTP登录上没有使用root用户,所以另外创建了一个用户和对应的目录
使用到的命令:mkdir - p (创建一个目录,-p无视上级目录是否存在)
mkdir -p /home/project/java (在home目录下创建子文件夹project孙文件夹java)
useradd -d(创建一个用户,-d指定用户的家目录)
useradd -d /home/project/java -g ftp -s /sbin/nologin ftpd (创建ftpd用户)
-g ftp 表示该用户属于ftp分组 (ftp分组是内置的,本来就存在,不需要自己创建)
-s /sbin/nologin 表示这个用户只能用来登录FTP。
chown -R ftpd /home/project/java (把目录/home/project/java的拥有者设置为ftpd)
chmod -R 775 /home/project/java (使用户拥有这个目录的读写权限)
passwd ftpd (为ftpd用户设置密码)
配置FTP
1.默认情况下vsftpd服务器是允许匿名登陆
通过vi命令打开ftp服务器配置文件:
vi /etc/vsftpd/vsftpd.conf
然后把本来的
anonymous_enable=YES
修改为
anonymous_enable=NO
修改完成之后,按Esc键输入:wq保存退出。
2.限制ftpd用户只能通过ftp访问到 /home/project/java目录以及子目录
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
修改完成之后,按Esc键输入:wq保存退出。
chroot_list_enable=YES: 表示对用户访问进行限制
chroot_list_file=/etc/vsftpd/chroot_list 表示对chroot_list里面指定的用户进行限制 下一个步骤就会对chroot_list 这个文件进行编辑
3.在chroot_list中添加ftptest用户
首先通过vi命令打开chroot_list文件(此文件本来是空的):
vi /etc/vsftpd/chroot_list
然后增加一行: ftpd
修改完成之后,按Esc键输入:wq保存退出。
4.允许写权限
vsftpd服务器,一旦某个用户被限制访问了,默认情况下,该用户的写权限也被剥夺了。 这就导致ftp客户端连接上服务器之后无法上传文件。
首先通过vi命令打开ftp服务器配置文件:
vi /etc/vsftpd/vsftpd.conf
在最后面新加一行:
allow_writeable_chroot=YES
修改完成之后,按Esc键输入:wq保存退出。
5.配置端口
vsftpd有两种端口,一个是21端口,用来监听客户端连接请求的。 这个一般说来是固定的,就一直使用21端口。
另一种是,一旦获取到请求之后,再专门用户服务端和客户端传输数据的端口。
此处就是用于指定第二种端口的获取范围
打开配置文件:
vi /etc/vsftpd/vsftpd.conf
在最后添加:
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30010
修改完成之后,按Esc键输入:wq保存退出。
这表示使用被动模式,用于传输数据的端口分配从30000-30010之间。
因为用户 ftpd 是 nologin的,所以存在鉴权的问题。
解决方法,打开配置文件:
vi /etc/pam.d/vsftpd
注释掉/etc/pam.d/vsftpd文件里这一行:
#auth required pam_shells.so
这样不去鉴权,从而允许 ftptest 这种 nologin用户登录 ftp 服务器.
6.重启vsftpd服务器
重启使用的命令是
systemctl restart vsftpd.service
最后执行查看状态,以查看是否重启成功systemctl status vsftpd.service
添加防火墙规则(添加端口)
目录