1、什么是FTP服务器? FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Application)。 基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件。 在 FTP 的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Upload)。 2、什么是vsftpd? vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、HP-UNIX 等系统上面,是一个完全免费的、开放源代码的 ftp 服务器软件,支持很多其他的FTP 服务器所不支持的特征。 一、vsftpd的安装 启动vsftpd服务: 关闭火墙,使其开机不启动 vsftpd服务开机自启动 selinux状态为Permissive 安装lftp 客户端访问时, 用户身份可以分为: 1). 匿名用户:没有指定用户身份, ftp身份实现从服务器上传和下载文件; 2). 本地用户: -u指定用户身份,用户是服务器端的用户; 3). 虚拟用户: -u指定用户身份,但是服务器端并不存在该用户(id username)
vsftpd文件信息 /var/ftp ##默认发布目录 /etc/vsftpd ##配置目录
二、vsftpd服务的配置参数 /etc/vsftpd/vsftpd.conf 文件&#xff0c;是 vsftp 的配置文件。 1)匿名用户的设定 <匿名用户的上传> 编辑配置文件&#xff0c;输入以下内容&#xff0c;然后重启服务&#xff1a; 创建一个上传目录&#xff1a; 改变目录权限&#xff0c;使其属于ftp组&#xff1a; 使其具有w权限&#xff1a; 结果&#xff1a; <匿名用户家目录修改> 编辑配置文件&#xff0c;输入以下内容&#xff1a; 我们在服务端的public目录下创建一个文件&#xff0c;验证是否修改了匿名用户的家目录&#xff1a; 在客户端远程连接查看&#xff1a; 结果显示加目录修改成功。 <匿名用户建立目录> anon_mkdir_write_enable&#61;YES|NO <匿名用户下载> anon_world_readable_only&#61;YES|NO ##设定参数值为no表示匿名用户可以下载 <匿名用户删除> anon_other_write_enable&#61;YES|NO 编辑配置文件输入以下内容&#xff1a; 重启服务&#xff0c;在客户端进行测试&#xff1a; <匿名用户使用的用户身份修改> chown_uploads&#61;YES chown_username&#61;student chown_uploads_mode&#61;0644 编辑配置文件&#xff0c;将匿名用户身份修改为student&#xff1a;
<最大上传速率> anon_max_rate&#61;102400 <最大链接数> max_clients&#61;2 编辑配置文件输入以下内容&#xff1a; 创建一个100M大小的文件&#xff0c;再去下载查看速度大小&#xff1a; 当连接服务端的用户大于限制的个数时&#xff0c;多余的用户不能建立连接&#xff0c;会出现以下情况&#xff1a; 2&#xff09;本地用户的设定 local_enable&#61;YES|NO ##本地用户登陆限制 write_enable&#61;YES|NO ##本地用户写权限限制
能够登陆却没有上传权限&#xff1a; 本地用户不能登陆&#xff1a; 当修改为YES之后&#xff1b; <本地用户家目录修改> local_root&#61;/directory <本地用户上传文件权限> local_umask&#61;xxx
<限制本地用户登陆> vim /etc/vsftpd/ftpusers ##用户黑名单 vim /etc/vsftpd/user_list ##用户临时黑名单 用户白名单设定 userlist_deny&#61;NO /etc/vsftpd/user_list ##参数设定&#xff0c;此文件变成用户白名单&#xff0c;只在名单中出现的用户可以登陆ftp 本地用户黑名单&#xff1a;
本地用户白名单&#xff1a; 3&#xff09;ftp虚拟用户的设定 1 >前期准备工作 yum clean all yum repolist yum install vsftpd -y systemctl start vsftpd systemctl enable vsftpd systemctl stop firewalld systemctl disable firewalld getenforce setenforce 0 getenforce vim /etc/sysconfig/selinux SELINUX&#61;disabled 2>创建虚拟帐号身份的文件&#xff08;注意&#xff1a;不要出现空行或多余的空格&#xff09; vim /etc/vsftpd/loginusers ##文件名称任意 2). 对用户帐号和密码进行加密 db_load -T -t hash -f /etc/vsftpd/loginusers loginusers.db 修改权限&#xff1a; 3). 编辑帐号和密码处理的库文件 vim /etc/pam.d/ckvsftpd ##文件名称任意 4). 配置vsftpd配置文件 vim /etc/vsftpd/vsftpd.conf pam_service_name&#61;ckvsftpd # 虚拟用户信息认证文件名称 guest_enable&#61;YES # 虚拟用户开启 虚拟帐号身份指定 guest_username&#61;ftpuser chmod u-w /home/ftpuser 虚拟帐号家目录独立设定 vim /etc/vsftpd/vsftpd.conf local_root&#61;/ftpuserhome/USERusersubtoken&#61;USER user_sub_token&#61;USERusersubtoken&#61;USER
mkdir /ftpuserhome chgrp ftpuser /ftpuserhome chmod g&#43;s /ftpuserhome mkdir /ftpuserhome/ftpuser{1…3} 虚拟帐号配置独立
案例实现目标&#xff1a; 1). ftpuser1用户上传和下载文件限速&#xff1b;
vim /etc/vsftpd/vsftpd.confuser_config_dir&#61;/etc/vsftpd/conf.dmkdir -p /etc/vsftpd/conf.d
vim /etc/vsftpd/conf.d/ftpuser1 在此文件中设定配置文件中的所有参数&#xff0c;此文件的优先级高 创建两个文件&#xff1a; 测试下载限速&#xff1a; 2). ftpuser2用户上传和下载文件不限速&#xff0c; 并且可以上传文件&#xff1b; 编辑配置文件写入以下内容&#xff1a; vim /etc/vsftpd/conf.d/ftpuser2 write_enable&#61;YES anon_upload_enable&#61;YES 创建目录&#xff0c;改变权限&#xff1a; mkdir /ftp/ftpuser2/upload/ chown ftpuser /ftp/ftpuser2/upload/ systemctl restart vsftpd 测试文件上传&#xff1a;