大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 操作系统 -> FreeBSD -> FreeBSD连载(87):基于用户的访问控制

FreeBSD连载(87):基于用户的访问控制

时间: 2021-07-31 作者:daque

FreeBSD连载(87):基于用户的访问控制

 

鉴于用户的考察遏制

  更庄重、灵验的遏制本领仍旧鉴于用户和对应的口令对欣赏存户举行遏制。这使得对这个目次举行强迫性的养护,欣赏器用户必需输出正当的用户名和精确的口令本领欣赏网页。即使要对准用户对考察效劳器的存户举行遏制,开始就要树立考察遏制文献为对用户举行认证,所以要承诺目次考察遏制文献中完备authconfig的树立。

  树立用户认证须要为这个目次指定authname、authtype和authuserfile 训令,authuserfile设置一个口令文献,那么尔后就不妨运用require valid-user吩咐让存户输出名字和精确的口令,按照这个口令文献对用户的身份举行考证。authname设置这个认证的标识,用来归来给欣赏器用户,起到提醒效率。authtype设置运用的认证加密典型,常常运用 basic,即运用unix的规范加密算法举行加密。

authuserfile /usr/local/etc/htpasswdauthname securityauthauthtype basicrequire vaild-user

  这个例子里,运用/usr/local/etc/htpasswd作口令文献,运用basic的加密认证本领,并设置authname为securityauth。

  固然欣赏器考察每个运用这种认证办法养护的网页都须要进步行认证,但是不会每考察一次网页都让用户输出用户名和口令,由于欣赏器会将用户输出的用户和口令数据生存起来,历次须要认证的功夫就机动举行认证操纵。因为认证是经过h ead乞求来实行的,所以它不会感化欣赏器表露的网页。但是,用户有大概运用欣赏器考察了多个各别的对用户举行认证的网页,那么欣赏器就会生存了多个各别的用户和口令对,当机动举行认证的功夫,欣赏器必需辨别出该当运用哪个用户名和口令举行认证,而辨别即是经过authname的值举行的,效劳器将开始将authname的值传播给存户欣赏器,尔后欣赏器就能发送精确的用户和口令举行认证了。

  要运用口令文献来认证正当用户,开始就必需天生这个口令文献。当认证典型为basic时,口令文献与unix 的passwd文献特殊一致,以至不妨径直运用体例passwd文献来作认证文献,固然因为新颖unix运用了sha dow本领,/etc/passwd中并没有生存如实的加密口令,所以径直运用体例passwd文献举行认证只能符合那些没有运用shadow本领的unix体例。而运用shadow本领的unix体例的如实口令文献(freebsd 下为master.passwd)被养护起来,读取它须要root权力,而web效劳器常常以普遍用户的权力运转,不许径直运用体例口令对用户举行认证。即使强迫运用root权力启用httpd保护过程来考察shadow之后的口令,那么必定会带来重要的安定缺点。

  所以普遍运用与体例口令相辨别的口令文献来认证web效劳器用户,如许纵然口令被揭发,并被破解,形成的安定感化也很小,不至于感化体例的平常运转。不妨运用apache附带的htpasswd吩咐来创造口令文献,并树立用户及其口令。

$ htpasswd -c .htpasswd user1adding password for user1new password:re-type new password:

  htpasswd的-c选项报告htpasswd创造一个新口令文献为.htpasswd,即使没有这个选项,htpasswd就将用户及其口令介入仍旧生存的口令文献中。尔后的参数即是口令文献名和须要减少或变换口令的用户名。

  为了便于处置,不妨进一步将那些用户分批,组文献的每一条龙设置了一个组及其分子的名字,而后在.htaccess 中运用authgroupfile指定这个目次运用的组文献的名字,比方:

group1: user1 user2 user3 user4

  这条实质创造了一个口令组group1,囊括user1,user2,user3,user4分子。

  除去不妨运用require valid-user诉求输出的用户必需为口令文献中的正当用户除外,也不妨树立诉求惟有一定的正当用户本领考察的目次,这就须要运用require user或require group训令。比方运用require user user1诉求惟有user1用户本领考察,运用require group g roup1就诉求必需是group1组的正当分子本领考察。对准简直用户和组的考察遏制就进一步减少了考察遏制的精巧性。

  当鉴于用户的认证和鉴于地方的认证归纳运用时,不妨经过运用satify参数指定各别的控制前提,即使树立 satify all,那么必需同声经过用户和地方认证本领考察网页,而树立satify any,只须要经过一个认证存户就能考察这个目次了。缺省情景下satify参数的值为all。底下为一个归纳了地方认证和用户认证的.htaccess 的例子,这个例子承诺private.site的计划机不妨不需认证考察这台效劳器,而其余场所的用户必需是 group1组中的正当用户,大概是user1、user2、user3用户,本领考察这台效劳器。

authuserfile /usr/local/etc/.htpasswdauthgroupfile /usr/local/etc/.htgroupauthname securityauthauthtype basic<limit head get post>order deny,allowdeny from allallow from private.siterequire group group1require user user1 user2 user3</limit>satify any

其余认证办法

  apache运用authtype指定加密的办法,authtype设为basic时为运用吩咐htpasswd 创造口令文献并举行口令加密。但是这种办法有两个缺陷,一个为欣赏器将在internet上运用明文发送用户名和口令消息,另一个是htpasswd的口令文献为普遍文本文献,如许当用户数量较多时,搜索用户的功效就很低。

  为了填补安定性的缺陷,不妨将authtype树立为digest,如许就会运用digest辩别办法举行认证,此时认证口令文献要运用authdigestfile来规则,而口令文献必需运用另一个加密步调htdigest 爆发和保护,而hdigest的运用本领和htpasswd沟通。在digest认证办法下,欣赏器不会径直发送口令的明文消息,而是在传输口令之前先运用md5算法举行源代码处置。提防,不是一切典型的欣赏器都扶助digest典型的辩别办法的,惟有在欣赏器和效劳器同声都扶助digest办法时,这种认证才可行。

  authtype为basic时,是运用体例加密本领,普遍是运用des算法,但在freebsd下有大概是运用的md5算法,但只有处置员蓄意在各别体例间共享口令文献,要不不用商量她们运用的究竟是何种算法。须要与其余体例兼容时,不妨从新安置des算法。但在体例运用时从新安置加密算法,就没辙重修所有口令文献,所以不引荐在体例运用进程中调换认证算法,而该当在体例安置时就决定运用的认证算法。

  为了缩小用户数目较多时效劳器的处置开支,就必需运用数据库本领,这是由于数据库运用了索引本领,对数据的搜索就比拟赶快。unix下最大略的数据库为运用体例供给的db(或dbm)库举行创造数据库文献的本领,apache 效劳器中运用模块mod_auth_db.so对这种数据库口令文献供给扶助。htpasswd爆发的文本文献在有几百个用户时就会耗费十分大的效劳器开支,而dbm方法的认证办法不妨高效的扶助上万个用户。

  bsd作风的unix体例常常运用db库,而其余unix常常运用dbm库。所以其余unix运用的吩咐和树立中该当为dbm而非db。

  为了扶助这种认证办法,应载入mod_auth_db.so模块,运用ports collection安置的apache效劳器缺省情景就扶助这个模块而不须要变换。不妨让apache同声扶助多种认证办法,而不会爆发辩论。

  其余,摆设文献中的认证办法也须要变换,开始要创造数据库文献,这会在经过运用dbmmanage吩咐第一次减少用户时创造。

# dbmmanage /usr/local/etc/users adduser user1 pass123

  这个吩咐将创造/usr/local/etc/usersdbm数据库文献,并运用pass123为口令在数据库中减少用户user1。而后就不妨对准现有的数据库文献,减少、简略和察看用户消息了:

# dbmmanage /usr/local/etc/httpd/usersdbm delete user2# dbmmanage /usr/local/etc/httpd/usersdbm view

  在具有了数据库文献和用户数据之后,就不妨运用这种认证办法了:

authname dbmtestauthtype basicauthdbuserfile /usr/local/etc/usersdbmrequire valid-user

  不妨运用dbmmanage吩咐也不妨用来处置组,比方将user1介入group1组,但必需增添用户的同声举行树立,须要运用dhmmanage的另一个参数:

  # dbmmanage /usr/local/etc/users adduser user1 pass123 group1

  如许就能运用authdbgroupfile和require group1举行认证处置。

  除去运用dbm除外,apache还不妨摆设成与隐姓埋名ftp认证办法一致的办法,大概运用msql、oracle 等sql数据库举行认证,大概运用kerboros、ldap效劳器举行认证,那些认证办法更为宏大,能使web 认证与其余搜集效劳的认证办法相一致。然而那些特殊的认证办法必需运用相映的认证模块举行扶助。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.