Articles of 最佳实践

如何在上线前testingconfiguration更改?

我是一名学生志愿者,帮助维护一个小型网站的Web服务器以及其他一些学生。 这是一个运行在Ubuntu 12.04上的非常标准的LAMP服务器,主要托pipe基于PHP的站点。 最近有很多次我们希望做一个小的configuration更改,最多需要几分钟 – 例如,更改某些网站文件的权限以提高安全性,更新SSL证书,稍作修改configuration文件等 – 并意外地搞砸了整个网站的地方。 之后通常会导致15分钟左右的疯狂,试图让网站重新恢复。 幸运的是,几分钟的停机时间并不是世界末日,因为它是一个小型的非商业网站。 但是,我认为,搞乱一些不易修复的事情只是时间问题,可能会导致一些非常严重的问题。 当然,我们也有备份服务器和辅助服务器,但恢复这些备份仍然需要很长时间。 所以这里是我想知道的问题:是否有一个好的方法来testingconfiguration更改才能在服务器上运行? 我考虑设置一个与主服务器configuration完全相同的辅助服务器,以便可以在辅助服务器上首先执行/testing命令,但是我认为确保两台服务器始终同步会变得非常烦人。 有没有更好的方法来做到这一点,缺乏虚拟化和快照工作?

编译和维护应用程序?

你用什么configuration格式编译,为什么? 示例(您不必以示例的forms回复,但请注明您的目录设置): <Layout MyPersonalizedLayout> prefix: /usr exec_prefix: ${prefix} bindir: ${prefix}/bin sbindir: ${prefix}/sbin libdir: ${prefix}/lib/application_name libexecdir: ${prefix}/lib/application_name/modules installbuilddir: ${prefix}/lib/application_name/build mandir: ${prefix}/man sysconfdir: /etc/application_name includedir: ${prefix}/include/application_name localstatedir: /var runtimedir: ${localstatedir}/run/application_name logfiledir: ${localstatedir}/log/application_name </Layout> 在重新编译或升级应用程序之前,您考虑采取哪些步骤以及执行什么操作? 你如何跟踪你上次用来编译应用程序的所有configuration选项? 你是否定期从configuration文件备份? 多久 ? 你有一个特殊/不同的升级系统,所以你可以保持最后的工作应用程序,直到新的准备推出? 您是否通常在将其编译到生产服务器之前对其进行testing,在此之前您有什么考虑? 我不是一个使用yum,apt-get等安装pipe理器的人,而我确实相信他们对于一些我喜欢的应用程序来说我有自己的控制和可能性是非常好的,所以我会想知道每个人如何威胁这一点。 如果这个问题得到更多的3个答案,我会把它作为一个社区维基,直到那时我要求你不要把它成为一个

目前使用AD来授权Linux的最佳实践(2013)

据我所知,使用Active Directory作为Linux主机的身份validation和授权有三种常用的方法: LDAP Kerberos的 桑巴/ Winbind的 对于哪种方法是最佳做法,有(当前)共识吗? 我从来没有完全清楚每种方法的优点/缺点,但是每个文档/教程都有不同的方式,其中不是很多都是约会或解释为什么他们使用特定的方法。

多less故障转移冗余是足够的?

我正在开发一个客户端 – 服务器系统,在这个系统中,所有的客户端目前都将他们的事务提交到一个单一的西岸IP地址,以达到所谓的“网关”应用程序。 网关执行一些记帐,并将每个事务分派到多个数据库服务器中的任何一个以进行最终处理。 服务器将结果直接返回给客户端(不通过网关返回)。 计划是在东海岸增加第二个网关,以实现冗余和故障切换。 它通常只会处于待命状态,旨在接pipe并成为工作网关出现故障时的实际网关,本质上是此处所示的经典configuration。 一些与会者认为,只有一个备用网关是不够的,我们还应该在中西部地区实施第二个备用网关。 其他人则认为,两个待机的额外成本,复杂性和pipe理是不必要的,同时在两岸同时无法使用网关是不太可能的,因此不会成为问题。 什么被认为是最佳实践? 多less冗余(就客户端可用的物理上独立的接入点而言)通常被认为是名义上的? 双重失败是否足够普遍,只有一个待机是经常后悔的? 编辑:关于“计算”成本与利益的冗余量我需要或想要的,我想这是最好重新措辞我的问题为: 哪些统计数据表明地理上分离的IP地址集合的频率同时不可达? 换句话说,就像一张桌子一样 On average, 1 west coast IP + 1 east cost IP are simultaneously unreachable 1 day/year. On average, 1 west IP + 1 east IP + 1 southern IP are simultaneously unreachable 1 hr/year. On average, 1 west IP + […]

在删除AD之前,如何检查AD中的组/用户?

我正在清理一个没有很好logging的inheritance域。 我如何检查一个特定的组织或用户是否在整个AD内都没有ACE? 比如在AD对象和文件服务器对象中searchDACL / SACL。 pipe理者甚至做这种尽职调查吗? [编辑]我还不能添加评论,但我要感谢本和吉姆的回应。 准备这样深思熟虑的答案需要很长时间,所以我尊重他们的慷慨和愿意分享他们的经验。 感谢您检查基于AD的权限的位置列表 – 非常有帮助。 我赞赏如果访问被无意中删除,保留空群组以重新填充的build议。 我已经写了一些C#代码枚举组成员资格,所以我有这个备份。 (我觉得比PowerShell更容易使用)。我也使用Shareinum这样的sysinternals工具。 Notes / Description字段 – 它们是什么? 说真的,我知道他们是什么,但我的前任并没有使用它们。 他们也没有使用嵌套组。

创build系统帐户的最佳做法是什么? (* NIX)

我手动安装了名为Gate One的服务到/opt 。 我想加强它的安全性,所以我想我会创build一个系统帐户供其使用,因为最less的必要权限等等。 但是,当我运行adduser –system gateone ,它创build了一个我不想要的主目录。 因此,我运行adduser –system –home-dir /opt/gateone gateone ,因为我看过一些系统帐户设置的主目录属于他们。 但是,这使得loginshell /bin/sh而不是/bin/false ,这是它第一次完成(当我没有指定一个主目录)。 我现在有点困惑,我应该设置这些字段。 tl; dr:在* NIX操作系统上创build系统帐户时,设置主目录,loginshell和其他相关的最佳实践是什么? 为什么? 注意:我使用的是Ubuntu 13.04 Raring,如果它很重要的话,因为IIRC adduser可能会有相当的分配到分配。

AD IT助手权限

如果以前有人问过我的道歉, 如果我知道正确的search条件,那么谷歌将更有效。 我想添加一个用户,可以将计算机join域,在用户计算机上安装软件和打印机,甚至可以更改用户密码。 是否有像帮助台这样的angular色可以做到这一点,但可以限制在服务器和networking上的特定文件夹(如工资)? 任何帮助赞赏。 谢谢。

是否应该将DirectAccess部署到支持它的所有Windows客户端?

当我们的组织正在慢慢地推出Windows 10时,我观察到与Windows 10个人计算机OU(包含内部台式计算机,便携式计算机,甚至是用于VDI的VM)相连的DirectAccess GPO。 该GPO与我们的标准DA GPO相同,除了它的范围是授权用户,而不是“DA PC”安全组。 我向我们的高级pipe理员指出了这个怪事,有趣的是,他说因为Windows 10支持DirectAccess,所以应该启用,因为我们已经设置了它。 我发现有几个问题,但主要的问题是会增加DirectAccess服务器的负载,甚至不需要客户端。 是否将DirectAccess部署给所有客户一个合理的deviseselect,还是这是离奇的? 这样做有什么好处/缺点?

扩展我的Web应用程序以适应大量用户的最佳策略是什么?

我想获得一些关于如何开发扩展我的Web应用程序的策略的build议/最佳实践。 我在这里华而不实,performance出我有限的知识,但想填补我的知识空白。 尽可能多地学习这些东西是很有吸引力的,但是要意识到我需要寻求一些外部的帮助,所以作为一个普遍的问题,知道外包最简单的东西是很好的。 我的背景 – 我是一名开发人员,主要从事开发用户界面,并一直致力于Flash和PHP开发应用程序的function,使用户上传图像和video以在线共享。 系统架构如下 – 一个单一的networking服务器,也充当数据库服务器(MySQL)。 这台服务器是一个托pipe托pipe包与信任和可靠的托pipe公司。 Web服务器提供PHP页面和Flash SWF,它们是主要的UI组件 Amazon S3存储桶用于存储用户的图像,video和audio文件。 用户界面组件可以是PHP页面,也可以是Flash SWF,例如通过Flash swfs查看图像和video,通过AMFPHP服务查询数据库以加载图像和video文件的URL。 然后从Amazon S3存储桶中接收这些数据。 另一个FLash SWF将上传和POSTS文件处理为在Amazon Cloud上的EC2实例上运行的PHP脚本。 上传服务器用于pipe理图像,video和audio上传。 这是在Elastic Load Balancer后面运行的Amazon EC2实例,当它看到CPU容量达到80%时,会添加更多的实例。 我们还使用在Amazon EC2上运行的第三方服务来转码video文件。 所以对于大部分我认为事情设置好可以扩大。 但是我并没有经验,如何扩大或pipe理高stream量的Web应用程序,所以将依靠我们的Web服务器托pipe公司来pipe理Web /应用服务器和数据库服务器的可扩展configuration的设置。 硬件/体系结构缩放 – 据我了解,这里的第一步是将Web服务器和数据库分开,并让数据库服务器自己运行,将Web服务器放在负载平衡器的后面,最后为数据库服务器configuration主/从configuration。 我应该问什么我的虚拟主机公司做? 什么是这样做的问题和什么是对我的AMFPHP服务,不同types的查询 – 写入和读取? 我有一个单独的脚本,其中包含数据库连接的详细信息,它包含在globals.php脚本中,因此我可以轻松地在一个步骤中更新连接详细信息。 我是正确的,在主/从configuration所有写入通常去主服务器和读取从奴隶? 这是否意味着我需要查看所有数据库查询,并确保它的“UPDATE”或“DELETE”查询发送到主数据库服务器? 在我的PHP代码中,数据库查询遍布在脚本中,并根据需要从函数内部调用。 我已经读了一些关于数据库抽象的知识,但并不完全理解这种方法的重要性。 缩放代码优化 – 我需要考虑如何改变代码以使其更具可伸缩性? PHP中有什么常见的东西受到缩放的影响? 安全 – 在考虑大量处理时,我需要注意哪些与安全有关的常见事项。 数据库优化,备份和恢复程序 – 为大型数据库的MySQL数据库实现自动数据库备份和恢复策略的最佳方式是什么? 我应该考虑拆分我的数据库 […]

AD | 防止pipe理员将密码更改为相同的东西

我有一个有趣的安全问题:具有广告访问权限的pipe理员将密码更改为相同的内容,违反了公司的安全策略。 用户方面,标准的AD复杂的密码策略已经到位(x天后过期,必须是未使用的一个等),但是由于具有该访问权限,他们可以用先前的密码覆盖它。 无论如何强迫ADpipe理员遵守这些设置? 或者通过什么东西来触发警报? 取消他们的访问不幸是一种select。 一个选项可能是他们不能修改自己的密码(我们有pipe理员帐户和每个pipe理员的用户帐户)