将hesiod与route53一起使用的实用程序

hesiod53的Python项目详细描述


#赫西奥德+路53

这是一个跨整个系统管理unix用户、组和ssh密钥的系统。 EC2舰队只使用DNS。这将取代更传统的服务,如LDAP 以及kerberos和route53,后者更易于管理。

用户和组管理通过 [赫西奥德](https://en.wikipedia.org/wiki/Hesiod_(name_service)。这个储存库 包括一个同步工具,它使用 基于yaml文件的必需dns项。

对于ssh密钥,包含一个authorizedKeysCommand帮助程序,以便ssh public 密钥也可以存储在dns中。当ssh客户端尝试使用 公钥身份验证,助手将查询dns以获取正确的ssh密钥, 然后提供给openssh守护进程。这将取代个人 每个用户的授权密钥文件。

#有用的工具

除了这个库之外,您可能会发现下面的内容很有用。

查看如何设置服务器以使用hesiod53 dns进行身份验证。 *[负责角色](https://github.com/fullcontact/ansible-hesiod

从jumpcloud目录创建yml转储 *[飞云](https://github.com/fullcontact/hesiod53-jumpcloud

##路由53同步

###安装

` virtualenv env . env/bin/activate pip install /path/to/hesiod53 `

###用法

强烈建议在实际运行命令之前先使用–dry run。这将向您显示在aws route53上将更改的dns。

hesiod53 –dry-run USER_FILE

要真正将更改提交到aws route53,只需关闭–dry run选项。

hesiod53 USER_FILE

运行hesiod53-h获取完整的使用说明。

示例用户配置文件位于 [示例_users.yml](示例_users.yml)。确保您配置了路由53 区域和域正确。

##HESIOD设置

  1. 安装赫西奥德。在类似Debian的系统上,这是hesiod包。

  2. 配置/etc/hesiod.conf。hesiod配置文件的示例 [示例hesiod.conf](示例hesiod.conf)。设置左侧和右侧 使两个字符串的连接为 您在用户配置文件中使用的域。确保两个左侧 Rhs从一个点开始。

  3. 配置/etc/nsswitch.conf。对于passwd组,添加 赫西奥德,这样您的配置看起来与以下类似:

    passwd: compat hesiod group: compat hesiod shadow: compat

在这一点上,如果你把一切都设置好了,那么你应该能够看到 DNS中用户的用户信息。getent passwd user将返回 显示用户信息的类似passwd的行(如果配置了所有内容) 正确地。

###sudo设置(可选)

如果希望用户能够使用sudo,建议添加 用户访问组,然后授予sudo访问组的权限。注意你必须 由于用户没有密码,因此允许sudo无密码访问。

示例sudo行提供组控制盘sudo访问:

%wheel ALL=(ALL) NOPASSWD:ALL

##ssh密钥助手

###安装

ssh帮助程序的路径对于安全性至关重要。ssh将拒绝使用 任何二进制文件,其中所有权可由除根或任何父级以外的任何人写入 目录可由除根目录以外的任何人写入。因此,建议安装到 路径,如/etc/ssh/authkeys.py

另外,ssh助手依赖于 [dnspython](pypi.python.org/pypi/dnspython)。您可以使用安装 方法,或者您可以安装 类debian系统上的python dnspython包。

###配置

确保用hesiod信息填充/etc/hesiod.conf。见 上面的hesiod设置部分。

然后,在sshd配置中,输入以下选项

AuthorizedKeysCommand /path/to/ssh/command.py AuthorizedKeysCommandUser nobody

这将告诉ssh守护进程运行命令来查找给定的 用户在通过runnin检查任何本地密钥之后g命令作为用户 没有人。

###PAM配置

对于大多数默认的pam设置,如果没有 阴影项,如果您仅使用ssh密钥身份验证,则不存在该项。

要使用户身份验证工作,请确保broken_shadow选项为 传递到pam帐户配置中的pam_unix.so。像德比安一样 系统,这可以在/etc/pam.d/common account中找到。

示例:

account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so broken_shadow

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Google GSON:如何使用@Since注释,例如版本“1.2.1”?(无效双精度)   java EL1021E:尝试访问属性时出现问题   Java传递值交换方法   java在Spring MVC webapp中添加系统属性   java如何在焦点改变时替换经理的字段   文件io有没有一种方法可以使用Java PrintWriter写入特定行?   linux如何使用java卷曲URL并将输出保存到文件   java反向工程生成==,而不是等于   只有当   java为什么这个代码抛出异常比较方法违反了它的一般约定   java在createCriteria方法中搜索包含正则表达式的字符串   当鼠标停留在其中一个按钮上时,java使两个按钮一起悬停   java结果集到通用列表中   deleteOnExit的java替代方案   爪哇反应堆:如何从标准丁烷中产生助焊剂?   java没有实体的默认构造函数,尽管它已被定义   java我怎么知道一个整数只有两位数?   java无法访问子类中的受保护方法   RESTAPI可以从Postman调用,显示来自Java的400个错误请求   java从大型数据集中获取重复数据的最佳性能方法是什么?