linux中ftp服务的搭建、匿名用户的管理、本地用户的管理、虚拟用户pam认证的配置及管理
摘要:本文主要介绍了ftp服务的搭建,以及对ftp服务中Anonymous(匿名)用户、Local(本地)用户、Guest(虚拟)用户、文件权限的管理。
###一.实验前准备:
首先搭建yum源; 然后下载对应的ftp服务的软件,这里我们使用vsftp这款提供ftp服务的软件; 若主机上没有 lftp 这个命令,还要下载该命令的软件包。 这些操作过程的详细步骤请参考博主之前的文章:yum源的搭建。
###二.开启vsftpd服务:
#1.首先开启vsftp服务器,并设置开机开启该服务。
#2.使防火墙不阻止ftp服务:
通过下图我们发现防火墙是没开启ftp服务的功能的。
下面我们开启防火墙对ftp服务不阻塞的功能; 先用firewall-config打开如下窗口:
左上方选项改为 permanent,中间的服务选项部分勾选上ftp。
最后上方的 Options 选项选择载入设置。
到这里防火墙就不会对ftp服务进行阻塞了,如下图:
#三、关闭内核的selinux功能:
我们用getenforce来查看selinux的状态,如图表示seliinux是开启状态。
我们编辑selinux的配置文件来关闭该功能: vim /etc/sysconfig/selinux
然后重启系统,再次开机后发现selinux已经是关闭状态。注意修改完配置文件后必须重启系统,因为该配置文件是被内核记录的,只有通过重启,让内核重新记录配置中的内容才能生效。
此时ftp服务的前期搭建就算完成了,下面我们进行ftp服务的管理
# 四 、对vsftpd服务的管理:
###1.用户登陆的的方式:
匿名拥护呼登陆后的路径: /var/ftp
匿名用户登陆的命令 : lftp 172.25.254.13
本地用户登陆后的路径 /home/username
本地用户登陆命令: lftp 172.25.254.13 -u student
###2.vsftpd服务的配置文件:
/etc/vsftpd/vsftpd.conf
###3.配置匿名用户是否可登陆:
编辑vsftpd的配置文件:vim /etc/vsftpd/vsftpd.conf, 配置anonymous_enable=YES,表示允许匿名用户登陆;NO表示不允许。
修改为不允许匿名用户登陆ftp服务器:
博主等了好长时间还不能浏览目录,显示正在链接,这种情况一般就表示不能完成认证了,若出现 530 报错,就更证明了认证未完成,如下图。
##4、配置本地用户可登陆
本地用户指你系统中家目录里的用户,我们编辑vsdtpd的配置文件,添加 local_enable=YES,这表示允许本地用户登陆,修改为NO则表示不允许。
修改为local_enable=NO:
此时本地用户已经不能登陆vsftpd服务了:
##5、配置本地用户是否可上传:
首先为配置本地用户可写权限: write_enable=YES
接着我们登陆试试看:
而且还具有删除、建目录、下载的权限:
若修改为不可写:write_enable=NO,则不能上传、不能删除、不能创建目录:
只能够下载喽:
## 5.配置匿名用户的上传和下载:
配置之前的现象:
给配置文件添上: anon_upload_enable=YES
再次尝试去上传,还是不行,提示553报错,这表示文件系统权限拒绝:
我们地修改pub文件的权限和用户组属性,所以做如下操作:
现在再去试着上传文件就可以上传了:
## 6.配置匿名用户的下载功能:
修改配置文件,添加:anon_world_readable_only=NO,现象如下:
# 7.配置使匿名用户可以创建目录:
添加配置: anon_mkdir_write_enable=YES , 现象如下:
## 8. 配置匿名用户的删除权限:
添加配置 anon_other_write_enable=YES,现象如下:
## 9.配置限制用户的上传速度:
我们先创建一个1Gb的文件:bigfile
然后登陆ftp上传该文件:
平均速率30Mb/s,贼爽,但是若你是运维人员,你就知道带宽是多么贵,不能这么让一个人占用了,所以我们得限速:
添加配置:anon_max_rate=10240,这表示限制速率再100KB/S左右;
然后再试着上传改文件,刚开始可能超出100KB/S很多,但慢慢会下降,最后均速被限制到100Kb/s左右了,如下图:
## 10. 配置使登陆ftp得连接数为预期所想的;
我们使只能有两个用户同时登陆ftp服务器。
在这之前,先用三个用户登陆ftp服务器:
现在我们添加配置: max_clients=2 ,意思是限制登陆得连接数量为2。
我们再用三个用户登陆看看结果,第三个用户已经不能登陆上去了:
##11. 配置 指定匿名用户登陆的目录:
匿名用户默认的登陆目录是/var/ftp,现在我们指定登陆目录为:/245room。
我们添加配置:anon_root=/245room,并在根下建立245room得目录,并在里面建立个file文件作为标记:
然后我们匿名登陆ftp,发现我们进的目录就是我们指定得目录:
## 12.配置匿名用户登陆ftp时 登陆的用户身份:
首先添加配置信息: chown_uploads=YES 和 chown_uploads=YES:
在登陆ftp之前,我们先看一下student用户的uid是多少;然后我们登陆ftp,上传文件:
现在我们查看上传文件的用户是谁,如下图,就是student这个用户:
## 13.配置匿名用户上传的文件的权限 和新建的目录的权限:
我们先看一下默认新建文件和目录的权限:
现在我们试着去修改这个权限为,先添加配置文件 anon_umask=022 ;若不出意外,上传的文件的权限为 644,目录为755。
现在我们看是否符合预期:
# 14. 配置指定用户上传的文件的权限 和新建的目录的权限:
配置文件添加:chown_uploads=YES 和 chown_username=student 和 chown_upload_mode=0644
这个实验相当于把上两个实验的配置内容全都开启,这里不再赘述详细过程。
# 15.指定本地用户登陆ftp后的目录:
添加配置:local_root=/245room ,即可实现指定本地用户登陆的目录。
在根目录之前我们已经创建过 245room 这个目录,这里我们只需要在里头新建一个标记文件 file2 即可。
# 16.指定本地用户的上传文件权限:
修改配置文件为:local_umask=077,若符合预期,则新建的文件权限应为600,目录权限应该为700。
我们看结果如何:
# 17.锁定用户只能在自己的家目录下:
实验前通过观察,本地用户可以切换到根目录下:
配置文件添加 /etc/vsftpd/chroot_list, 然后修改家目录下用户的权限 chmod u-w /home/* :
若不修改家目录下用户目录的权限,则如下进自己的目录会报550的错误:
修改权限后,我们的目的就达到了:
suzhao 用户也不能切换到根目录:
# 18.设置 锁定本地用户只能访问自己家目录的 黑名单:
先添加这三条配置:chroot_list_enable=YES 和 chroot_list_file=/etc/vsftpd/chroot_list 和 chroot_local_user=NO:
接着,在/etc/vsftpd 目录中,创建文件 chroot_list,这个是锁定的用户的黑名单,我们添加 student 这个用户进去:
然后重启网络,然后用student用户登陆ftp服务器,发现student用户不能切换到根目录:
而其它本地用户可以切换到根目录下:
# 19.设置 锁定本地用户只能访问自己家目录的 白名单:
将上个实验的图的配置修改如下即可
依旧是 student这个用户在白名单中:
重启网络后,用student用户登陆ftp服务器,发现student 可以切换到根目录,而其它本地用户不可以。
# 20.配置用户登陆的黑名单:
在/etc/vsftpf 目录下的 ftpusers 和user_list 这两个文件即为ftp服务默认的两个黑名单; ftpusers 默认是永久的黑名单,而user_list为临时黑名单;什么叫临时黑名单?就是通过修改配置文件可能变成白名单
我们将 student用户添加到永久黑名单:
student用户不能登陆ftp服务器了:
user_list文件也有同样的功效,这里不再赘述了。
# 20.配置用户登陆的白名单:
这个配置的安全性就极高了,只有在user_list名单中的用户才能登陆。
首先修改配置文件,如下图:
接着我们将student用户添加进user_list名单:
然后进行测试,在user_list中的student用户可以登陆服务器:
而不在user_list名单中的用户都被拒绝登陆:
匿名用户也被拒绝:
## 21.ftp虚拟用户使用pam认证的的设定:
1.创建虚拟用户帐号身份:
切换到该目录下:cd /etc/vsftpd/
创建并编辑改文件:vim ftpuserlogin,下图表示创建三个虚拟用户,这三个用户的密码分别为123、456、789。
2. 给该文件加密:
使用该命令进行加密: db_load -T -t hash -f ftpuserlogin ftpuserlogin.db
下图的ftpuserlogin.db即为加密生成的文件:
3.使用pam这个服务进行认证工作:
我们可以把pam提供的服务当作一个看门的大爷,这个大爷手上有个小区人员的名单,如果来的人报上姓名和密码,若符合贼进来,不符合,GUN!
首先进入pam的服务目录下:cd /etc/pam.d/
创建并添加该大爷手中的名单,也就是虚拟用户的名单: vim westos ,如下:
第一行对用户进行确认:account表示账户,required表示允许或者拒绝,pam_userdb.so就是大爷,最后是承载用户和用户对应密码的那个文件的路径。
第二行对密码进行核实:和第一行不同的是 auth,这代表密码的意思。
4.修改vsftpd的配置文件,让vsftpd对创建的虚拟账户采用pam的认证方式:
编辑vsftpd的配置文件
修改和添加三条配置:
pam_service_name=westos
guest_enable=YES
guest_username=ftp
现在重启配置,开始测试:
匿名用户要通过pam认证才能登陆ftp服务的实验就完成了。
# 22.对不同虚拟用户设置不同的权限:
eg:只让xuhao 这个用户具有上传文件、删除文件、下载文件的权限、创建目录的权限,其它用户只能下载文件。
1.首先创建虚拟用户的家目录以及修改权限:
2.修改vsftpd的配置文件:
在配置文件中添加配置:user_config_dir=/etc/vsftpd/configdir
3.创建子用户的权限文件:
在/etc/vsftpd/下创建configdir1:
mkdir /etc/vsftpd/configdir1
cd configdir
先给xuhao这个用户配置动作权限:
第一步测试xuhao的权限时,发现权限是没问题的,但是不能回到咱们第一步给虚拟用户建的家目录,这是因为我们就没有在文件中进行家目录配置声明,应做修改如下:
测试看是否更改访问家目录的位置成功:
继续进行权限的配置,现在给tianfeng 这个用户配置可下载权限:
同样的给chengyuan这个用户设置可下载权限:
接下来我们进行测试:
先测试xuhao 的权限
测试发现xuhao不能实现上传功能,问题可能是用户本身目录权限开的太大,我们去解决:
减少掉这三个用户自身目录的写权限:
继续测试xuhao用户的权限,还是不行,权限太大,参考一下系统的家目录给的权限,最后把三个用户目录权限设置成500:
我靠再继续测试xuhao这个用户....乱了
删掉目录重建。。。 这时才发现第一步建目录时权限就给错了,后面改的错上加错,权限应该为775。
这时再测试就没问题了:
创建好另外两个用户的家目录并设置好权限:
再测试tianfeng这个用户:
如我们预期所设,它不能上传、创建目录、删除文件,但能下载文件。
再测试最后一个用户chengyuan:
符合预期的权限设置。
阅读更多
- [Linux]FTP/VSFTP/配置文件/本地匿名虚拟用户访问/ftp客户端使用
- 搭建FTP服务,实现三种方式的访问:1.匿名访问;2,本地用户访问;3虚拟用户访问。
- 菜鸟学Linux之五:FTP的管理之虚拟用户的搭建与部署
- linux中FTP服务搭建详解--3.虚拟用户
- linux ftp_vsftp配置匿名用户,本地用户上传下载
- Centos 6.5上Apache + PAM + SVN服务安装配置(使用本地系统用户认证)
- Ubunton下搭建ftp服务器 实现虚拟用户、本地用户、匿名用户的登陆及权限
- centOS6.8 ftp服务 安装配置 基于本地用户和虚拟用户
- FTP匿名用户,本地用户,虚拟用户的搭建与详解
- vsftp匿名用户,本地用户,虚拟用户mysql认证详情配置
- Linux 下的FTP服务-2-vsftpd配置虚拟用户
- FTP服务系列之vsftpd+pam+mysql实现虚拟用户认证
- Ubuntu下同时搭建支持匿名、本地、虚拟用户的ftp服务器
- centos6.5下vsftpd服务的安装及配置并通过pam认证实现虚拟用户文件共享
- Linux上FTP服务的相关配置2:搭建FTPs及虚拟账号
- 菜鸟学Linux之五:FTP的管理之虚拟用户的搭建与部署
- LinuxFTP服务搭建及创建虚拟用户
- ubuntu vsftpd虚拟用户配置/ubuntu12.04上搭建vsftpd服务示例linux
- linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建
- CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户