ftp服务对对本地用户匿名用户虚拟用户的管理

                                    FTP

1>ftp小姿势

ftp服务的基本信息
  软件安装包: vsftpd
  默认发布目录:/var/ftp
  协议接口:21/tcp
  服务配置文件:/etc/vsftpd/vsftpd.conf
  报错id的解析:

       500 #文件系统权限过大
      
       530 #用户认证失败
      
       550 #服务本身功能未开放
     
       553 #本地文件系统权限过小
2>安装ftp服务器

  在server上面:(服务端)

  vim /etc/sysconfig/selinux
  getenforce=Disabled

  1 yum install vsftpd
  2 systemctl start vsftpd #开启该服务
  3 systemctl enable vsftpd #开机时自动开启
  4 netstat -antlupe | grep vsftps
  5 firewall-cmd --list-all #列出所有火墙状态
  

 

  6 firewall-cmd --permanent --add-service=ftp  #在火墙中永久添加ftp服务
  
  7 firewall-cmd --reload #重新加载,使ftp开启时,火墙是关闭状态
  
  8 cd /var/ftp
  
  9 ls
  
  10touch lala


在真机上:(客户端)

  1.lftp 172.25.254.132
 当出现command not found时说明你的真机没有安装lftp,需要安装lftp,注意lftp和ftp是两个不同
的安装包,一个是客户端,一个是服务端

  ls #可以看到172.25.254.132上的/var/ftp目录中的文件,在lftp中默认家目录为/var/ftp

3.访问ftp


3>vim /etc/vsftpd/vsftpd.conf #ftp服务配置      
本地用户
本地用户
local_enable=YES|NO #本地用户可以登陆
write_enable=YES|NO #ftp是否对登陆用户可写,即可删除其中的文件  
本地用户上传文件权限
local_umask=077
上传最大速度
non_max_rate=102400000
最大链接数
max——clients=2
本地用户家目录修改
local_root=/directory
本地用户可以建目录
dirlist_enable=YES

限制本地用户浏览目录
所有用户被锁定在自己的家目录中
chroot_local_user=YES
chmod u-w /home/*
用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/user_list
用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

限制本地用户登陆
vim /etc/vsftpd/ftpusers  #用户黑名单永久生效,优先级高于user_list
vim /etc/vsftp/user_list  #用户黑名单,有时候会变成白名单

用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list   #参数设定,此文件变成白名单,只有在名单中出现用户可以登陆ftp
userlist_list=YES #user_list文件为黑名单

限制本地用户登陆
vim /etc/vsftpd/ftpusers #优先级别最高
vim /etc/vsftpd/user_list
用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list
参数设定:
当userlist_deny=NO时,user_list为白名单,该名单上的用户可以登陆ftp 
本地用户是否可以登陆 

local_enable=YES|NO 



ftp是否对登陆用户可写,即可删除其中的文件

write_enable=YES|NO  



本地用户上传文件权限

local_umask=077


上传最大速度

non_max_rate=102400000

最大链接数
max——clients=2

本地用户家目录修改

local_root=/directory

限制本地用户浏览目录
所有用户被锁定在自己的家目录中
chroot_local_user=YES
chmod u-w /home/*

用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/user_list


用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list



#/etc/vsftpd/chroot_list中的用户为黑白名单取决于chroot_local_user为YES还是NO

限制本地用户登陆

vim /etc/vsftpd/ftpusers  #用户黑名单永久生效,优先级高于user_list


vim /etc/vsftp/user_list  #用户黑名单,有时候会变成白名单

用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list   #参数设定,此文件变成白名单,只有在名单中出现用户可以登陆ftp

userlist_list=YES #user_list文件为黑名单



匿名用户设定:

匿名用户上传
  write_enable=YES #前提
  anon_upload_enable=YES #匿名上传
  chgrp  ftp /var/ftp/pub #修改/var/ftp/pub的组
  chmod 775 /var/ftp/pub #修改权限

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

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

匿名用户建立目录
anon_mkdir_write_enable=YES|NO
匿名用户建立目录
anon_mkdir_write_enable=YES|NO

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

匿名用户删除
anon_other_write_enable=YES|NO

匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student


匿名用户上传

  write_enable=YES #前提
  anon_upload_enable=YES #匿名上传
  chgrp  ftp /var/ftp/pub #修改/var/ftp/pub的组

  chmod 775 /var/ftp/pub #修改权限



匿名用户家目录修改

anon_root=/directory
匿名用户上传文件默认权限修改
anon_umask=022

匿名用户建立目录
anon_mkdir_write_enable=YES|NO


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


匿名用户删除

anon_other_write_enable=YES|NO



匿名用户使用的用户身份修改

chown_uploads=YES

chown_username=student

虚拟用户的设定
1>创建虚拟帐号身份
vim  /etc/vsftpd/westosfile  #创建虚拟帐号身份
ftpuser1 #虚拟用户
123 #虚拟用户登陆密码
ftpuser2
123
ftpuser3
123
2>给虚拟帐号文件加密,生成加密文件
db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db
db_load加密命令  -t 加密方式     -f  指定明文文件  生成密文文件格式为.db
 ls /etc/vsftpd/ #查看是否生成加密文件
认证插件
vim /etc/pam.d/westos
account required pam_userdb.so db=/etc/vsftpd/westosfile
auth    required pam_userdb.so db=/etc/vsftpd/westosfile

3>配置文件
vim /etc/vsftpd/vsftpd.conf

pam_service_name=westos #加载pam哪个模块,我设置的加密认证是/etc/pam.d/westos

guest_enable=YES #开启虚拟用户功能
虚拟帐号身份指定
guest_username=ftpuser  #虽然是虚拟用户但是登陆时还是要有一个系统用户的身份,我设置的是ftpuser
chmod u-w /home/ftpuser #更改虚拟用户对文件的写权限,否则系统会显示权限过大
4>虚拟帐号家目录独立设定
vim /etc/vsftpd/vsftpd.conf

local_root=/ftpuserhome/$USER #USER的家目录位置

user_sub_token=$USER #$USER变量名

systemctl  restart  vsftpd.service

5>建立家目录:
mkdir /vftpdir

chgrp ftpuser /vftpdir

chmod g+s /vftpdir

mkdir /vftpdir/ftpuser{1..3} -p

touch vftpdir/ftpuser1/yihao

touch vftpdir/ftpuser2/erhao

touch vftpdir/ftpuser3/sanhao


虚拟帐号配置独立

vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf

/etc/vsftpd/userconf #该配置文件是针对于其后所跟的虚拟用户,即只对该用户生效,其优先级高于/etc/vsftpd/vsfptd.conf,如果没有虚拟用户的独立配置文件,就遵从系统中虚拟用户的设置

[root@localhost ~]# vim /etc/vsftpd/westosfile
ftpuser1
123
ftpuser2
123
ftpuser3
123
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers     vsftpd_conf_migrate.sh
user_list    westosfile
vsftpd.conf  westosfile.db
[root@localhost vsftpd]# vim /etc/pam.d/westos
pam_service_name=westos
guest_enable=YES
userlist_enable=YES
tcp_wrappers=YES
guest_username=ftpuser

[root@localhost vsftpd]# chmod u-w /home/ftpuser
[root@localhost vsftpd]# vim user_list
[root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# systemctl restart vsftpd.service
[root@localhost /]# mkdir /vftpdir
[root@localhost /]# chgrp ftpuser /vftpdir
[root@localhost /]# chmod g+s /vftpdir
[root@localhost /]# mkdir /vftpdir/ftpuser{1..3} -p

[root@localhost vsftpd]# vim vsftpd.conf
local_root=/vftpdir/$USER
user_sub_token=$USER
user_config_dir=/etc/vsftpd/conf_dir
[root@localhost vsftpd]# systemctl restart vsftpd.service                                                         











猜你喜欢

转载自blog.csdn.net/dreamer_xixixi/article/details/80251361