ftp文件传输协议

来源:互联网 发布:地图数据可视化 编辑:程序博客网 时间:2024/05/22 09:46

ftp文件传输协议

1.ftp://文件传输协议
2.ftp协议提供的软件 在rhel7中是vsftpd
3.服务端部署ftp服务
[root@server Desktop]# yum install vsftpd -y
[root@server Desktop]# systemctl start vsftpd.service  
[root@server Desktop]# systemctl enable vsftpd.service          #设置开机自动启动
[root@server Desktop]# firewall-cmd --permanent --add-service=ftp
将ftp服务添加至火墙策略
[root@server Desktop]# firewall-cmd --reload                            #重新加载,让策略生效

如下图,该策略生效后,可以查看到


如下图,将ftp服务在服务端部署好后,客户端主机可以与其建立连接,下图ip为server端主机ip


4.ftp服务的基本信息
软件安装包 vsftpd
默认发布目录: /var/ftp/
协议接口: 21/tcp     

服务配置文件:/etc/vsftpd/vsftpd.conf

注意:该默认路径是不能打开所有权限的,即不能为这个目录授予777的权限,否则在服务端连接会出现下列报错


 

4.ftp基本配置
vim /etc/vsftpd/vsftpd.conf
(1)匿名用户(匿名用户使用的身份是ftp用户)
<匿名用户登陆>
anonymous_enable=YES|NO      #匿名用户是否可以登陆
<匿名用户上传本地文件>
匿名用户上传:必须自己再/var/ftp目录下建立一个目录,如pub。再给这个目录授予某个身份的满权限,这里将ftp匿名用户的登陆身份加入到这个/var/ftp/pub目录的组里。 
write_enable=YES

anon_upload_enable=YES

如果设为YES,则允许匿名登入者有上传文件(非目录)的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO 

[root@server ftp]# chgrp ftp /var/ftp/pub/
[root@server ftp]# chmod 775 /var/ftp/pub/
[root@server ftp]# systemctl restart vsftpd.service  #重启服务

测试 

客户端建立连接并上传本地文件

服务端的/var/ftp/pub目录查看是否成功上传


   anon_root=/目录名                                   <匿名用户家目录修改>

   anon_umask=xxx                                      <匿名用户上传文件默认权限修改> 

   anon_mkdir_write_enable=YES            <匿名用户建立目录>

如果设为YES,则允许匿名登入者有新增目录的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO。


   anon_world_readable_only=NO            <匿名用户下载>


   anon_other_write_enable=YES             <匿名用户删除文件>

如 果设为YES,则允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名。(如果anon_upload_enable=NO,则匿名用户 不能上传文件,但可以删除或者重命名已经存在的文件;如果anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件夹,但 可以删除或者重命名已经存在的文件夹。)默认值为NO。


  chown_uploads=YES                               <匿名用户使用的身份修改>
  chown_username=student            
  anon_max_rate=102400                          <匿名用户最大上传速率>

  max_clients=2                                           <匿名用户最大链接数>

Tips:文件传输时候的报错

550:服务本身功能未开放
530:用户认证失败
553:本地文件权限过小
500:文件系统权限过大

 
(2)本地用户的相关配置
 local_enable=YES/NO(YES)
控制是否允许本地用户登入,YES 为允许本地用户登入,NO为不允许。默认值为YES。
local_root=/home/username

当本地用户登入时,将被更换到定义的目录下。默认值为各用户的家目录。


write_enable=YES/NO(YES)
是否允许登陆用户有写权限。属于全局设置,默认值为YES。
local_umask=022
本地用户新增档案时的umask 值。默认值为077。
 
chroot_local_user=YES           <限制本地用户浏览/目录 所有用户都锁到自己家中>

chmod u-w /home/*

设置前:

设置后:


 
用户黑名单的建立
chroot local user=NO
chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

vim /etc/vsftpd/chroot_list

student


 
用户白名单的建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
 
限制本地用户登录
vim /etc/vsftpd/ftpusers              用户黑名单
vim /etc/vsftpd/user_list             用户临时黑名单
 
用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list                   参数设定,此文件变成用户白名单,只有名单内的人可以登录