CentOS部署FTP服务(vsftpd)及常见问题解决办法

    vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征,比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
    vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。

0.准备工作及说明

  1. 操作系统:CentOS 7
  2. 服务器联网、关闭防火墙
  3. 本文介绍的方法,只有在被动模式下才可以正常使用!!!

1.安装vsftpd

[root@i-t729y6cz ~]# yum install vsftpd -y

2.配置vsftpd.conf

[root@i-t729y6cz ~]# vi /etc/vsftpd/vsftpd.conf

作如下修改:

anonymous_enable=NO		# 禁止通过匿名方式登录FTP
chroot_local_user=YES	# 禁止用户切换根目录

添加以下内容:

pasv_enable=YES			# 允许被动模式
pasv_min_port=10060		# 被动模式下服务器使用的最小端口
pasv_max_port=10070		# 被动模式下服务器使用的最大端口

说明:
1、 被动模式主动模式的介绍可以参考这两篇文章:
vsftpd的主动模式与被动模式
vsftpd主动模式和被动模式的区别
2、被动模式下使用的端口号范围要大于10000,个数无所谓。如果开启防火墙的话,需要特别设置,可以参考这两篇文章:
ftp 登陆后读取目录列表失败
Centos7搭建vsftpd及被动模式下的防火墙设置

保存,然后重启vsftpd服务:

[root@i-t729y6cz ~]# service vsftpd restart

重启vsftpd服务
查看vsftpd服务状态:

[root@i-t729y6cz ~]# service vsftpd status

vsftpd服务状态

3.创建FTP用户

创建一个名为ftpadmin的用户,并限制该用户只能通过FTP访问,不能直接登录服务器:

[root@i-t729y6cz ~]# adduser ftpadmin						# 创建用户
[root@i-t729y6cz ~]# passwd ftpadmin						# 设置密码
Changing password for user ftpadmin.
New password:             									# 输入密码
Retype new password:      									# 再次输入密码
passwd: all authentication tokens updated successfully.
[root@i-t729y6cz ~]# usermod -s /sbin/nologin ftpadmin		# 限制该用户只能通过FTP访问

4.分配主目录

    假设服务器上有一块存储空间较大的磁盘,挂载在/data路径下,需要将FTP存储文件的空间设置在此路径下:/data/ftp/mydata
    其中,/data/ftp 为FTP主目录,不能上传文件;/data/ftp/mydata为文件存储的地方。/data/ftp 下可以创建其它文件夹,也可以嵌套。

[root@i-t729y6cz ~]# mkdir -p /data/ftp/mydata			# 创建路径
[root@i-t729y6cz ~]# chmod a-w /data/ftp				# 让FTP主目录不具有写权限
[root@i-t729y6cz ~]# chmod 777 -R /data/ftp/mydata		# 让/mydata具有全部权限
[root@i-t729y6cz ~]# usermod -d /data/ftp ftpadmin		# 指定ftpadmin的主目录

5.客户端登录

    选择一款FTP客户端软件,如xFTP、WinSCP、FileZilla等,配置好IP、端口号、用户名、密码等信息,选择被动模式(一般默认为被动模式)进行连接,就可以登录了。

6.常见问题解决办法

这里只列出了问题的直接解决办法,问题的原因分析可以参考这篇文章:
centos7下配置ftp服务器,各种登录异常排查

排查之前,先在服务器本地测试一下FTP服务是否正常:

[root@i-t729y6cz ~]# ftp 192.168.70.9
Connected to 192.168.70.9 (192.168.70.9).
220 (vsFTPd 3.0.2)
Name (192.168.70.9:root): ftpadmin
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

6.1 问题1: 530 Login incorrect

解决办法:/etc/pam.d/vsftpd文件中的auth required pam_shells.so修改为auth required pam_nologin.so,然后重启vsftpd服务。

6.2 问题2:500 OOPS: vsftpd: refusing to run with writable root inside chroot()

解决办法: 将FTP的主目录去掉写权限:chmod a-w /data/ftp

6.3 问题3:客户端能连接,但是无法获取文件列表

解决办法: 在防火墙中开放被动模式下使用的端口;将客户端修改为被动模式


欢迎关注我的微信公众号:
微信公众号

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值