centos7安装vsftpd,配置
2021/12/12 7:21:37
本文主要是介绍centos7安装vsftpd,配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
安装该软件需要使用最高用户(root)进行安装
一. 安装vsftp
查看是否已安装
[root@mariadb-10 ~]# rpm -q vsftpd vsftpd-3.0.2-21.el7.x86_64
或者
[root@mariadb-10 ~]# vsftpd -v vsftpd: version 3.0.2
在线安装
yum -y install vsftpd
查看位置
[root@mariadb-10 ~]# whereis vsftpd vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz
设置开机启动
systemctl enable vsftpd
启动
systemctl start vsftpd
重启
systemctl restart vsftpd
停止
systemctl stop vsftpd
查看状态
systemctl status vsftpd
二. 配置防火墙
1.关闭SELinux
vi /etc/selinux/config
修改SELINUX=disabled
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
然后输入命令
setenforce 0
注,临时生效命令
修改firewall使之允许ftp功能启动firewall
systemctl start firewalld.service
输入命令
[root@mariadb-10 home]# firewall-cmd --permanent --zone=public --add-service=ftp success
重启firewall
[root@mariadb-10 home]# firewall-cmd --reload
success
如果没有重要的数据在服务器里面,或者在本地虚拟机中外网无法访问的情况下,建议直接关闭防火墙即可省略以上繁琐的步骤
systemctl stop firewalld.service
三. 启动ftp服务
启动ftp
systemctl start vsftpd
查看ftp状态,返回以下说明服务已启动
[root@mariadb-10 home]# systemctl status vsftpd ● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since 四 2021-12-09 16:13:39 CST; 3s ago Process: 8706 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS) Main PID: 8707 (vsftpd) CGroup: /system.slice/vsftpd.service └─8707 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf 12月 09 16:13:39 mariadb-10.3.23 systemd[1]: Starting Vsftpd ftp daemon... 12月 09 16:13:39 mariadb-10.3.23 systemd[1]: Started Vsftpd ftp daemon.
设置开机自启动
chkconfig vsftpd on
三 ftp访问匿名访问测试
在浏览器输入ftp服务访问地址 ,例如 ftp://192.168.0.14/ ,安装完毕默认匿名可访问
默认浏览的是/var/ftp目录
四. 创建用户
首先创建一个目录,作为这个ftp用户所拥有的目录
mkdir -p /home/ftproot/ftptest
创建用户ftptest,并且指定其目录为用户目录中创建的/home/ftproot/ftptest
useradd -d /home/ftproot/ftptest -g ftp -s /sbin/nologin ftptest
-g ftp 表示该用户属于ftp分组 (ftp分组是内置的,本来就存在,不需要自己创建)
-s /sbin/nologin 表示这个用户不能用来登录secureCRT这样的客户端,这种不能登陆的用户又叫做虚拟用户
创建过程给出的警告信息是正常的,不用理会
把目录/home/ftproot/ftptest的拥有者设置为ftptest
chown -R ftptest /home/ftproot/ftptest
使ftptest用户拥有这个目录的读写权限
chmod -R 775 /home/ftproot/ftptest
为ftptest用户设置密码
[root@mariadb-10 vconf]# passwd ftptest
更改用户 ftptest 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
五. 配置
目前 FTP 服务登陆允许匿名登陆,也无法区分用户访问,我们需要配置 FTP 访问权限;
vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件:
- vsftpd.conf 为主要配置文件
- ftpusers 配置禁止访问 FTP 服务器的用户列表
- user_list 配置用户访问控制
配置文件位置
/etc/vsftpd/vsftpd.conf
建议先备份一下。
vi /etc/vsftpd/vsftpd.conf
编辑器显示行号
:set number
修改第12行,禁止匿名登录
anonymous_enable=NO
限制用户访问,创建的ftptest用户所拥有的目录是 /home/ftproot/ftptest,如果不做限制,那么使用ftptest登陆之后可以切换到其他敏感目录去,比如切换到/usr目录去,这样就存在巨大的安全隐患。 为了规避这个隐患,需要限制ftptest用户只能通过ftp访问到 /home/ftproot/ftptest 目录以及子目录。
第102行,去掉注释
chroot_list_enable=YES
第104行,去掉注释
chroot_list_file=/etc/vsftpd/chroot_list
注:
chroot_list_enable=YES: 表示对用户访问进行限制
chroot_list_file=/etc/vsftpd/chroot_list 表示对chroot_list里面指定的用户进行限制
vsftpd服务器,一旦某个用户被限制访问了,那么默认情况下,该用户的写权限也被剥夺了。 这就导致ftp客户端连接上服务器之后无法上传文件。这个时候,就需要打开此用户的写权限。
在vsftpd.conf的最后加上
allow_writeable_chroot=YES
vsftpd有两种端口:
一种是21端口,用来监听客户端连接请求的。 这个一般说来是固定的,就一直使用21端口。
一种是,一旦获取到请求之后,再专门用户服务端和客户端传输数据的端口。 (安装用的这种)
在vsftpd.conf的最后追加
pasv_enable=YES pasv_min_port=30000 pasv_max_port=30010
这表示使用被动模式,用于传输数据的端口分配从30000-30010之间
六. 用户鉴权
因为用户 ftptest 是 nologin的,所以存在鉴权的问题。 如果鉴权问题不解决,就是永不停息的 530错误。。。
解决办法有如下两种:
1. 方式一:编辑/etc/pam.d/vsftpd
vi /etc/pam.d/vsftpd
注释下面这一行
#auth required pam_shells.so
这样不去鉴权,从而允许 ftptest 这种 nologin用户登录 ftp 服务器
2.方式二:shells 文件
在/etc/shells文件里面增加一行:/sbin/nologin
/bin/sh /bin/bash /usr/bin/sh /usr/bin/bash /sbin/nologin
这样允许不能登录系统的用户通过鉴权
七: 重启服务
systemctl restart vsftpd.service
然后用浏览器,ftp命令或ftp工具访问了
参考:
https://blog.csdn.net/zwd926/article/details/89884089
https://blog.csdn.net/qq_28245087/article/details/85631049
这篇关于centos7安装vsftpd,配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24怎么切换 Git 项目的远程仓库地址?-icode9专业技术文章分享
- 2024-12-24怎么更改 Git 远程仓库的名称?-icode9专业技术文章分享
- 2024-12-24更改 Git 本地分支关联的远程分支是什么命令?-icode9专业技术文章分享
- 2024-12-24uniapp 连接之后会被立马断开是什么原因?-icode9专业技术文章分享
- 2024-12-24cdn 路径可以指定规则映射吗?-icode9专业技术文章分享
- 2024-12-24CAP:Serverless?+AI?让应用开发更简单
- 2024-12-23新能源车企如何通过CRM工具优化客户关系管理,增强客户忠诚度与品牌影响力
- 2024-12-23原创tauri2.1+vite6.0+rust+arco客户端os平台系统|tauri2+rust桌面os管理
- 2024-12-23DevExpress 怎么实现右键菜单(Context Menu)显示中文?-icode9专业技术文章分享
- 2024-12-22怎么通过控制台去看我的页面渲染的内容在哪个文件中呢-icode9专业技术文章分享