Articles of 身份validation

作为NETWORK SERVICE运行的Web应用程序可以连接到SQL Server,但是作为LOCAL SYSTEM运行的Windows服务不能

我在Windows Server 2003 IIS服务器上安装了.net Web应用程序,在应用程序池中作为NETWORK SERVICE运行,并使用集成安全性连接到另一台计算机上的SQL Server。 SQL Server计算机也运行Windows Server 2003.因此,Web应用程序以身份DOMAIN\COMPUTER$连接,并且该帐户在SQL Server中具有login名和用户,所以一切正常。 我还在连接到同一台SQL Server计算机的同一个IIS服务器上安装了一个.net Windows服务。 Windows服务作为LOCAL SYSTEM运行,因此也应该以身份DOMAIN\COMPUTER$ 。 我已经在十几个不同的公司安装了同样的产品,通常所有的工作都是我所期望的,但是在最近的情况下,Windows服务无法连接到数据库,出现这样的错误: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON' 任何想法,为什么这将是本地系统的情况下,而不是networking服务? 要在短期内解决这个问题,我必须切换到使用SQL Serverlogin,但如果有一个简单的解决scheme,则宁愿使用集成安全性。 安全或系统事件日志中没有错误消息,但我没有做任何事情来启用额外的日志logging。 通常我会认为这是某种Kerberos / ADtypes的问题,并按照这样的文章, 这将有所帮助。 但是,从networking服务工作的事实表明,我会检查正常的事情已经确定(例如SPNs已经正确设置,机器域帐户启用委派?)。 那么是什么情况出错? 如果没有我的客户的IT团队的帮助,我无法访问服务器,并且在服务器上安装了其他应用程序,我需要注意不要中断,这使得故障排除更加微妙。 任何疑难解答build议非常感谢!

使用PAM更复杂的AND / OR结构

PAM允许使用sufficent和一些逻辑required的,如 auth sufficient pam_a.so auth required pam_b.so auth required pam_c.so 这意味着“要么是真的,要么b必须是真的,那么c必须是真的”。 是否有可能做更复杂的操作? 如“(a或b)和(c或d)”或“(a和b)或(c和d)”? 可能还有更多的括号。

Linux机器之间的通用用户帐户

我有一个基础系统,在其上有几个(目前是两个)虚拟机,全部运行Ubuntu服务器。 我必须不断地在每个系统上添加我的用户帐户,以及给它一个sudo访问权限等等,而且还有一些东西,比如密码/私钥没有被自动同步。 有没有一种简单的方法为所有这些用户帐户(一个或两个)提供共享login? 他们需要真正的帐户与主目录等。 他们也已经存在,所以我需要将他们从一个正常的用户帐户迁移到新的解决scheme。 LDAP似乎比我真正需要的要复杂一点(很多),而且我很难判断NIS是否是我想要的。 我应该看什么解决scheme,以及如何开始?

通过HTTP安装mercurial

你可以给一些指针设置通过HTTP / HTTPS Mercurial? 我正在设置一个开发服务器(Debian),在那里我想创build一个mercurial仓库,并将更改推送到服务器。 我需要进行身份validation,以防止任何不必要的访问。 提前致谢。

为什么我无法login到服务器上的受Windows保护的IIS 7.5目录?

我有一个网站与pipe理子目录受集成Windows身份validation保护。 远程PC完美无瑕。 但是,当我尝试访问服务器上的这些页面时,我得到授权失败。 我正在使用正确的主机名,而不是本地主机。 试过Chrome和IE,结果一样。 有什么build议么?

Kerberos – 将SPN添加到域用户

将新SPN添加到Kerberos域时,可以select将SPN映射到用户。 一般来说,我通过集成Windows身份validationjoin域,这为服务创build了一个新的计算机帐户,但现在,我想尝试使用没有IWA的Kerberos。 我相信我对Kerberos如何为计算机主机validation客户端(对于我正在尝试的function来说足够好)有一个全面的了解 – 但是,将SPN映射到域用户的确切做法是什么? 编辑:我不是问SPNs如何工作。 我正在具体询问将SPN映射到域USER的细节。 回答: Kerberos将允许特定用户主持此服务 – 而不是使用计算机主机帐户进行身份validation,则服务器将join到该特定用户下的Kerberos域中。 身份validation通过此用户进行。 任何进一步的信息将不胜感激。

使用特定子域进行身份validation

基本上我试图启用身份validation模块访问子域的特定部分,这是dev.domain.com和pma.domain.com ,他们都必须加载身份validation模块。 我似乎无法确定为什么我的nginxconfiguration文件不起作用。 在第二个服务器块中,您可以使用身份validation模块查看pma和dev ,当访问pma.domain.com或dev.domain.com ,我没有看到从浏览器显示的身份validation模块,也没有任何错误日志存储。 无论如何,我只需要一个修复,以启用身份validation两个子域,而不是整个重写我的nginxconfiguration文件。 server { server_name domain.com; root /var/www/domain.com/www; index index.php index.htm index.html; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; access_log /var/www/domain.com/logs/access.log; error_log /var/www/domain.com/logs/errors.log; error_page 404 /index.php; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www/domain.com/www$fastcgi_script_name; include fastcgi_params; } } server { server_name ~^(.+)\.domain\.com$; set $file_path $1; […]

是否有一种更简单的方法来为新用户添加公钥validation?

我正在使用Ubuntu 12.04在一个新的Web LEMP服务器上设置安全用户的艰难和痛苦的过程。 我最初是要设置一些像vsftpd或proftpd,但许多人build议只是直接使用SFTP,所以我会。 最终,我有一个主要用户(我只是为了防止根login)。 我创build了这个新用户,生成一个公钥对,以authorized_key上传公钥到~/.ssh目录,修改了SSH端口号,删除了root用户login,并且设置了passwordauthentication为NO,强制用户他/她的钥匙login。足够简单(虽然在PC上工作似乎比我的OSX / NIX的同行更为头疼)。 我现在正在尝试创build新的用户(对于我的Web开发人员),他们只需访问SFTP并将他们的暴露限制在他们的Web目录中。 每个目录具有以下格式: /var/www/sitename.com/public/ 我现在开始头痛。 创build一个新用户? 简单。 添encryption码? 真的不需要给我需要公共/私人密钥(他们将永远不会sudo访问),但确定。 然而,我正在努力与以下几点: 我如何实际将这个新用户的公钥存储在服务器上? 如果我以root用户身份login,只需在其主目录中创buildauthorized_keys文件,它将具有root用户和组权限,并且无法login到服务器。 同样,这些新用户无法login和创build它自己,呃,因为他们不允许通过密码login。 (注意:我也在设置sftp并将它们限制在各自的web目录中,但我认为我可以在后来自己解决这个问题)。 有什么build议? 编辑 目前的过程是这样的: 从个人获得公钥 通过以下命令: #sudo mkdir -p /home/newuser/.ssh #sudo nano /home/newuser/.ssh/authorized_key #(将密钥复制到单行并保存) #chown -R新用户:newuser / home / newuser #chmod 700 /home/newuser/.ssh #chmod 600 /home/newuser/.ssh/authorized_key 我想这并不是绝对可怕的,但是如果我们有大量的开发人员(再加上花费时间来设置SFTP部分和限制目录),这似乎是一个巨大的痛苦。

为什么在启动世界中,ssh密钥被用于authentication而不是kerberos?

我作为Linuxpipe理员的第一份工作是在一些非常高级的pipe理员下工作。 在所有这些情况下,kerberos被设置为用户请求安全令牌并且在一定时间内访问公司服务器。 现在,我已经开始在一家初创公司工作,并开始参加围绕devops和sre公司的会议。 我注意到,这些公司大多select使用ssh密钥,ldap和某种forms的configurationpipe理来确定谁可以访问哪些服务器。 大多数用户在他们的macbook上只有无密码的ssh密钥。 这是非常不安全的。 什么使SSH密钥设置更适合Kerberos设置?

访问安全networking资源的IIS策略

问题:用户连接到计算机上的服务,例如IIS网站或SQL Server数据库。 网站或数据库需要访问networking资源,如文件共享(最常见)或不同服务器上的数据库。 权限被拒绝。 这是因为服务运行的用户首先没有networking权限,或者如果是,则没有访问远程资源的权限。 我一遍又一遍地遇到这个问题,厌倦了没有一个真正的坚实的方式来处理它。 以下是我所知道的一些解决方法: 运行IIS作为被授予高权限的自定义创build的域用户 如果权限一次被授予一个文件共享,那么每次我想从一个新的共享中读取数据时,我都不得不要求networkingpipe理员为我添加它。 最终,许多网站阅读了很多股票,这将变得非常复杂。 如果权限只是打开了广泛的用户访问我们的域中的任何文件共享,那么这似乎是一个不必要的安全表面区域呈现。 这也适用于在IIS上运行的所有站点,而不仅仅是需要访问的选定站点或虚拟目录,还有一个表面区域问题。 做同样的事情,但使用应用程序池或单独设置凭据 不需要像特定用户一样运行整个IIS实例:每个站点,应用程序和文件夹都可以设置为在特定的应用程序池或手动select的凭据集下运行。 这解决了表面积问题的一小部分,但是并没有真正解决关于pipe理许可粒度的问题,并且在许多资源上这样做。 仍然使用IUSR帐户,但给它networking权限,并在远程资源(不是域用户,本地用户)上设置相同的用户名 这也有它的问题。 例如,有一个文件共享我正在使用,我有充分的权利来共享,但我无法login到机器。 所以我必须find正确的pipe理员,并要求他为我做。 任何时候都必须改变,这是对pipe理员的另一个要求。 允许IIS用户以匿名方式连接,但将用于匿名访问的帐户设置为高权限帐户 这比给予IIS IUSR完全权限还要差,因为这意味着我的网站首先不能使用任何types的安全性。 使用Kerberos进行连接,然后进行委托 这原则上听起来不错,但有各种各样的问题。 首先,如果您使用的是虚拟网站,而您连接到网站的域名不是基本计算机名称(正如我们经常使用的那样),则必须使用Microsoft的Web服务器在Web服务器上设置服务主体名称SetSPN实用程序。 这很复杂,显然很容易出错。 此外,您必须要求您的networking/域pipe理员更改Web服务器和域帐户的安全策略,以使其“受信任进行委派”。 如果你没有完全正确地得到一切,突然你想要的Kerberos身份validation是NTLM,而你只能模拟而不是委托,因此不能以用户的身份到达networking。 此外,此方法可能会有问题,因为有时您需要网站或数据库具有连接用户不具有的权限。 创build一个服务或COM +应用程序来获取网站的资源 服务和COM +包使用他们自己的一组凭据运行。 以高特权用户身份运行是可以的,因为他们可以做自己的安全性并拒绝不合法的请求,将控制权交给应用程序开发人员,而不是networkingpipe理员。 问题:我正在使用一个COM +程序包,它在Windows Server 2000上完全实现这一function,可将高度敏感的图像传送到安全的Web应用程序。 我尝试将网站移动到Windows Server 2003,并突然被拒绝实例化COM +对象的权限,很可能是registry权限。 我徘徊了很多,并没有解决问题,部分原因是我不愿意给予IUSR帐户完整的registry权限。 这看起来像只是作为一个高权限用户运行IIS一样的坏习惯。 注意:这其实很简单。 在您select的编程语言中,您可以使用返回所需对象实例(例如ADODB.Connection)的函数创build一个类,然后构build一个dll,将其注册为COM +对象。 在您的Web服务器端代码中,您将创build该类的一个实例并使用该函数,并且由于它在不同的安全上下文中运行,因此对networking资源的调用将起作用。 将驱动器号映射到共享 这在理论上是可行的,但在我看来,这不是一个好的长期战略。 尽pipe可以使用特定凭证创build映射,而这可以由networkingpipe理员完成,但这也意味着可能会有太多的共享驱动器(小粒度),或者授予整个文件太多的权限服务器(大粒度)。 此外,我还没有想出如何映射驱动器,使IUSR获得驱动器。 映射一个驱动器是针对当前用户的,我不知道IUSR账户密码是否以它的身份login并创build映射。 将本地资源移到Web服务器/数据库 […]