据我所知,有 3 种(常见)方法可以使用 Active Directory 作为 Linux 主机的身份验证和授权:
关于哪种方法是最佳实践,是否有(当前)共识?
我从来没有完全清楚每种方法的优缺点,但每个文档/教程都以不同的方式说明,并且没有多少是过时的或解释为什么他们使用特定方法。
我正在尝试为 Linux (RHEL 6)“wheel”组中的用户设置一个具有访问权限的 samba 服务器。我将 smb.conf 建立在示例的基础上,这里通过[accounting]示例。在我的smb.conf我有
[tmp]
comment = temporary files
path = /var/share
valid users = @wheel
read only = No
create mask = 0664
directory mask = 02777
max connections = 0
Run Code Online (Sandbox Code Playgroud)
(休息输出的$ testparm /etc/samba/smb.conf是这里)。和
groups `whoami`
Run Code Online (Sandbox Code Playgroud)
返回user01 : wheel。
当我作为 Linux 用户 ( user01)从另一台机器 (Mac OS) 使用以下命令时:
$ smbclient -L NETBIOSNAME/tmp
Run Code Online (Sandbox Code Playgroud)
它要求输入密码,我在没有密码的情况下按回车键,然后得到:
Enter user01's password:
Anonymous login successful
Domain=[DOMAIN] OS=[Unix] Server=[Samba 3.6.9-151.el6_4.1] …Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 12.10 服务器上将 OSSEC 作为 HIDS 运行,它经常(每天 3-4 次)向我发送这样的通知:(注意 IP 地址的最后一个八位字节已更改为“xxx”以保护有罪)
OSSEC HIDS Notification.
2013 Nov 21 15:10:43
Received From: localhost->/var/log/auth.log
Rule: 2502 fired (level 10) -> "User missed the password more than one time"
Portion of the log(s):
Nov 21 15:10:41 localhost sshd[3594]: PAM 5 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=61.147.74.xxx user=root
--END OF NOTIFICATION
Run Code Online (Sandbox Code Playgroud)
我是服务器上唯一的(合法)用户,并且我已经PermitRootLogin no在我的/etc/ssh/sshd_config. 因此,每次有人无法以 root 身份登录时向我发送警报是毫无意义的。
我发现 OSSEC 规则 2502 的定义/var/ossec/rules/syslog_rules.xml如下:
<rule id="2502" level="10">
<match>more …Run Code Online (Sandbox Code Playgroud) 我一直无法找到有关出现在许多 Cisco VPN 配置中的 AuthType 属性的资源。在我能找到的每个示例中,它都设置为AuthType=1,但我不知道还有哪些其他可能的值,也不知道1实际指的是什么。有人可以解释这一点,或向我指出与此相关的资源吗?
假设我运行一个接受 SSH 连接的服务器,作为一个聪明人,我使用 SSH 密钥而不是密码来连接它。有一个用户,webmaster,可以访问和控制与网站相关的目录和程序。每当我连接到服务器时,我都以webmaster.
这很好用,直到有一天我聘请了第三方公司在网站上工作了一周,为了让事情顺利进行,我希望他们在webmaster工作时登录。当一周结束并且工作完成后,我想用他们的密钥撤销对服务器的访问。
我将如何执行此操作,在服务器上为同一用户设置多个密钥,可以独立编辑或删除这些密钥?
我正在尝试允许在 CentOS 主机系统上通过 LDAP 进行身份验证。但是我总是从 pam_ldap收到无法联系 LDAP 服务器的错误。
LDAP 服务器是可 ping 的,并且身份验证可以与 ldap:// 完美配合,但不能与 ldaps:// 配合使用。在 debian 操作系统上,它也可以与 ldaps:// 完美配合,但在 CentOS 上则不行。
我也遇到了$ ldapsearch无法联系错误...但我修复了它,在 /etc/openldap/ldap.conf 中设置了TLS_REQCERT 允许。但是为 /etc/pam_ldap.conf 设置这个没有帮助。
我做的步骤:
更多信息:
同样令人困惑的是/var/log/secure 中的 IP 。它说 …
我一直在阅读我可以在 PAM 上找到的所有内容(例如http://wpollock.com/AUnix2/PAM-Help.htm),但是我仍然对高级选项应该如何精确工作感到困惑。例如,每个参考资料都是这样说的:
Each of the four control-flag keywords (required, requisite, sufficient, and
optional) have an equivalent expression in terms of the [...] syntax:
required
[success=ok new_authtok_reqd=ok ignore=ignore default=bad]
Run Code Online (Sandbox Code Playgroud)
我的理解是模块可以返回多种令牌,并且与每个令牌关联的操作在配置文件中进行了描述。基于这种理解,什么是
new_authtok_reqd=ok
Run Code Online (Sandbox Code Playgroud)
与所需的控制标志有关吗?的意义/目的是什么
ignore=ignore ?
Run Code Online (Sandbox Code Playgroud)
仅此而已:
success=ok
Run Code Online (Sandbox Code Playgroud)
是我认为符合要求的行为,但确实如此
default=bad
Run Code Online (Sandbox Code Playgroud)
意味着如果模块返回任何其他操作令牌,模块将失败?是行动=值令牌成功= OK的否决默认=坏,反之亦然?哪个优先?从我读过的任何内容中都不清楚。
更一般地说,假设我有类似的东西
[success=done default=die]
Run Code Online (Sandbox Code Playgroud)
如果模块返回成功和另一个令牌会发生什么?
最后,我也找不到这个问题的答案:每个值都ok, done, bad, die, ignore, reset, N可以与任何操作相关联吗?甚至是什么意思说
[default=done] ?
Run Code Online (Sandbox Code Playgroud) 我有一个在 IIS 上运行的网站,该网站使用 Windows 身份验证。
在网站级别,在“身份验证”下,我只Windows Authentication启用了(NTLM 仅作为提供者)。
在虚拟目录级别,在“身份验证”下,我启用了ASP.NET Impersonation和Windows Authentication(NTLM 仅作为提供者)。(ASP.NET Authentication在此处禁用不会改变任何内容)
在网站绑定上,我有:
Type | IP Address | Port | Host Name
--------------------------------------------------------------
http | All Unassigned | 80 | localhost
http | All Unassigned | 80 | myiisserver
http | All Unassigned | 80 | myiisserver.mydomain.com
http | All Unassigned | 80 | myapp.mydomain.com …Run Code Online (Sandbox Code Playgroud) 我想设置 Subversion 存储库,以便可以使用与 ssh 登录相同的用户名和密码来访问存储库。我设法进行了登录工作,因此需要正确的用户名,但它接受任何密码。我怎样才能让它也需要有效的密码?
我正在运行带有“标准模块”、Apache2、Subversion 和 libapache2-mod-authnz-external 的 Ubuntu 服务器 8.04.2。此外,我发现名为pwauth 的实用程序可以帮助进行身份验证。
以下是配置中的相关部分:
/etc/apache/apache2.conf
AddExternalAuth pwauth /usr/local/bin/pwauth
SetExternalAuthMethod pwauth pipe
AddExternalGroup unixgroup /usr/local/bin/unixgroup
SetExternalGroupMethod unixgroup environment
Run Code Online (Sandbox Code Playgroud)
/etc/apache/mods-available/dav_svn.conf:
AuthType Basic
AuthBasicProvider external
AuthExternal pwauth
GroupExternal unixgroup
AuthName "Subversion repository"
Require group users
Require user myaccount
Run Code Online (Sandbox Code Playgroud)
/etc/pam.d/pwauth:
auth required pam_succeed_if.so user=www-data
account required pam_localuser.so
Run Code Online (Sandbox Code Playgroud)
pwauth 的 config.h:
#define PAM /* Linux PAM or OpenPAM*/
#define UNIX_LASTLOG /**/
#define HAVE_LASTLOG_H /**/
#define NOLOGIN_FILE "/etc/nologin" /**/
#define MIN_NOLOGIN_UID 1 /**/
#define …Run Code Online (Sandbox Code Playgroud) 我在做什么...
尝试为我们组织的所有机器、博客、wiki、CRM、HRM、项目管理工具、SVN 等实现单点登录……
我们在运行 CentOS 的专用服务器上安装并配置了 OpenLDAP。我使用 phpLdapAdmin 添加组织结构和有关各种用户、客户、资源的信息。
用户的示例条目...
DN 是 :: cn=Bill Gates, ou=users, dc=example, dc=com
用户 ID :: bill.gates
邮件 :: bill.gates@example.com
用户密码 :: as2%$%66789ds(一些 md5 神秘值)
我现在在哪里...
OpenLDdap 工作正常。绑定测试也成功运行。
我想做的事...
使用更高权限的用户绑定,然后通过输入的用户名或邮件搜索用户,与CN略有不同。重点是我想根据不属于 RDN 的属性对用户进行身份验证。
我被卡住的地方...
我的问题(最后)