Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
puppet-ssh-hardening — 此 Puppet 模块提供安全的 ssh-client 和 ssh-server 配置。 | Kitploit
工具/GitHubGitHub/dev-sec/puppet-ssh-hardening
云基础设施安全配置审计网络安全DevSecOps身份验证
GitHubdev-sec/puppet-ssh-hardening

puppet-ssh-hardening

此 Puppet 模块提供安全的 ssh-client 和 ssh-server 配置。

查看仓库
6031482年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

Puppet SSH 加固

Puppet Forge Build Status Gitter Chat

描述

该 Puppet 模块提供安全的 ssh-client 和 ssh-server 配置。

要求

  • Puppet
  • Puppet 模块:saz/ssh (>= 2.3.6)、puppetlabs/stdlib (>= 4.2.0)

参数

  • ipv6_enabled = false - 如果需要 IPv6,则设为 true
  • cbc_required = false - 如果加密算法需要 CBC,则设为 true。这通常仅在较旧的 M2M 机制需要通过 SSH 通信,且未启用任何已配置的安全加密算法时才需要。CBC 是一种较弱的替代方案。任何更弱的算法都应避免,因此不可用。
  • weak_hmac = false - 如果需要较弱的 HMAC 机制,则设为 true。这通常仅在较旧的 M2M 机制需要通过 SSH 通信,且未启用任何已配置的安全 HMAC 时才需要。
  • weak_kex = false - 如果需要较弱的密钥交换(KEX)机制,则设为 true。这通常仅在较旧的 M2M 机制需要通过 SSH 通信,且未启用任何已配置的安全 KEX 时才需要。
  • allow_root_with_key = false - 设为 false 以完全禁用 root 登录。设为 true 以允许 root 通过基于密钥的机制登录。
  • ports = [ 22 ] - ssh-server 应监听的端口,以及 ssh-client 应连接的端口
  • listen_to = [ "0.0.0.0" ] - ssh-server 应监听的一个或多个 IP 地址。默认为空,但出于安全原因应进行配置!
  • remote_hosts - ssh-client 可以连接的一个或多个主机。默认为空,但出于安全原因应进行配置!
  • allow_tcp_forwarding = false - 设为 true 以允许 TCP 转发
  • allow_agent_forwarding = false - 设为 true 以允许代理转发
  • use_pam = false 以禁用 PAM 认证
  • client_options = {} - 在哈希中设置值以覆盖模块的设置
  • server_options = {} - 在哈希中设置值以覆盖模块的设置

用法

添加此模块后,您可以使用该类:

class { 'ssh_hardening': }

这将安装 ssh-server 和 ssh-client。您也可以选择仅安装其中一个:

class { 'ssh_hardening::server': }
class { 'ssh_hardening::client': }

您应配置核心属性:

class { 'ssh_hardening::server':
  "listen_to" : ["10.2.3.4"]
}

listen_to 的默认值为 0.0.0.0。强烈建议更改该值。

覆盖默认选项

默认选项将与通过 client_options 和 server_options 参数传入的选项合并。 如果某个选项同时通过默认值和 options 参数设置,则后者将生效。

以下示例将启用默认情况下禁用的 X11Forwarding:

class { 'ssh_hardening':
  server_options => {
    'X11Forwarding' => 'yes',
  },
}

本地测试

对于本地测试,您可以使用 vagrant 以及 Virtualbox 或 VMWare 在本地运行测试。您需要在系统上安装 Virtualbox 和 Vagrant。请参阅 Vagrant Downloads 获取适合您系统的 vagrant 软件包。我们所有的测试均使用 test-kitchen。如果您不熟悉 test-kitchen,请参阅他们的指南。

接下来安装 test-kitchen:

# 安装依赖
gem install bundler
bundle install

# 获取测试
bundle exec thor kitchen:fetch-remote-tests

# 执行 lint 检查
bundle exec rake lint

# 执行 spec 检查
bundle exec rake spec

# 在单台机器上快速测试
bundle exec kitchen test default-ubuntu-1204

# 在基于 Debian 的机器上测试
bundle exec kitchen test

# 用于开发
bundle exec kitchen create default-ubuntu-1204
bundle exec kitchen converge default-ubuntu-1204

更多信息请参阅 test-kitchen

常见问题 / 陷阱

我无法登录我的账户。我已经注册了客户端密钥,但仍然无法登录。

如果您已排查了所有常见问题(防火墙、网络、密钥缺失、密钥错误、账户被禁用等),则可能是您的账户被锁定。最快的排查方法是查看您用户的密码哈希:

sudo grep myuser /etc/shadow

如果哈希中包含 !,则您的账户已被锁定:

myuser:!:16280:7:60:7:::

正确的解决方法是解锁账户(passwd -u myuser)。如果该用户没有密码,您可以通过以下方式解锁:

usermod -p "*" myuser

或者,如果您打算使用 PAM,您可以通过 use_pam = true 启用它。PAM 将允许被锁定的用户使用密钥登录。

为什么我的应用程序无法再通过 SSH 连接?

请始终先查看日志文件,如果可能,请查看连接时客户端与服务器之间完成的协商过程。

我们已在一些应用程序(基于 python 和 ruby)中看到过一些问题,这些问题源于它们使用了过时的加密套件。这与本加固模块相冲突,该模块将密码、消息认证码(MAC)和密钥交换(KEX)算法的列表缩减为更安全的选择。

如果您发现这还不够,可以随时为密码激活 cbc_required,为 MAC 激活 weak_hmac,为 KEX 激活 weak_kex。

贡献者 + 致谢

  • Dominik Richter arlimus
  • Edmund Haselwanter ehaselwanter
  • Christoph Hartmann chris-rock
  • Patrick Meier atomic111
  • Matthew Haughton 3flex
  • Bernhard Schmidt bernhardschmidt
  • Kurt Huwig kurthuwig
  • Artem Sidorenko artem-sidorenko
  • Guillaume Destuynder gdestuynder
  • Bernhard Weisshuhn bkw
  • stribika

许可证与作者

  • 作者:Dominik Richter [email protected]
  • 作者:Deutsche Telekom AG

根据 Apache 许可证 2.0 版(“许可证”)授权; 除非遵守许可证,否则您不得使用此文件。 您可以在以下位置获取许可证副本:

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则按许可证分发的软件按“原样”分发, 不附带任何明示或暗示的保证或条件。 请参阅许可证以了解管理权限和限制的特定语言。

下载工具