CentOS 7 搭建ftp服务器
使用FTP跟服务器之间进行文件的上传与下载操作是很方便的,即使是一个小白也很容易上手,那么怎么在服务器上面来搭建这么一个FTP呢,本文就带着大家在服务器上面进行一次FTP的搭建操作。
物料的准备
CentOS 7 服务器一台
FileZilla –ftp客户端,链接ftp使用
好了,现在我们登录自己的服务器,开始搭建我们的FTP
安装FTP服务器–vsftpd
1、检查服务器是否已安装了vsftpd
有些服务器默认已经安装了vsftpd,因此我们要先确认一下是否安装过,使用以下命令进行查看:
1 | vsftpd -v |
如果输出版本号,则证明已经安装,如若没有,进行第二步
2、安装vsftpd,使用yum install vsftpd
命令即可,安装完成后需要手动启动它,并设置为开机启动(也可以在完成相关配置之后在启动),相关命令如下:
1 | [root@localhost /]# systemctl start vsftpd |
3、由于ftp是默认监听的是21端口,因此我们需要在防火墙里面添加开放21端口,CentOS 7默认使用的是FireWall防火墙,因此我们需要配置该防火墙,开启ftp协议服务,如下所示:
1 | # firewall-cmd --zone=public --permanent --add-port=21/tcp |
配置ftp服务器
1、备份vsftpd的配置文件,以备后面配置错误还原使用,vsftp默认安装在/etc/
下面,使用如下命令进行文件备份
1 | # cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak |
2、对vsftpd的配置文件进行一些相关的配置
1 | anonymous_enable=NO # 是否允许匿名登录FTP服务器,默认设置为YES允许,这里设置为NO,不允许匿名登录 |
相关配置的说明,详见对应配置后面的注释
3、开启用户对ftp的访问
在vsftpd目录下面,有个vsftpd.userlist
的文件,这个文件存放可以登录ftp的用户
默认情况下,如果userlist_enable=YES
,同时将userlist_deny
选项设置为YES,那么意味着在userlist_file=/etc/vsftpd/vsftpd.userlist
中列出的用户将拒绝登录访问ftp
但是, 使用userlist_deny=NO
这个配置会更改对应的权限,这意味着只有在userlist_file =/etc/vsftpd/vsftpd.userlist
中明确列出的用户才能被允许登录,因此我们进行以下设置:
1 | userlist_enable=YES |
ps:若是/etc/vsftpd下面没有vsftpd.userlist,则自己新建该文件即可
4、锁定用户的主目录
在用户登录之后,默认进入到自己的主目录,并且不允许切换到父级目录以外的目录,把用户锁定在自己的目录内,只能在自己的目录内活动
1 | chroot_local_user=YES |
chroot_local_user=YES
限制用户只能在自己的主目录下面活动,不允许跳出主目录之外
开启ftp的保护功能
1、开启SELinux,允许FTP读取用户主目录中的文件
1 | # setsebool -P ftp_home_dir on |
如果提示错误,使用如下命令开启:
1 | # semanage boolean -m ftpd_full_access --on |
这一步如果提示命令semanage
不存在,在需要安装,yum
的源里面默认是没有的,我们需要使用下面的命令来查找合适的安装源:
1 | [root@localhost /]# yum provides semanage |
可以看到我们查找到的文件版本,安装即可:
1 | [root@localhost /]# yum -y install policycoreutils-python-2.5-22.el7.x86_64 |
到目前为止,vsftp的相关配置已经完成,现在重启vsftpd服务(如果之前没有开启过,使用上面第一步里面的开启命令即可):
1 | [root@localhost /]# systemctl restart vsftpd |
创建用户
1、创建一个用户,用来测试登录ftp使用
1 | [root@localhost /]# useradd -m -c 'ftp test' -s /bin/bash xiaoming |
上面创建了一个用户xiaoming,该用户的登录shell是/bin/bash,-c 是用户描述
2、添加到vsftpd的用户列表文件
使用echo命令将用户xiaoming添加到文件/etc/vsftpd.userlist ,如下所示:
1 | [root@localhost /]# echo 'xiaoming' | tee -a /etc/vsftpd/vsftpd.userlist |
3、现在我们使用ftp登录验证一下(如果提示此命令不存在,使用yum
安装即可)
先匿名用户测试:
1 | [root@localhost /]# ftp 192.188.12.126 |
由于我们在上面配置了禁止匿名用户登录ftp,所以可以看到使用匿名用户登录失败,不允许访问我们的ftp
2、使用我们刚添加的用户xiaoming测试登录ftp
1 | [root@localhost /]# ftp 192.188.12.126 |
可以看到,用户xiaoming登录成
用户xiaoming在登录后,并没有自己的目录,那么接下来我们为xiaoming配置他的主目录
配置ftp用户访问目录
1、创建目录(或者使用已有的目录进行分配也可以),这里我们演示一下为用户xiaoming创建自己的ftp目录,并进行赋权
1 | [root@localhost /]# mkdir /home/xiaoming/ftp/files |
2、修改vsftpd的配置文件
然后在vsftpd配置文件中添加/修改以下选项:
1 | user_sub_token=$USER #在根目录插入用户名 |
由于修改了vsftpd的配置文件,因此需用重启vsftp服务
3、验证用户xiaoming登录ftp后的访问目录
1 | [root@localhost /]# ftp 192.188.12.126 |
可以看到在用户xiaoming的ftp目录下面,有自己的主目录了,现在可以使用我们上面准备的ftp客户端(FileZilla)进行登录验证了
在使用中如果碰到响应: 550 Failed to change directory.
的错误,可进行如下操作
1 | [root@localhost /]# chmod -R 777 /var/xiaoming/ftp/files |
以上就是本教程的全部内容,相信通过本教程,对服务器搭建ftp能得到一些解惑,谢谢!