04-FTP服务器搭建 vsftpd 本地帐户认证

一 基本配置和vsftp服务安装

1 安装Linux Centos7过程省略

2 修改主机名(要重新登录才会显示修改后的主机名)

[root@192 ~]# hostnamectl set-hostname FTP

3 安装net-tools、VIM,bash-completion sysstat

[root@192 ~]# yum -y install bash-completion net-tools vim*

4 检查vsftpd是否已安装

5 安装vsftpd

[root@ftp ~]# yum -y install vsftpd

6 启动vsftpd服务并设置开机启动

[root@ftp ~]# systemctl start vsftpd

[root@ftp ~]# systemctl enable vsftpd

Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

7 检查vsftpd服务是否正常启动

8 检查ftp服务端口是否正常

9 检查ftp服务是否运行

二 vsftpd配置文件

/etc/vsftpd/vsftpd.conf  #FTP主配置文件  

/etc/vsftpd/ftpusers    #拒绝用户登录到FTP服务器,系统默认是黑名单文件

/etc/vsftpd/user_list  #user_list需要参照userlist_deny来决定该文件是黑名单还是白名单

vsftpd通过ftpusers和user_list对用户进行ACL访问控制

注1:配置文件中的userlist_enable=YES,启用"禁止用户名单"功能。ftpusers默认是黑名单文件,user_list需要参照userlist_deny来决定该文件是黑名单还是白名单。userlist_deny=YES表示黑名单,userlist_deny-NO表示白名单。

注2:黑名单表示仅拒绝名单中的用户访问FTP,其他所有帐户默认允许访问FTP。白名单表示仅允许在名单中的用户访问FTP,其他所有帐户默认拒绝访问FTP。

/etc/vsftpd/user_list

/etc/vsftpd/ftpusers (系统默认黑名单)

三 用户添加和访问权限管理

vsftp常用三种登录方式:

(1)匿名登录(2)本地帐户登录(3)虚拟帐户登录

注1:如果启用本地帐户登录,需要设置anonymons_enable=NO,其默认路径为帐户个人家目录。

注2:开启本地帐户登录后,FTP用户可以离开家目录,进入系统其他目录中。需要设置chroot_local_user=YES,默认为NO。

注3:SELinux默认不允许FTP共享家目录

注4:如果要使用虚拟帐户登录,使用guest_enable=YES开启虚拟帐户功能。

案例1:配置本地FTP

(1)备份配置文件

[root@ftp vsftpd]# cp vsftpd.conf vsftpd.conf.bak

[root@ftp vsftpd]# ls

ftpusers  user_list  vsftpd.conf  vsftpd.conf.bak  vsftpd_conf_migrate.sh

(2)删除vsftpd配置文件中所有内容

使用快捷键删除所有内容

ESC :%d

(3)修改配置文件

anonymous_enable=NO        #禁止匿名访问

local_enable=YES             #启用本地帐户

#local_root=/softtest         #指定本地帐户登录ftp的根目录

write_enable=YES           #允许上传/下载文件

local_umask=022          # umask决定目录和文件被创建时得到的初始权限,0228进制。文件=666-022,目录=777-022,默认不给x位权限(go

chroot_local_user=YES|NO  

#chroot_local_user=YES时表示锁定用户在其主目录下。chroot_local_user=NO时表示不锁定用户在其主目录下,可以浏览根目录。

chroot_list_enable=YES|NO 

#当chroot_local_user=YES时,chroot_list_enable=YES表示开启白名单的功能。在 chroot_list名单中的用户不受限制。为例外用户。当chroot_local_user=NO时,chroot_list_enable=YES表示开启黑名单功能 。在 chroot_list名单中的用户受到限制在其主目录下,其他的用户为例外。

#chroot_list_file=/etc/vsftpd/chroot_list  #在此文件中添加例外用户,一行一个用户

listen=YES

pam_service_name=vsftpd

userlist_enable=YES|NO

#当userlist_enable=YES时,启用“禁用用户名单”功能。当userlist_enable=NO时,不启用上述功能。

userlist_deny=YES|NO  

#/etc/vsftpd/ftpusers

#userlist_file=/etc/vsftpd/user_list

#ftpusers为系统默认黑名单,在此名单中的用户永久不能访问FTP。user_list可为白名单、黑名单或无效名单(userlist_enable和userlist_deny为NO时)

其取决于userlist_deny的设置值。当userlist_deny=YES时,其为黑名单;当userlist_deny=NO时,其为白名单,此时除了白名单中的用户可以访问FTP外,其他的用户都不能访问。如果一个用户在白名单中,同时又在ftpusers名单中,该用户也不能访问FTP。

#tcp_wrappers=YES

#use_localtime=YES

#dual_log_enable=YES

allow_writeable_chroot=YES  

#ftpd_banner=“欢迎登录”   #Linux客户端登录才有此提示

#dirmessage_enable=YES   #当用户进入某个目录时,会显示该目录需要注意的容。

#xferlog_enable=YES

#xferlog_std_format=YES

            

(3)创建系统帐户和设置密码

    [root@ftp ~]# useradd -s /sbin/nologin dsa

[root@ftp ~]# useradd -s /sbin/nologin dsb

[root@ftp ~# useradd -s /sbin/nologin dsc

[root@ftp ~]# passwd dsa

Changing password for user dsa

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

[root@ftp ~]# passwd dsb

Changing password for user dsb.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

[root@ftp ~]# passwd dsc

Changing password for user dsc.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

(4)创建测试文件

[root@ftp ~]# touch /home/{dsa,dsb,dsc}/test.txt

(5)启动服务

注1:为了测试通过,暂时关闭系统防火墙和SELinux这二个组件。

[root@ftp ~]# setenforce 0

[root@ftp ~]# getenforce

Permissive

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

[root@ftp ~]# systemctl start vsftpd

[root@ftp ~]# systemctl enable vsftpd

(6)安装ftp客户端

[root@ftp ~]# yum -y install ftp

(7)访问测试

root用户登录时,提示530 Permission denied,Login failed.

(8)处理过程

1.将/etc/vsftpd/ftpusers和/etc/vsftpd/user_list中的root用户注释掉

2.在配置文件内写入 allow_writeable_chroot=YES, 给账户加入写入权限

3.使用创建的dsa、dsb和dsc进行测试,都出现530 Login incorrent。

4. vim /etc/shells,增加/sbin/nologin

5.再次访问测试

6.ls查看发现dsa的ftp主目录为其家目录

7.dsa试图进入系统的其他目录,如/opt目录,提示550,不能改变主目录。

(9)客户端软件访问测试

测试1:修改配置文件userlist_enable=YES,userlist_deny=NO。user_list根据主配置文件中的userlist_deny来决定该文件是黑名单还是白名单。在这个测试案例中,user_list=NO表示访文件为白名单。

ftpusers中将dsa用户注释掉,在user_list中也添加dsa用户。

•vsftpd.conf配置文件

   

•ftpusers名单

   

•userlist名单

  

•dsa用户可以访问

  

•root用户不可以访问

  

•将ftpusers中的dsa注释去掉后,再次测试提示530 Login incorrect . Login failed

  

结论

在配置中启用了白名单功能,并且将userlist_deny设置为NO,即表示在user_list名单中的用户允许访问FTP,其他用户不可访问。但是当ftpusers文件中同时有该用户dsa时,尽管user_list中允许dsa,拒绝大于允许,所以也会提530错误。

测试2:将userlist_enable设置为YES,userlist_deny设置为YES。即表示在ftpusers名单和user_list名单中的用户都不可以访问FTP,除此之外的其他用户都可以访问。user_list根据主配置文件中的userlist_deny来决定该文件是黑名单还是白名单。在这个测试案例中,user_list=YES为黑名单。在ftpusers中把dsa,和root注释掉,允许dsb和dsc。在user_list中允许root和dsa。。

验证dsa和root能否访问

验证dsb和dsc能否访问

•vsftpd.conf配置文件

  

•ftpusers名单

  

•userlist名单

   

•dsa访问测试

  

•root访问测试

  

•dsb和dsc访问测试

  

  

结论:

配置文件中修改userlist_enable=YES,userlist_deny=YES。ftpusers是默认的黑名单文件,userlist_deny=YES决定了user_list文件成为黑名单文件。即在配置文件中同时设置此二项时,在此二个文件名单的用户都无法访问FTP服务。

测试3:配置所有的ftp用户登陆后都进入指定的目录。

创建ftp目录并添加一个softtest.txt的文件

mkdir /softtest

touch /softtest softtest.txt

ftpusers名单

user-list名单

vsftpd.conf配置文件

.

重启vsftpd服务

测试验证用户登陆ftp后,是否进入指定的/softtest目录

创建文件,提示FTP服务器已拒绝

检查softtest目录权限,除了文件创建所有者写入权限外,go均没有w写入权限

chmod o+w softtest 给其他用户添加w写入权限

在ftp客户端上测试

上传文件

在ftp服务器上查看softtest文件夹

在Linux客户端下上传文件到FTP服务器

 

下载文件到本机

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值