ftp的用户权限配置

文件服务:

应用层:ftp

内核级网络文件系统:nfs

POSIX(可移植操作系统接口 Portable Operating System Interface of UNIX,缩写为 POSIX

API(应用程序编程接口)

跨平台的网络文件系统:cifs samba

 

网络存储:

NASNetwork
Attached Stoage
,文件系统级接口;

SANStorage Area
Network
,块级别接口;iSCSI

 

ftp:应用层协议

file
transfer protocol
21/tcp

C/S:

Client
<–> Server

 

连接:

命令连接;

数据连接:、

 

基于不同的套接字通信;

 

数据传输模式:

文本格式:

二进制格式:

 

数据连接:

主动模式:服务端通过20/tcp连接客户端命令连接端口+1的端口;

问题:

被动模式:客户端使用随机端口连接服务器某随机端口;

客户端发出数据传输请求之后,服务器响应一个报文给客户端;

112,123

 

协议安全:

明文;认证时传输的账号和密码均为明文;

 

安全增强:

ftps:
ftp over ssl
(基于传输层的协议,更多时候通用安全通信框架)

sftp:
ftp over ssh     
(基于应用层的协议,完成用户远程认证登录)

 

C/S:协议的实现:就是开发出来符合协议要求的应用软件

SServ-UIISFileZilla
Server

C

CLIftp, lftp,
curl, wget, lftpget, …

GUIFileZilla,
flashfxp, cute, gftp, …

 

S:开源解决方案;

wuftpdwashington
university

vsftpdvery secure
ftp daemon

pureftp

proftpd

 

程序环境:initservice
vsftpd start
启动服务,监听端口为21

主程序:/usr/sbin/vsftpd

主配置文件:/etc/vsftpd/vsftpd.conf

数据根目录:/var/ftp

Systemd
Unit File
/usr/lib/systemd/system/vsftpd.service

 

配置vsftpd

 

用户类别:

匿名用户:anonymous –>
ftp, /var/ftp

系统用户: 至少禁止系统用户访问ftp服务,/etc/vsftpd/ftpusersPAM 插入式认证模块(/etc/pam.d/vsftpd);

虚拟用户:

 

用户通过vsftpd服务访问到的默认路径,是用户自己的家目录;默认可以自己有权限访问的所有路径间切换;

禁锢用户于其家目录中;

 

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

directive
value

注意:directive之前不能有多余字符;

 

匿名用户:

anonymous_enable=YES 是否允许匿名账户访问,默认是允许,NO表示禁止

anon_upload_enable=YES        默认处于注释状态,表示是否允许用户上传文件

anon_mkdir_write_enable=YES                是否允许用户创建目录,默认为开启,编辑开启

anon_other_write_enable=YES                是否允许用户删除文件,默认未开启,自己添加

 

系统用户:

使用:lftp -u centos
172.18.253.24
,登录本地用户

local_enable=YES

是否允许系统用户或者本地用户登录,默认允许,且可以上传文件、删除文件、创建目录、删除目录

write_enable=YES

 

辅助配置文件/etc/vsftpd/ftpusers

列在此文件中的用户 均禁止使用ftp服务;

 

chroot_local_user=YES

禁锢所有本地用户 于其家目录;需要事先去除用户对家目录的写权限;

 

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

禁锢列表中文件存在的用户于其家目录中;需要事先去除用户对家目录的写权限;

 

传输日志:

xferlog_enable=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

 

守护进程的类型:

standalone:独立守护进程;由服务进程自行监听套按字,并接收用户访问请求;

transient:瞬时守护进程;由受托管方代为监听套按字,服务进程没有访问请求时不启动;当托管方收到访问请求时,才启动服务进程;

CentOS 6xinetd独立守护进程,
/etc/xinetd.d/,

CentOS 7:由systemd代为监听;

 

控制可登录vsftpd服务的用户列表:

userlist_enable=YES

启用/etc/vsftpd/user_list文件来控制可登录用户;

userlist_deny=

YES:意味着此为黑名单;

NO:白名单;

 

虚拟用户:

用户账号存储于何处?

文件、MySQLRedis

 

vsftpd:认证功能托管给pam

基于何种存储服务来存储用户信息,以及对存储服务的驱动要靠pam实现;

 

pam_mysql

# yum
install mariadb-devel pam-devel

 

# ./configure
–with-pam=/usr –with-mysql=/usr –with-pam-mods-dir=/usr/lib64/security

# make
&& make install

 

创建数据库、授权用户、创建账号和密码;

 

提供配置文件:/etc/pam.d/vsftpd.vusers

auth
required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu
host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password
crypt=2

account
required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu
host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password
crypt=2

 

配置vsftpd,添加或修改以下选项:

pam_service_name=vsftpd.vusers
                
文件名必须和上面创建的文件同名

guest_enable=YES

guest_username=vuser         其中vuser是可以随意创建的

 

虚拟用户的写权限,通过匿名一样的指令进行定义;

还能实现不同的用户有不同的权限;

 

1.vsftp.conf里面加入如下一行

user_config_dir=/etc/vsftpd/vusers_config/

2.其次在/etc/vsftpd/vusers_config,建立以用户名命名的文件并编辑

vim tom

anon_upload_enbale=NO
#
不允许虚拟用户tom上传文件

vim
jerry

anon_upload_enable=YES        #允许虚拟用户jerry上传文件

原创文章,作者:oranix,如若转载,请注明出处:http://www.178linux.com/74592

(1)
oranixoranix
上一篇 2017-05-02 08:56
下一篇 2017-05-02 11:39

相关推荐

  • 修改Linux命令终端提示符

    作业1. 设置自己的终端提示符,要求字符终端登录时:     a> 需要带颜色     b> 需要显示当前执行到了第几条命令     c> 显示当前登录终端,主机名和当前时间     这可以通…

    Linux干货 2016-10-17
  • Linux基础知识—文件系统和常用命令解读

    一、    计算机组成         计算机组成(Computer Composition)指的是计算机系统结构(Computer Architecture)的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。其任务是在指令集系统结构确定分配给硬件系…

    Linux干货 2016-09-18
  • N26-第二周博客作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相 关示例演示。 文件管理类命令:mkdir rmdir cp rm mv ①mkdir命令:创建目录 格式:mkdir [OPTION]… DIRECTORY… option -m, –mode=MODE -p, –paren…

    Linux干货 2017-02-02
  • Linux运维学习历程-第五天-Linux文件系统与管理

    Linux运维学习历程-第五天-Linux文件系统与管理 本章内容 文件系统  文件和目录被组织成一个单根倒置树结构从根目录下开始,用“/” 表示根文件系统(rootfs) :root filesystem,用路径分隔的 /;遵循FHS: (Filesystem Hierarchy Standard)  文件系统分层结构:LSB Linu…

    Linux干货 2016-08-04
  • 我与Linux的第一次亲密接触

        作为一个新手,经过一周的学习,我对Linux目前有了些许的了解,从Linux的发展史中,开源共享精神深深的感染了我,也使得我对Linux的兴趣更加浓厚。对于一个一直翘计算机课的我来说,入门和基础是一项非常艰巨的任务,初期为了搭建学习的环境,也是费了不小的功夫,相信许多萌也对此有很大的感触,在这里,我来和大家分享一下如何去构建环境。…

    Linux干货 2017-03-26
  • 一些鲜为人知的编程事实

    我的程序员经历让我明白了一些关于软件开发的事情。下面是一些在编程中可能会让人感到诧异的事情: 一个程序员用了大约只用了10%-20%的时间来编码,而且大多数程序员,无论他的水平如何,其平均每天只有10-12行的代码最终会进入最终的软件产品中。这是因为,优秀的程序员会花费90%的时间来思考、调查、研究最佳的设计。而糟糕的程序员则会花费90%的时间来调试代码,并…

    Linux干货 2016-07-11