Centos7上FTP Server(vsftpd)的安装和配置

51 篇文章 0 订阅

1.安装

说明:如果有联网的,可直接用yum install -y vsftpd安装。如果不能联网的,需要利用能上网的机器下载或本地yum源安装。

下载软件包:

yum install -y --downloadonly --downloaddir=/opt/vsftpd_down/  vsftpd

安装vsftpd服务器:

rpm -Uvh vsftpd-3.0.2-22.el7.x86_64.rpm

安装ftp客户端 for 测试使用:

rpm -Uvh ftp-0.17-67.el7.x86_64.rpm

2.创建ftp用户(ftpuser01/123456,默认的ftp服务器根目录是:/var/ftp)

useradd ftpuser01 -s /sbin/nologin -d /var/ftp

passwd ftpuser01

3.配置

vim /etc/vsftpd/vsftpd.conf

#禁止匿名用户登录

anonymous_enable=no
#赋予写权限
write_enable=yes

local_enable=YES
local_root=/var/ftp
 

#是否将所有用户限制在主目录,如果为no则允许向上切换到目录之外

chroot_local_user=yes

#chroot_list列表中的用户可以访问主目录以外的目录

chroot_list_enable=no

chroot_list_file=/etc/vsftpd/chroot_list

pam_service_name=vsftpd

userlist_enable=yes

userlist_deny=no

在/etc/vsftpd/下的chroot_list、user_list里添加用户名称:ftpuser01

vim /etc/vsftpd/chroot_list

vim /etc/vsftpd/user_list

默认文件夹无法写入,/var/ftp目录下创建文件夹forwrite:

mkdir /var/ftp/forwrite

chmod 777 /var/ftp/forwrite/

注意:不能直接将/var/ftp设置为777,否则会有500错误。如果不小心设置了,改回755。

重启vsftpd服务:

systemctl restart vsftpd.service

设置开机自启动

systemctl enable vsftpd.service

查看状态:

systemctl  status vsftpd
 

#关闭selinux防火墙

vim /etc/selinux/config

SELINUX=disabled
 

#firewalld防火墙开放端口

systemctl status firewalld
 

#查看开放的所有端口

firewall-cmd --list-all
 

添加端口开放:

firewall-cmd  --zone=public --permanent --add-service=ftp

firewall-cmd --reload
 

本地测试:ftp 127.0.0.1

远程测试:ftp x.x.x.x
 

===>

注意:

不同版本的vsftpd配置有些微差异,有些版本的vsftpd(vsftpd-3.0.2-29.el7_9.x86_64.rpm)配置后,FTP客户端登录时如果报错:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
500 OOPS: 远程主机关闭连接。

三种解决方案:

方案1:
/etc/vsftpd/vsftpd.conf 的配置如下:

chroot_local_user=YES        # YES:所有用户都被限制在其主目录下,即只能访问自己的主目录。
                             # NO: 所有用户都不被限制在其主目录下
chroot_list_enable=YES       # YES:配置本参数可以使用chroot_list_file指定的用户列表,这些用户作为“例外”不受限制
                             # NO: 不使用chroot_list_file指定的用户列表、没有任何“例外”用户

注意:这里不添加 allow_writeable_chroot = YES 配置参数。而是配置例外用户列表。

例外用户列表chroot_list_file文件如果不存在则创建后编辑,如果已经存在则添加ftp用户:
vi /etc/vsftpd/chroot_list
ftpuser01

风险可控:所有用户都被限制在其主目录下,即只能访问自己的主目录,但允许例外用户,按需配置例外用户。


方案2:
/etc/vsftpd/vsftpd.conf 的配置如下:

chroot_local_user=YES        # YES:所有用户都被限制在其主目录下,即只能访问自己的主目录。
                             # NO: 所有用户都不被限制在其主目录下
chroot_list_enable=NO        # YES:配置本参数可以使用chroot_list_file指定的用户列表,这些用户作为“例外”不受限制
                             # NO: 不使用chroot_list_file指定的用户列表、没有任何“例外”用户
allow_writeable_chroot=YES   # YES:配置用户拥有根目录写入权限,用户就可以在自己的根目录中创建、修改文件和目录

风险较高:虽然所有用户都被限制在其主目录下,即只能访问自己的主目录,也不使用chroot_list_file、没有任何例外用户。但 allow_writeable_chroot=YES 确放开了所有用户权限、都拥有了写权限。


方案3:
/etc/vsftpd/vsftpd.conf 的配置如下:

chroot_local_user=NO        # YES:所有用户都被限制在其主目录下,即只能访问自己的主目录。
                            # NO: 所有用户都不被限制在其主目录下
chroot_list_enable=NO       # YES:配置本参数可以使用chroot_list_file指定的用户列表,这些用户作为“例外”不受限制
                            # NO: 不使用chroot_list_file指定的用户列表、没有任何“例外”用户
风险较高:风险和方案2相同,所有用户都不被限制在其主目录下,都能chroot。


修改配置后,重启服务来生效配置: service vsftpd restart
 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值