linux下vsftp服务

实验前准备工作:

关闭selinux(selinux是一种访问控制体系,会自动更改ftp的不安全的设置)

vim /etc/sysconfig/selinux
在这里 SELINUX=enforcing
改为 SELINUX=disable
然后重启reboot  
命令行getenforce  

若显示为disabled表示更改成功

##################ftp服务的基本信息###############################################################

ftp:文件传输协议,控制文件的传输。


匿名用户默认的登陆目录为/var/pub/
本地用户默认的登陆目录为/home。家目录
服务端安装vstftp服务和lftp服务,客户端安装lftp服务
软件安装包:vsftpd

默认发布目录:/var/ftp

协议接口:21/tcp

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

报错id的解析:500 ##文件系统权限过大

530 ##用户认证失败

550 ##服务本身功能未开放

553 ##本地文件系统权限过小

###################2.部署ftp服务##########################################################################

在服务端(server虚拟机)

yum install vsftpd lftp -y    
systemctl  start vsftpd                                       打开服务

systemctl  enable vsftpd                              开机启动服务

firewall-cmd --get-services                                   查看防火墙可以允许的服务

firewall-cmd --permanent --add-service=ftp 将ftp服务加进防火墙

firewall-cmd --reload 重新加载防火墙

firewall-cmd --list-all 查看服务状态


在客户端lftp 服务端ip,连接服务端查看能否连接成功,或者服务端也装有lftp,也可以查看是否连接成功。

######################3.vsftp服务的配置###################################################################################

匿名用户:

###########1.匿名用户家目录的修改

在服务端虚拟机:

[root@localhost ~]# cd /var/ftp

[root@localhost ftp]# ls

pub

[root@localhost ftp]# touch westosfile ##建立一个文件有利于后面操作查看的结果

[root@localhost ftp]# ls

pub westosfile

[root@localhost ftp]# mkdir /ftpdir/westosdir -p ##建立一个新的家目录

[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf

13 anon_root=/ftpdir ##用户家目录修改

[root@localhost ftp]# systemctl restart vsftpd ##重启vsftpd

[root@localhost ftp]# lftp 172.25.254.228

lftp 172.25.254.228:~> ls

drwxr-xr-x 2 0 0 6 May 07 11:10 westosdir ##可以看到家目录的修改


################2.匿名用户登录限制##################################

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=YES|NO ##N0表示不可以登录,YES表示可以。

################3.匿名用户上传##############################

vim /etc/vsftpd/vsftpd.conf

write_enable=YES ##ftp写权限(包括本地用户),匿名用户还有独立的开关,

anon_upload_enable=YES ##匿名用户上传

systemctl restart vsftpd

chgrp ftp /var/ftp/pub ##需要修改文件夹所属组

chmod 775 /var/ftp/pub ##修改权限,修改权限后匿名用户才能上传文件到put目录

[root@localhost ftp]# vim /etc/vsftpd/vsftpd.conf

28 anon_upload_enable=YES ##匿名用户上传

[root@localhost ftp]# systemctl restart vsftpd

[root@localhost ftp]# chgrp ftp /var/ftp/pub ##建立一个组


[root@localhost ftp]# chmod 775 /var/ftp/pub

[root@localhost ftp]# lftp 172.25.254.219 ##匿名用户

lftp 172.25.254.228:~> ls

drwxr-xr-x 2 0 0 6 Mar 07 2014 pub

-rw-r--r-- 1 0 0 0 May 05 07:33 westosfile

[root@localhost ftp]# lftp 172.25.254.219

lftp 172.25.254.219:~> cd /pub ##必须要有这个目录才可以上传到这里

cd ok, cwd=/pub

lftp 172.25.254.219:/pub> put /etc/passwd

2397 bytes transferred ##上传成功



###############4.匿名用户删除############

编写内容: 

这里写图片描述


###############5.匿名用户的下载####################

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

修改: anon_world_readable_only=NO   ##设定参数为no表示匿名用户可以下载
[root@localhost ~]# systemctl restart vsftpd
[root@localhost ~]# lftp 172.25.254.228
lftp 172.25.254.228:~> cd /pub
cd ok, cwd=/pub
lftp 172.25.254.228:/pub> ls
-rw-------    1 14       50           2048 May 08 12:40 passwd
lftp 172.25.254.228:/pub> get passwd   ##下载pub目录里有的文件
2048 bytes transferred   ##下载成功

##################6.匿名用户建立目录##################

vim /etc/vsftpd/vsftpd.conf

编写:


#####################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.

######################8.匿名用户限制上传速度###########################


cd /mnt/

dd if=/dev/zero of=/mnt/bigfile bs=1M count=2000 ##截取

vim /etc/vsftpd/vsftpd.conf

systemctl restart vsftpd

lftp 172.25.254.219

cd pub/

put /mnt/bigfile



本地用户:

local_enable=YES|NO ##本地用户登陆限制
write_enable=YES|NO ##本地用户写权限限制
local_root=/directory ##本地用户家目录修改
local_umask=xxx ##本地用户上传文件权限

#########################1,本地用户上传文件权限######

没有修改权限时:

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf

编写:24 local_umask=022 ##本地用户上传权限

[root@localhost ~]# systemctl restart vsftpd

[root@localhost ~]# lftp 172.25.254.228 -u student

Password:

lftp student@172.25.254.228:~> put /etc/passwd

2048 bytes transferred

lftp student@172.25.254.228:~> ls

-rw-r--r-- 1 1000 1000 2048 May 08 13:26 passwd ##上传的passwd权限为644

drwxrwxr-x 2 1000 1000 19 May 08 12:27 pub

####################2.限制本地用户浏览/目录#############

chmod u-w /home/* ##所有用户被锁定到自己的家目录中

vim /etc/vsftpd/vsftpd.conf

102 chroot_local_user=YES ##默认任何人都不可以访问家目录

systemctl restart vsftpd

lftp 172.25.254.228 -u student

lftp student@172.25.254.228:~> ls

drwxrwxr-x 2 1000 1000 19 May 08 12:27 pub

lftp student@172.25.254.228:/> cd / ##切换到 / 下家目录,不能访问到

lftp student@172.25.254.228:/> ls

drwxrwxr-x 2 1000 1000 19 May 08 12:27 pub


####################3.本地用户黑名单的建立

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 ##看不到/目录


用户名当用户是非黑名单用户时,可以看到/目录


######4.本地用户白名单的建立

白名单的文件配置非常相像,只是要把主配置文件的所有人浏览改为YES,意思是所有人不能浏览。只有白名单里的用户可以。


白名单可以查看目录


除了白名单以外的用户查看不到目录


##############################3.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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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用户
  • 1
  • 2
  • 3
  • 4
  • 5

在/etc/vsftpd/vsftpd.conf 文件中 


###########3.虚拟账户家目录独立设定

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  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

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



####################五·虚拟账户配置独立######################

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   ##不可以上传
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

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

user2可以上传: 


猜你喜欢

转载自blog.csdn.net/chao199512/article/details/80269212