写点什么

Centos 7.2 安装 FTP 服务并进行相关设置

作者:指剑
  • 2022-11-30
    重庆
  • 本文字数:1671 字

    阅读完需:约 5 分钟

Centos 7.2安装FTP服务并进行相关设置

关闭防火墙

#systemctl stop firewalld#systemctl disable firewalld


关闭 SELINUX#vi /etc/selinux/config 修改为 SELINUX=disabled



安装 vsftpd 服务 #yum -y install vsftpd 启动 systemctl start vsftpd 设置开机启动 systemctl enable vsftpd


由于刚刚设置了 SELINUX,所以需要重启一下 #reboot

使用匿名 用户登陆

打开 windows 的文件管理器输入 ftp://ftp 服务器的 IP 地址


匿名用户登陆可创建 修改等权限

修改 FTP 目录权限 #chmod -R 757 /var/ftp/*



修改/etc/vsftpd/vsftpd.conf 文件修改第 29 行和 33 行,去除前面 #注释符 anon_upload_enable=YESanon_mkdir_write_enable=YES



在末行添加如下代码anon_other_write_enable=YES 允许匿名用户修改目录名或删除目录



重启 ftp#systemctl restart vsftpd


再次使用 windows 资源管理器进行访问并创建文件夹


限制用户切换到主目录外

修改第 101 行和 103 行,将其前面 #注释符去除


chroot_list_enable=YES  启用chroot_list_file设定的文件,限制指定的用户只能访问自己的主目录chroot_list_file=/etc/vsftpd/chroot_list  指定受chroot控制的用户列表文件
复制代码



在/ect/vsftpd/vsftpd.conf 末行添加


allow_writeable_chroot=YES  如果用户被限定在其主目录下,且目录有写入权限时,必须添加此项,开启chroot环境下的主目录写入权限
复制代码



创建/etc/vsftpd/chroot_list 文件 #vi /etc/vsftpd/chroot_list 输入一个用户 这里使用 testuser



添加用户并设置用户密码,重启 vsftpd 服务后,使用 CMD 窗口进行用户登陆 如下图



测试是否能够切换:



将“chroot_list_enable=YES”配置项修改为“chroot_list_enable= NO”,重启 vsftpd,再次进行测试


使用虚拟用户登陆 FTP 服务器

1、创建 FTP 虚拟用户数据库 #vi /etc/vsftpd/vuser.list 输入测试用户,格式如下 test1 #username000000 #passwordtest2000000


②调用 db_load 命令,运行哈希算法对原始文件进行加密运算生成新的 db 文件 db_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db



(可选)为安全起见,删除原有的虚拟用户文件


#rm -rf /etc/vsftpd/vuser.list
复制代码


修改新生成的用户数据文件的权限为 root 用户读写权限


#chmod 600 /etc/vsftpd/vuser.db
复制代码



2、创建 FTP 根目录以及虚拟用户映射的系统用户


#useradd -d /var/ftproot -s /sbin/nologin virtual



修改其用户组以及其他用户权限 #chmod -Rf 755 /var/ftproot/



3、创建虚拟用户的 PAM 认证文件注意:参数 db 用于指向刚刚生成的 vuser.db 文件,但不要写后缀。


#vi   /etc/pam.d/vsftpd.vuauth required pam_userdb.so  db=/etc/vsftpd/vuseraccount required pam_userdb.so  db=/etc/vsftpd/vuser
复制代码



4、修改 vsftpd 配置文件,以支持虚拟用户模式


anonymous_enable=NO  禁止匿名开放模式    第12行local_enable=YES  允许本地用户模式        第16行
复制代码



修改/etc/vsftpd/vsftpd.conf 文件修改,加上 #注释符


#anon_upload_enable=YES     第29行#anon_mkdir_write_enable=YES     第33行
复制代码



在文件末行修改,添加


guest_enable=YES  开启虚拟用户模式guest_username=virtual  指定虚拟用户帐号pam_service_name=vsftpd.vu  指定pam文件     第125行只需要修改不需要添加allow_writeable_chroot=YES  允许禁锢的FTP根目录可写而不拒绝用户登入请求
复制代码



5、赋予虚拟用户权限 #mkdir /etc/vsftpd/vusers_dir/ //创建用户独立的权限配置文件存放的目录。



#修改 FTP 的配置文件 vi /etc/vsftpd/vsftpd.conf //指定用户独立的权限配置文件存放的目录。在文件末行添加如下内容


user_config_dir=/etc/vsftpd/vusers_dir   
复制代码



创建虚拟用户 test1 的权限配置文件,不输入内容则无任何权限


#touch  /etc/vsftpd/vusers_dir/test1
复制代码



创建虚拟用户 test2 的权限配置文件,并添加上传,创建文件夹,和写入权限


#vi  /etc/vsftpd/vusers_dir/test2anon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YES
复制代码



重启 vsftpd 服务 #systemctl restart vsftpd



6、验证虚拟用户登陆,以及权限测试


在 windows 端打开 CMD 命令提示符,输入 ftp 192.168.100.20(你的 FTP 服务器地址)。如下测试虚拟用户 test1



测试虚拟用户 test2



发布于: 刚刚阅读数: 3
用户头像

指剑

关注

InfoQ签约作者 2022-07-13 加入

AWS社区建设者,AWS学生大使,微软学生大使,阿里云签约作者,Info Q签约作者,CSDN博客专家,华为云云享专家

评论

发布
暂无评论
Centos 7.2安装FTP服务并进行相关设置_centos_指剑_InfoQ写作社区