在多个服务器上同步多个用户帐户和主目录的最佳方法是什么,它们都将是相同的操作系统。服务器位于世界各地的不同位置,因此如果一个服务器出现故障,其他服务器仍然可用。目前在一台服务器上有用户,但如果该服务器出现故障,除了重新创建用户和 rsyncing 目录之外别无他法。所以只是想知道是否有更好的方法?我没有使用过 LDAP,但这是否适合它?
我无法弄清楚如何添加基本的 HTTP 身份验证以密码保护在生产 Web 服务器上运行的开发测试环境。主站点和测试环境都是虚拟主机,它们使用 AJP 代理为 Tomcat Web 应用程序的单独实例提供服务。我们需要防止公众访问测试环境而不更改Tomcat环境中的web.xml,必须使用Apache而不是Tomcat来实现保护。然而,虚拟主机中的 ProxyPass 和 ProxyPassReverse 指令似乎覆盖了 .htaccess 或我放在 <Directory> 控制块中的任何东西的使用,而似乎我不能在 <VirtualHost> 控制的主体中使用像 AuthType 这样的指令挡在旁边。一世' 我对 Apache(或 Tomcat)不是很有经验,不确定哪些指令可以应用于何处以及哪些指令可能会覆盖其他指令。因为需要在生产服务器上进行更改,我不能轻易地进行试验,以免造成任何停机时间。
httpd.conf 本身非常简单:
LoadModule proxy_http_module /usr/lib/apache2/modules/mod_proxy_http.so
LoadModule headers_module /usr/lib/apache2/modules/mod_headers.so
LoadFile /usr/lib/libxml2.so
Run Code Online (Sandbox Code Playgroud)
相关虚拟主机文件/etc/apache2/sites-available/dev443如下:
<IfModule mod_ssl.c>
<VirtualHost dev.mydomain.com:80443>
ServerName dev.mydomain.com:80443
ServerAdmin webmaster@localhost
DocumentRoot /var/www/dev
ProxyPass / ajp://127.0.0.1:8010/
ProxyPassReverse / ajp://127.0.0.1:8010/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/dev/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None …Run Code Online (Sandbox Code Playgroud) authentication reverse-proxy virtualhost http-basic-authentication apache-2.2
我想在 Nginx 后面的 Gunicorn 中运行 Trac。Nginx 通过 LDAP(有效)处理用户身份验证,但我无法将其REMOTE_USER传递给 Trac。
对于 uWSGI,我会像这样配置 Nginx(经过测试并且可以正常工作):
uwsgi_param REMOTE_USER $remote_user;
Run Code Online (Sandbox Code Playgroud)
对于 Gunicorn,我找不到类似的配置指令。我试过设置标题,但它似乎没有改变任何东西:
proxy_set_header REMOTE_USER $remote_user;
Run Code Online (Sandbox Code Playgroud)
Trac wiki 中有一个关于此的条目,指出“wsgi 入口点不处理 [...] 身份验证”,以及使用本地密码文件处理基本身份验证的解决方法,这不是我需要的。我是否需要更改入口点以将此REMOTE_USER标头传递给正确的环境变量?目前只是这样:
import sys
import os
sys.stdout = sys.stderr
os.environ['TRAC_ENV'] = '/path/to/my/trac'
import trac.web.main
application = trac.web.main.dispatch_request
Run Code Online (Sandbox Code Playgroud) 请原谅我缺乏 IIS 经验,但我在运行 IIS 和 Plesk 的托管服务器上有一个用户。他使用受保护的文件夹,我正在寻找一种方法:
它不必——而且最好不是——仅适用于 Plesk 的解决方案。如果有办法通过 web.config 做到这一点,那就更好了。
我基本上是在寻找相当于 Apache htaccess/htpasswd auth 的 IIS :)
谢谢!
在 IIS 7.5 网站的基本设置部分,有一个选项可以通过Connect As.... 如果保持关闭,则使用直通身份验证。
我认为这会使用应用程序池的身份,但事实并非如此。为了让我的网站在正确的用户帐户下连接到 MSSQL,我必须在Connect As...屏幕下指定用户。
那么Connect As...应用池标识和应用池标识有什么区别呢?
我在一家大公司工作,可以远程使用其中央只读 LDAP 服务器。LDAP服务器并没有允许匿名绑定。为了使用此服务器对我的小型服务器上的用户进行身份验证,我需要一个帐户来向我公开 LDAP 上的数据。通常填写帐户数据binddn和bindpw配置字段。据我了解,pam 模块通常使用binddnand登录bindpw,然后执行搜索,然后为每个愿意登录的用户绑定。
然而,服务器的管理员不喜欢向我公开所有数据。所以我的问题是:
如何在没有 binddn 帐户的情况下配置 pam?理想情况下,无需事先使用 binddn 帐户登录即可为每个用户执行直接绑定。
有没有人设置过这样的配置?它对我不起作用。
我已经在 Ubuntu 12.04(它是用 PAM 模块构建的)上安装了 nginx-extras,并添加到站点配置中:
location ^~ /restricted_place/ {
auth_pam "Please specify login and password from main_site";
auth_pam_service_name "nginx";
}
Run Code Online (Sandbox Code Playgroud)
之后,在/etc/pam.d/nginx:
auth required pam_script.so dir=/path/to/my/auth_scripts
Run Code Online (Sandbox Code Playgroud)
并写得最简单/path/to/my/auth_scripts/pam_script_auth(我也尝试过编写复杂的脚本)
#!/bin/sh
exit 0 # should allow anyone
Run Code Online (Sandbox Code Playgroud)
不起作用。脚本已启动(我编写了功能齐全的脚本,该脚本成功执行、检查凭据、写入自己的日志并返回正确的退出代码,并且执行时间很长)。但是没有访问被授予,只有被拒绝。
在/var/log/nginx/error.log出现这一行:
2012/09/13 10:44:42 [alert] 1666#0: waitpid() failed (10: No child processes)
Run Code Online (Sandbox Code Playgroud)
如果我指定/etc/pam.d/nginx:
auth required pam_unix.so
Run Code Online (Sandbox Code Playgroud)
并授予www-data用户阅读/etc/shadow权限,unix 授权工作正常。但是脚本身份验证不起作用。
我不明白,哪里出了问题。是在 nginx 模块中,还是在 pam_script 模块中?
我们有一个 Meraki MR16 云管理 AP,它会断开某些客户端的连接。使用 Intel 无线网卡的客户端无需断开连接即可工作。Meraki 在其事件日志中报告以下内容:
Sep 4 09:55:47 WPA authentication
Sep 4 09:55:47 802.11 association channel: 11, rssi: 64
Sep 4 09:55:38 802.11 disassociation client has left AP
Sep 4 09:55:38 WPA deauthentication vap: 0, radio: 0, aid: 1633956416
Run Code Online (Sandbox Code Playgroud)
Meraki 断开连接的无线网卡示例是 Realtek RTL8191SE 802.11b/g/n WiFi 适配器。realtek 笔记本电脑离 AP 2 米远,信号很好,Meraki 报告干扰最小。
为什么它断开非英特尔无线网卡的任何想法?
想象一个 Windows 工作组网络,其中两台计算机各有一个具有相同用户名/密码组合的本地帐户。如果我登录到一台计算机,并尝试连接到另一台计算机上的非公共共享资源,则不会提示我输入凭据 - 事实上,远程计算机具有与本地帐户具有相同凭据的本地帐户我正在使用的计算机意味着我已通过“静默”身份验证。
提前致谢。
有一个奇怪且令人困惑的问题(对我和用户而言)困扰着身份验证。我不知道它发生了多久,但我相信它会持续很长时间。直到最近,通过使用帐户锁定工具,我才意识到这些身份验证问题有时是由系统故障而不是用户错误引起的。
发生的情况是用户正确地进行了身份验证,但系统拒绝了他们的密码。我想重复一遍:他们使用正确的用户名、密码和域登录。这不是胖手指;这不是客户问题;这不是用户错误;它不是过期的密码;它不特定于任何服务。
用户正确验证时的行为是 DC 将“登录失败”计数重置为 0。当他们失败时,它会增加它并设置“上次失败”时间。但是当这个故障发生时,两者都不会发生;认证尝试被拒绝,但计数不会增加 1,也不会重置,并且最后一次失败时间不会改变。
该问题发生在多个设备和服务中。今天我有一个学生无法登录多台计算机,以及网络邮件。我比较了来自计算机和 DC 的事件日志;我认为用户被错误拒绝(并且失败计数没有上升)和她被正确拒绝时的事件之间没有区别,因为我故意让她输错了密码。
我自己已经这样做了,尝试登录到学生新创建的帐户(使用已知的密码方案)。许多通过 AD 进行身份验证的服务的用户都遇到过这种情况。它已经发生在教职员工、教职员工和学生身上。据我所知,这是直接在 DC 上的身份验证问题;该帐户有些奇怪,但不是密码过期、禁用等的典型罪魁祸首之一。
重置密码可以解决问题。问题就迎刃而解了。但是这个问题的频率(就在本周大约有 8-10 个案例,最多 100 次网络密码重置)让我相信这是一个严重的问题。
我不知道这个问题发生了多久。如果不使用帐户锁定工具,我将永远不会看到错误计数无法增加,因此假设用户知道密码是错误的。我曾多次发生用户发誓他们知道他们的登录名的情况,并且它“昨天有效”。我不知道有多少次是真的,如果有的话。即使在获得该工具之后,在我相信这是一个真正的问题之前,它已经发生了多次并且出现了几个月的问题。直到我真的遇到这种情况,输入学生的初始密码,看到失败次数没有上升,我才真的相信。
我们的AD环境大多是Windows server 2008,有的DC还是Server 2003,环境是单域。如果有任何其他故障排除所需的相关技术细节,请告诉我。
编辑:正如接受的答案所示,这确实是用户错误。向我“证明”这是一个真正问题的事件是,当我登录到一个新创建的帐户时,它在没有增加错误密码计数的情况下失败了。我们有新帐户和密码重置标准。可能另一个管理员忽略了标准并将此用户的密码重置为其他内容。当我尝试登录新用户时,错误密码未能增加(但我被拒绝了),我认为这是一个问题的证明。许多谷歌搜索未能找到描述错误密码计数无法上升的情况的页面......希望这个答案将来能帮助其他人。
authentication ×10
iis ×2
nginx ×2
pam ×2
apache-2.2 ×1
gunicorn ×1
http ×1
iis-7 ×1
ldap ×1
linux ×1
networking ×1
trac ×1
ubuntu ×1
virtualhost ×1
web.config ×1
wifi ×1
windows ×1
wpa ×1