Linux系统下的FTP服务

一.FTP 文件传输协议

  1.FTP为系统提供了通过网络与远程服务器进行传输的简单方法,分主动和被动两种;

  2.vsftpd:安全型服务器包,被动传输的接口是随机的,安全级别更高;

  3.默认配置文件让anonymous用户只能下载位于chroot目录中的内容;

  4./var/ftp:远程FTP客户端能以用户anofile:///usr/share/doc/HTML/en-US/index.htmlnymous或ftp用户连接到服务器,无需密码;

匿名用户默认的登陆目录为/var/pub/

本地用户默认的登陆目录为/home家目录

服务端安装vstftp服务和lftp服务,客户端安装lftp服务


二、设置FTP服务

1.给服务端(虚拟机)配置yum源,安装vsftpd和lftp

#############查看网络是否通畅#############

 

  1. [root@localhost ~]# vim /etc/yum.repos.d/rhel_dvd.repo                ####配置yum源
  2. [root@localhost ~]# yum clean all
  3. [root@localhost ~]# yum repolist

#############配置文件内容###############

 

 

 

2.在服务端修改防火墙配置文件,允许ftp连接,否则客户端连接会显示Interrupt

1)

  1. [root@localhost ~]# firewall-cmd --get-services                              ####查看火墙限制的服务
  2. [root@localhost ~]# firewall-cmd --permanent --add-service=ftp #####允许ftp服务通过火墙
  3. success
  4. [root@localhost ~]# firewall-cmd --reload                                        ######火墙服务重新加载配置文件
  5. success
  6. [root@localhost ~]# firewall-cmd --list-all                                          ######查看火墙允许的服务

 

 

2)或者直接关闭火墙:systemctl restart firewalld

##################################防火墙限制的服务################################

 

#####################################防火墙允许的服务#################################

 

3.开启ftp服务,查看ftp接口,设置开机自启动

  1. [root@localhost ~]# yum install vsftpd                                      ##########安装vsftpd
  2. [root@localhost ~]# systemctl restart vsftpd                            ##########重新启动服务
  3. [root@localhost ~]# netstat -antlupe | grep ftp                         ##########查看ftp接口
  4. tcp6       0      0 :::21                   :::*                    LISTEN      0          76061      3845/vsftpd         
  5. [root@localhost ~]# systemctl enable vsftpd                            #########设置开机启动服务

#############################下载成功############################

 

 

4.修改配置后,客户端连接好   ##默认目录 /pub,在客户端安装好lftp服务


三、用户登陆设置    /etc/vsftpd/vsftpd.conf

 

常见报错:

530  认证失败,密码错误

550  当前用户没有权限

553  文件权限太小

500  文件权限过大

 

  1. [root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
  2. [root@localhost ~]# systemctl restart vsftpd.service

  1.匿名用户登陆

   anonymous_enable=YES

   anonymous_enable=NO            ##是否允许登陆

##################################配置文件部分内容#############################

 

 

########################设置为不允许匿名用户登录#######################

 

##############不能登陆#############

 

#################设置匿名用户可以登陆,登陆成功#############

 

2.本地用户登陆

   local_enable=YES

   local_enable=No             ##是否允许登陆

 

#######################设置本地用户不允许登陆,登录失败####################

 

#############################设置本地用户可以登陆,登陆成功###########################

 

 

3.本地用户读写    

   write_enable=YES

   write_enable=NO           ##是否允许读写

首先修改内核级限制文件

vim   /etc/sysconfig/selinux

SELINUX=disabled          ##########此为关闭服务,也可以改成permissive,出现问题会警告                

 

####################配置文件内容,此处改为permissive或者disable#####################

 

1)不允许读写

 

2)允许读写

###################################上传成功#########################################


 

四、登陆用户的读写权限

1.匿名用户上传文件权限

    anon_upload_enable=YES                  ##匿名用户上传权限

[root@apache ~]# vim /etc/vsftpd/vsftpd.conf             
[root@apache ~]# systemctl restart vsftpd.service
[root@apache ~]# chgrp ftp /var/ftp/pub                                         ####修改组
[root@apache ~]# chmod 755 /var/ftp/pub                                     ####修改权限
[root@apache ~]# systemctl restart vsftpd.service

 

######vsftpd.con文件添加内容#####

 

##################文件上传失败后,将权限改为775,上传成功####################

 

2.匿名用户删除文件权限

   anon_other_write_enable=YES                 ##匿名用户读写权限

##########################删除成功########################

 

#########################################删除失败##################################

 

3.匿名用户下载文件权限 

   anon_world_readable_only=NO                  ##允许匿名用户下载

 

##################################下载成功#####################################

 

 

anon_world_readable_only=YES                  ###不允许匿名用户下载

########################下载失败############################

 

  4.匿名用户新建目录权限

   anon_mkdir_write_enable=YES             ##允许匿名建立目录

#####################权限设置为NO不允许时不能建立########################

 

###################权限设立为YES后成功建立文件#######################

 


 

五、用户登陆的相关配置

  1.修改默认用户,即以用户student的身份登陆,上传文件的组id为1000

    chown_uploads=YES                  

    chown_username=student          ##使匿名用户以student身份执行

##############################上传文件的组ID为1000####################

 

 2.匿名用户的最大上传速度  ##单位byte  anon_max_rate=102400

##############################下载速度为100K左右#################################

 

 

3.匿名用户登陆的默认目录修改

    anon_root=/mnt    

    local_root=/mnt         ##本地用户登陆的默认目录

  

######################默认进入到/mnt中############################

 

 

 4.最多同时在线人数设定

 max_clients=1                     ###同时在线数为1

#########IP为38的用户登陆中,IP为138的用户无法登录################

 

 

  5.修改本地用户登陆后,文件默认权限修改

   local_umask=077       ##文件默认权限为700

 

##############################权限默认为700###############################

 

6.用户登陆,锁定在用户加目录

    chroot_local_user=YES

 

################由于家目录文件权限过大500报错,此时要取消家目录文件w权限#########

 

  1. [root@apache ~]# vim /etc/vsftpd/vsftpd.conf
  2. [root@apache ~]# systemctl restart vsftpd.service
  3. [root@apache ~]# chmod u-w /home/*

 

##########################用户登陆,此时可以切换到/目录###################################

 

 

7.本地用户登陆黑/白名单

  chroot_local_user=NO                                         ##不锁定用户家目录

  chroot_list_enable=YES                                      ##开启黑/白名单列表

  chroot_list_file=/etc/vsftpd/chroot_list                ##列表文件为/etc/vsftpd/chroot_list

当锁定用户家目录(YES)时,/etc/vsftpd/chroot_list是白名单

当不锁定用户家目录(NO)时,/etc/vsftpd/chroot_list是黑名单

8.黑名单配置文件

    ftpusers       ##永久黑名单,一旦加入,任何操作都不能洗白

    user_list      ##临时黑名单,可修改配置文件,变为白名单

    userlist_enable=YES    ##开启userlist列表

    userlist_deny=NO         ##默认所有用户加入黑名单,白名单用户可登陆

    注意:若用户既在永久黑名单,也在白名单,此用户不能登陆!


六、虚拟用户登陆

   1.建立虚拟用户   

[root@apache ~]# vim /etc/vsftpd/users

####/etc/vsftpd/users/配置文件内容,名字和密码可自定义,注意不能有空格#####

 

 

 

  1. [root@apache ~]# cd /var/ftpd/
  2. [root@apache vsftpd]# db_load -T -t hash -f users users.db     ##对虚拟用户和密码加密,会生成/etc/vsftpd/users.db文件
  3.   ####  -T   新建文件         -t   加密格式         -f   加密文件     ####
  4. [root@apache vsftpd]# ls
  5. chroot_list  user_list  users.db     vsftpd_conf_migrate.sh
     
  6. [root@apache vsftpd]# vim /etc/pam.d/usercheck            ####建立ftp验证文件
  7. [root@apache vsftpd]# vim /etc/vsftpd/vsftpd.conf            ####修改配置文件,使虚拟用户登陆
  8. ftpusers     users      vsftpd.conf

 account     required    pam_userdb.so    db=/etc/vsftpd/users     ##用户认证

 auth           required    pam_userdb.so    db=/etc/vsftpd/users     ##密码认证

########################/etc/pam.d/usercheck文件中的内容########################

 

pam_service_name=usercheck        ##pam读取虚拟用户文件usercheck

     guest_enable=YES                  ##开启虚拟用户登陆

     guest_username=student                ##使虚拟用户以ftp映射用户登陆,

##############配置文件vsftpd.conf中内容#########

 

  1. [root@apache vsftpd]# mkdir -p /var/ftpdir/test1/test1dir                    #### 配置虚拟用户具备独立的家目录
  2. [root@apache vsftpd]# mkdir -p /var/ftpdir/test2/test2dir                    ####-p 表示上层目录不存在,自动建立
  3. [root@apache vsftpd]# cd  /var/ftpdir/test1
  4. [root@apache test1]# ls
  5. test1dir
  6. [root@apache test1]# cd  /etc/vsftpd/
  7. [root@apache vsftpd]# vim /etc/vsftpd/vsftpd.conf                        ####修改配置文件使虚拟用户登陆到自己独立的家目录
  8. [root@apache vsftpd]# systemctl restart vsftpd.service

 

local_root=/var/ftpdir/$USER                   ##$表示根据user自动登陆到相应家目录中

user_sub_token=$USER                        ##使ftp服务识别$USER

##################配置文件内容#####################


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值