云计算~Linux中ftp服务配置

云计算~Linux中ftp服务配置

1.ftp的定义

FTP是File Transfer Protocol文件传输协议的英文名称,用于在internet上控制文件的双向传输,同时它也是一个应用程序。
ftp:// ##文件传输协议
lftpd客户端相当于阿帕奇 vsftpd服务端相当于浏览器

2.ftp服务提供的软件

在rhel7中:vsftpd
默认发布目录:/var/ftp
协议接口:21/tcp
服务配置文件: /etc/vsftpd/vsftpd.conf

3.ftp服务常见报错

500             ##文件系统权限过大          
530             ##用户认证失败
550             ##服务不允许做此功能
553             ##本地文件系统权限过小

   
   

4.在服务端部署ftp服务

tp(文件传输协议)是Internet上常用的最老的网络协议之一,它的系统提供了通过网络与远程服务器进行传输的简单方法。ftp服务器包的名称为vsftpd,它代表Very Secure File Transfer Protocol Damon,服务器名称也叫做vsftpd。
默认配置文件让anonymous用户(匿名用户)只能下载位于chroot目录中的内容。
/var/ftp/这意味着远程ftp客户端能以anonymous用户或ftp身份连接到服务器(无需密码),并从ftp服务器上的/var/ftp/目录下载文件(其本地ftp用户可以读取这些文件)

  1. 关闭内核级的加强形火墙

     vim /etc/sysconfig/selinux       ##关闭selinux
     7  SELINUX=disabled              ##更改第七行为disabled
    
         
         

    在这里插入图片描述

     reboot            ##重启
     getenforce        ##查看selinux状态
    
         
         

在这里插入图片描述
2)安装服务

yum install  lftp  -y
yum install  vsftpd -y    

   
   

在这里插入图片描述
在这里插入图片描述
3)设置火墙永久允许ftp服务
法一:命令设定火墙

systemctl  start vsftpd                             ##打开vsftp服务
systemctl  enable vsftpd                            ##允许开机自动启动

   
   

在这里插入图片描述

systemctl  start firewalld                          ##打开防火墙
firewall-cmd  --permanent  --add-service=ftp        ##允许ftp通过火墙
systemctl restart firewalld                         ##重启火墙

   
   

在这里插入图片描述
法二:图形设定火墙

firewalld-config    ##打开图形更改防火墙设置

   
   

选择Permanent永久设定,选择ftp
在这里插入图片描述

选择Reload Firewalld
在这里插入图片描述

firewall-cmd --list-all     ##查看防火墙状态

   
   

在这里插入图片描述
4)在客户端测试
在这里插入图片描述

5.ftp的配置文件中相关功能的实现

1.匿名用户的设定
1)匿名用户登陆

vim  /etc/vsftpd/vsftpd.conf                 ##配置文件

12 anonymous_enable=YES ##匿名用户是否可以登陆
19 write_enable=YES ##ftp是否对登陆用户可写

  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
在这里插入图片描述
2)匿名用户上传

vim /etc/vsftpd/vsftpd.conf
19 write_enable=YES        ##ftp对用户可写
29 anon_upload_enable=YES    ##匿名用户上传

 
 
  • 1
  • 2
  • 3

在这里插入图片描述

systemctl restart vsftpd   ##重启服务
chgrp ftp /var/ftp/pub    ##更改该文件的组为ftp
chmod 775 /var/ftp/pub    ##允许该文件被ftp组可读可写

 
 

在这里插入图片描述
测试
注:put为上传文件
在这里插入图片描述
3)匿名用户家目录修改

anon_root=/direcotry    ##匿名用户家目录修改

 
 

在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4)匿名用户上传文件的权限修改

anon_mask=022      ##匿名用户新增文件时系统保留的权限为022

 
 

在这里插入图片描述
测试
在这里插入图片描述
5)匿名用户建立目录

anon_mkdir_write_enable=YES   ##匿名用户建立目录

 
 

在这里插入图片描述
测试
在这里插入图片描述
6)匿名用户删除

anon_other_write_enable=YES   

 
 

在这里插入图片描述
测试
在这里插入图片描述
7)匿名用户下载

anon_world_readable_only=YES|NO  ##匿名用户下载,设定参数为NO表示
                                   匿名用户可以下载

 
 

在这里插入图片描述
测试
在这里插入图片描述
8)匿名用户使用的用户身份修改

49chown_uploads=YES               ##所有匿名上传的用户文件的所属用户将会被改成chown_username
50chown_username=student          ##匿名用户使用的用户身份修改

 
 

在这里插入图片描述
测试
在这里插入图片描述
9)匿名用户上传文件的最大速率

anon_max_rate=102400           ##最大上传速率       

 
 

在这里插入图片描述
测试

dd  if=/dev/zero  of=bigfile  bs=1M  count=300         ##截取300M文件

 
 

在这里插入图片描述
10)能够最大连接的客户端

max_clients=1    ##只允许一个用户登录该ftp服务器

 
 

在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述
2.本地用户设定
设定方法及步骤和匿名用户相同,在此不做过多的测试
1)本地用户的登录

local_enable=YES

 
 

2)本地用户家目录修改

local_root=/directory
write_enable=YES                        

 
 

3)本地用户上传文件权限

local_umask=022

 
 

4)限制本地用户浏览/目录

chroot_local_user=YES      ##所有用户被锁定到自己的家目录中  

 
 

用户不能有写的权限否则会报错500

chmod u-w  /home/*

 
 

5)本地用户黑名单的建立

101chroot_local_user=NO                         ##NO表示下面的路径为黑名单
102chroot_list_enable=YES                       ##表示开启黑白名单功能
104chroot_list_file=/etc/vsftpd/chroot_list     ##黑名单路径

 
 
  • 1
  • 2
  • 3

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述
6)本地用户白名单的建立

chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

 
 

在这里插入图片描述
在这里插入图片描述
测试
在这里插入图片描述
在这里插入图片描述
7)限制本地用户登陆

/etc/vsftpd/ftpusers          ##永久黑名单

 
 

在这里插入图片描述
测试
在这里插入图片描述

/etc/vsftpd/user_list         ##临时黑名单

 
 

在这里插入图片描述
测试
在这里插入图片描述

vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO          ##临时黑名单变为白名单

 
 

在这里插入图片描述
测试
在这里插入图片描述
3.ftp虚拟账户设定

1.创建虚拟用户身份
1)建立虚拟用户名单

cd  /etc/vsftpd/

vim userfile
ftpuser1
123
ftpuser2
123
ftpuser3
123

在这里插入图片描述
2)将其用hash加密变为db

db_load  -T -t  hash  -f  /etc/vsftpd/userfile /etc/vsftpd/userfile.db

 
 

在这里插入图片描述
3)编写一个新的认证文件

vim  /etc/pam.d/hello
account  required   pam_userdb.so    db=/etc/vsftpd/userfile
帐号       认证方式          认证插件               db文件
auth     required   pam_userdb.so    db=/etc/vsftpd/userfile
认证       认证方式          认证插件               db文件

 
 

在这里插入图片描述
4)改动主配置文件

vim vsftpd.conf
pam_service_name=hello       ##认证方式(改变认证方式后之前的用户无法登录,可将其之前的认证文件加入新的文件中即可)
guest_enable=YES              ##打开虚拟用户功能
guest_username=ftp            ##给虚拟用户一个身份

 
 

在这里插入图片描述
5)重启ftp服务

systemctl  restart  vsftpd

 
 

用虚拟用户登陆测试
在这里插入图片描述
2.虚拟用户指定家目录
1)先建立家目录内容

mkdir  /var/ftpuserdir/ftpuser{1..3}  -p
mkdir  /var/ftpuserdir/ftpuser{1..3}/pub  
mkdir  /var/ftpuserdir/ftpuser1/haha11file 
mkdir  /var/ftpuserdir/ftpuser2/haha2file 
mkdir  /var/ftpuserdir/ftpuser3/haha3file

 
 

在这里插入图片描述
2)改写主配置文件

local_root=/var/ftpuserdir/$ USER               ##登陆后查看自己的家目录
user_sub_token=$ USER                           ##认证shell内的$

 
 

(echo $USER---->查看用户)

3)重启ftp服务,建立成功
测试
在这里插入图片描述
3.虚拟帐户配置独立的功能
以上传为例
在主配置文件中注释掉相应的参数
1)给/pub相应的权限

ls  -lr   /var/ftpuserdir/ftpuser{1..3}  
chmod  775   /var/ftpuserdir/ftpuser{1..3}/pub*
chgrp  ftp   /var/ftpuserdir/ftpuser{1..3}/pub*

 
 

在这里插入图片描述
2)改写主配置文件

vim /etc/vsftpd/vsftpd.conf           ##设置虚拟用户独立配置路径
user_config_dir=/etc/vsftpd/user_conf(此文件需要新建)

 
 

在这里插入图片描述
3)重启服务
4)建立新的一个配置文件

mkdir  -p /etc/vsftpd/user_conf          
anon_upload_enable=YES

 
 

此文件设定配置文件中的参数,默认此文件优先级高
在这里插入图片描述
在这里插入图片描述
测试
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值