Linux:ftp服务的部署

本文详细介绍了如何在Linux上部署FTP服务,包括匿名用户的设置、本地用户的管理、FTP虚拟机用户的创建以及权限和目录设定。内容涵盖匿名用户的登陆、上传限速、建立目录,本地用户的登陆限制、权限管理,以及FTP虚拟机用户的帐号身份设定和家目录独立配置等。
摘要由CSDN通过智能技术生成

ftp服务

vslftp服务器
lftp浏览器
ftp服务的基本信息

软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口:21/tcp
服务配置文件:/etc/vsftpd/vsftpd.conf
报错id的解析:500      ##文件系统权限过大
            530       ##用户认证失败
            550       ##服务本身功能未开放
            553       ##本地文件系统权限过小

首先要完成以下步骤:

重置server虚拟机
设置ip
配置yum源
编写文件vim /etc/sysconfig/selinux ,将enforcing改为disable
需要reboot

这里写图片描述
重启之后查看:
这里写图片描述

做完以上步骤后,在server虚拟机中:

yum install vsftpd  -y          ##安装vsftpd
systemctl start vsftpd
systemctl enable vsftpd
ln -s '/usr/lib/systemd/system/vsftpd.service' '/etc/systemd/system/multi-user.target.wants/vsftpd.service'       ##报错是因为火墙有限制,需要允许ftp
firewall-cmd --permanent  --add-service=ftp   ##火墙允许ftp
firewall-cmd --reload        ##更新
firewall-cmd --list-all      ##查看
public (default, active)
  interfaces: eth0
  sources: 
  services: dhcpv6-client ftp ssh    ##已经火墙允许ftp
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

cd  /var/ftp
ls
touch  westosfile
ls

这里写图片描述
这里写图片描述
在真机中测试(也可以在虚拟机中安装lftp):

yum  install  lftp        ##安装lftp
lftp  172.25.254.219        ##虚拟机ip
ls

这里写图片描述

一·匿名用户

1、匿名用户修改家目录

在服务端虚拟机:
mkdir  /ftpdir/westosdir  -p   ##建立家目录
vim  /etc/vsftpd/vsftpd.conf
编写内容:anon_root=/ftpdir
systemctl restart vsftpd
做完之后需要注释
在真机:
lftp  172.25.254.219 
ls

这里写图片描述

2、匿名用户是否可以登陆:

vim  /etc/vsftpd/vsftpd.conf
anonymous_enable=YES|NO        ##NO不可以登陆

当匿名用户为YES时:
这里写图片描述
可以登陆:
这里写图片描述
当匿名用户为NO时:
这里写图片描述
不可以登陆:
这里写图片描述
做完实验必须要改为YES,否则不能进行以下实验

3、匿名用户上传:
第一种方法:

vim  /etc/vsftpd/vsftpd.conf 
write_enable=YES       
anon_upload_enable=YES
##匿名用户依赖于普通用户可写,需要同时打开服务 
systemctl restart vsftpd
lftp   172.25.254.219
lftp 172.25.254.219:~> ls
drwxr-xr-x    2 0        0               6 Mar 07  2014 pub
-rw-r--r--    1 0        0               0 May 08 10:35 westosfile
lftp 172.25.254.219:/> cd  pub/
lftp 172.25.254.219:/pub> put  /etc/passwd
put: Access failed: 553 Could not create file. (passwd)
##报错553,权限过小
chmod  777  /var/ftp/pub/     ##给权限为777,否则会报错,权限过小
ls -l /var/ftp/pub/

lftp  172.25.254.219 
cd  pub/        
put /etc/passwd   ##上传

当没有赋予权限时,不能上传:
打开匿名用户上传以及不同用户可写:
这里写图片描述
这里写图片描述
这里写图片描述
赋予权限后:

这里写图片描述
第二种方法:

chgrp  ftp  /var/ftp/pub/
chmod  775  /var/ftp/pub/
ls  -ld  /var/ftp/pub/
lftp  172.25.254.219 
cd  pub/
put /etc/group

这里写图片描述

4、匿名用户删除

vim  /etc/vsftpd/vsftpd.conf
编写内容:anon_other_write_enable=YES      ##匿名用户删除
lftp  172.25.254.219 
cd  pub/
rm group

编写内容:
这里写图片描述
这里写图片描述

5、匿名用户上传限速

cd /mnt/  
dd if=/dev/zero  of=/mnt/bigfile  bs=1M  count=2000        ##截取
vim  /etc/vsftpd/vsftpd.conf
编写内容:anon_max_rate=102400   ##限速为100k
systemctl restart vsftpd
lftp  172.25.254.219 
cd  pub/
put  /mnt/bigfile

当没有限速时的上传速率:
这里写图片描述
当限速时的上传速率:
编写内容:
这里写图片描述
这里写图片描述

6、匿名用户建立目录:

anon_mkdir_write_enable=YES     ##打开匿名用户建立目录
lftp  172.25.254.219 
cd  pub/
mkdir test
ls

当没有打开建立目录时:
报错550:服务本身功能为开放
这里写图片描述

打开匿名用户建立目录:
这里写图片描述
这里写图片描述

7、匿名用户上传文件权限

vim  /etc/vsftpd/vsftpd.conf
编写内容:anon_umask=022       ##匿名用户
lftp  172.25.254.219 
cd pub/
put /etc/group
-rw-r--r--    1 14       50            865 May 06 02:23 group        ##权限为644

匿名用户没有给权限:
这里写图片描述
group权限为默认600

编写内容:
这里写图片描述
这里写图片描述
group权限为644

三·本地用户

1、本地用户:(需要建立一个本地用户)

useradd  student      ##建立一个普通用户   (用id  student  查看是否有用户存在)
su  -  student    
mkdir  /home/student/pub    ##切换到student用户下建立pub目录
local_enable=YES|NO     ##打开本地用户是否可以登陆
write_enable=YES|NO     ##打开ftp是否登陆用户可写

当登陆与可写都为YES时:
这里写图片描述
这里写图片描述

当登陆与可写都为NO时:
这里写图片描述
这里写图片描述
做完实验后都要还原,都是YES

2、本地用户上传文件权限:
**022:644 -rw-r–r–
077:600 -rw——-**

useradd  westos
vim  /etc/vsftpd/vsftpd.conf
打开并编写为077:local_umask=077      ##本地用户
systemctl restart vsftpd
lftp  172.25.254.219   -u  westos
put  /etc/group
ls
-rw-------    1 1001     1001         2048 May 06 02:05 passwd    ##权限为600

不能建立同一个文件,否则会被覆盖
编写权限为077
这里写图片描述
这里写图片描述

3、限制本地用户浏览/目录

vim  /etc/vsftpd/vsftpd.conf
 打开:chroot_local_user=YES
systemctl restart vsftpd
chmod u-w /home/*     ##所有用户被锁定到自己家目录中
lftp 172.25.254.219  
cd /
ls         ##看不到/目录

打开为YES,看不到/目录
这里写图片描述
看不到/目录:
这里写图片描述
当打开改为NO时,可以看到/目录
这里写图片描述
可以看到/目录:
这里写图片描述

4、本地用户黑名单

vim  /etc/vsftpd/vsftpd.conf
 打开:chroot_local_user=NO   ##所有人可以浏览
      hroot_list_enable=YES
      chroot_list_file=/etc/vsftpd/chroot_list
systemctl restart vsftpd
vim /etc/vsftpd/chroot_list    ##编写黑名单用户名
lftp 172.25.254.219   -u  黑名单用户名
cd /
ls    ##看不到/目录

在主配置文件中打开以下三个:
这里写图片描述

当用户时黑名单时,不能看到/目录:
这里写图片描述
这里写图片描述

当用户是非黑名单用户时,可以看到/目录:
这里写图片描述

5、本地用户白名单

vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES
hroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
systemctl restart vsftpd
vim /etc/vsftpd/chroot_list          ##编写白名单用户
lftp 172.25.254.219 -u  白名单用户名
cd /
ls             ##除了白名单用户以外的用户看不到/目录 

要把主配置文件的所有人浏览改为YES,意思是所有人不能浏览
这里写图片描述

编写白名单用户;
这里写图片描述

白名单可以查看/目录:
这里写图片描述

除了白名单以外的用户查看不到/目录:
这里写图片描述
做完以上实验后全都注释

6、本地用户登录限制

cd /etc/vsftpd
ls ##查看文件
chroot_list ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
ftpusers ##永久黑名单,优先级更高
uesr_list ##临时黑名单

(1)用户临时黑名单设定:

vim  /etc/vsftpd/vsftpd.conf
在最后编写内容:userlist_deny=NO    ##所有用户都在黑名单里
vim /etc/vsftpd/user_list     ##参数设定,此文件变成用户白名单,只在名单中出现的用户可以登陆
编写白名单用户
lftp  172.25.254.219  -u  westos   
cd  /
ls    ##可以看到/目录

user_list为临时黑名单
在 /etc/vsftpd/vsftpd.conf文件中编写:userlist_deny=NO
这里写图片描述

在 /etc/vsftpd/user_list文件中写入白名单用户:westos
这里写图片描述

用户为westos时,可以查看/目录
这里写图片描述

用户为非白名单用户,不能查看/目录
这里写图片描述

(2)用户永久黑名单设定:

vim /etc/vsftpd/vsftpd.conf   
userlist_deny=NO   ##注释掉
systemctl  restart  vsf  tpd
vim  /etc/vsftpd/ftpusers    ##编写黑名单westos用户
lftp  172.25.254.219  -u  student
cd  /
ls     ##可以查看/目录

在 /etc/vsftpd/vsftpd.conf文件中注释userlist_deny=NO
这里写图片描述

在/etc/vsftps/ftpuser 文件中写入黑名单用户
这里写图片描述

非黑名单用户登陆:
这里写图片描述

黑名单用户登陆:
这里写图片描述

当uesr_list为白名单时,若ftpuser、suesr_list都有同一个用户,则ftpusers永久黑名单优先级高,不能执行

so服务
ko内核
mo功能

三·ftp虚拟机用户的设定

(1)创建虚拟机帐号身份:

vim  /etc/vsftpd/user    ##添加虚拟用户密码(文件名称任意)
编写内容:user1      ##普通用户
        123        ##密码
        user2
        123
        user3
        123

db_load -T -t hash  -f /etc/vsftpd/user  /etc/vsftpd/user.db             ##加密
vim /etc/pam.d/westos       ##编辑帐号密码文件(文件名称任意)
编写内容:  account   required   pam_userdb.so  db=/etc/vsftpd/user
           auth      required   pam_userdb.so  db=/etc/vsftpd/user

vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos      ##创建虚拟机帐号身份文件名
guest_enable=YES
systemctl restart vsftpd

account:帐号
required:必须通过否则认证被拒绝
pam_userdb.so:认证帐号
db=/etc/vsftpd/user:后缀不需要,用户名单
auth:密码
required:必须通过否则认证被拒绝
pam_userdb.so:认证密码
db=/etc/vsftpd/user:密码名单

在vim /etc/vsftpd/user 文件中编写普通用户以及密码
这里写图片描述

在vim /etc/pam.d/westos 文件中写入:
这里写图片描述
在 /etc/vsftpd/vsftpd.conf 文件中写入pam_service_name=westos和 guest_enable=YES
这里写图片描述

(2)虚拟帐号身份指定:

vim /etc/vsftpd/vsftpd.conf
guest_username=student   ##已经有的用户名称
systemctl restart vsftpd
chmod u-w /home/student   ##赋予权限
lftp 172.25.254.219  -u  user1   ##查看user1用户

在/etc/vsftpd/vsftpd.conf 文件中
这里写图片描述
这里写图片描述

四·虚拟账户家目录独立设定

mkdir /vftpdir      ##建立目录
touch /vftpdir/vftpfile
vim /etc/vsftpd/vsftpd.conf  
编写内容:local_root=/vftpdir    ##建立目录名称
systemctl restart vsftpd.service 
cd /vftpdir/
ls
mkdir user{1..3}  ##要和上一个实验的创建虚拟机帐号身份的文件名一致
ll
touch user1/user1file
touch user2/user2file      ##建立文件
touch user3/user3file
ls
cd user1
ll
vim /etc/vsftpd/vsftpd.conf
编写内容:local_root=/vftpdir/$USER
        user_sub_token=$USER
systemctl restart vsftpd.service 

lftp 172.25.254.219 -u user2
ls  

主配置文件中:
这里写图片描述
这里写图片描述
这里写图片描述

五·虚拟账户配置独立

mkdir user{1..3}/pub
vim /etc/vsftpd/vsftpd.conf
编写内容:user_config_dir=/etc/vsftpd/conf_dir
chgrp  student  user{1..3}/pub
chmod 775 user{1..3}/pub
cd  vftpdir
mkdir user{1..3}
vim /etc/vsftpd/vsftpd.conf
注释:anon_other_write_enable=YES   ##删除
     anon_upload_enable=YES        ##上传
     anon_max_rate=102400          ##限速
     anon_mkdir_write_enable=YES   ##可写
mkdir /etc/vsftpd/conf_dir -p       ##建立主配置文件中的目录
vim /etc/vsftpd/conf_dir/user2    ##给虚拟用户单独的上传权限
cat /etc/vsftpd/conf_dir/ftpuser2    ##ftpuser2可以上传
anon_upload_enable=YES
lftp  172.25.254.219  -u  user2    
cd pub/
put  /etc/passwd   ##可以上传
lftp  172.25.254.219  -u  user1
cd pub/
put  /etc/passwd   ##不可以上传

在配置文件中写入:
这里写图片描述
在 /etc/vsftpd/conf_dir/user2文件中写入单独上传权限:
这里写图片描述
这里写图片描述
user2可以上传:
这里写图片描述

七·还原最初环境

rm  -fr  /etc/vsftpd/     ##删除建立的目录
yum  install  ftp         ##重新安装ftp

这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值