Centos7 实战Vsftp服务-实战案例

Vsftp 实验案例一:(本地用户)html

试验版本:Linux7.X版本web

公司内部如今有一台FTP 和WEB 服务器,FTP 的功能主要用于维护公司的网站内容,包括上传文数据库

件、建立目录、更新网页等等。公司现有两个部门负责维护任务,他们分别适用team1 和team2vim

账号进行管理。先要求仅容许team1 和team2 账号登陆FTP 服务器,但不能登陆本地系统,并将服务器

这两个账号的根目录限制为/var/www/html,不能进入该目录之外的任何目录。测试

 

ftp 和www web服务器相结合。网站

www web服务器根目录:  /var/www/htmlui

只容许:team1和team2两用户 能够上传。 vsftp禁止匿名。spa

 

分析:rest

将FTP 和WEB 服务器作在一块儿是企业常常采用的方法,这样方便实现对网站的维护,为了加强安

全性,首先须要使用仅容许本地用户访问,并禁止匿名用户登陆。其次使用chroot 功能将team1

和team2 锁定在/var/www/html 目录下。若是须要删除文件则还须要注意本地权限

 

解决方案:

1)创建维护网站内容的ftp 账号team1 和team2 并禁止本地登陆,而后设置其密码

[root@localhost ~]# useradd -s /sbin/nologin team1

[root@localhost ~]# useradd -s /sbin/nologin team2

[root@localhost ~]# echo "123456" | passwd --stdin team1

Changing password for user team1.

passwd: all authentication tokens updated successfully.

[root@localhost ~]# echo "123456" | passwd --stdin team2

Changing password for user team2.

passwd: all authentication tokens updated successfully.

2)配置vsftpd.conf 主配置文件并做相应修改

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO:禁止匿名用户登陆

local_enable=YES:容许本地用户登陆

 改:

 

 

为:

 

 

 

local_root=/var/www/html:设置本地用户的根目录为/var/www/html

chroot_list_enable=YES:激chroot 功能

chroot_list_file=/etc/vsftpd/chroot_list:设置锁定用户在根目录中的列表文件。此文件存放要锁定的用户名;

allow_writeable_chroot=YES :容许锁定的用户有写的权限

保存退出;

(3)创建/etc/vsftpd/chroot_list 文件,添加team1 和team2 账号

[root@localhost vsftpd]# touch /etc/vsftpd/chroot_list

[root@localhost ~]# ll !$

-rw-r--r-- 1 root root 0 Nov 10 17:08 /etc/vsftpd/chroot_list

[root@xuegod63 ~]# vim /etc/vsftpd/chroot_list  #写入如下内容,一行,一个用户名

team1

team2

(4)修改本地权限

[root@localhost ~]# ll -d /var/www/html/

drwxr-xr-x. 2 root root 4096 Oct  6  2011 /var/www/html/

[root@localhost ~]# chmod -R o+w /var/www/html/

[root@localhost ~]# ll -d /var/www/html/

drwxr-xrwx. 2 root root 4096 Oct  6  2011 /var/www/html/

(5)重启vsftpd 服务使配置生效

service vsftpd restart

 

vsftp实验案例二:(匿名用户,建立文件下载上传文件。。。)

公司技术部准备搭建一台功能简单的FTP 服务器,容许全部员工上传和下载文件,并容许建立用

户本身的目录。

分析:

容许全部员工上传和下载文件须要设置成容许匿名用户登陆而且须要将容许匿名用户上传功能

开启,

anon_mkdir_write_enable 字段能够控制是否容许匿名用户建立目录。

[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.back

vim  /etc/vsftpd/vsftpd.conf  #修改如下内容

 

容许匿名用户访问

anonymous_enable=YES

容许匿名用户上传文件并能够建立目录

anon_upload_enable=YES

anon_mkdir_write_enable=YES

 

 

Vsftp实验案例二:(匿名用户)

公司技术部准备搭建一台功能简单的FTP 服务器,容许全部员工上传和下载文件,并容许建立用

户本身的目录。

分析:

容许全部员工上传和下载文件须要设置成容许匿名用户登陆而且须要将容许匿名用户上传功能

开启,

anon_mkdir_write_enable 字段能够控制是否容许匿名用户建立目录。

[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.back

vim  /etc/vsftpd/vsftpd.conf  #修改如下内容

 

容许匿名用户访问

anonymous_enable=YES

容许匿名用户上传文件并能够建立目录

anon_upload_enable=YES

anon_mkdir_write_enable=YES

 

 

 

启动服务:

service vsftpd restart

测试:

 

 

[root@localhost vsftpd]# chown  ftp.ftp  /var/ftp/pub/

而后测试,是能够新建文件夹了,可是不能重命名,不能删除!


[root@localhost vsftpd]# vim vsftpd.conf

anon_other_write_enable=YES  ##默认没有,须要手动添加下这行

重启服务,便可重命名文件夹。

下面咱们来一步一步的实现,先修改目录权限,建立一个公司上传用的目录,叫xuegoddata,设置拥有者为ftp 用户全部,目录权限是755

[root@localhost vsftpd]# mkdir /var/ftp/xuegoddata

[root@localhost vsftpd]# chown ftp.ftp /var/ftp/xuegoddata/

[root@localhost vsftpd]# ll -d !$

ll -d /var/ftp/xuegoddata/

drwxr-xr-x 2 ftp root 4096 Mar  9 19:30 /var/ftp/xuegoddata/

 

而后从新启动服务

[root@localhost ~]# service vsftpd restart

Shutting down vsftpd:                                      [  OK  ]

Starting vsftpd for vsftpd:                                [  OK  ]

 

最后发现能删除和建立文件了;实验完成!

 

 

Vsftp实验案例三:(虚拟用户登陆ftp)

实验说明;

1、容许全部人访问/var/ftp/soft目录不能建立文件和目录,不容许上传文件,devadm虚拟户能够对该目录有修改上传,删除等操做权限。

2、sales虚拟用户只能读取/var/market。其他没有任何权限,salesadm对该目录有删除修改、上传、建立等权限。

3、不容许本地用户登陆。

一、 关闭防火墙

[root@localhost ~]# systemctl stop firewalld.service

[root@localhost ~]# setenforce 0

二、 安装vsftpd软件

三、 创建虚拟用户帐户文件

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

devadm

123456a

sales

123456b

salesadm

123456c

 

四、 建立数据库文件

[root@localhost ~]# cd /etc/vsftpd/

[root@localhost vsftpd]# db_load -T -t hash -f vusers.list vusers.db

[root@localhost vsftpd]# chmod 600 /etc/vsftpd/vusers.*

[root@localhost vsftpd]# file  vusers.db    #查看转换后的文件类型

vusers.db: Berkeley DB (Hash, version 9, native byte-order)     #提示这些是成了

 

5、添加虚拟用户的映射帐号、FTP根目录

    [root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin zhangsan

[root@localhost ~]# chmod 755 /var/ftproot

 

六、 为虚拟用户创建PAM认证文件

[root@localhost ~]# vim /etc/pam.d/vsftpd.vu

auth    required pam_userdb.so db=/etc/vsftpd/vusers

account required pam_userdb.so db=/etc/vsftpd/vusers

 

七、 修改vsftpd配置,添加虚拟用户支持

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

    pam_service_name=vsftpd.vu         //修改

userlist_enable=NO                   //修改

anon_root=/var/ftp/soft               //末尾添加

guest_enable=yes                     //添加

guest_username=zhangsan           //添加

user_config_dir=/etc/vsftpd/vusers_dir       //添加

allow_writeable_chroot=YES             //添加

 

八、 建立虚拟用户独立的配置文件

[root@localhost vsftpd]# mkdir /etc/vsftpd/vusers_dir

[root@localhost vsftpd]# cd /etc/vsftpd/vusers_dir

[root@localhost vusers_dir]# touch devadm

[root@localhost vusers_dir]# vim devadm

local_root=/var/ftp/soft

write_enable=YES

anon_upload_enable=yes

anon_mkdir_write_enable=yes

anon_other_write_enable=yes

    root@localhost vusers_dir]# vim sales

       local_root=/var/market

    [root@localhost vusers_dir]# vim salesadm

       local_root=/var/market

write_enable=YES

anon_upload_enable=yes

anon_mkdir_write_enable=yes

anon_other_write_enable=yes

[root@localhost vusers_dir]# systemctl restart vsftpd

 

9、建立目录和文件准备验证(遇到文件上传不了或者修改不了的,记得修改权限或者属主)

[root@localhost vsftpd]# mkdir /var/ftp/soft

[root@localhost vusers_dir]# touch /var/ftp/soft/devadm

[root@localhost vusers_dir]# mkdir /var/market

[root@localhost var]# chmod 755 /var/market/

[root@localhost vusers_dir]# touch /var/market/sales

[root@localhost var]# chmod 755 /var/ftp/soft

[root@localhost vusers_dir]# chown zhangsan /var/market

[root@localhost vusers_dir]# chown zhangsan /var/ftp/soft